Files
e-tib.com/.next/dev/server/vendor-chunks/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1.js
Marc Mintel d14122005d Initial commit: E-TIB production hardening & E2E foundation
Former-commit-id: ef04fca3d76375630c05aac117bf586953f3b657
2026-04-28 19:11:38 +02:00

175 lines
238 KiB
JavaScript

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "vendor-chunks/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1";
exports.ids = ["vendor-chunks/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1"];
exports.modules = {
/***/ "(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/index.js":
/*!**********************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/index.js ***!
\**********************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval("\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RedisInstrumentation = void 0;\nvar redis_1 = __webpack_require__(/*! ./redis */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/redis.js\");\nObject.defineProperty(exports, \"RedisInstrumentation\", ({ enumerable: true, get: function () { return redis_1.RedisInstrumentation; } }));\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsNEJBQTRCO0FBQzVCLGNBQWMsbUJBQU8sQ0FBQyxxTEFBUztBQUMvQix3REFBdUQsRUFBRSxxQ0FBcUMsd0NBQXdDLEVBQUM7QUFDdkkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXJjbWludGVsL1Byb2plY3RzL2UtdGliLmNvbS9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SZWRpc0luc3RydW1lbnRhdGlvbiA9IHZvaWQgMDtcbnZhciByZWRpc18xID0gcmVxdWlyZShcIi4vcmVkaXNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWRpc0luc3RydW1lbnRhdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVkaXNfMS5SZWRpc0luc3RydW1lbnRhdGlvbjsgfSB9KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/redis.js":
/*!**********************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/redis.js ***!
\**********************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RedisInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst instrumentation_1 = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.214.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\n/** @knipignore */\nconst version_1 = __webpack_require__(/*! ./version */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js\");\nconst instrumentation_2 = __webpack_require__(/*! ./v2-v3/instrumentation */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js\");\nconst instrumentation_3 = __webpack_require__(/*! ./v4-v5/instrumentation */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/instrumentation.js\");\nconst DEFAULT_CONFIG = {\n requireParentSpan: false,\n};\n// Wrapper RedisInstrumentation that address all supported versions\nclass RedisInstrumentation extends instrumentation_1.InstrumentationBase {\n instrumentationV2_V3;\n instrumentationV4_V5;\n // this is used to bypass a flaw in the base class constructor, which is calling\n // member functions before the constructor has a chance to fully initialize the member variables.\n initialized = false;\n constructor(config = {}) {\n const resolvedConfig = { ...DEFAULT_CONFIG, ...config };\n super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, resolvedConfig);\n this.instrumentationV2_V3 = new instrumentation_2.RedisInstrumentationV2_V3(this.getConfig());\n this.instrumentationV4_V5 = new instrumentation_3.RedisInstrumentationV4_V5(this.getConfig());\n this.initialized = true;\n }\n setConfig(config = {}) {\n const newConfig = { ...DEFAULT_CONFIG, ...config };\n super.setConfig(newConfig);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setConfig(newConfig);\n this.instrumentationV4_V5.setConfig(newConfig);\n }\n init() { }\n // Return underlying modules, as consumers (like https://github.com/DrewCorlin/opentelemetry-node-bundler-plugins) may\n // expect them to be populated without knowing that this module wraps 2 instrumentations\n getModuleDefinitions() {\n return [\n ...this.instrumentationV2_V3.getModuleDefinitions(),\n ...this.instrumentationV4_V5.getModuleDefinitions(),\n ];\n }\n setTracerProvider(tracerProvider) {\n super.setTracerProvider(tracerProvider);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setTracerProvider(tracerProvider);\n this.instrumentationV4_V5.setTracerProvider(tracerProvider);\n }\n enable() {\n super.enable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.enable();\n this.instrumentationV4_V5.enable();\n }\n disable() {\n super.disable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.disable();\n this.instrumentationV4_V5.disable();\n }\n}\nexports.RedisInstrumentation = RedisInstrumentation;\n//# sourceMappingURL=redis.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvcmVkaXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixtQkFBTyxDQUFDLGlNQUFnQztBQUNsRTtBQUNBLGtCQUFrQixtQkFBTyxDQUFDLHlMQUFXO0FBQ3JDLDBCQUEwQixtQkFBTyxDQUFDLHFOQUF5QjtBQUMzRCwwQkFBMEIsbUJBQU8sQ0FBQyxxTkFBeUI7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0IsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXJjbWludGVsL1Byb2plY3RzL2UtdGliLmNvbS9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvcmVkaXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlZGlzSW5zdHJ1bWVudGF0aW9uID0gdm9pZCAwO1xuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmNvbnN0IGluc3RydW1lbnRhdGlvbl8xID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvblwiKTtcbi8qKiBAa25pcGlnbm9yZSAqL1xuY29uc3QgdmVyc2lvbl8xID0gcmVxdWlyZShcIi4vdmVyc2lvblwiKTtcbmNvbnN0IGluc3RydW1lbnRhdGlvbl8yID0gcmVxdWlyZShcIi4vdjItdjMvaW5zdHJ1bWVudGF0aW9uXCIpO1xuY29uc3QgaW5zdHJ1bWVudGF0aW9uXzMgPSByZXF1aXJlKFwiLi92NC12NS9pbnN0cnVtZW50YXRpb25cIik7XG5jb25zdCBERUZBVUxUX0NPTkZJRyA9IHtcbiAgICByZXF1aXJlUGFyZW50U3BhbjogZmFsc2UsXG59O1xuLy8gV3JhcHBlciBSZWRpc0luc3RydW1lbnRhdGlvbiB0aGF0IGFkZHJlc3MgYWxsIHN1cHBvcnRlZCB2ZXJzaW9uc1xuY2xhc3MgUmVkaXNJbnN0cnVtZW50YXRpb24gZXh0ZW5kcyBpbnN0cnVtZW50YXRpb25fMS5JbnN0cnVtZW50YXRpb25CYXNlIHtcbiAgICBpbnN0cnVtZW50YXRpb25WMl9WMztcbiAgICBpbnN0cnVtZW50YXRpb25WNF9WNTtcbiAgICAvLyB0aGlzIGlzIHVzZWQgdG8gYnlwYXNzIGEgZmxhdyBpbiB0aGUgYmFzZSBjbGFzcyBjb25zdHJ1Y3Rvciwgd2hpY2ggaXMgY2FsbGluZ1xuICAgIC8vIG1lbWJlciBmdW5jdGlvbnMgYmVmb3JlIHRoZSBjb25zdHJ1Y3RvciBoYXMgYSBjaGFuY2UgdG8gZnVsbHkgaW5pdGlhbGl6ZSB0aGUgbWVtYmVyIHZhcmlhYmxlcy5cbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIGNvbnN0cnVjdG9yKGNvbmZpZyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkQ29uZmlnID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4uY29uZmlnIH07XG4gICAgICAgIHN1cGVyKHZlcnNpb25fMS5QQUNLQUdFX05BTUUsIHZlcnNpb25fMS5QQUNLQUdFX1ZFUlNJT04sIHJlc29sdmVkQ29uZmlnKTtcbiAgICAgICAgdGhpcy5pbnN0cnVtZW50YXRpb25WMl9WMyA9IG5ldyBpbnN0cnVtZW50YXRpb25fMi5SZWRpc0luc3RydW1lbnRhdGlvblYyX1YzKHRoaXMuZ2V0Q29uZmlnKCkpO1xuICAgICAgICB0aGlzLmluc3RydW1lbnRhdGlvblY0X1Y1ID0gbmV3IGluc3RydW1lbnRhdGlvbl8zLlJlZGlzSW5zdHJ1bWVudGF0aW9uVjRfVjUodGhpcy5nZXRDb25maWcoKSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgICBzZXRDb25maWcoY29uZmlnID0ge30pIHtcbiAgICAgICAgY29uc3QgbmV3Q29uZmlnID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4uY29uZmlnIH07XG4gICAgICAgIHN1cGVyLnNldENvbmZpZyhuZXdDb25maWcpO1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluc3RydW1lbnRhdGlvblYyX1YzLnNldENvbmZpZyhuZXdDb25maWcpO1xuICAgICAgICB0aGlzLmluc3RydW1lbnRhdGlvblY0X1Y1LnNldENvbmZpZyhuZXdDb25maWcpO1xuICAgIH1cbiAgICBpbml0KCkgeyB9XG4gICAgLy8gUmV0dXJuIHVuZGVybHlpbmcgbW9kdWxlcywgYXMgY29uc3VtZXJzIChsaWtlIGh0dHBzOi8vZ2l0aHViLmNvbS9EcmV3Q29ybGluL29wZW50ZWxlbWV0cnktbm9kZS1idW5kbGVyLXBsdWdpbnMpIG1heVxuICAgIC8vIGV4cGVjdCB0aGVtIHRvIGJlIHBvcHVsYXRlZCB3aXRob3V0IGtub3dpbmcgdGhhdCB0aGlzIG1vZHVsZSB3cmFwcyAyIGluc3RydW1lbnRhdGlvbnNcbiAgICBnZXRNb2R1bGVEZWZpbml0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLnRoaXMuaW5zdHJ1bWVudGF0aW9uVjJfVjMuZ2V0TW9kdWxlRGVmaW5pdGlvbnMoKSxcbiAgICAgICAgICAgIC4uLnRoaXMuaW5zdHJ1bWVudGF0aW9uVjRfVjUuZ2V0TW9kdWxlRGVmaW5pdGlvbnMoKSxcbiAgICAgICAgXTtcbiAgICB9XG4gICAgc2V0VHJhY2VyUHJvdmlkZXIodHJhY2VyUHJvdmlkZXIpIHtcbiAgICAgICAgc3VwZXIuc2V0VHJhY2VyUHJvdmlkZXIodHJhY2VyUHJvdmlkZXIpO1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluc3RydW1lbnRhdGlvblYyX1YzLnNldFRyYWNlclByb3ZpZGVyKHRyYWNlclByb3ZpZGVyKTtcbiAgICAgICAgdGhpcy5pbnN0cnVtZW50YXRpb25WNF9WNS5zZXRUcmFjZXJQcm92aWRlcih0cmFjZXJQcm92aWRlcik7XG4gICAgfVxuICAgIGVuYWJsZSgpIHtcbiAgICAgICAgc3VwZXIuZW5hYmxlKCk7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5zdHJ1bWVudGF0aW9uVjJfVjMuZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuaW5zdHJ1bWVudGF0aW9uVjRfVjUuZW5hYmxlKCk7XG4gICAgfVxuICAgIGRpc2FibGUoKSB7XG4gICAgICAgIHN1cGVyLmRpc2FibGUoKTtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnN0cnVtZW50YXRpb25WMl9WMy5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuaW5zdHJ1bWVudGF0aW9uVjRfVjUuZGlzYWJsZSgpO1xuICAgIH1cbn1cbmV4cG9ydHMuUmVkaXNJbnN0cnVtZW50YXRpb24gPSBSZWRpc0luc3RydW1lbnRhdGlvbjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlZGlzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/redis.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js":
/*!************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js ***!
\************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
eval("\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DB_SYSTEM_VALUE_REDIS = exports.DB_SYSTEM_NAME_VALUE_REDIS = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [Redis](https://redis.io/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_NAME_VALUE_REDIS = 'redis';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Redis\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_REDIS = 'redis';\n//# sourceMappingURL=semconv.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvc2VtY29udi5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCw2QkFBNkIsR0FBRyxrQ0FBa0MsR0FBRywwQkFBMEIsR0FBRywwQkFBMEIsR0FBRyxzQkFBc0IsR0FBRyx5QkFBeUIsR0FBRyxpQ0FBaUM7QUFDck47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyx5QkFBeUI7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0EscUNBQXFDLDBCQUEwQjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0EscUNBQXFDLHFCQUFxQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWFyY21pbnRlbC9Qcm9qZWN0cy9lLXRpYi5jb20vbm9kZV9tb2R1bGVzLy5wbnBtL0BvcGVudGVsZW1ldHJ5K2luc3RydW1lbnRhdGlvbi1yZWRpc0AwLjYyLjBfQG9wZW50ZWxlbWV0cnkrYXBpQDEuOS4xL25vZGVfbW9kdWxlcy9Ab3BlbnRlbGVtZXRyeS9pbnN0cnVtZW50YXRpb24tcmVkaXMvYnVpbGQvc3JjL3NlbWNvbnYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EQl9TWVNURU1fVkFMVUVfUkVESVMgPSBleHBvcnRzLkRCX1NZU1RFTV9OQU1FX1ZBTFVFX1JFRElTID0gZXhwb3J0cy5BVFRSX05FVF9QRUVSX1BPUlQgPSBleHBvcnRzLkFUVFJfTkVUX1BFRVJfTkFNRSA9IGV4cG9ydHMuQVRUUl9EQl9TWVNURU0gPSBleHBvcnRzLkFUVFJfREJfU1RBVEVNRU5UID0gZXhwb3J0cy5BVFRSX0RCX0NPTk5FQ1RJT05fU1RSSU5HID0gdm9pZCAwO1xuLypcbiAqIFRoaXMgZmlsZSBjb250YWlucyBhIGNvcHkgb2YgdW5zdGFibGUgc2VtYW50aWMgY29udmVudGlvbiBkZWZpbml0aW9uc1xuICogdXNlZCBieSB0aGlzIHBhY2thZ2UuXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL3RyZWUvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucyN1bnN0YWJsZS1zZW1jb252XG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZCwgdXNlIGBzZXJ2ZXIuYWRkcmVzc2AsIGBzZXJ2ZXIucG9ydGAgYXR0cmlidXRlcyBpbnN0ZWFkLlxuICpcbiAqIEBleGFtcGxlIFwiU2VydmVyPShsb2NhbGRiKVxcXFx2MTEuMDtJbnRlZ3JhdGVkIFNlY3VyaXR5PXRydWU7XCJcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgYXR0cmlidXRlIGlzIGV4cGVyaW1lbnRhbCBhbmQgaXMgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIG1pbm9yIHJlbGVhc2VzIG9mIGBAb3BlbnRlbGVtZXRyeS9zZW1hbnRpYy1jb252ZW50aW9uc2AuXG4gKlxuICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgYHNlcnZlci5hZGRyZXNzYCBhbmQgYHNlcnZlci5wb3J0YC5cbiAqL1xuZXhwb3J0cy5BVFRSX0RCX0NPTk5FQ1RJT05fU1RSSU5HID0gJ2RiLmNvbm5lY3Rpb25fc3RyaW5nJztcbi8qKlxuICogVGhlIGRhdGFiYXNlIHN0YXRlbWVudCBiZWluZyBleGVjdXRlZC5cbiAqXG4gKiBAZXhhbXBsZSBTRUxFQ1QgKiBGUk9NIHd1c2VyX3RhYmxlXG4gKiBAZXhhbXBsZSBTRVQgbXlrZXkgXCJXdVZhbHVlXCJcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgYXR0cmlidXRlIGlzIGV4cGVyaW1lbnRhbCBhbmQgaXMgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIG1pbm9yIHJlbGVhc2VzIG9mIGBAb3BlbnRlbGVtZXRyeS9zZW1hbnRpYy1jb252ZW50aW9uc2AuXG4gKlxuICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgYGRiLnF1ZXJ5LnRleHRgLlxuICovXG5leHBvcnRzLkFUVFJfREJfU1RBVEVNRU5UID0gJ2RiLnN0YXRlbWVudCc7XG4vKipcbiAqIERlcHJlY2F0ZWQsIHVzZSBgZGIuc3lzdGVtLm5hbWVgIGluc3RlYWQuXG4gKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGF0dHJpYnV0ZSBpcyBleHBlcmltZW50YWwgYW5kIGlzIHN1YmplY3QgdG8gYnJlYWtpbmcgY2hhbmdlcyBpbiBtaW5vciByZWxlYXNlcyBvZiBgQG9wZW50ZWxlbWV0cnkvc2VtYW50aWMtY29udmVudGlvbnNgLlxuICpcbiAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IGBkYi5zeXN0ZW0ubmFtZWAuXG4gKi9cbmV4cG9ydHMuQVRUUl9EQl9TWVNURU0gPSAnZGIuc3lzdGVtJztcbi8qKlxuICogRGVwcmVjYXRlZCwgdXNlIGBzZXJ2ZXIuYWRkcmVzc2Agb24gY2xpZW50IHNwYW5zIGFuZCBgY2xpZW50LmFkZHJlc3NgIG9uIHNlcnZlciBzcGFucy5cbiAqXG4gKiBAZXhhbXBsZSBleGFtcGxlLmNvbVxuICpcbiAqIEBleHBlcmltZW50YWwgVGhpcyBhdHRyaWJ1dGUgaXMgZXhwZXJpbWVudGFsIGFuZCBpcyBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gbWlub3IgcmVsZWFzZXMgb2YgYEBvcGVudGVsZW1ldHJ5L3NlbWFudGljLWNvbnZlbnRpb25zYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBgc2VydmVyLmFkZHJlc3NgIG9uIGNsaWVudCBzcGFucyBhbmQgYGNsaWVudC5hZGRyZXNzYCBvbiBzZXJ2ZXIgc3BhbnMuXG4gKi9cbmV4cG9ydHMuQVRUUl9ORVRfUEVFUl9OQU1FID0gJ25ldC5wZWVyLm5hbWUnO1xuLyoqXG4gKiBEZXByZWNhdGVkLCB1c2UgYHNlcnZlci5wb3J0YCBvbiBjbGllbnQgc3BhbnMgYW5kIGBjbGllbnQucG9ydGAgb24gc2VydmVyIHNwYW5zLlxuICpcbiAqIEBleGFtcGxlIDgwODBcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgYXR0cmlidXRlIGlzIGV4cGVyaW1lbnRhbCBhbmQgaXMgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIG1pbm9yIHJlbGVhc2VzIG9mIGBAb3BlbnRlbGVtZXRyeS9zZW1hbnRpYy1jb252ZW50aW9uc2AuXG4gKlxuICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgYHNlcnZlci5wb3J0YCBvbiBjbGllbnQgc3BhbnMgYW5kIGBjbGllbnQucG9ydGAgb24gc2VydmVyIHNwYW5zLlxuICovXG5leHBvcnRzLkFUVFJfTkVUX1BFRVJfUE9SVCA9ICduZXQucGVlci5wb3J0Jztcbi8qKlxuICogRW51bSB2YWx1ZSBcInJlZGlzXCIgZm9yIGF0dHJpYnV0ZSB7QGxpbmsgQVRUUl9EQl9TWVNURU1fTkFNRX0uXG4gKlxuICogW1JlZGlzXShodHRwczovL3JlZGlzLmlvLylcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgZW51bSB2YWx1ZSBpcyBleHBlcmltZW50YWwgYW5kIGlzIHN1YmplY3QgdG8gYnJlYWtpbmcgY2hhbmdlcyBpbiBtaW5vciByZWxlYXNlcyBvZiBgQG9wZW50ZWxlbWV0cnkvc2VtYW50aWMtY29udmVudGlvbnNgLlxuICovXG5leHBvcnRzLkRCX1NZU1RFTV9OQU1FX1ZBTFVFX1JFRElTID0gJ3JlZGlzJztcbi8qKlxuICogRW51bSB2YWx1ZSBcInJlZGlzXCIgZm9yIGF0dHJpYnV0ZSB7QGxpbmsgQVRUUl9EQl9TWVNURU19LlxuICpcbiAqIFJlZGlzXG4gKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGVudW0gdmFsdWUgaXMgZXhwZXJpbWVudGFsIGFuZCBpcyBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gbWlub3IgcmVsZWFzZXMgb2YgYEBvcGVudGVsZW1ldHJ5L3NlbWFudGljLWNvbnZlbnRpb25zYC5cbiAqL1xuZXhwb3J0cy5EQl9TWVNURU1fVkFMVUVfUkVESVMgPSAncmVkaXMnO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VtY29udi5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js":
/*!**************************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js ***!
\**************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval(";globalThis[\"_sentryRewritesTunnelPath\"] = undefined;globalThis[\"SENTRY_RELEASE\"] = undefined;globalThis[\"_sentryBasePath\"] = undefined;globalThis[\"_sentryNextJsVersion\"] = \"16.1.6\";globalThis[\"_sentryRewriteFramesDistDir\"] = \".next\";globalThis[\"_sentryVercelCronsConfig\"] = undefined;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RedisInstrumentationV2_V3 = void 0;\nconst instrumentation_1 = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.214.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\nconst utils_1 = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/utils.js\");\n/** @knipignore */\nconst version_1 = __webpack_require__(/*! ../version */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js\");\nconst api_1 = __webpack_require__(/*! @opentelemetry/api */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/index.js\");\nconst semantic_conventions_1 = __webpack_require__(/*! @opentelemetry/semantic-conventions */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+semantic-conventions@1.40.0/node_modules/@opentelemetry/semantic-conventions/build/esm/index.js\");\nconst semconv_1 = __webpack_require__(/*! ../semconv */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js\");\nconst redis_common_1 = __webpack_require__(/*! @opentelemetry/redis-common */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+redis-common@0.38.2/node_modules/@opentelemetry/redis-common/build/src/index.js\");\nclass RedisInstrumentationV2_V3 extends instrumentation_1.InstrumentationBase {\n static COMPONENT = 'redis';\n _semconvStability;\n constructor(config = {}) {\n super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n this._semconvStability = config.semconvStability\n ? config.semconvStability\n : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n }\n setConfig(config = {}) {\n super.setConfig(config);\n this._semconvStability = config.semconvStability\n ? config.semconvStability\n : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n }\n init() {\n return [\n new instrumentation_1.InstrumentationNodeModuleDefinition('redis', ['>=2.6.0 <4'], moduleExports => {\n if ((0, instrumentation_1.isWrapped)(moduleExports.RedisClient.prototype['internal_send_command'])) {\n this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n }\n this._wrap(moduleExports.RedisClient.prototype, 'internal_send_command', this._getPatchInternalSendCommand());\n if ((0, instrumentation_1.isWrapped)(moduleExports.RedisClient.prototype['create_stream'])) {\n this._unwrap(moduleExports.RedisClient.prototype, 'create_stream');\n }\n this._wrap(moduleExports.RedisClient.prototype, 'create_stream', this._getPatchCreateStream());\n if ((0, instrumentation_1.isWrapped)(moduleExports.createClient)) {\n this._unwrap(moduleExports, 'createClient');\n }\n this._wrap(moduleExports, 'createClient', this._getPatchCreateClient());\n return moduleExports;\n }, moduleExports => {\n if (moduleExports === undefined)\n return;\n this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n this._unwrap(moduleExports.RedisClient.prototype, 'create_stream');\n this._unwrap(moduleExports, 'createClient');\n }),\n ];\n }\n /**\n * Patch internal_send_command(...) to trace requests\n */\n _getPatchInternalSendCommand() {\n const instrumentation = this;\n return function internal_send_command(original) {\n return function internal_send_command_trace(cmd) {\n // Versions of redis (2.4+) use a single options object\n // instead of named arguments\n if (arguments.length !== 1 || typeof cmd !== 'object') {\n // We don't know how to trace this call, so don't start/stop a span\n return original.apply(this, arguments);\n }\n const config = instrumentation.getConfig();\n const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n if (config.requireParentSpan === true && hasNoParentSpan) {\n return original.apply(this, arguments);\n }\n const dbStatementSerializer = config?.dbStatementSerializer || redis_common_1.defaultDbStatementSerializer;\n const attributes = {};\n if (instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n Object.assign(attributes, {\n [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_REDIS,\n [semconv_1.ATTR_DB_STATEMENT]: dbStatementSerializer(cmd.command, cmd.args),\n });\n }\n if (instrumentation._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n Object.assign(attributes, {\n [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semconv_1.DB_SYSTEM_NAME_VALUE_REDIS,\n [semantic_conventions_1.ATTR_DB_OPERATION_NAME]: cmd.command,\n [semantic_conventions_1.ATTR_DB_QUERY_TEXT]: dbStatementSerializer(cmd.command, cmd.args),\n });\n }\n const span = instrumentation.tracer.startSpan(`${RedisInstrumentationV2_V3.COMPONENT}-${cmd.command}`, {\n kind: api_1.SpanKind.CLIENT,\n attributes,\n });\n // Set attributes for not explicitly typed RedisPluginClientTypes\n if (this.connection_options) {\n const connectionAttributes = {};\n if (instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n Object.assign(connectionAttributes, {\n [semconv_1.ATTR_NET_PEER_NAME]: this.connection_options.host,\n [semconv_1.ATTR_NET_PEER_PORT]: this.connection_options.port,\n });\n }\n if (instrumentation._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n Object.assign(connectionAttributes, {\n [semantic_conventions_1.ATTR_SERVER_ADDRESS]: this.connection_options.host,\n [semantic_conventions_1.ATTR_SERVER_PORT]: this.connection_options.port,\n });\n }\n span.setAttributes(connectionAttributes);\n }\n if (this.address &&\n instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n span.setAttribute(semconv_1.ATTR_DB_CONNECTION_STRING, `redis://${this.address}`);\n }\n const originalCallback = arguments[0].callback;\n if (originalCallback) {\n const originalContext = api_1.context.active();\n arguments[0].callback = function callback(err, reply) {\n if (config?.responseHook) {\n const responseHook = config.responseHook;\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n responseHook(span, cmd.command, cmd.args, reply);\n }, err => {\n if (err) {\n instrumentation._diag.error('Error executing responseHook', err);\n }\n }, true);\n }\n (0, utils_1.endSpan)(span, err);\n return api_1.context.with(originalContext, originalCallback, this, ...arguments);\n };\n }\n try {\n // Span will be ended in callback\n return original.apply(this, arguments);\n }\n catch (rethrow) {\n (0, utils_1.endSpan)(span, rethrow);\n throw rethrow; // rethrow after ending span\n }\n };\n };\n }\n _getPatchCreateClient() {\n return function createClient(original) {\n return (0, utils_1.getTracedCreateClient)(original);\n };\n }\n _getPatchCreateStream() {\n return function createReadStream(original) {\n return (0, utils_1.getTracedCreateStreamTrace)(original);\n };\n }\n}\nexports.RedisInstrumentationV2_V3 = RedisInstrumentationV2_V3;\n//# sourceMappingURL=instrumentation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvdjItdjMvaW5zdHJ1bWVudGF0aW9uLmpzIiwibWFwcGluZ3MiOiJBQUFhLENBQUMsb0RBQW9ELHlDQUF5QywwQ0FBMEMsOENBQThDLG9EQUFvRDtBQUN2UDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsaUNBQWlDO0FBQ2pDLDBCQUEwQixtQkFBTyxDQUFDLGlNQUFnQztBQUNsRSxnQkFBZ0IsbUJBQU8sQ0FBQywyTEFBUztBQUNqQztBQUNBLGtCQUFrQixtQkFBTyxDQUFDLDBMQUFZO0FBQ3RDLGNBQWMsbUJBQU8sQ0FBQyxrSUFBb0I7QUFDMUMsK0JBQStCLG1CQUFPLENBQUMsc0xBQXFDO0FBQzVFLGtCQUFrQixtQkFBTyxDQUFDLDBMQUFZO0FBQ3RDLHVCQUF1QixtQkFBTyxDQUFDLDhKQUE2QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLGlFQUFpRSxvQ0FBb0MsR0FBRyxZQUFZO0FBQ3BIO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0ZBQXNGLGFBQWE7QUFDbkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS9Ab3BlbnRlbGVtZXRyeStpbnN0cnVtZW50YXRpb24tcmVkaXNAMC42Mi4wX0BvcGVudGVsZW1ldHJ5K2FwaUAxLjkuMS9ub2RlX21vZHVsZXMvQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uLXJlZGlzL2J1aWxkL3NyYy92Mi12My9pbnN0cnVtZW50YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7O2dsb2JhbFRoaXNbXCJfc2VudHJ5UmV3cml0ZXNUdW5uZWxQYXRoXCJdID0gdW5kZWZpbmVkO2dsb2JhbFRoaXNbXCJTRU5UUllfUkVMRUFTRVwiXSA9IHVuZGVmaW5lZDtnbG9iYWxUaGlzW1wiX3NlbnRyeUJhc2VQYXRoXCJdID0gdW5kZWZpbmVkO2dsb2JhbFRoaXNbXCJfc2VudHJ5TmV4dEpzVmVyc2lvblwiXSA9IFwiMTYuMS42XCI7Z2xvYmFsVGhpc1tcIl9zZW50cnlSZXdyaXRlRnJhbWVzRGlzdERpclwiXSA9IFwiLm5leHRcIjtnbG9iYWxUaGlzW1wiX3NlbnRyeVZlcmNlbENyb25zQ29uZmlnXCJdID0gdW5kZWZpbmVkO1xuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmVkaXNJbnN0cnVtZW50YXRpb25WMl9WMyA9IHZvaWQgMDtcbmNvbnN0IGluc3RydW1lbnRhdGlvbl8xID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvblwiKTtcbmNvbnN0IHV0aWxzXzEgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbi8qKiBAa25pcGlnbm9yZSAqL1xuY29uc3QgdmVyc2lvbl8xID0gcmVxdWlyZShcIi4uL3ZlcnNpb25cIik7XG5jb25zdCBhcGlfMSA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9hcGlcIik7XG5jb25zdCBzZW1hbnRpY19jb252ZW50aW9uc18xID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L3NlbWFudGljLWNvbnZlbnRpb25zXCIpO1xuY29uc3Qgc2VtY29udl8xID0gcmVxdWlyZShcIi4uL3NlbWNvbnZcIik7XG5jb25zdCByZWRpc19jb21tb25fMSA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9yZWRpcy1jb21tb25cIik7XG5jbGFzcyBSZWRpc0luc3RydW1lbnRhdGlvblYyX1YzIGV4dGVuZHMgaW5zdHJ1bWVudGF0aW9uXzEuSW5zdHJ1bWVudGF0aW9uQmFzZSB7XG4gICAgc3RhdGljIENPTVBPTkVOVCA9ICdyZWRpcyc7XG4gICAgX3NlbWNvbnZTdGFiaWxpdHk7XG4gICAgY29uc3RydWN0b3IoY29uZmlnID0ge30pIHtcbiAgICAgICAgc3VwZXIodmVyc2lvbl8xLlBBQ0tBR0VfTkFNRSwgdmVyc2lvbl8xLlBBQ0tBR0VfVkVSU0lPTiwgY29uZmlnKTtcbiAgICAgICAgdGhpcy5fc2VtY29udlN0YWJpbGl0eSA9IGNvbmZpZy5zZW1jb252U3RhYmlsaXR5XG4gICAgICAgICAgICA/IGNvbmZpZy5zZW1jb252U3RhYmlsaXR5XG4gICAgICAgICAgICA6ICgwLCBpbnN0cnVtZW50YXRpb25fMS5zZW1jb252U3RhYmlsaXR5RnJvbVN0cikoJ2RhdGFiYXNlJywgcHJvY2Vzcy5lbnYuT1RFTF9TRU1DT05WX1NUQUJJTElUWV9PUFRfSU4pO1xuICAgIH1cbiAgICBzZXRDb25maWcoY29uZmlnID0ge30pIHtcbiAgICAgICAgc3VwZXIuc2V0Q29uZmlnKGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX3NlbWNvbnZTdGFiaWxpdHkgPSBjb25maWcuc2VtY29udlN0YWJpbGl0eVxuICAgICAgICAgICAgPyBjb25maWcuc2VtY29udlN0YWJpbGl0eVxuICAgICAgICAgICAgOiAoMCwgaW5zdHJ1bWVudGF0aW9uXzEuc2VtY29udlN0YWJpbGl0eUZyb21TdHIpKCdkYXRhYmFzZScsIHByb2Nlc3MuZW52Lk9URUxfU0VNQ09OVl9TVEFCSUxJVFlfT1BUX0lOKTtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG5ldyBpbnN0cnVtZW50YXRpb25fMS5JbnN0cnVtZW50YXRpb25Ob2RlTW9kdWxlRGVmaW5pdGlvbigncmVkaXMnLCBbJz49Mi42LjAgPDQnXSwgbW9kdWxlRXhwb3J0cyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCgwLCBpbnN0cnVtZW50YXRpb25fMS5pc1dyYXBwZWQpKG1vZHVsZUV4cG9ydHMuUmVkaXNDbGllbnQucHJvdG90eXBlWydpbnRlcm5hbF9zZW5kX2NvbW1hbmQnXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKG1vZHVsZUV4cG9ydHMuUmVkaXNDbGllbnQucHJvdG90eXBlLCAnaW50ZXJuYWxfc2VuZF9jb21tYW5kJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3dyYXAobW9kdWxlRXhwb3J0cy5SZWRpc0NsaWVudC5wcm90b3R5cGUsICdpbnRlcm5hbF9zZW5kX2NvbW1hbmQnLCB0aGlzLl9nZXRQYXRjaEludGVybmFsU2VuZENvbW1hbmQoKSk7XG4gICAgICAgICAgICAgICAgaWYgKCgwLCBpbnN0cnVtZW50YXRpb25fMS5pc1dyYXBwZWQpKG1vZHVsZUV4cG9ydHMuUmVkaXNDbGllbnQucHJvdG90eXBlWydjcmVhdGVfc3RyZWFtJ10pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChtb2R1bGVFeHBvcnRzLlJlZGlzQ2xpZW50LnByb3RvdHlwZSwgJ2NyZWF0ZV9zdHJlYW0nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fd3JhcChtb2R1bGVFeHBvcnRzLlJlZGlzQ2xpZW50LnByb3RvdHlwZSwgJ2NyZWF0ZV9zdHJlYW0nLCB0aGlzLl9nZXRQYXRjaENyZWF0ZVN0cmVhbSgpKTtcbiAgICAgICAgICAgICAgICBpZiAoKDAsIGluc3RydW1lbnRhdGlvbl8xLmlzV3JhcHBlZCkobW9kdWxlRXhwb3J0cy5jcmVhdGVDbGllbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChtb2R1bGVFeHBvcnRzLCAnY3JlYXRlQ2xpZW50Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3dyYXAobW9kdWxlRXhwb3J0cywgJ2NyZWF0ZUNsaWVudCcsIHRoaXMuX2dldFBhdGNoQ3JlYXRlQ2xpZW50KCkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBtb2R1bGVFeHBvcnRzO1xuICAgICAgICAgICAgfSwgbW9kdWxlRXhwb3J0cyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG1vZHVsZUV4cG9ydHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChtb2R1bGVFeHBvcnRzLlJlZGlzQ2xpZW50LnByb3RvdHlwZSwgJ2ludGVybmFsX3NlbmRfY29tbWFuZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChtb2R1bGVFeHBvcnRzLlJlZGlzQ2xpZW50LnByb3RvdHlwZSwgJ2NyZWF0ZV9zdHJlYW0nKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91bndyYXAobW9kdWxlRXhwb3J0cywgJ2NyZWF0ZUNsaWVudCcpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFBhdGNoIGludGVybmFsX3NlbmRfY29tbWFuZCguLi4pIHRvIHRyYWNlIHJlcXVlc3RzXG4gICAgICovXG4gICAgX2dldFBhdGNoSW50ZXJuYWxTZW5kQ29tbWFuZCgpIHtcbiAgICAgICAgY29uc3QgaW5zdHJ1bWVudGF0aW9uID0gdGhpcztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGludGVybmFsX3NlbmRfY29tbWFuZChvcmlnaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGludGVybmFsX3NlbmRfY29tbWFuZF90cmFjZShjbWQpIHtcbiAgICAgICAgICAgICAgICAvLyBWZXJzaW9ucyBvZiByZWRpcyAoMi40KykgdXNlIGEgc2luZ2xlIG9wdGlvbnMgb2JqZWN0XG4gICAgICAgICAgICAgICAgLy8gaW5zdGVhZCBvZiBuYW1lZCBhcmd1bWVudHNcbiAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPT0gMSB8fCB0eXBlb2YgY21kICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBrbm93IGhvdyB0byB0cmFjZSB0aGlzIGNhbGwsIHNvIGRvbid0IHN0YXJ0L3N0b3AgYSBzcGFuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBpbnN0cnVtZW50YXRpb24uZ2V0Q29uZmlnKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzTm9QYXJlbnRTcGFuID0gYXBpXzEudHJhY2UuZ2V0U3BhbihhcGlfMS5jb250ZXh0LmFjdGl2ZSgpKSA9PT0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGlmIChjb25maWcucmVxdWlyZVBhcmVudFNwYW4gPT09IHRydWUgJiYgaGFzTm9QYXJlbnRTcGFuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBkYlN0YXRlbWVudFNlcmlhbGl6ZXIgPSBjb25maWc/LmRiU3RhdGVtZW50U2VyaWFsaXplciB8fCByZWRpc19jb21tb25fMS5kZWZhdWx0RGJTdGF0ZW1lbnRTZXJpYWxpemVyO1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgICAgICAgICBpZiAoaW5zdHJ1bWVudGF0aW9uLl9zZW1jb252U3RhYmlsaXR5ICYgaW5zdHJ1bWVudGF0aW9uXzEuU2VtY29udlN0YWJpbGl0eS5PTEQpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhdHRyaWJ1dGVzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VtY29udl8xLkFUVFJfREJfU1lTVEVNXTogc2VtY29udl8xLkRCX1NZU1RFTV9WQUxVRV9SRURJUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZW1jb252XzEuQVRUUl9EQl9TVEFURU1FTlRdOiBkYlN0YXRlbWVudFNlcmlhbGl6ZXIoY21kLmNvbW1hbmQsIGNtZC5hcmdzKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpbnN0cnVtZW50YXRpb24uX3NlbWNvbnZTdGFiaWxpdHkgJiBpbnN0cnVtZW50YXRpb25fMS5TZW1jb252U3RhYmlsaXR5LlNUQUJMRSkge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGF0dHJpYnV0ZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZW1hbnRpY19jb252ZW50aW9uc18xLkFUVFJfREJfU1lTVEVNX05BTUVdOiBzZW1jb252XzEuREJfU1lTVEVNX05BTUVfVkFMVUVfUkVESVMsXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VtYW50aWNfY29udmVudGlvbnNfMS5BVFRSX0RCX09QRVJBVElPTl9OQU1FXTogY21kLmNvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VtYW50aWNfY29udmVudGlvbnNfMS5BVFRSX0RCX1FVRVJZX1RFWFRdOiBkYlN0YXRlbWVudFNlcmlhbGl6ZXIoY21kLmNvbW1hbmQsIGNtZC5hcmdzKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW4gPSBpbnN0cnVtZW50YXRpb24udHJhY2VyLnN0YXJ0U3BhbihgJHtSZWRpc0luc3RydW1lbnRhdGlvblYyX1YzLkNPTVBPTkVOVH0tJHtjbWQuY29tbWFuZH1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IGFwaV8xLlNwYW5LaW5kLkNMSUVOVCxcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyBTZXQgYXR0cmlidXRlcyBmb3Igbm90IGV4cGxpY2l0bHkgdHlwZWQgUmVkaXNQbHVnaW5DbGllbnRUeXBlc1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb25fb3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uQXR0cmlidXRlcyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdHJ1bWVudGF0aW9uLl9zZW1jb252U3RhYmlsaXR5ICYgaW5zdHJ1bWVudGF0aW9uXzEuU2VtY29udlN0YWJpbGl0eS5PTEQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY29ubmVjdGlvbkF0dHJpYnV0ZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VtY29udl8xLkFUVFJfTkVUX1BFRVJfTkFNRV06IHRoaXMuY29ubmVjdGlvbl9vcHRpb25zLmhvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbWNvbnZfMS5BVFRSX05FVF9QRUVSX1BPUlRdOiB0aGlzLmNvbm5lY3Rpb25fb3B0aW9ucy5wb3J0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3RydW1lbnRhdGlvbi5fc2VtY29udlN0YWJpbGl0eSAmIGluc3RydW1lbnRhdGlvbl8xLlNlbWNvbnZTdGFiaWxpdHkuU1RBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGNvbm5lY3Rpb25BdHRyaWJ1dGVzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbWFudGljX2NvbnZlbnRpb25zXzEuQVRUUl9TRVJWRVJfQUREUkVTU106IHRoaXMuY29ubmVjdGlvbl9vcHRpb25zLmhvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbWFudGljX2NvbnZlbnRpb25zXzEuQVRUUl9TRVJWRVJfUE9SVF06IHRoaXMuY29ubmVjdGlvbl9vcHRpb25zLnBvcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZXMoY29ubmVjdGlvbkF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hZGRyZXNzICYmXG4gICAgICAgICAgICAgICAgICAgIGluc3RydW1lbnRhdGlvbi5fc2VtY29udlN0YWJpbGl0eSAmIGluc3RydW1lbnRhdGlvbl8xLlNlbWNvbnZTdGFiaWxpdHkuT0xEKSB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKHNlbWNvbnZfMS5BVFRSX0RCX0NPTk5FQ1RJT05fU1RSSU5HLCBgcmVkaXM6Ly8ke3RoaXMuYWRkcmVzc31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxDYWxsYmFjayA9IGFyZ3VtZW50c1swXS5jYWxsYmFjaztcbiAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbENvbnRleHQgPSBhcGlfMS5jb250ZXh0LmFjdGl2ZSgpO1xuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbMF0uY2FsbGJhY2sgPSBmdW5jdGlvbiBjYWxsYmFjayhlcnIsIHJlcGx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnPy5yZXNwb25zZUhvb2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZUhvb2sgPSBjb25maWcucmVzcG9uc2VIb29rO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBpbnN0cnVtZW50YXRpb25fMS5zYWZlRXhlY3V0ZUluVGhlTWlkZGxlKSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlSG9vayhzcGFuLCBjbWQuY29tbWFuZCwgY21kLmFyZ3MsIHJlcGx5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0cnVtZW50YXRpb24uX2RpYWcuZXJyb3IoJ0Vycm9yIGV4ZWN1dGluZyByZXNwb25zZUhvb2snLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgdXRpbHNfMS5lbmRTcGFuKShzcGFuLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwaV8xLmNvbnRleHQud2l0aChvcmlnaW5hbENvbnRleHQsIG9yaWdpbmFsQ2FsbGJhY2ssIHRoaXMsIC4uLmFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNwYW4gd2lsbCBiZSBlbmRlZCBpbiBjYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWwuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKHJldGhyb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgKDAsIHV0aWxzXzEuZW5kU3Bhbikoc3BhbiwgcmV0aHJvdyk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJldGhyb3c7IC8vIHJldGhyb3cgYWZ0ZXIgZW5kaW5nIHNwYW5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgIH1cbiAgICBfZ2V0UGF0Y2hDcmVhdGVDbGllbnQoKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBjcmVhdGVDbGllbnQob3JpZ2luYWwpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgdXRpbHNfMS5nZXRUcmFjZWRDcmVhdGVDbGllbnQpKG9yaWdpbmFsKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2dldFBhdGNoQ3JlYXRlU3RyZWFtKCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gY3JlYXRlUmVhZFN0cmVhbShvcmlnaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCB1dGlsc18xLmdldFRyYWNlZENyZWF0ZVN0cmVhbVRyYWNlKShvcmlnaW5hbCk7XG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0cy5SZWRpc0luc3RydW1lbnRhdGlvblYyX1YzID0gUmVkaXNJbnN0cnVtZW50YXRpb25WMl9WMztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluc3RydW1lbnRhdGlvbi5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/utils.js":
/*!****************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/utils.js ***!
\****************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval("\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getTracedCreateStreamTrace = exports.getTracedCreateClient = exports.endSpan = void 0;\nconst api_1 = __webpack_require__(/*! @opentelemetry/api */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/index.js\");\nconst endSpan = (span, err) => {\n if (err) {\n span.setStatus({\n code: api_1.SpanStatusCode.ERROR,\n message: err.message,\n });\n }\n span.end();\n};\nexports.endSpan = endSpan;\nconst getTracedCreateClient = (original) => {\n return function createClientTrace() {\n const client = original.apply(this, arguments);\n return api_1.context.bind(api_1.context.active(), client);\n };\n};\nexports.getTracedCreateClient = getTracedCreateClient;\nconst getTracedCreateStreamTrace = (original) => {\n return function create_stream_trace() {\n if (!Object.prototype.hasOwnProperty.call(this, 'stream')) {\n Object.defineProperty(this, 'stream', {\n get() {\n return this._patched_redis_stream;\n },\n set(val) {\n api_1.context.bind(api_1.context.active(), val);\n this._patched_redis_stream = val;\n },\n });\n }\n return original.apply(this, arguments);\n };\n};\nexports.getTracedCreateStreamTrace = getTracedCreateStreamTrace;\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvdjItdjMvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0NBQWtDLEdBQUcsNkJBQTZCLEdBQUcsZUFBZTtBQUNwRixjQUFjLG1CQUFPLENBQUMsa0lBQW9CO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS9Ab3BlbnRlbGVtZXRyeStpbnN0cnVtZW50YXRpb24tcmVkaXNAMC42Mi4wX0BvcGVudGVsZW1ldHJ5K2FwaUAxLjkuMS9ub2RlX21vZHVsZXMvQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uLXJlZGlzL2J1aWxkL3NyYy92Mi12My91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFRyYWNlZENyZWF0ZVN0cmVhbVRyYWNlID0gZXhwb3J0cy5nZXRUcmFjZWRDcmVhdGVDbGllbnQgPSBleHBvcnRzLmVuZFNwYW4gPSB2b2lkIDA7XG5jb25zdCBhcGlfMSA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9hcGlcIik7XG5jb25zdCBlbmRTcGFuID0gKHNwYW4sIGVycikgPT4ge1xuICAgIGlmIChlcnIpIHtcbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgY29kZTogYXBpXzEuU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNwYW4uZW5kKCk7XG59O1xuZXhwb3J0cy5lbmRTcGFuID0gZW5kU3BhbjtcbmNvbnN0IGdldFRyYWNlZENyZWF0ZUNsaWVudCA9IChvcmlnaW5hbCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjcmVhdGVDbGllbnRUcmFjZSgpIHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gb3JpZ2luYWwuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgcmV0dXJuIGFwaV8xLmNvbnRleHQuYmluZChhcGlfMS5jb250ZXh0LmFjdGl2ZSgpLCBjbGllbnQpO1xuICAgIH07XG59O1xuZXhwb3J0cy5nZXRUcmFjZWRDcmVhdGVDbGllbnQgPSBnZXRUcmFjZWRDcmVhdGVDbGllbnQ7XG5jb25zdCBnZXRUcmFjZWRDcmVhdGVTdHJlYW1UcmFjZSA9IChvcmlnaW5hbCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjcmVhdGVfc3RyZWFtX3RyYWNlKCkge1xuICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLCAnc3RyZWFtJykpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnc3RyZWFtJywge1xuICAgICAgICAgICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGNoZWRfcmVkaXNfc3RyZWFtO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0KHZhbCkge1xuICAgICAgICAgICAgICAgICAgICBhcGlfMS5jb250ZXh0LmJpbmQoYXBpXzEuY29udGV4dC5hY3RpdmUoKSwgdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGF0Y2hlZF9yZWRpc19zdHJlYW0gPSB2YWw7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH07XG59O1xuZXhwb3J0cy5nZXRUcmFjZWRDcmVhdGVTdHJlYW1UcmFjZSA9IGdldFRyYWNlZENyZWF0ZVN0cmVhbVRyYWNlO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/instrumentation.js":
/*!**************************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/instrumentation.js ***!
\**************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval(";globalThis[\"_sentryRewritesTunnelPath\"] = undefined;globalThis[\"SENTRY_RELEASE\"] = undefined;globalThis[\"_sentryBasePath\"] = undefined;globalThis[\"_sentryNextJsVersion\"] = \"16.1.6\";globalThis[\"_sentryRewriteFramesDistDir\"] = \".next\";globalThis[\"_sentryVercelCronsConfig\"] = undefined;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RedisInstrumentationV4_V5 = void 0;\nconst api_1 = __webpack_require__(/*! @opentelemetry/api */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/index.js\");\nconst instrumentation_1 = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.214.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\nconst utils_1 = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/utils.js\");\nconst redis_common_1 = __webpack_require__(/*! @opentelemetry/redis-common */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+redis-common@0.38.2/node_modules/@opentelemetry/redis-common/build/src/index.js\");\n/** @knipignore */\nconst version_1 = __webpack_require__(/*! ../version */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js\");\nconst semantic_conventions_1 = __webpack_require__(/*! @opentelemetry/semantic-conventions */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+semantic-conventions@1.40.0/node_modules/@opentelemetry/semantic-conventions/build/esm/index.js\");\nconst semconv_1 = __webpack_require__(/*! ../semconv */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js\");\nconst OTEL_OPEN_SPANS = Symbol('opentelemetry.instrumentation.redis.open_spans');\nconst MULTI_COMMAND_OPTIONS = Symbol('opentelemetry.instrumentation.redis.multi_command_options');\nclass RedisInstrumentationV4_V5 extends instrumentation_1.InstrumentationBase {\n static COMPONENT = 'redis';\n _semconvStability;\n constructor(config = {}) {\n super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n this._semconvStability = config.semconvStability\n ? config.semconvStability\n : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n }\n setConfig(config = {}) {\n super.setConfig(config);\n this._semconvStability = config.semconvStability\n ? config.semconvStability\n : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n }\n init() {\n // @node-redis/client is a new package introduced and consumed by 'redis 4.0.x'\n // on redis@4.1.0 it was changed to @redis/client.\n // we will instrument both packages\n return [\n this._getInstrumentationNodeModuleDefinition('@redis/client'),\n this._getInstrumentationNodeModuleDefinition('@node-redis/client'),\n ];\n }\n _getInstrumentationNodeModuleDefinition(basePackageName) {\n const commanderModuleFile = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/commander.js`, ['^1.0.0'], (moduleExports, moduleVersion) => {\n const transformCommandArguments = moduleExports.transformCommandArguments;\n if (!transformCommandArguments) {\n this._diag.error('internal instrumentation error, missing transformCommandArguments function');\n return moduleExports;\n }\n // function name and signature changed in redis 4.1.0 from 'extendWithCommands' to 'attachCommands'\n // the matching internal package names starts with 1.0.x (for redis 4.0.x)\n const functionToPatch = moduleVersion?.startsWith('1.0.')\n ? 'extendWithCommands'\n : 'attachCommands';\n // this is the function that extend a redis client with a list of commands.\n // the function patches the commandExecutor to record a span\n if ((0, instrumentation_1.isWrapped)(moduleExports?.[functionToPatch])) {\n this._unwrap(moduleExports, functionToPatch);\n }\n this._wrap(moduleExports, functionToPatch, this._getPatchExtendWithCommands(transformCommandArguments));\n return moduleExports;\n }, (moduleExports) => {\n if ((0, instrumentation_1.isWrapped)(moduleExports?.extendWithCommands)) {\n this._unwrap(moduleExports, 'extendWithCommands');\n }\n if ((0, instrumentation_1.isWrapped)(moduleExports?.attachCommands)) {\n this._unwrap(moduleExports, 'attachCommands');\n }\n });\n const multiCommanderModule = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/client/multi-command.js`, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, 'exec');\n }\n this._wrap(redisClientMultiCommandPrototype, 'exec', this._getPatchMultiCommandsExec(false));\n if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.execAsPipeline)) {\n this._unwrap(redisClientMultiCommandPrototype, 'execAsPipeline');\n }\n this._wrap(redisClientMultiCommandPrototype, 'execAsPipeline', this._getPatchMultiCommandsExec(true));\n if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n }\n this._wrap(redisClientMultiCommandPrototype, 'addCommand', this._getPatchMultiCommandsAddCommand());\n return moduleExports;\n }, (moduleExports) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, 'exec');\n }\n if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n }\n });\n const clientIndexModule = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/client/index.js`, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n // In some @redis/client versions 'multi' is a method. In later\n // versions, as of https://github.com/redis/node-redis/pull/2324,\n // 'MULTI' is a method and 'multi' is a property defined in the\n // constructor that points to 'MULTI', and therefore it will not\n // be defined on the prototype.\n if (redisClientPrototype?.multi) {\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, 'multi');\n }\n this._wrap(redisClientPrototype, 'multi', this._getPatchRedisClientMulti());\n }\n if (redisClientPrototype?.MULTI) {\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, 'MULTI');\n }\n this._wrap(redisClientPrototype, 'MULTI', this._getPatchRedisClientMulti());\n }\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, 'sendCommand');\n }\n this._wrap(redisClientPrototype, 'sendCommand', this._getPatchRedisClientSendCommand());\n this._wrap(redisClientPrototype, 'connect', this._getPatchedClientConnect());\n return moduleExports;\n }, (moduleExports) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, 'multi');\n }\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, 'MULTI');\n }\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, 'sendCommand');\n }\n });\n return new instrumentation_1.InstrumentationNodeModuleDefinition(basePackageName, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n return moduleExports;\n }, () => { }, [commanderModuleFile, multiCommanderModule, clientIndexModule]);\n }\n // serves both for redis 4.0.x where function name is extendWithCommands\n // and redis ^4.1.0 where function name is attachCommands\n _getPatchExtendWithCommands(transformCommandArguments) {\n const plugin = this;\n return function extendWithCommandsPatchWrapper(original) {\n return function extendWithCommandsPatch(config) {\n if (config?.BaseClass?.name !== 'RedisClient') {\n return original.apply(this, arguments);\n }\n const origExecutor = config.executor;\n config.executor = function (command, args) {\n const redisCommandArguments = transformCommandArguments(command, args).args;\n return plugin._traceClientCommand(origExecutor, this, arguments, redisCommandArguments);\n };\n return original.apply(this, arguments);\n };\n };\n }\n _getPatchMultiCommandsExec(isPipeline) {\n const plugin = this;\n return function execPatchWrapper(original) {\n return function execPatch() {\n const execRes = original.apply(this, arguments);\n if (typeof execRes?.then !== 'function') {\n plugin._diag.error('non-promise result when patching exec/execAsPipeline');\n return execRes;\n }\n return execRes\n .then((redisRes) => {\n const openSpans = this[OTEL_OPEN_SPANS];\n plugin._endSpansWithRedisReplies(openSpans, redisRes, isPipeline);\n return redisRes;\n })\n .catch((err) => {\n const openSpans = this[OTEL_OPEN_SPANS];\n if (!openSpans) {\n plugin._diag.error('cannot find open spans to end for multi/pipeline');\n }\n else {\n const replies = err.constructor.name === 'MultiErrorReply'\n ? err.replies\n : new Array(openSpans.length).fill(err);\n plugin._endSpansWithRedisReplies(openSpans, replies, isPipeline);\n }\n return Promise.reject(err);\n });\n };\n };\n }\n _getPatchMultiCommandsAddCommand() {\n const plugin = this;\n return function addCommandWrapper(original) {\n return function addCommandPatch(args) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n _getPatchRedisClientMulti() {\n return function multiPatchWrapper(original) {\n return function multiPatch() {\n const multiRes = original.apply(this, arguments);\n multiRes[MULTI_COMMAND_OPTIONS] = this.options;\n return multiRes;\n };\n };\n }\n _getPatchRedisClientSendCommand() {\n const plugin = this;\n return function sendCommandWrapper(original) {\n return function sendCommandPatch(args) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n _getPatchedClientConnect() {\n const plugin = this;\n return function connectWrapper(original) {\n return function patchedConnect() {\n const options = this.options;\n const attributes = (0, utils_1.getClientAttributes)(plugin._diag, options, plugin._semconvStability);\n const span = plugin.tracer.startSpan(`${RedisInstrumentationV4_V5.COMPONENT}-connect`, {\n kind: api_1.SpanKind.CLIENT,\n attributes,\n });\n const res = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n return original.apply(this);\n });\n return res\n .then((result) => {\n span.end();\n return result;\n })\n .catch((error) => {\n span.recordException(error);\n span.setStatus({\n code: api_1.SpanStatusCode.ERROR,\n message: error.message,\n });\n span.end();\n return Promise.reject(error);\n });\n };\n };\n }\n _traceClientCommand(origFunction, origThis, origArguments, redisCommandArguments) {\n const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n if (hasNoParentSpan && this.getConfig().requireParentSpan) {\n return origFunction.apply(origThis, origArguments);\n }\n const clientOptions = origThis.options || origThis[MULTI_COMMAND_OPTIONS];\n const commandName = redisCommandArguments[0]; // types also allows it to be a Buffer, but in practice it only string\n const commandArgs = redisCommandArguments.slice(1);\n const dbStatementSerializer = this.getConfig().dbStatementSerializer || redis_common_1.defaultDbStatementSerializer;\n const attributes = (0, utils_1.getClientAttributes)(this._diag, clientOptions, this._semconvStability);\n if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n attributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME] = commandName;\n }\n try {\n const dbStatement = dbStatementSerializer(commandName, commandArgs);\n if (dbStatement != null) {\n if (this._semconvStability & instrumentation_1.SemconvStability.OLD) {\n attributes[semconv_1.ATTR_DB_STATEMENT] = dbStatement;\n }\n if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = dbStatement;\n }\n }\n }\n catch (e) {\n this._diag.error('dbStatementSerializer throw an exception', e, {\n commandName,\n });\n }\n const span = this.tracer.startSpan(`${RedisInstrumentationV4_V5.COMPONENT}-${commandName}`, {\n kind: api_1.SpanKind.CLIENT,\n attributes,\n });\n const res = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n return origFunction.apply(origThis, origArguments);\n });\n if (typeof res?.then === 'function') {\n res.then((redisRes) => {\n this._endSpanWithResponse(span, commandName, commandArgs, redisRes, undefined);\n }, (err) => {\n this._endSpanWithResponse(span, commandName, commandArgs, null, err);\n });\n }\n else {\n const redisClientMultiCommand = res;\n redisClientMultiCommand[OTEL_OPEN_SPANS] =\n redisClientMultiCommand[OTEL_OPEN_SPANS] || [];\n redisClientMultiCommand[OTEL_OPEN_SPANS].push({\n span,\n commandName,\n commandArgs,\n });\n }\n return res;\n }\n _endSpansWithRedisReplies(openSpans, replies, isPipeline = false) {\n if (!openSpans) {\n return this._diag.error('cannot find open spans to end for redis multi/pipeline');\n }\n if (replies.length !== openSpans.length) {\n return this._diag.error('number of multi command spans does not match response from redis');\n }\n // Determine a single operation name for the batch of commands.\n // If all commands are identical, include the command name (e.g., \"MULTI SET\").\n // Otherwise, use a generic \"MULTI\" or \"PIPELINE\" label for the span.\n const allCommands = openSpans.map(s => s.commandName);\n const allSameCommand = allCommands.every(cmd => cmd === allCommands[0]);\n const operationName = allSameCommand\n ? (isPipeline ? 'PIPELINE ' : 'MULTI ') + allCommands[0]\n : isPipeline\n ? 'PIPELINE'\n : 'MULTI';\n for (let i = 0; i < openSpans.length; i++) {\n const { span, commandArgs } = openSpans[i];\n const currCommandRes = replies[i];\n const [res, err] = currCommandRes instanceof Error\n ? [null, currCommandRes]\n : [currCommandRes, undefined];\n if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n span.setAttribute(semantic_conventions_1.ATTR_DB_OPERATION_NAME, operationName);\n }\n this._endSpanWithResponse(span, allCommands[i], commandArgs, res, err);\n }\n }\n _endSpanWithResponse(span, commandName, commandArgs, response, error) {\n const { responseHook } = this.getConfig();\n if (!error && responseHook) {\n try {\n responseHook(span, commandName, commandArgs, response);\n }\n catch (err) {\n this._diag.error('responseHook throw an exception', err);\n }\n }\n if (error) {\n span.recordException(error);\n span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: error?.message });\n }\n span.end();\n }\n}\nexports.RedisInstrumentationV4_V5 = RedisInstrumentationV4_V5;\n//# sourceMappingURL=instrumentation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvdjQtdjUvaW5zdHJ1bWVudGF0aW9uLmpzIiwibWFwcGluZ3MiOiJBQUFhLENBQUMsb0RBQW9ELHlDQUF5QywwQ0FBMEMsOENBQThDLG9EQUFvRDtBQUN2UDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsaUNBQWlDO0FBQ2pDLGNBQWMsbUJBQU8sQ0FBQyxrSUFBb0I7QUFDMUMsMEJBQTBCLG1CQUFPLENBQUMsaU1BQWdDO0FBQ2xFLGdCQUFnQixtQkFBTyxDQUFDLDJMQUFTO0FBQ2pDLHVCQUF1QixtQkFBTyxDQUFDLDhKQUE2QjtBQUM1RDtBQUNBLGtCQUFrQixtQkFBTyxDQUFDLDBMQUFZO0FBQ3RDLCtCQUErQixtQkFBTyxDQUFDLHNMQUFxQztBQUM1RSxrQkFBa0IsbUJBQU8sQ0FBQywwTEFBWTtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkZBQTJGLGdCQUFnQjtBQUMzRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCw0RkFBNEYsZ0JBQWdCO0FBQzVHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QseUZBQXlGLGdCQUFnQjtBQUN6RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVMsV0FBVztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0RBQXdELG9DQUFvQztBQUM1RjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsOENBQThDLG9DQUFvQyxHQUFHLFlBQVk7QUFDakc7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixzQkFBc0I7QUFDOUMsb0JBQW9CLG9CQUFvQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGVBQWU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsMkRBQTJEO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDIiwic291cmNlcyI6WyIvVXNlcnMvbWFyY21pbnRlbC9Qcm9qZWN0cy9lLXRpYi5jb20vbm9kZV9tb2R1bGVzLy5wbnBtL0BvcGVudGVsZW1ldHJ5K2luc3RydW1lbnRhdGlvbi1yZWRpc0AwLjYyLjBfQG9wZW50ZWxlbWV0cnkrYXBpQDEuOS4xL25vZGVfbW9kdWxlcy9Ab3BlbnRlbGVtZXRyeS9pbnN0cnVtZW50YXRpb24tcmVkaXMvYnVpbGQvc3JjL3Y0LXY1L2luc3RydW1lbnRhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjs7Z2xvYmFsVGhpc1tcIl9zZW50cnlSZXdyaXRlc1R1bm5lbFBhdGhcIl0gPSB1bmRlZmluZWQ7Z2xvYmFsVGhpc1tcIlNFTlRSWV9SRUxFQVNFXCJdID0gdW5kZWZpbmVkO2dsb2JhbFRoaXNbXCJfc2VudHJ5QmFzZVBhdGhcIl0gPSB1bmRlZmluZWQ7Z2xvYmFsVGhpc1tcIl9zZW50cnlOZXh0SnNWZXJzaW9uXCJdID0gXCIxNi4xLjZcIjtnbG9iYWxUaGlzW1wiX3NlbnRyeVJld3JpdGVGcmFtZXNEaXN0RGlyXCJdID0gXCIubmV4dFwiO2dsb2JhbFRoaXNbXCJfc2VudHJ5VmVyY2VsQ3JvbnNDb25maWdcIl0gPSB1bmRlZmluZWQ7XG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SZWRpc0luc3RydW1lbnRhdGlvblY0X1Y1ID0gdm9pZCAwO1xuY29uc3QgYXBpXzEgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvYXBpXCIpO1xuY29uc3QgaW5zdHJ1bWVudGF0aW9uXzEgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uXCIpO1xuY29uc3QgdXRpbHNfMSA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuY29uc3QgcmVkaXNfY29tbW9uXzEgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvcmVkaXMtY29tbW9uXCIpO1xuLyoqIEBrbmlwaWdub3JlICovXG5jb25zdCB2ZXJzaW9uXzEgPSByZXF1aXJlKFwiLi4vdmVyc2lvblwiKTtcbmNvbnN0IHNlbWFudGljX2NvbnZlbnRpb25zXzEgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvc2VtYW50aWMtY29udmVudGlvbnNcIik7XG5jb25zdCBzZW1jb252XzEgPSByZXF1aXJlKFwiLi4vc2VtY29udlwiKTtcbmNvbnN0IE9URUxfT1BFTl9TUEFOUyA9IFN5bWJvbCgnb3BlbnRlbGVtZXRyeS5pbnN0cnVtZW50YXRpb24ucmVkaXMub3Blbl9zcGFucycpO1xuY29uc3QgTVVMVElfQ09NTUFORF9PUFRJT05TID0gU3ltYm9sKCdvcGVudGVsZW1ldHJ5Lmluc3RydW1lbnRhdGlvbi5yZWRpcy5tdWx0aV9jb21tYW5kX29wdGlvbnMnKTtcbmNsYXNzIFJlZGlzSW5zdHJ1bWVudGF0aW9uVjRfVjUgZXh0ZW5kcyBpbnN0cnVtZW50YXRpb25fMS5JbnN0cnVtZW50YXRpb25CYXNlIHtcbiAgICBzdGF0aWMgQ09NUE9ORU5UID0gJ3JlZGlzJztcbiAgICBfc2VtY29udlN0YWJpbGl0eTtcbiAgICBjb25zdHJ1Y3Rvcihjb25maWcgPSB7fSkge1xuICAgICAgICBzdXBlcih2ZXJzaW9uXzEuUEFDS0FHRV9OQU1FLCB2ZXJzaW9uXzEuUEFDS0FHRV9WRVJTSU9OLCBjb25maWcpO1xuICAgICAgICB0aGlzLl9zZW1jb252U3RhYmlsaXR5ID0gY29uZmlnLnNlbWNvbnZTdGFiaWxpdHlcbiAgICAgICAgICAgID8gY29uZmlnLnNlbWNvbnZTdGFiaWxpdHlcbiAgICAgICAgICAgIDogKDAsIGluc3RydW1lbnRhdGlvbl8xLnNlbWNvbnZTdGFiaWxpdHlGcm9tU3RyKSgnZGF0YWJhc2UnLCBwcm9jZXNzLmVudi5PVEVMX1NFTUNPTlZfU1RBQklMSVRZX09QVF9JTik7XG4gICAgfVxuICAgIHNldENvbmZpZyhjb25maWcgPSB7fSkge1xuICAgICAgICBzdXBlci5zZXRDb25maWcoY29uZmlnKTtcbiAgICAgICAgdGhpcy5fc2VtY29udlN0YWJpbGl0eSA9IGNvbmZpZy5zZW1jb252U3RhYmlsaXR5XG4gICAgICAgICAgICA/IGNvbmZpZy5zZW1jb252U3RhYmlsaXR5XG4gICAgICAgICAgICA6ICgwLCBpbnN0cnVtZW50YXRpb25fMS5zZW1jb252U3RhYmlsaXR5RnJvbVN0cikoJ2RhdGFiYXNlJywgcHJvY2Vzcy5lbnYuT1RFTF9TRU1DT05WX1NUQUJJTElUWV9PUFRfSU4pO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgICAgICAvLyBAbm9kZS1yZWRpcy9jbGllbnQgaXMgYSBuZXcgcGFja2FnZSBpbnRyb2R1Y2VkIGFuZCBjb25zdW1lZCBieSAncmVkaXMgNC4wLngnXG4gICAgICAgIC8vIG9uIHJlZGlzQDQuMS4wIGl0IHdhcyBjaGFuZ2VkIHRvIEByZWRpcy9jbGllbnQuXG4gICAgICAgIC8vIHdlIHdpbGwgaW5zdHJ1bWVudCBib3RoIHBhY2thZ2VzXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLl9nZXRJbnN0cnVtZW50YXRpb25Ob2RlTW9kdWxlRGVmaW5pdGlvbignQHJlZGlzL2NsaWVudCcpLFxuICAgICAgICAgICAgdGhpcy5fZ2V0SW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZURlZmluaXRpb24oJ0Bub2RlLXJlZGlzL2NsaWVudCcpLFxuICAgICAgICBdO1xuICAgIH1cbiAgICBfZ2V0SW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZURlZmluaXRpb24oYmFzZVBhY2thZ2VOYW1lKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRlck1vZHVsZUZpbGUgPSBuZXcgaW5zdHJ1bWVudGF0aW9uXzEuSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZUZpbGUoYCR7YmFzZVBhY2thZ2VOYW1lfS9kaXN0L2xpYi9jb21tYW5kZXIuanNgLCBbJ14xLjAuMCddLCAobW9kdWxlRXhwb3J0cywgbW9kdWxlVmVyc2lvbikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtQ29tbWFuZEFyZ3VtZW50cyA9IG1vZHVsZUV4cG9ydHMudHJhbnNmb3JtQ29tbWFuZEFyZ3VtZW50cztcbiAgICAgICAgICAgIGlmICghdHJhbnNmb3JtQ29tbWFuZEFyZ3VtZW50cykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWcuZXJyb3IoJ2ludGVybmFsIGluc3RydW1lbnRhdGlvbiBlcnJvciwgbWlzc2luZyB0cmFuc2Zvcm1Db21tYW5kQXJndW1lbnRzIGZ1bmN0aW9uJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vZHVsZUV4cG9ydHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBmdW5jdGlvbiBuYW1lIGFuZCBzaWduYXR1cmUgY2hhbmdlZCBpbiByZWRpcyA0LjEuMCBmcm9tICdleHRlbmRXaXRoQ29tbWFuZHMnIHRvICdhdHRhY2hDb21tYW5kcydcbiAgICAgICAgICAgIC8vIHRoZSBtYXRjaGluZyBpbnRlcm5hbCBwYWNrYWdlIG5hbWVzIHN0YXJ0cyB3aXRoIDEuMC54IChmb3IgcmVkaXMgNC4wLngpXG4gICAgICAgICAgICBjb25zdCBmdW5jdGlvblRvUGF0Y2ggPSBtb2R1bGVWZXJzaW9uPy5zdGFydHNXaXRoKCcxLjAuJylcbiAgICAgICAgICAgICAgICA/ICdleHRlbmRXaXRoQ29tbWFuZHMnXG4gICAgICAgICAgICAgICAgOiAnYXR0YWNoQ29tbWFuZHMnO1xuICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBleHRlbmQgYSByZWRpcyBjbGllbnQgd2l0aCBhIGxpc3Qgb2YgY29tbWFuZHMuXG4gICAgICAgICAgICAvLyB0aGUgZnVuY3Rpb24gcGF0Y2hlcyB0aGUgY29tbWFuZEV4ZWN1dG9yIHRvIHJlY29yZCBhIHNwYW5cbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShtb2R1bGVFeHBvcnRzPy5bZnVuY3Rpb25Ub1BhdGNoXSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl91bndyYXAobW9kdWxlRXhwb3J0cywgZnVuY3Rpb25Ub1BhdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3dyYXAobW9kdWxlRXhwb3J0cywgZnVuY3Rpb25Ub1BhdGNoLCB0aGlzLl9nZXRQYXRjaEV4dGVuZFdpdGhDb21tYW5kcyh0cmFuc2Zvcm1Db21tYW5kQXJndW1lbnRzKSk7XG4gICAgICAgICAgICByZXR1cm4gbW9kdWxlRXhwb3J0cztcbiAgICAgICAgfSwgKG1vZHVsZUV4cG9ydHMpID0+IHtcbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShtb2R1bGVFeHBvcnRzPy5leHRlbmRXaXRoQ29tbWFuZHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKG1vZHVsZUV4cG9ydHMsICdleHRlbmRXaXRoQ29tbWFuZHMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShtb2R1bGVFeHBvcnRzPy5hdHRhY2hDb21tYW5kcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl91bndyYXAobW9kdWxlRXhwb3J0cywgJ2F0dGFjaENvbW1hbmRzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBtdWx0aUNvbW1hbmRlck1vZHVsZSA9IG5ldyBpbnN0cnVtZW50YXRpb25fMS5JbnN0cnVtZW50YXRpb25Ob2RlTW9kdWxlRmlsZShgJHtiYXNlUGFja2FnZU5hbWV9L2Rpc3QvbGliL2NsaWVudC9tdWx0aS1jb21tYW5kLmpzYCwgWydeMS4wLjAnLCAnXjUuMC4wJ10sIChtb2R1bGVFeHBvcnRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWRpc0NsaWVudE11bHRpQ29tbWFuZFByb3RvdHlwZSA9IG1vZHVsZUV4cG9ydHM/LmRlZmF1bHQ/LnByb3RvdHlwZTtcbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudE11bHRpQ29tbWFuZFByb3RvdHlwZT8uZXhlYykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl91bndyYXAocmVkaXNDbGllbnRNdWx0aUNvbW1hbmRQcm90b3R5cGUsICdleGVjJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl93cmFwKHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kUHJvdG90eXBlLCAnZXhlYycsIHRoaXMuX2dldFBhdGNoTXVsdGlDb21tYW5kc0V4ZWMoZmFsc2UpKTtcbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudE11bHRpQ29tbWFuZFByb3RvdHlwZT8uZXhlY0FzUGlwZWxpbmUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kUHJvdG90eXBlLCAnZXhlY0FzUGlwZWxpbmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3dyYXAocmVkaXNDbGllbnRNdWx0aUNvbW1hbmRQcm90b3R5cGUsICdleGVjQXNQaXBlbGluZScsIHRoaXMuX2dldFBhdGNoTXVsdGlDb21tYW5kc0V4ZWModHJ1ZSkpO1xuICAgICAgICAgICAgaWYgKCgwLCBpbnN0cnVtZW50YXRpb25fMS5pc1dyYXBwZWQpKHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kUHJvdG90eXBlPy5hZGRDb21tYW5kKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChyZWRpc0NsaWVudE11bHRpQ29tbWFuZFByb3RvdHlwZSwgJ2FkZENvbW1hbmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3dyYXAocmVkaXNDbGllbnRNdWx0aUNvbW1hbmRQcm90b3R5cGUsICdhZGRDb21tYW5kJywgdGhpcy5fZ2V0UGF0Y2hNdWx0aUNvbW1hbmRzQWRkQ29tbWFuZCgpKTtcbiAgICAgICAgICAgIHJldHVybiBtb2R1bGVFeHBvcnRzO1xuICAgICAgICB9LCAobW9kdWxlRXhwb3J0cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVkaXNDbGllbnRNdWx0aUNvbW1hbmRQcm90b3R5cGUgPSBtb2R1bGVFeHBvcnRzPy5kZWZhdWx0Py5wcm90b3R5cGU7XG4gICAgICAgICAgICBpZiAoKDAsIGluc3RydW1lbnRhdGlvbl8xLmlzV3JhcHBlZCkocmVkaXNDbGllbnRNdWx0aUNvbW1hbmRQcm90b3R5cGU/LmV4ZWMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kUHJvdG90eXBlLCAnZXhlYycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCgwLCBpbnN0cnVtZW50YXRpb25fMS5pc1dyYXBwZWQpKHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kUHJvdG90eXBlPy5hZGRDb21tYW5kKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChyZWRpc0NsaWVudE11bHRpQ29tbWFuZFByb3RvdHlwZSwgJ2FkZENvbW1hbmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNsaWVudEluZGV4TW9kdWxlID0gbmV3IGluc3RydW1lbnRhdGlvbl8xLkluc3RydW1lbnRhdGlvbk5vZGVNb2R1bGVGaWxlKGAke2Jhc2VQYWNrYWdlTmFtZX0vZGlzdC9saWIvY2xpZW50L2luZGV4LmpzYCwgWydeMS4wLjAnLCAnXjUuMC4wJ10sIChtb2R1bGVFeHBvcnRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWRpc0NsaWVudFByb3RvdHlwZSA9IG1vZHVsZUV4cG9ydHM/LmRlZmF1bHQ/LnByb3RvdHlwZTtcbiAgICAgICAgICAgIC8vIEluIHNvbWUgQHJlZGlzL2NsaWVudCB2ZXJzaW9ucyAnbXVsdGknIGlzIGEgbWV0aG9kLiBJbiBsYXRlclxuICAgICAgICAgICAgLy8gdmVyc2lvbnMsIGFzIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWRpcy9ub2RlLXJlZGlzL3B1bGwvMjMyNCxcbiAgICAgICAgICAgIC8vICdNVUxUSScgaXMgYSBtZXRob2QgYW5kICdtdWx0aScgaXMgYSBwcm9wZXJ0eSBkZWZpbmVkIGluIHRoZVxuICAgICAgICAgICAgLy8gY29uc3RydWN0b3IgdGhhdCBwb2ludHMgdG8gJ01VTFRJJywgYW5kIHRoZXJlZm9yZSBpdCB3aWxsIG5vdFxuICAgICAgICAgICAgLy8gYmUgZGVmaW5lZCBvbiB0aGUgcHJvdG90eXBlLlxuICAgICAgICAgICAgaWYgKHJlZGlzQ2xpZW50UHJvdG90eXBlPy5tdWx0aSkge1xuICAgICAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudFByb3RvdHlwZT8ubXVsdGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChyZWRpc0NsaWVudFByb3RvdHlwZSwgJ211bHRpJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3dyYXAocmVkaXNDbGllbnRQcm90b3R5cGUsICdtdWx0aScsIHRoaXMuX2dldFBhdGNoUmVkaXNDbGllbnRNdWx0aSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZWRpc0NsaWVudFByb3RvdHlwZT8uTVVMVEkpIHtcbiAgICAgICAgICAgICAgICBpZiAoKDAsIGluc3RydW1lbnRhdGlvbl8xLmlzV3JhcHBlZCkocmVkaXNDbGllbnRQcm90b3R5cGU/Lk1VTFRJKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl91bndyYXAocmVkaXNDbGllbnRQcm90b3R5cGUsICdNVUxUSScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl93cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnTVVMVEknLCB0aGlzLl9nZXRQYXRjaFJlZGlzQ2xpZW50TXVsdGkoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKDAsIGluc3RydW1lbnRhdGlvbl8xLmlzV3JhcHBlZCkocmVkaXNDbGllbnRQcm90b3R5cGU/LnNlbmRDb21tYW5kKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChyZWRpc0NsaWVudFByb3RvdHlwZSwgJ3NlbmRDb21tYW5kJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl93cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnc2VuZENvbW1hbmQnLCB0aGlzLl9nZXRQYXRjaFJlZGlzQ2xpZW50U2VuZENvbW1hbmQoKSk7XG4gICAgICAgICAgICB0aGlzLl93cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnY29ubmVjdCcsIHRoaXMuX2dldFBhdGNoZWRDbGllbnRDb25uZWN0KCkpO1xuICAgICAgICAgICAgcmV0dXJuIG1vZHVsZUV4cG9ydHM7XG4gICAgICAgIH0sIChtb2R1bGVFeHBvcnRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWRpc0NsaWVudFByb3RvdHlwZSA9IG1vZHVsZUV4cG9ydHM/LmRlZmF1bHQ/LnByb3RvdHlwZTtcbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudFByb3RvdHlwZT8ubXVsdGkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnbXVsdGknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudFByb3RvdHlwZT8uTVVMVEkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnTVVMVEknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudFByb3RvdHlwZT8uc2VuZENvbW1hbmQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnc2VuZENvbW1hbmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgaW5zdHJ1bWVudGF0aW9uXzEuSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZURlZmluaXRpb24oYmFzZVBhY2thZ2VOYW1lLCBbJ14xLjAuMCcsICdeNS4wLjAnXSwgKG1vZHVsZUV4cG9ydHMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBtb2R1bGVFeHBvcnRzO1xuICAgICAgICB9LCAoKSA9PiB7IH0sIFtjb21tYW5kZXJNb2R1bGVGaWxlLCBtdWx0aUNvbW1hbmRlck1vZHVsZSwgY2xpZW50SW5kZXhNb2R1bGVdKTtcbiAgICB9XG4gICAgLy8gc2VydmVzIGJvdGggZm9yIHJlZGlzIDQuMC54IHdoZXJlIGZ1bmN0aW9uIG5hbWUgaXMgZXh0ZW5kV2l0aENvbW1hbmRzXG4gICAgLy8gYW5kIHJlZGlzIF40LjEuMCB3aGVyZSBmdW5jdGlvbiBuYW1lIGlzIGF0dGFjaENvbW1hbmRzXG4gICAgX2dldFBhdGNoRXh0ZW5kV2l0aENvbW1hbmRzKHRyYW5zZm9ybUNvbW1hbmRBcmd1bWVudHMpIHtcbiAgICAgICAgY29uc3QgcGx1Z2luID0gdGhpcztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGV4dGVuZFdpdGhDb21tYW5kc1BhdGNoV3JhcHBlcihvcmlnaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGV4dGVuZFdpdGhDb21tYW5kc1BhdGNoKGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGlmIChjb25maWc/LkJhc2VDbGFzcz8ubmFtZSAhPT0gJ1JlZGlzQ2xpZW50Jykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWwuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ0V4ZWN1dG9yID0gY29uZmlnLmV4ZWN1dG9yO1xuICAgICAgICAgICAgICAgIGNvbmZpZy5leGVjdXRvciA9IGZ1bmN0aW9uIChjb21tYW5kLCBhcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlzQ29tbWFuZEFyZ3VtZW50cyA9IHRyYW5zZm9ybUNvbW1hbmRBcmd1bWVudHMoY29tbWFuZCwgYXJncykuYXJncztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBsdWdpbi5fdHJhY2VDbGllbnRDb21tYW5kKG9yaWdFeGVjdXRvciwgdGhpcywgYXJndW1lbnRzLCByZWRpc0NvbW1hbmRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgIH1cbiAgICBfZ2V0UGF0Y2hNdWx0aUNvbW1hbmRzRXhlYyhpc1BpcGVsaW5lKSB7XG4gICAgICAgIGNvbnN0IHBsdWdpbiA9IHRoaXM7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBleGVjUGF0Y2hXcmFwcGVyKG9yaWdpbmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gZXhlY1BhdGNoKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4ZWNSZXMgPSBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZXhlY1Jlcz8udGhlbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBwbHVnaW4uX2RpYWcuZXJyb3IoJ25vbi1wcm9taXNlIHJlc3VsdCB3aGVuIHBhdGNoaW5nIGV4ZWMvZXhlY0FzUGlwZWxpbmUnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4ZWNSZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBleGVjUmVzXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChyZWRpc1JlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcGVuU3BhbnMgPSB0aGlzW09URUxfT1BFTl9TUEFOU107XG4gICAgICAgICAgICAgICAgICAgIHBsdWdpbi5fZW5kU3BhbnNXaXRoUmVkaXNSZXBsaWVzKG9wZW5TcGFucywgcmVkaXNSZXMsIGlzUGlwZWxpbmUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkaXNSZXM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3BlblNwYW5zID0gdGhpc1tPVEVMX09QRU5fU1BBTlNdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wZW5TcGFucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luLl9kaWFnLmVycm9yKCdjYW5ub3QgZmluZCBvcGVuIHNwYW5zIHRvIGVuZCBmb3IgbXVsdGkvcGlwZWxpbmUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxpZXMgPSBlcnIuY29uc3RydWN0b3IubmFtZSA9PT0gJ011bHRpRXJyb3JSZXBseSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVyci5yZXBsaWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXcgQXJyYXkob3BlblNwYW5zLmxlbmd0aCkuZmlsbChlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luLl9lbmRTcGFuc1dpdGhSZWRpc1JlcGxpZXMob3BlblNwYW5zLCByZXBsaWVzLCBpc1BpcGVsaW5lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuICAgIF9nZXRQYXRjaE11bHRpQ29tbWFuZHNBZGRDb21tYW5kKCkge1xuICAgICAgICBjb25zdCBwbHVnaW4gPSB0aGlzO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gYWRkQ29tbWFuZFdyYXBwZXIob3JpZ2luYWwpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBhZGRDb21tYW5kUGF0Y2goYXJncykge1xuICAgICAgICAgICAgICAgIHJldHVybiBwbHVnaW4uX3RyYWNlQ2xpZW50Q29tbWFuZChvcmlnaW5hbCwgdGhpcywgYXJndW1lbnRzLCBhcmdzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuICAgIF9nZXRQYXRjaFJlZGlzQ2xpZW50TXVsdGkoKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBtdWx0aVBhdGNoV3JhcHBlcihvcmlnaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIG11bHRpUGF0Y2goKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbXVsdGlSZXMgPSBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIG11bHRpUmVzW01VTFRJX0NPTU1BTkRfT1BUSU9OU10gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG11bHRpUmVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2dldFBhdGNoUmVkaXNDbGllbnRTZW5kQ29tbWFuZCgpIHtcbiAgICAgICAgY29uc3QgcGx1Z2luID0gdGhpcztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIHNlbmRDb21tYW5kV3JhcHBlcihvcmlnaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIHNlbmRDb21tYW5kUGF0Y2goYXJncykge1xuICAgICAgICAgICAgICAgIHJldHVybiBwbHVnaW4uX3RyYWNlQ2xpZW50Q29tbWFuZChvcmlnaW5hbCwgdGhpcywgYXJndW1lbnRzLCBhcmdzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuICAgIF9nZXRQYXRjaGVkQ2xpZW50Q29ubmVjdCgpIHtcbiAgICAgICAgY29uc3QgcGx1Z2luID0gdGhpcztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGNvbm5lY3RXcmFwcGVyKG9yaWdpbmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gcGF0Y2hlZENvbm5lY3QoKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gKDAsIHV0aWxzXzEuZ2V0Q2xpZW50QXR0cmlidXRlcykocGx1Z2luLl9kaWFnLCBvcHRpb25zLCBwbHVnaW4uX3NlbWNvbnZTdGFiaWxpdHkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW4gPSBwbHVnaW4udHJhY2VyLnN0YXJ0U3BhbihgJHtSZWRpc0luc3RydW1lbnRhdGlvblY0X1Y1LkNPTVBPTkVOVH0tY29ubmVjdGAsIHtcbiAgICAgICAgICAgICAgICAgICAga2luZDogYXBpXzEuU3BhbktpbmQuQ0xJRU5ULFxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGFwaV8xLmNvbnRleHQud2l0aChhcGlfMS50cmFjZS5zZXRTcGFuKGFwaV8xLmNvbnRleHQuYWN0aXZlKCksIHNwYW4pLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbC5hcHBseSh0aGlzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogYXBpXzEuU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuICAgIF90cmFjZUNsaWVudENvbW1hbmQob3JpZ0Z1bmN0aW9uLCBvcmlnVGhpcywgb3JpZ0FyZ3VtZW50cywgcmVkaXNDb21tYW5kQXJndW1lbnRzKSB7XG4gICAgICAgIGNvbnN0IGhhc05vUGFyZW50U3BhbiA9IGFwaV8xLnRyYWNlLmdldFNwYW4oYXBpXzEuY29udGV4dC5hY3RpdmUoKSkgPT09IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGhhc05vUGFyZW50U3BhbiAmJiB0aGlzLmdldENvbmZpZygpLnJlcXVpcmVQYXJlbnRTcGFuKSB7XG4gICAgICAgICAgICByZXR1cm4gb3JpZ0Z1bmN0aW9uLmFwcGx5KG9yaWdUaGlzLCBvcmlnQXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjbGllbnRPcHRpb25zID0gb3JpZ1RoaXMub3B0aW9ucyB8fCBvcmlnVGhpc1tNVUxUSV9DT01NQU5EX09QVElPTlNdO1xuICAgICAgICBjb25zdCBjb21tYW5kTmFtZSA9IHJlZGlzQ29tbWFuZEFyZ3VtZW50c1swXTsgLy8gdHlwZXMgYWxzbyBhbGxvd3MgaXQgdG8gYmUgYSBCdWZmZXIsIGJ1dCBpbiBwcmFjdGljZSBpdCBvbmx5IHN0cmluZ1xuICAgICAgICBjb25zdCBjb21tYW5kQXJncyA9IHJlZGlzQ29tbWFuZEFyZ3VtZW50cy5zbGljZSgxKTtcbiAgICAgICAgY29uc3QgZGJTdGF0ZW1lbnRTZXJpYWxpemVyID0gdGhpcy5nZXRDb25maWcoKS5kYlN0YXRlbWVudFNlcmlhbGl6ZXIgfHwgcmVkaXNfY29tbW9uXzEuZGVmYXVsdERiU3RhdGVtZW50U2VyaWFsaXplcjtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9ICgwLCB1dGlsc18xLmdldENsaWVudEF0dHJpYnV0ZXMpKHRoaXMuX2RpYWcsIGNsaWVudE9wdGlvbnMsIHRoaXMuX3NlbWNvbnZTdGFiaWxpdHkpO1xuICAgICAgICBpZiAodGhpcy5fc2VtY29udlN0YWJpbGl0eSAmIGluc3RydW1lbnRhdGlvbl8xLlNlbWNvbnZTdGFiaWxpdHkuU1RBQkxFKSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzW3NlbWFudGljX2NvbnZlbnRpb25zXzEuQVRUUl9EQl9PUEVSQVRJT05fTkFNRV0gPSBjb21tYW5kTmFtZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGJTdGF0ZW1lbnQgPSBkYlN0YXRlbWVudFNlcmlhbGl6ZXIoY29tbWFuZE5hbWUsIGNvbW1hbmRBcmdzKTtcbiAgICAgICAgICAgIGlmIChkYlN0YXRlbWVudCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NlbWNvbnZTdGFiaWxpdHkgJiBpbnN0cnVtZW50YXRpb25fMS5TZW1jb252U3RhYmlsaXR5Lk9MRCkge1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzW3NlbWNvbnZfMS5BVFRSX0RCX1NUQVRFTUVOVF0gPSBkYlN0YXRlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NlbWNvbnZTdGFiaWxpdHkgJiBpbnN0cnVtZW50YXRpb25fMS5TZW1jb252U3RhYmlsaXR5LlNUQUJMRSkge1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzW3NlbWFudGljX2NvbnZlbnRpb25zXzEuQVRUUl9EQl9RVUVSWV9URVhUXSA9IGRiU3RhdGVtZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5fZGlhZy5lcnJvcignZGJTdGF0ZW1lbnRTZXJpYWxpemVyIHRocm93IGFuIGV4Y2VwdGlvbicsIGUsIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kTmFtZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNwYW4gPSB0aGlzLnRyYWNlci5zdGFydFNwYW4oYCR7UmVkaXNJbnN0cnVtZW50YXRpb25WNF9WNS5DT01QT05FTlR9LSR7Y29tbWFuZE5hbWV9YCwge1xuICAgICAgICAgICAga2luZDogYXBpXzEuU3BhbktpbmQuQ0xJRU5ULFxuICAgICAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHJlcyA9IGFwaV8xLmNvbnRleHQud2l0aChhcGlfMS50cmFjZS5zZXRTcGFuKGFwaV8xLmNvbnRleHQuYWN0aXZlKCksIHNwYW4pLCAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gb3JpZ0Z1bmN0aW9uLmFwcGx5KG9yaWdUaGlzLCBvcmlnQXJndW1lbnRzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzPy50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXMudGhlbigocmVkaXNSZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmRTcGFuV2l0aFJlc3BvbnNlKHNwYW4sIGNvbW1hbmROYW1lLCBjb21tYW5kQXJncywgcmVkaXNSZXMsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW5kU3BhbldpdGhSZXNwb25zZShzcGFuLCBjb21tYW5kTmFtZSwgY29tbWFuZEFyZ3MsIG51bGwsIGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kID0gcmVzO1xuICAgICAgICAgICAgcmVkaXNDbGllbnRNdWx0aUNvbW1hbmRbT1RFTF9PUEVOX1NQQU5TXSA9XG4gICAgICAgICAgICAgICAgcmVkaXNDbGllbnRNdWx0aUNvbW1hbmRbT1RFTF9PUEVOX1NQQU5TXSB8fCBbXTtcbiAgICAgICAgICAgIHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kW09URUxfT1BFTl9TUEFOU10ucHVzaCh7XG4gICAgICAgICAgICAgICAgc3BhbixcbiAgICAgICAgICAgICAgICBjb21tYW5kTmFtZSxcbiAgICAgICAgICAgICAgICBjb21tYW5kQXJncyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIF9lbmRTcGFuc1dpdGhSZWRpc1JlcGxpZXMob3BlblNwYW5zLCByZXBsaWVzLCBpc1BpcGVsaW5lID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCFvcGVuU3BhbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaWFnLmVycm9yKCdjYW5ub3QgZmluZCBvcGVuIHNwYW5zIHRvIGVuZCBmb3IgcmVkaXMgbXVsdGkvcGlwZWxpbmUnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVwbGllcy5sZW5ndGggIT09IG9wZW5TcGFucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaWFnLmVycm9yKCdudW1iZXIgb2YgbXVsdGkgY29tbWFuZCBzcGFucyBkb2VzIG5vdCBtYXRjaCByZXNwb25zZSBmcm9tIHJlZGlzJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRGV0ZXJtaW5lIGEgc2luZ2xlIG9wZXJhdGlvbiBuYW1lIGZvciB0aGUgYmF0Y2ggb2YgY29tbWFuZHMuXG4gICAgICAgIC8vIElmIGFsbCBjb21tYW5kcyBhcmUgaWRlbnRpY2FsLCBpbmNsdWRlIHRoZSBjb21tYW5kIG5hbWUgKGUuZy4sIFwiTVVMVEkgU0VUXCIpLlxuICAgICAgICAvLyBPdGhlcndpc2UsIHVzZSBhIGdlbmVyaWMgXCJNVUxUSVwiIG9yIFwiUElQRUxJTkVcIiBsYWJlbCBmb3IgdGhlIHNwYW4uXG4gICAgICAgIGNvbnN0IGFsbENvbW1hbmRzID0gb3BlblNwYW5zLm1hcChzID0+IHMuY29tbWFuZE5hbWUpO1xuICAgICAgICBjb25zdCBhbGxTYW1lQ29tbWFuZCA9IGFsbENvbW1hbmRzLmV2ZXJ5KGNtZCA9PiBjbWQgPT09IGFsbENvbW1hbmRzWzBdKTtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uTmFtZSA9IGFsbFNhbWVDb21tYW5kXG4gICAgICAgICAgICA/IChpc1BpcGVsaW5lID8gJ1BJUEVMSU5FICcgOiAnTVVMVEkgJykgKyBhbGxDb21tYW5kc1swXVxuICAgICAgICAgICAgOiBpc1BpcGVsaW5lXG4gICAgICAgICAgICAgICAgPyAnUElQRUxJTkUnXG4gICAgICAgICAgICAgICAgOiAnTVVMVEknO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wZW5TcGFucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgeyBzcGFuLCBjb21tYW5kQXJncyB9ID0gb3BlblNwYW5zW2ldO1xuICAgICAgICAgICAgY29uc3QgY3VyckNvbW1hbmRSZXMgPSByZXBsaWVzW2ldO1xuICAgICAgICAgICAgY29uc3QgW3JlcywgZXJyXSA9IGN1cnJDb21tYW5kUmVzIGluc3RhbmNlb2YgRXJyb3JcbiAgICAgICAgICAgICAgICA/IFtudWxsLCBjdXJyQ29tbWFuZFJlc11cbiAgICAgICAgICAgICAgICA6IFtjdXJyQ29tbWFuZFJlcywgdW5kZWZpbmVkXTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zZW1jb252U3RhYmlsaXR5ICYgaW5zdHJ1bWVudGF0aW9uXzEuU2VtY29udlN0YWJpbGl0eS5TVEFCTEUpIHtcbiAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZShzZW1hbnRpY19jb252ZW50aW9uc18xLkFUVFJfREJfT1BFUkFUSU9OX05BTUUsIG9wZXJhdGlvbk5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fZW5kU3BhbldpdGhSZXNwb25zZShzcGFuLCBhbGxDb21tYW5kc1tpXSwgY29tbWFuZEFyZ3MsIHJlcywgZXJyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfZW5kU3BhbldpdGhSZXNwb25zZShzcGFuLCBjb21tYW5kTmFtZSwgY29tbWFuZEFyZ3MsIHJlc3BvbnNlLCBlcnJvcikge1xuICAgICAgICBjb25zdCB7IHJlc3BvbnNlSG9vayB9ID0gdGhpcy5nZXRDb25maWcoKTtcbiAgICAgICAgaWYgKCFlcnJvciAmJiByZXNwb25zZUhvb2spIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VIb29rKHNwYW4sIGNvbW1hbmROYW1lLCBjb21tYW5kQXJncywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWcuZXJyb3IoJ3Jlc3BvbnNlSG9vayB0aHJvdyBhbiBleGNlcHRpb24nLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IpO1xuICAgICAgICAgICAgc3Bhbi5zZXRTdGF0dXMoeyBjb2RlOiBhcGlfMS5TcGFuU3RhdHVzQ29kZS5FUlJPUiwgbWVzc2FnZTogZXJyb3I/Lm1lc3NhZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICB9XG59XG5leHBvcnRzLlJlZGlzSW5zdHJ1bWVudGF0aW9uVjRfVjUgPSBSZWRpc0luc3RydW1lbnRhdGlvblY0X1Y1O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5zdHJ1bWVudGF0aW9uLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/instrumentation.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/utils.js":
/*!****************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/utils.js ***!
\****************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getClientAttributes = void 0;\nconst semantic_conventions_1 = __webpack_require__(/*! @opentelemetry/semantic-conventions */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+semantic-conventions@1.40.0/node_modules/@opentelemetry/semantic-conventions/build/esm/index.js\");\nconst semconv_1 = __webpack_require__(/*! ../semconv */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js\");\nconst instrumentation_1 = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.214.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\nfunction getClientAttributes(diag, options, semconvStability) {\n const attributes = {};\n if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n Object.assign(attributes, {\n [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_REDIS,\n [semconv_1.ATTR_NET_PEER_NAME]: options?.socket?.host,\n [semconv_1.ATTR_NET_PEER_PORT]: options?.socket?.port,\n [semconv_1.ATTR_DB_CONNECTION_STRING]: removeCredentialsFromDBConnectionStringAttribute(diag, options?.url),\n });\n }\n if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n Object.assign(attributes, {\n [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semconv_1.DB_SYSTEM_NAME_VALUE_REDIS,\n [semantic_conventions_1.ATTR_SERVER_ADDRESS]: options?.socket?.host,\n [semantic_conventions_1.ATTR_SERVER_PORT]: options?.socket?.port,\n });\n }\n return attributes;\n}\nexports.getClientAttributes = getClientAttributes;\n/**\n * removeCredentialsFromDBConnectionStringAttribute removes basic auth from url and user_pwd from query string\n *\n * Examples:\n * redis://user:pass@localhost:6379/mydb => redis://localhost:6379/mydb\n * redis://localhost:6379?db=mydb&user_pwd=pass => redis://localhost:6379?db=mydb\n */\nfunction removeCredentialsFromDBConnectionStringAttribute(diag, url) {\n if (typeof url !== 'string' || !url) {\n return;\n }\n try {\n const u = new URL(url);\n u.searchParams.delete('user_pwd');\n u.username = '';\n u.password = '';\n return u.href;\n }\n catch (err) {\n diag.error('failed to sanitize redis connection url', err);\n }\n return;\n}\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvdjQtdjUvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsMkJBQTJCO0FBQzNCLCtCQUErQixtQkFBTyxDQUFDLHNMQUFxQztBQUM1RSxrQkFBa0IsbUJBQU8sQ0FBQywwTEFBWTtBQUN0QywwQkFBMEIsbUJBQU8sQ0FBQyxpTUFBZ0M7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS9Ab3BlbnRlbGVtZXRyeStpbnN0cnVtZW50YXRpb24tcmVkaXNAMC42Mi4wX0BvcGVudGVsZW1ldHJ5K2FwaUAxLjkuMS9ub2RlX21vZHVsZXMvQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uLXJlZGlzL2J1aWxkL3NyYy92NC12NS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0Q2xpZW50QXR0cmlidXRlcyA9IHZvaWQgMDtcbmNvbnN0IHNlbWFudGljX2NvbnZlbnRpb25zXzEgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvc2VtYW50aWMtY29udmVudGlvbnNcIik7XG5jb25zdCBzZW1jb252XzEgPSByZXF1aXJlKFwiLi4vc2VtY29udlwiKTtcbmNvbnN0IGluc3RydW1lbnRhdGlvbl8xID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvblwiKTtcbmZ1bmN0aW9uIGdldENsaWVudEF0dHJpYnV0ZXMoZGlhZywgb3B0aW9ucywgc2VtY29udlN0YWJpbGl0eSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB7fTtcbiAgICBpZiAoc2VtY29udlN0YWJpbGl0eSAmIGluc3RydW1lbnRhdGlvbl8xLlNlbWNvbnZTdGFiaWxpdHkuT0xEKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYXR0cmlidXRlcywge1xuICAgICAgICAgICAgW3NlbWNvbnZfMS5BVFRSX0RCX1NZU1RFTV06IHNlbWNvbnZfMS5EQl9TWVNURU1fVkFMVUVfUkVESVMsXG4gICAgICAgICAgICBbc2VtY29udl8xLkFUVFJfTkVUX1BFRVJfTkFNRV06IG9wdGlvbnM/LnNvY2tldD8uaG9zdCxcbiAgICAgICAgICAgIFtzZW1jb252XzEuQVRUUl9ORVRfUEVFUl9QT1JUXTogb3B0aW9ucz8uc29ja2V0Py5wb3J0LFxuICAgICAgICAgICAgW3NlbWNvbnZfMS5BVFRSX0RCX0NPTk5FQ1RJT05fU1RSSU5HXTogcmVtb3ZlQ3JlZGVudGlhbHNGcm9tREJDb25uZWN0aW9uU3RyaW5nQXR0cmlidXRlKGRpYWcsIG9wdGlvbnM/LnVybCksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoc2VtY29udlN0YWJpbGl0eSAmIGluc3RydW1lbnRhdGlvbl8xLlNlbWNvbnZTdGFiaWxpdHkuU1RBQkxFKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYXR0cmlidXRlcywge1xuICAgICAgICAgICAgW3NlbWFudGljX2NvbnZlbnRpb25zXzEuQVRUUl9EQl9TWVNURU1fTkFNRV06IHNlbWNvbnZfMS5EQl9TWVNURU1fTkFNRV9WQUxVRV9SRURJUyxcbiAgICAgICAgICAgIFtzZW1hbnRpY19jb252ZW50aW9uc18xLkFUVFJfU0VSVkVSX0FERFJFU1NdOiBvcHRpb25zPy5zb2NrZXQ/Lmhvc3QsXG4gICAgICAgICAgICBbc2VtYW50aWNfY29udmVudGlvbnNfMS5BVFRSX1NFUlZFUl9QT1JUXTogb3B0aW9ucz8uc29ja2V0Py5wb3J0LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGF0dHJpYnV0ZXM7XG59XG5leHBvcnRzLmdldENsaWVudEF0dHJpYnV0ZXMgPSBnZXRDbGllbnRBdHRyaWJ1dGVzO1xuLyoqXG4gKiByZW1vdmVDcmVkZW50aWFsc0Zyb21EQkNvbm5lY3Rpb25TdHJpbmdBdHRyaWJ1dGUgcmVtb3ZlcyBiYXNpYyBhdXRoIGZyb20gdXJsIGFuZCB1c2VyX3B3ZCBmcm9tIHF1ZXJ5IHN0cmluZ1xuICpcbiAqIEV4YW1wbGVzOlxuICogICByZWRpczovL3VzZXI6cGFzc0Bsb2NhbGhvc3Q6NjM3OS9teWRiID0+IHJlZGlzOi8vbG9jYWxob3N0OjYzNzkvbXlkYlxuICogICByZWRpczovL2xvY2FsaG9zdDo2Mzc5P2RiPW15ZGImdXNlcl9wd2Q9cGFzcyA9PiByZWRpczovL2xvY2FsaG9zdDo2Mzc5P2RiPW15ZGJcbiAqL1xuZnVuY3Rpb24gcmVtb3ZlQ3JlZGVudGlhbHNGcm9tREJDb25uZWN0aW9uU3RyaW5nQXR0cmlidXRlKGRpYWcsIHVybCkge1xuICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJyB8fCAhdXJsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdSA9IG5ldyBVUkwodXJsKTtcbiAgICAgICAgdS5zZWFyY2hQYXJhbXMuZGVsZXRlKCd1c2VyX3B3ZCcpO1xuICAgICAgICB1LnVzZXJuYW1lID0gJyc7XG4gICAgICAgIHUucGFzc3dvcmQgPSAnJztcbiAgICAgICAgcmV0dXJuIHUuaHJlZjtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICBkaWFnLmVycm9yKCdmYWlsZWQgdG8gc2FuaXRpemUgcmVkaXMgY29ubmVjdGlvbiB1cmwnLCBlcnIpO1xuICAgIH1cbiAgICByZXR1cm47XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js":
/*!************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js ***!
\************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
eval("\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.62.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-redis';\n//# sourceMappingURL=version.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvdmVyc2lvbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0IsR0FBRyx1QkFBdUI7QUFDOUM7QUFDQSx1QkFBdUI7QUFDdkIsb0JBQW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWFyY21pbnRlbC9Qcm9qZWN0cy9lLXRpYi5jb20vbm9kZV9tb2R1bGVzLy5wbnBtL0BvcGVudGVsZW1ldHJ5K2luc3RydW1lbnRhdGlvbi1yZWRpc0AwLjYyLjBfQG9wZW50ZWxlbWV0cnkrYXBpQDEuOS4xL25vZGVfbW9kdWxlcy9Ab3BlbnRlbGVtZXRyeS9pbnN0cnVtZW50YXRpb24tcmVkaXMvYnVpbGQvc3JjL3ZlcnNpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QQUNLQUdFX05BTUUgPSBleHBvcnRzLlBBQ0tBR0VfVkVSU0lPTiA9IHZvaWQgMDtcbi8vIHRoaXMgaXMgYXV0b2dlbmVyYXRlZCBmaWxlLCBzZWUgc2NyaXB0cy92ZXJzaW9uLXVwZGF0ZS5qc1xuZXhwb3J0cy5QQUNLQUdFX1ZFUlNJT04gPSAnMC42Mi4wJztcbmV4cG9ydHMuUEFDS0FHRV9OQU1FID0gJ0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcyc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD12ZXJzaW9uLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/index.js":
/*!**********************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/index.js ***!
\**********************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval("\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RedisInstrumentation = void 0;\nvar redis_1 = __webpack_require__(/*! ./redis */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/redis.js\");\nObject.defineProperty(exports, \"RedisInstrumentation\", ({ enumerable: true, get: function () { return redis_1.RedisInstrumentation; } }));\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsNEJBQTRCO0FBQzVCLGNBQWMsbUJBQU8sQ0FBQyxxTEFBUztBQUMvQix3REFBdUQsRUFBRSxxQ0FBcUMsd0NBQXdDLEVBQUM7QUFDdkkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXJjbWludGVsL1Byb2plY3RzL2UtdGliLmNvbS9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SZWRpc0luc3RydW1lbnRhdGlvbiA9IHZvaWQgMDtcbnZhciByZWRpc18xID0gcmVxdWlyZShcIi4vcmVkaXNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWRpc0luc3RydW1lbnRhdGlvblwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVkaXNfMS5SZWRpc0luc3RydW1lbnRhdGlvbjsgfSB9KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/redis.js":
/*!**********************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/redis.js ***!
\**********************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RedisInstrumentation = void 0;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst instrumentation_1 = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.214.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\n/** @knipignore */\nconst version_1 = __webpack_require__(/*! ./version */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js\");\nconst instrumentation_2 = __webpack_require__(/*! ./v2-v3/instrumentation */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js\");\nconst instrumentation_3 = __webpack_require__(/*! ./v4-v5/instrumentation */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/instrumentation.js\");\nconst DEFAULT_CONFIG = {\n requireParentSpan: false,\n};\n// Wrapper RedisInstrumentation that address all supported versions\nclass RedisInstrumentation extends instrumentation_1.InstrumentationBase {\n instrumentationV2_V3;\n instrumentationV4_V5;\n // this is used to bypass a flaw in the base class constructor, which is calling\n // member functions before the constructor has a chance to fully initialize the member variables.\n initialized = false;\n constructor(config = {}) {\n const resolvedConfig = { ...DEFAULT_CONFIG, ...config };\n super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, resolvedConfig);\n this.instrumentationV2_V3 = new instrumentation_2.RedisInstrumentationV2_V3(this.getConfig());\n this.instrumentationV4_V5 = new instrumentation_3.RedisInstrumentationV4_V5(this.getConfig());\n this.initialized = true;\n }\n setConfig(config = {}) {\n const newConfig = { ...DEFAULT_CONFIG, ...config };\n super.setConfig(newConfig);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setConfig(newConfig);\n this.instrumentationV4_V5.setConfig(newConfig);\n }\n init() { }\n // Return underlying modules, as consumers (like https://github.com/DrewCorlin/opentelemetry-node-bundler-plugins) may\n // expect them to be populated without knowing that this module wraps 2 instrumentations\n getModuleDefinitions() {\n return [\n ...this.instrumentationV2_V3.getModuleDefinitions(),\n ...this.instrumentationV4_V5.getModuleDefinitions(),\n ];\n }\n setTracerProvider(tracerProvider) {\n super.setTracerProvider(tracerProvider);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setTracerProvider(tracerProvider);\n this.instrumentationV4_V5.setTracerProvider(tracerProvider);\n }\n enable() {\n super.enable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.enable();\n this.instrumentationV4_V5.enable();\n }\n disable() {\n super.disable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.disable();\n this.instrumentationV4_V5.disable();\n }\n}\nexports.RedisInstrumentation = RedisInstrumentation;\n//# sourceMappingURL=redis.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvcmVkaXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixtQkFBTyxDQUFDLGlNQUFnQztBQUNsRTtBQUNBLGtCQUFrQixtQkFBTyxDQUFDLHlMQUFXO0FBQ3JDLDBCQUEwQixtQkFBTyxDQUFDLHFOQUF5QjtBQUMzRCwwQkFBMEIsbUJBQU8sQ0FBQyxxTkFBeUI7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0IsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXJjbWludGVsL1Byb2plY3RzL2UtdGliLmNvbS9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvcmVkaXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJlZGlzSW5zdHJ1bWVudGF0aW9uID0gdm9pZCAwO1xuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmNvbnN0IGluc3RydW1lbnRhdGlvbl8xID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvblwiKTtcbi8qKiBAa25pcGlnbm9yZSAqL1xuY29uc3QgdmVyc2lvbl8xID0gcmVxdWlyZShcIi4vdmVyc2lvblwiKTtcbmNvbnN0IGluc3RydW1lbnRhdGlvbl8yID0gcmVxdWlyZShcIi4vdjItdjMvaW5zdHJ1bWVudGF0aW9uXCIpO1xuY29uc3QgaW5zdHJ1bWVudGF0aW9uXzMgPSByZXF1aXJlKFwiLi92NC12NS9pbnN0cnVtZW50YXRpb25cIik7XG5jb25zdCBERUZBVUxUX0NPTkZJRyA9IHtcbiAgICByZXF1aXJlUGFyZW50U3BhbjogZmFsc2UsXG59O1xuLy8gV3JhcHBlciBSZWRpc0luc3RydW1lbnRhdGlvbiB0aGF0IGFkZHJlc3MgYWxsIHN1cHBvcnRlZCB2ZXJzaW9uc1xuY2xhc3MgUmVkaXNJbnN0cnVtZW50YXRpb24gZXh0ZW5kcyBpbnN0cnVtZW50YXRpb25fMS5JbnN0cnVtZW50YXRpb25CYXNlIHtcbiAgICBpbnN0cnVtZW50YXRpb25WMl9WMztcbiAgICBpbnN0cnVtZW50YXRpb25WNF9WNTtcbiAgICAvLyB0aGlzIGlzIHVzZWQgdG8gYnlwYXNzIGEgZmxhdyBpbiB0aGUgYmFzZSBjbGFzcyBjb25zdHJ1Y3Rvciwgd2hpY2ggaXMgY2FsbGluZ1xuICAgIC8vIG1lbWJlciBmdW5jdGlvbnMgYmVmb3JlIHRoZSBjb25zdHJ1Y3RvciBoYXMgYSBjaGFuY2UgdG8gZnVsbHkgaW5pdGlhbGl6ZSB0aGUgbWVtYmVyIHZhcmlhYmxlcy5cbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIGNvbnN0cnVjdG9yKGNvbmZpZyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkQ29uZmlnID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4uY29uZmlnIH07XG4gICAgICAgIHN1cGVyKHZlcnNpb25fMS5QQUNLQUdFX05BTUUsIHZlcnNpb25fMS5QQUNLQUdFX1ZFUlNJT04sIHJlc29sdmVkQ29uZmlnKTtcbiAgICAgICAgdGhpcy5pbnN0cnVtZW50YXRpb25WMl9WMyA9IG5ldyBpbnN0cnVtZW50YXRpb25fMi5SZWRpc0luc3RydW1lbnRhdGlvblYyX1YzKHRoaXMuZ2V0Q29uZmlnKCkpO1xuICAgICAgICB0aGlzLmluc3RydW1lbnRhdGlvblY0X1Y1ID0gbmV3IGluc3RydW1lbnRhdGlvbl8zLlJlZGlzSW5zdHJ1bWVudGF0aW9uVjRfVjUodGhpcy5nZXRDb25maWcoKSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgICBzZXRDb25maWcoY29uZmlnID0ge30pIHtcbiAgICAgICAgY29uc3QgbmV3Q29uZmlnID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4uY29uZmlnIH07XG4gICAgICAgIHN1cGVyLnNldENvbmZpZyhuZXdDb25maWcpO1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluc3RydW1lbnRhdGlvblYyX1YzLnNldENvbmZpZyhuZXdDb25maWcpO1xuICAgICAgICB0aGlzLmluc3RydW1lbnRhdGlvblY0X1Y1LnNldENvbmZpZyhuZXdDb25maWcpO1xuICAgIH1cbiAgICBpbml0KCkgeyB9XG4gICAgLy8gUmV0dXJuIHVuZGVybHlpbmcgbW9kdWxlcywgYXMgY29uc3VtZXJzIChsaWtlIGh0dHBzOi8vZ2l0aHViLmNvbS9EcmV3Q29ybGluL29wZW50ZWxlbWV0cnktbm9kZS1idW5kbGVyLXBsdWdpbnMpIG1heVxuICAgIC8vIGV4cGVjdCB0aGVtIHRvIGJlIHBvcHVsYXRlZCB3aXRob3V0IGtub3dpbmcgdGhhdCB0aGlzIG1vZHVsZSB3cmFwcyAyIGluc3RydW1lbnRhdGlvbnNcbiAgICBnZXRNb2R1bGVEZWZpbml0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLnRoaXMuaW5zdHJ1bWVudGF0aW9uVjJfVjMuZ2V0TW9kdWxlRGVmaW5pdGlvbnMoKSxcbiAgICAgICAgICAgIC4uLnRoaXMuaW5zdHJ1bWVudGF0aW9uVjRfVjUuZ2V0TW9kdWxlRGVmaW5pdGlvbnMoKSxcbiAgICAgICAgXTtcbiAgICB9XG4gICAgc2V0VHJhY2VyUHJvdmlkZXIodHJhY2VyUHJvdmlkZXIpIHtcbiAgICAgICAgc3VwZXIuc2V0VHJhY2VyUHJvdmlkZXIodHJhY2VyUHJvdmlkZXIpO1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluc3RydW1lbnRhdGlvblYyX1YzLnNldFRyYWNlclByb3ZpZGVyKHRyYWNlclByb3ZpZGVyKTtcbiAgICAgICAgdGhpcy5pbnN0cnVtZW50YXRpb25WNF9WNS5zZXRUcmFjZXJQcm92aWRlcih0cmFjZXJQcm92aWRlcik7XG4gICAgfVxuICAgIGVuYWJsZSgpIHtcbiAgICAgICAgc3VwZXIuZW5hYmxlKCk7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5zdHJ1bWVudGF0aW9uVjJfVjMuZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuaW5zdHJ1bWVudGF0aW9uVjRfVjUuZW5hYmxlKCk7XG4gICAgfVxuICAgIGRpc2FibGUoKSB7XG4gICAgICAgIHN1cGVyLmRpc2FibGUoKTtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnN0cnVtZW50YXRpb25WMl9WMy5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuaW5zdHJ1bWVudGF0aW9uVjRfVjUuZGlzYWJsZSgpO1xuICAgIH1cbn1cbmV4cG9ydHMuUmVkaXNJbnN0cnVtZW50YXRpb24gPSBSZWRpc0luc3RydW1lbnRhdGlvbjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlZGlzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/redis.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js":
/*!************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js ***!
\************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
eval("\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DB_SYSTEM_VALUE_REDIS = exports.DB_SYSTEM_NAME_VALUE_REDIS = exports.ATTR_NET_PEER_PORT = exports.ATTR_NET_PEER_NAME = exports.ATTR_DB_SYSTEM = exports.ATTR_DB_STATEMENT = exports.ATTR_DB_CONNECTION_STRING = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexports.ATTR_DB_CONNECTION_STRING = 'db.connection_string';\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexports.ATTR_DB_STATEMENT = 'db.statement';\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexports.ATTR_DB_SYSTEM = 'db.system';\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexports.ATTR_NET_PEER_NAME = 'net.peer.name';\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexports.ATTR_NET_PEER_PORT = 'net.peer.port';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [Redis](https://redis.io/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_NAME_VALUE_REDIS = 'redis';\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Redis\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.DB_SYSTEM_VALUE_REDIS = 'redis';\n//# sourceMappingURL=semconv.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvc2VtY29udi5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCw2QkFBNkIsR0FBRyxrQ0FBa0MsR0FBRywwQkFBMEIsR0FBRywwQkFBMEIsR0FBRyxzQkFBc0IsR0FBRyx5QkFBeUIsR0FBRyxpQ0FBaUM7QUFDck47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyx5QkFBeUI7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0EscUNBQXFDLDBCQUEwQjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0EscUNBQXFDLHFCQUFxQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWFyY21pbnRlbC9Qcm9qZWN0cy9lLXRpYi5jb20vbm9kZV9tb2R1bGVzLy5wbnBtL0BvcGVudGVsZW1ldHJ5K2luc3RydW1lbnRhdGlvbi1yZWRpc0AwLjYyLjBfQG9wZW50ZWxlbWV0cnkrYXBpQDEuOS4xL25vZGVfbW9kdWxlcy9Ab3BlbnRlbGVtZXRyeS9pbnN0cnVtZW50YXRpb24tcmVkaXMvYnVpbGQvc3JjL3NlbWNvbnYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EQl9TWVNURU1fVkFMVUVfUkVESVMgPSBleHBvcnRzLkRCX1NZU1RFTV9OQU1FX1ZBTFVFX1JFRElTID0gZXhwb3J0cy5BVFRSX05FVF9QRUVSX1BPUlQgPSBleHBvcnRzLkFUVFJfTkVUX1BFRVJfTkFNRSA9IGV4cG9ydHMuQVRUUl9EQl9TWVNURU0gPSBleHBvcnRzLkFUVFJfREJfU1RBVEVNRU5UID0gZXhwb3J0cy5BVFRSX0RCX0NPTk5FQ1RJT05fU1RSSU5HID0gdm9pZCAwO1xuLypcbiAqIFRoaXMgZmlsZSBjb250YWlucyBhIGNvcHkgb2YgdW5zdGFibGUgc2VtYW50aWMgY29udmVudGlvbiBkZWZpbml0aW9uc1xuICogdXNlZCBieSB0aGlzIHBhY2thZ2UuXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL3RyZWUvbWFpbi9zZW1hbnRpYy1jb252ZW50aW9ucyN1bnN0YWJsZS1zZW1jb252XG4gKi9cbi8qKlxuICogRGVwcmVjYXRlZCwgdXNlIGBzZXJ2ZXIuYWRkcmVzc2AsIGBzZXJ2ZXIucG9ydGAgYXR0cmlidXRlcyBpbnN0ZWFkLlxuICpcbiAqIEBleGFtcGxlIFwiU2VydmVyPShsb2NhbGRiKVxcXFx2MTEuMDtJbnRlZ3JhdGVkIFNlY3VyaXR5PXRydWU7XCJcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgYXR0cmlidXRlIGlzIGV4cGVyaW1lbnRhbCBhbmQgaXMgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIG1pbm9yIHJlbGVhc2VzIG9mIGBAb3BlbnRlbGVtZXRyeS9zZW1hbnRpYy1jb252ZW50aW9uc2AuXG4gKlxuICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgYHNlcnZlci5hZGRyZXNzYCBhbmQgYHNlcnZlci5wb3J0YC5cbiAqL1xuZXhwb3J0cy5BVFRSX0RCX0NPTk5FQ1RJT05fU1RSSU5HID0gJ2RiLmNvbm5lY3Rpb25fc3RyaW5nJztcbi8qKlxuICogVGhlIGRhdGFiYXNlIHN0YXRlbWVudCBiZWluZyBleGVjdXRlZC5cbiAqXG4gKiBAZXhhbXBsZSBTRUxFQ1QgKiBGUk9NIHd1c2VyX3RhYmxlXG4gKiBAZXhhbXBsZSBTRVQgbXlrZXkgXCJXdVZhbHVlXCJcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgYXR0cmlidXRlIGlzIGV4cGVyaW1lbnRhbCBhbmQgaXMgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIG1pbm9yIHJlbGVhc2VzIG9mIGBAb3BlbnRlbGVtZXRyeS9zZW1hbnRpYy1jb252ZW50aW9uc2AuXG4gKlxuICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgYGRiLnF1ZXJ5LnRleHRgLlxuICovXG5leHBvcnRzLkFUVFJfREJfU1RBVEVNRU5UID0gJ2RiLnN0YXRlbWVudCc7XG4vKipcbiAqIERlcHJlY2F0ZWQsIHVzZSBgZGIuc3lzdGVtLm5hbWVgIGluc3RlYWQuXG4gKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGF0dHJpYnV0ZSBpcyBleHBlcmltZW50YWwgYW5kIGlzIHN1YmplY3QgdG8gYnJlYWtpbmcgY2hhbmdlcyBpbiBtaW5vciByZWxlYXNlcyBvZiBgQG9wZW50ZWxlbWV0cnkvc2VtYW50aWMtY29udmVudGlvbnNgLlxuICpcbiAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IGBkYi5zeXN0ZW0ubmFtZWAuXG4gKi9cbmV4cG9ydHMuQVRUUl9EQl9TWVNURU0gPSAnZGIuc3lzdGVtJztcbi8qKlxuICogRGVwcmVjYXRlZCwgdXNlIGBzZXJ2ZXIuYWRkcmVzc2Agb24gY2xpZW50IHNwYW5zIGFuZCBgY2xpZW50LmFkZHJlc3NgIG9uIHNlcnZlciBzcGFucy5cbiAqXG4gKiBAZXhhbXBsZSBleGFtcGxlLmNvbVxuICpcbiAqIEBleHBlcmltZW50YWwgVGhpcyBhdHRyaWJ1dGUgaXMgZXhwZXJpbWVudGFsIGFuZCBpcyBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gbWlub3IgcmVsZWFzZXMgb2YgYEBvcGVudGVsZW1ldHJ5L3NlbWFudGljLWNvbnZlbnRpb25zYC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBgc2VydmVyLmFkZHJlc3NgIG9uIGNsaWVudCBzcGFucyBhbmQgYGNsaWVudC5hZGRyZXNzYCBvbiBzZXJ2ZXIgc3BhbnMuXG4gKi9cbmV4cG9ydHMuQVRUUl9ORVRfUEVFUl9OQU1FID0gJ25ldC5wZWVyLm5hbWUnO1xuLyoqXG4gKiBEZXByZWNhdGVkLCB1c2UgYHNlcnZlci5wb3J0YCBvbiBjbGllbnQgc3BhbnMgYW5kIGBjbGllbnQucG9ydGAgb24gc2VydmVyIHNwYW5zLlxuICpcbiAqIEBleGFtcGxlIDgwODBcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgYXR0cmlidXRlIGlzIGV4cGVyaW1lbnRhbCBhbmQgaXMgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIG1pbm9yIHJlbGVhc2VzIG9mIGBAb3BlbnRlbGVtZXRyeS9zZW1hbnRpYy1jb252ZW50aW9uc2AuXG4gKlxuICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgYHNlcnZlci5wb3J0YCBvbiBjbGllbnQgc3BhbnMgYW5kIGBjbGllbnQucG9ydGAgb24gc2VydmVyIHNwYW5zLlxuICovXG5leHBvcnRzLkFUVFJfTkVUX1BFRVJfUE9SVCA9ICduZXQucGVlci5wb3J0Jztcbi8qKlxuICogRW51bSB2YWx1ZSBcInJlZGlzXCIgZm9yIGF0dHJpYnV0ZSB7QGxpbmsgQVRUUl9EQl9TWVNURU1fTkFNRX0uXG4gKlxuICogW1JlZGlzXShodHRwczovL3JlZGlzLmlvLylcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFRoaXMgZW51bSB2YWx1ZSBpcyBleHBlcmltZW50YWwgYW5kIGlzIHN1YmplY3QgdG8gYnJlYWtpbmcgY2hhbmdlcyBpbiBtaW5vciByZWxlYXNlcyBvZiBgQG9wZW50ZWxlbWV0cnkvc2VtYW50aWMtY29udmVudGlvbnNgLlxuICovXG5leHBvcnRzLkRCX1NZU1RFTV9OQU1FX1ZBTFVFX1JFRElTID0gJ3JlZGlzJztcbi8qKlxuICogRW51bSB2YWx1ZSBcInJlZGlzXCIgZm9yIGF0dHJpYnV0ZSB7QGxpbmsgQVRUUl9EQl9TWVNURU19LlxuICpcbiAqIFJlZGlzXG4gKlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGVudW0gdmFsdWUgaXMgZXhwZXJpbWVudGFsIGFuZCBpcyBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gbWlub3IgcmVsZWFzZXMgb2YgYEBvcGVudGVsZW1ldHJ5L3NlbWFudGljLWNvbnZlbnRpb25zYC5cbiAqL1xuZXhwb3J0cy5EQl9TWVNURU1fVkFMVUVfUkVESVMgPSAncmVkaXMnO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VtY29udi5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js":
/*!**************************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js ***!
\**************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval(";globalThis[\"_sentryRewritesTunnelPath\"] = undefined;globalThis[\"SENTRY_RELEASE\"] = undefined;globalThis[\"_sentryBasePath\"] = undefined;globalThis[\"_sentryNextJsVersion\"] = \"16.1.6\";globalThis[\"_sentryRewriteFramesDistDir\"] = \".next\";globalThis[\"_sentryVercelCronsConfig\"] = undefined;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RedisInstrumentationV2_V3 = void 0;\nconst instrumentation_1 = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.214.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\nconst utils_1 = __webpack_require__(/*! ./utils */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/utils.js\");\n/** @knipignore */\nconst version_1 = __webpack_require__(/*! ../version */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js\");\nconst api_1 = __webpack_require__(/*! @opentelemetry/api */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/index.js\");\nconst semantic_conventions_1 = __webpack_require__(/*! @opentelemetry/semantic-conventions */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+semantic-conventions@1.40.0/node_modules/@opentelemetry/semantic-conventions/build/esm/index.js\");\nconst semconv_1 = __webpack_require__(/*! ../semconv */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js\");\nconst redis_common_1 = __webpack_require__(/*! @opentelemetry/redis-common */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+redis-common@0.38.2/node_modules/@opentelemetry/redis-common/build/src/index.js\");\nclass RedisInstrumentationV2_V3 extends instrumentation_1.InstrumentationBase {\n static COMPONENT = 'redis';\n _semconvStability;\n constructor(config = {}) {\n super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n this._semconvStability = config.semconvStability\n ? config.semconvStability\n : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n }\n setConfig(config = {}) {\n super.setConfig(config);\n this._semconvStability = config.semconvStability\n ? config.semconvStability\n : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n }\n init() {\n return [\n new instrumentation_1.InstrumentationNodeModuleDefinition('redis', ['>=2.6.0 <4'], moduleExports => {\n if ((0, instrumentation_1.isWrapped)(moduleExports.RedisClient.prototype['internal_send_command'])) {\n this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n }\n this._wrap(moduleExports.RedisClient.prototype, 'internal_send_command', this._getPatchInternalSendCommand());\n if ((0, instrumentation_1.isWrapped)(moduleExports.RedisClient.prototype['create_stream'])) {\n this._unwrap(moduleExports.RedisClient.prototype, 'create_stream');\n }\n this._wrap(moduleExports.RedisClient.prototype, 'create_stream', this._getPatchCreateStream());\n if ((0, instrumentation_1.isWrapped)(moduleExports.createClient)) {\n this._unwrap(moduleExports, 'createClient');\n }\n this._wrap(moduleExports, 'createClient', this._getPatchCreateClient());\n return moduleExports;\n }, moduleExports => {\n if (moduleExports === undefined)\n return;\n this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n this._unwrap(moduleExports.RedisClient.prototype, 'create_stream');\n this._unwrap(moduleExports, 'createClient');\n }),\n ];\n }\n /**\n * Patch internal_send_command(...) to trace requests\n */\n _getPatchInternalSendCommand() {\n const instrumentation = this;\n return function internal_send_command(original) {\n return function internal_send_command_trace(cmd) {\n // Versions of redis (2.4+) use a single options object\n // instead of named arguments\n if (arguments.length !== 1 || typeof cmd !== 'object') {\n // We don't know how to trace this call, so don't start/stop a span\n return original.apply(this, arguments);\n }\n const config = instrumentation.getConfig();\n const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n if (config.requireParentSpan === true && hasNoParentSpan) {\n return original.apply(this, arguments);\n }\n const dbStatementSerializer = config?.dbStatementSerializer || redis_common_1.defaultDbStatementSerializer;\n const attributes = {};\n if (instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n Object.assign(attributes, {\n [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_REDIS,\n [semconv_1.ATTR_DB_STATEMENT]: dbStatementSerializer(cmd.command, cmd.args),\n });\n }\n if (instrumentation._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n Object.assign(attributes, {\n [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semconv_1.DB_SYSTEM_NAME_VALUE_REDIS,\n [semantic_conventions_1.ATTR_DB_OPERATION_NAME]: cmd.command,\n [semantic_conventions_1.ATTR_DB_QUERY_TEXT]: dbStatementSerializer(cmd.command, cmd.args),\n });\n }\n const span = instrumentation.tracer.startSpan(`${RedisInstrumentationV2_V3.COMPONENT}-${cmd.command}`, {\n kind: api_1.SpanKind.CLIENT,\n attributes,\n });\n // Set attributes for not explicitly typed RedisPluginClientTypes\n if (this.connection_options) {\n const connectionAttributes = {};\n if (instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n Object.assign(connectionAttributes, {\n [semconv_1.ATTR_NET_PEER_NAME]: this.connection_options.host,\n [semconv_1.ATTR_NET_PEER_PORT]: this.connection_options.port,\n });\n }\n if (instrumentation._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n Object.assign(connectionAttributes, {\n [semantic_conventions_1.ATTR_SERVER_ADDRESS]: this.connection_options.host,\n [semantic_conventions_1.ATTR_SERVER_PORT]: this.connection_options.port,\n });\n }\n span.setAttributes(connectionAttributes);\n }\n if (this.address &&\n instrumentation._semconvStability & instrumentation_1.SemconvStability.OLD) {\n span.setAttribute(semconv_1.ATTR_DB_CONNECTION_STRING, `redis://${this.address}`);\n }\n const originalCallback = arguments[0].callback;\n if (originalCallback) {\n const originalContext = api_1.context.active();\n arguments[0].callback = function callback(err, reply) {\n if (config?.responseHook) {\n const responseHook = config.responseHook;\n (0, instrumentation_1.safeExecuteInTheMiddle)(() => {\n responseHook(span, cmd.command, cmd.args, reply);\n }, err => {\n if (err) {\n instrumentation._diag.error('Error executing responseHook', err);\n }\n }, true);\n }\n (0, utils_1.endSpan)(span, err);\n return api_1.context.with(originalContext, originalCallback, this, ...arguments);\n };\n }\n try {\n // Span will be ended in callback\n return original.apply(this, arguments);\n }\n catch (rethrow) {\n (0, utils_1.endSpan)(span, rethrow);\n throw rethrow; // rethrow after ending span\n }\n };\n };\n }\n _getPatchCreateClient() {\n return function createClient(original) {\n return (0, utils_1.getTracedCreateClient)(original);\n };\n }\n _getPatchCreateStream() {\n return function createReadStream(original) {\n return (0, utils_1.getTracedCreateStreamTrace)(original);\n };\n }\n}\nexports.RedisInstrumentationV2_V3 = RedisInstrumentationV2_V3;\n//# sourceMappingURL=instrumentation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvdjItdjMvaW5zdHJ1bWVudGF0aW9uLmpzIiwibWFwcGluZ3MiOiJBQUFhLENBQUMsb0RBQW9ELHlDQUF5QywwQ0FBMEMsOENBQThDLG9EQUFvRDtBQUN2UDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsaUNBQWlDO0FBQ2pDLDBCQUEwQixtQkFBTyxDQUFDLGlNQUFnQztBQUNsRSxnQkFBZ0IsbUJBQU8sQ0FBQywyTEFBUztBQUNqQztBQUNBLGtCQUFrQixtQkFBTyxDQUFDLDBMQUFZO0FBQ3RDLGNBQWMsbUJBQU8sQ0FBQyxrSUFBb0I7QUFDMUMsK0JBQStCLG1CQUFPLENBQUMsc0xBQXFDO0FBQzVFLGtCQUFrQixtQkFBTyxDQUFDLDBMQUFZO0FBQ3RDLHVCQUF1QixtQkFBTyxDQUFDLDhKQUE2QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLGlFQUFpRSxvQ0FBb0MsR0FBRyxZQUFZO0FBQ3BIO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0ZBQXNGLGFBQWE7QUFDbkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS9Ab3BlbnRlbGVtZXRyeStpbnN0cnVtZW50YXRpb24tcmVkaXNAMC42Mi4wX0BvcGVudGVsZW1ldHJ5K2FwaUAxLjkuMS9ub2RlX21vZHVsZXMvQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uLXJlZGlzL2J1aWxkL3NyYy92Mi12My9pbnN0cnVtZW50YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7O2dsb2JhbFRoaXNbXCJfc2VudHJ5UmV3cml0ZXNUdW5uZWxQYXRoXCJdID0gdW5kZWZpbmVkO2dsb2JhbFRoaXNbXCJTRU5UUllfUkVMRUFTRVwiXSA9IHVuZGVmaW5lZDtnbG9iYWxUaGlzW1wiX3NlbnRyeUJhc2VQYXRoXCJdID0gdW5kZWZpbmVkO2dsb2JhbFRoaXNbXCJfc2VudHJ5TmV4dEpzVmVyc2lvblwiXSA9IFwiMTYuMS42XCI7Z2xvYmFsVGhpc1tcIl9zZW50cnlSZXdyaXRlRnJhbWVzRGlzdERpclwiXSA9IFwiLm5leHRcIjtnbG9iYWxUaGlzW1wiX3NlbnRyeVZlcmNlbENyb25zQ29uZmlnXCJdID0gdW5kZWZpbmVkO1xuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmVkaXNJbnN0cnVtZW50YXRpb25WMl9WMyA9IHZvaWQgMDtcbmNvbnN0IGluc3RydW1lbnRhdGlvbl8xID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvblwiKTtcbmNvbnN0IHV0aWxzXzEgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbi8qKiBAa25pcGlnbm9yZSAqL1xuY29uc3QgdmVyc2lvbl8xID0gcmVxdWlyZShcIi4uL3ZlcnNpb25cIik7XG5jb25zdCBhcGlfMSA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9hcGlcIik7XG5jb25zdCBzZW1hbnRpY19jb252ZW50aW9uc18xID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L3NlbWFudGljLWNvbnZlbnRpb25zXCIpO1xuY29uc3Qgc2VtY29udl8xID0gcmVxdWlyZShcIi4uL3NlbWNvbnZcIik7XG5jb25zdCByZWRpc19jb21tb25fMSA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9yZWRpcy1jb21tb25cIik7XG5jbGFzcyBSZWRpc0luc3RydW1lbnRhdGlvblYyX1YzIGV4dGVuZHMgaW5zdHJ1bWVudGF0aW9uXzEuSW5zdHJ1bWVudGF0aW9uQmFzZSB7XG4gICAgc3RhdGljIENPTVBPTkVOVCA9ICdyZWRpcyc7XG4gICAgX3NlbWNvbnZTdGFiaWxpdHk7XG4gICAgY29uc3RydWN0b3IoY29uZmlnID0ge30pIHtcbiAgICAgICAgc3VwZXIodmVyc2lvbl8xLlBBQ0tBR0VfTkFNRSwgdmVyc2lvbl8xLlBBQ0tBR0VfVkVSU0lPTiwgY29uZmlnKTtcbiAgICAgICAgdGhpcy5fc2VtY29udlN0YWJpbGl0eSA9IGNvbmZpZy5zZW1jb252U3RhYmlsaXR5XG4gICAgICAgICAgICA/IGNvbmZpZy5zZW1jb252U3RhYmlsaXR5XG4gICAgICAgICAgICA6ICgwLCBpbnN0cnVtZW50YXRpb25fMS5zZW1jb252U3RhYmlsaXR5RnJvbVN0cikoJ2RhdGFiYXNlJywgcHJvY2Vzcy5lbnYuT1RFTF9TRU1DT05WX1NUQUJJTElUWV9PUFRfSU4pO1xuICAgIH1cbiAgICBzZXRDb25maWcoY29uZmlnID0ge30pIHtcbiAgICAgICAgc3VwZXIuc2V0Q29uZmlnKGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX3NlbWNvbnZTdGFiaWxpdHkgPSBjb25maWcuc2VtY29udlN0YWJpbGl0eVxuICAgICAgICAgICAgPyBjb25maWcuc2VtY29udlN0YWJpbGl0eVxuICAgICAgICAgICAgOiAoMCwgaW5zdHJ1bWVudGF0aW9uXzEuc2VtY29udlN0YWJpbGl0eUZyb21TdHIpKCdkYXRhYmFzZScsIHByb2Nlc3MuZW52Lk9URUxfU0VNQ09OVl9TVEFCSUxJVFlfT1BUX0lOKTtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG5ldyBpbnN0cnVtZW50YXRpb25fMS5JbnN0cnVtZW50YXRpb25Ob2RlTW9kdWxlRGVmaW5pdGlvbigncmVkaXMnLCBbJz49Mi42LjAgPDQnXSwgbW9kdWxlRXhwb3J0cyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCgwLCBpbnN0cnVtZW50YXRpb25fMS5pc1dyYXBwZWQpKG1vZHVsZUV4cG9ydHMuUmVkaXNDbGllbnQucHJvdG90eXBlWydpbnRlcm5hbF9zZW5kX2NvbW1hbmQnXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKG1vZHVsZUV4cG9ydHMuUmVkaXNDbGllbnQucHJvdG90eXBlLCAnaW50ZXJuYWxfc2VuZF9jb21tYW5kJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3dyYXAobW9kdWxlRXhwb3J0cy5SZWRpc0NsaWVudC5wcm90b3R5cGUsICdpbnRlcm5hbF9zZW5kX2NvbW1hbmQnLCB0aGlzLl9nZXRQYXRjaEludGVybmFsU2VuZENvbW1hbmQoKSk7XG4gICAgICAgICAgICAgICAgaWYgKCgwLCBpbnN0cnVtZW50YXRpb25fMS5pc1dyYXBwZWQpKG1vZHVsZUV4cG9ydHMuUmVkaXNDbGllbnQucHJvdG90eXBlWydjcmVhdGVfc3RyZWFtJ10pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChtb2R1bGVFeHBvcnRzLlJlZGlzQ2xpZW50LnByb3RvdHlwZSwgJ2NyZWF0ZV9zdHJlYW0nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fd3JhcChtb2R1bGVFeHBvcnRzLlJlZGlzQ2xpZW50LnByb3RvdHlwZSwgJ2NyZWF0ZV9zdHJlYW0nLCB0aGlzLl9nZXRQYXRjaENyZWF0ZVN0cmVhbSgpKTtcbiAgICAgICAgICAgICAgICBpZiAoKDAsIGluc3RydW1lbnRhdGlvbl8xLmlzV3JhcHBlZCkobW9kdWxlRXhwb3J0cy5jcmVhdGVDbGllbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChtb2R1bGVFeHBvcnRzLCAnY3JlYXRlQ2xpZW50Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3dyYXAobW9kdWxlRXhwb3J0cywgJ2NyZWF0ZUNsaWVudCcsIHRoaXMuX2dldFBhdGNoQ3JlYXRlQ2xpZW50KCkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBtb2R1bGVFeHBvcnRzO1xuICAgICAgICAgICAgfSwgbW9kdWxlRXhwb3J0cyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG1vZHVsZUV4cG9ydHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChtb2R1bGVFeHBvcnRzLlJlZGlzQ2xpZW50LnByb3RvdHlwZSwgJ2ludGVybmFsX3NlbmRfY29tbWFuZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChtb2R1bGVFeHBvcnRzLlJlZGlzQ2xpZW50LnByb3RvdHlwZSwgJ2NyZWF0ZV9zdHJlYW0nKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91bndyYXAobW9kdWxlRXhwb3J0cywgJ2NyZWF0ZUNsaWVudCcpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFBhdGNoIGludGVybmFsX3NlbmRfY29tbWFuZCguLi4pIHRvIHRyYWNlIHJlcXVlc3RzXG4gICAgICovXG4gICAgX2dldFBhdGNoSW50ZXJuYWxTZW5kQ29tbWFuZCgpIHtcbiAgICAgICAgY29uc3QgaW5zdHJ1bWVudGF0aW9uID0gdGhpcztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGludGVybmFsX3NlbmRfY29tbWFuZChvcmlnaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGludGVybmFsX3NlbmRfY29tbWFuZF90cmFjZShjbWQpIHtcbiAgICAgICAgICAgICAgICAvLyBWZXJzaW9ucyBvZiByZWRpcyAoMi40KykgdXNlIGEgc2luZ2xlIG9wdGlvbnMgb2JqZWN0XG4gICAgICAgICAgICAgICAgLy8gaW5zdGVhZCBvZiBuYW1lZCBhcmd1bWVudHNcbiAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPT0gMSB8fCB0eXBlb2YgY21kICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBrbm93IGhvdyB0byB0cmFjZSB0aGlzIGNhbGwsIHNvIGRvbid0IHN0YXJ0L3N0b3AgYSBzcGFuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBpbnN0cnVtZW50YXRpb24uZ2V0Q29uZmlnKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzTm9QYXJlbnRTcGFuID0gYXBpXzEudHJhY2UuZ2V0U3BhbihhcGlfMS5jb250ZXh0LmFjdGl2ZSgpKSA9PT0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGlmIChjb25maWcucmVxdWlyZVBhcmVudFNwYW4gPT09IHRydWUgJiYgaGFzTm9QYXJlbnRTcGFuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBkYlN0YXRlbWVudFNlcmlhbGl6ZXIgPSBjb25maWc/LmRiU3RhdGVtZW50U2VyaWFsaXplciB8fCByZWRpc19jb21tb25fMS5kZWZhdWx0RGJTdGF0ZW1lbnRTZXJpYWxpemVyO1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgICAgICAgICBpZiAoaW5zdHJ1bWVudGF0aW9uLl9zZW1jb252U3RhYmlsaXR5ICYgaW5zdHJ1bWVudGF0aW9uXzEuU2VtY29udlN0YWJpbGl0eS5PTEQpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhdHRyaWJ1dGVzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VtY29udl8xLkFUVFJfREJfU1lTVEVNXTogc2VtY29udl8xLkRCX1NZU1RFTV9WQUxVRV9SRURJUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZW1jb252XzEuQVRUUl9EQl9TVEFURU1FTlRdOiBkYlN0YXRlbWVudFNlcmlhbGl6ZXIoY21kLmNvbW1hbmQsIGNtZC5hcmdzKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpbnN0cnVtZW50YXRpb24uX3NlbWNvbnZTdGFiaWxpdHkgJiBpbnN0cnVtZW50YXRpb25fMS5TZW1jb252U3RhYmlsaXR5LlNUQUJMRSkge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGF0dHJpYnV0ZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZW1hbnRpY19jb252ZW50aW9uc18xLkFUVFJfREJfU1lTVEVNX05BTUVdOiBzZW1jb252XzEuREJfU1lTVEVNX05BTUVfVkFMVUVfUkVESVMsXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VtYW50aWNfY29udmVudGlvbnNfMS5BVFRSX0RCX09QRVJBVElPTl9OQU1FXTogY21kLmNvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VtYW50aWNfY29udmVudGlvbnNfMS5BVFRSX0RCX1FVRVJZX1RFWFRdOiBkYlN0YXRlbWVudFNlcmlhbGl6ZXIoY21kLmNvbW1hbmQsIGNtZC5hcmdzKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW4gPSBpbnN0cnVtZW50YXRpb24udHJhY2VyLnN0YXJ0U3BhbihgJHtSZWRpc0luc3RydW1lbnRhdGlvblYyX1YzLkNPTVBPTkVOVH0tJHtjbWQuY29tbWFuZH1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IGFwaV8xLlNwYW5LaW5kLkNMSUVOVCxcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyBTZXQgYXR0cmlidXRlcyBmb3Igbm90IGV4cGxpY2l0bHkgdHlwZWQgUmVkaXNQbHVnaW5DbGllbnRUeXBlc1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb25fb3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uQXR0cmlidXRlcyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdHJ1bWVudGF0aW9uLl9zZW1jb252U3RhYmlsaXR5ICYgaW5zdHJ1bWVudGF0aW9uXzEuU2VtY29udlN0YWJpbGl0eS5PTEQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY29ubmVjdGlvbkF0dHJpYnV0ZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VtY29udl8xLkFUVFJfTkVUX1BFRVJfTkFNRV06IHRoaXMuY29ubmVjdGlvbl9vcHRpb25zLmhvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbWNvbnZfMS5BVFRSX05FVF9QRUVSX1BPUlRdOiB0aGlzLmNvbm5lY3Rpb25fb3B0aW9ucy5wb3J0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3RydW1lbnRhdGlvbi5fc2VtY29udlN0YWJpbGl0eSAmIGluc3RydW1lbnRhdGlvbl8xLlNlbWNvbnZTdGFiaWxpdHkuU1RBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGNvbm5lY3Rpb25BdHRyaWJ1dGVzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbWFudGljX2NvbnZlbnRpb25zXzEuQVRUUl9TRVJWRVJfQUREUkVTU106IHRoaXMuY29ubmVjdGlvbl9vcHRpb25zLmhvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbWFudGljX2NvbnZlbnRpb25zXzEuQVRUUl9TRVJWRVJfUE9SVF06IHRoaXMuY29ubmVjdGlvbl9vcHRpb25zLnBvcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZXMoY29ubmVjdGlvbkF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hZGRyZXNzICYmXG4gICAgICAgICAgICAgICAgICAgIGluc3RydW1lbnRhdGlvbi5fc2VtY29udlN0YWJpbGl0eSAmIGluc3RydW1lbnRhdGlvbl8xLlNlbWNvbnZTdGFiaWxpdHkuT0xEKSB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKHNlbWNvbnZfMS5BVFRSX0RCX0NPTk5FQ1RJT05fU1RSSU5HLCBgcmVkaXM6Ly8ke3RoaXMuYWRkcmVzc31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxDYWxsYmFjayA9IGFyZ3VtZW50c1swXS5jYWxsYmFjaztcbiAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbENvbnRleHQgPSBhcGlfMS5jb250ZXh0LmFjdGl2ZSgpO1xuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbMF0uY2FsbGJhY2sgPSBmdW5jdGlvbiBjYWxsYmFjayhlcnIsIHJlcGx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnPy5yZXNwb25zZUhvb2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZUhvb2sgPSBjb25maWcucmVzcG9uc2VIb29rO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBpbnN0cnVtZW50YXRpb25fMS5zYWZlRXhlY3V0ZUluVGhlTWlkZGxlKSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlSG9vayhzcGFuLCBjbWQuY29tbWFuZCwgY21kLmFyZ3MsIHJlcGx5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0cnVtZW50YXRpb24uX2RpYWcuZXJyb3IoJ0Vycm9yIGV4ZWN1dGluZyByZXNwb25zZUhvb2snLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgdXRpbHNfMS5lbmRTcGFuKShzcGFuLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwaV8xLmNvbnRleHQud2l0aChvcmlnaW5hbENvbnRleHQsIG9yaWdpbmFsQ2FsbGJhY2ssIHRoaXMsIC4uLmFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNwYW4gd2lsbCBiZSBlbmRlZCBpbiBjYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWwuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKHJldGhyb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgKDAsIHV0aWxzXzEuZW5kU3Bhbikoc3BhbiwgcmV0aHJvdyk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJldGhyb3c7IC8vIHJldGhyb3cgYWZ0ZXIgZW5kaW5nIHNwYW5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgIH1cbiAgICBfZ2V0UGF0Y2hDcmVhdGVDbGllbnQoKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBjcmVhdGVDbGllbnQob3JpZ2luYWwpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgdXRpbHNfMS5nZXRUcmFjZWRDcmVhdGVDbGllbnQpKG9yaWdpbmFsKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2dldFBhdGNoQ3JlYXRlU3RyZWFtKCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gY3JlYXRlUmVhZFN0cmVhbShvcmlnaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCB1dGlsc18xLmdldFRyYWNlZENyZWF0ZVN0cmVhbVRyYWNlKShvcmlnaW5hbCk7XG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0cy5SZWRpc0luc3RydW1lbnRhdGlvblYyX1YzID0gUmVkaXNJbnN0cnVtZW50YXRpb25WMl9WMztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluc3RydW1lbnRhdGlvbi5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/utils.js":
/*!****************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/utils.js ***!
\****************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval("\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getTracedCreateStreamTrace = exports.getTracedCreateClient = exports.endSpan = void 0;\nconst api_1 = __webpack_require__(/*! @opentelemetry/api */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/index.js\");\nconst endSpan = (span, err) => {\n if (err) {\n span.setStatus({\n code: api_1.SpanStatusCode.ERROR,\n message: err.message,\n });\n }\n span.end();\n};\nexports.endSpan = endSpan;\nconst getTracedCreateClient = (original) => {\n return function createClientTrace() {\n const client = original.apply(this, arguments);\n return api_1.context.bind(api_1.context.active(), client);\n };\n};\nexports.getTracedCreateClient = getTracedCreateClient;\nconst getTracedCreateStreamTrace = (original) => {\n return function create_stream_trace() {\n if (!Object.prototype.hasOwnProperty.call(this, 'stream')) {\n Object.defineProperty(this, 'stream', {\n get() {\n return this._patched_redis_stream;\n },\n set(val) {\n api_1.context.bind(api_1.context.active(), val);\n this._patched_redis_stream = val;\n },\n });\n }\n return original.apply(this, arguments);\n };\n};\nexports.getTracedCreateStreamTrace = getTracedCreateStreamTrace;\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvdjItdjMvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0NBQWtDLEdBQUcsNkJBQTZCLEdBQUcsZUFBZTtBQUNwRixjQUFjLG1CQUFPLENBQUMsa0lBQW9CO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS9Ab3BlbnRlbGVtZXRyeStpbnN0cnVtZW50YXRpb24tcmVkaXNAMC42Mi4wX0BvcGVudGVsZW1ldHJ5K2FwaUAxLjkuMS9ub2RlX21vZHVsZXMvQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uLXJlZGlzL2J1aWxkL3NyYy92Mi12My91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFRyYWNlZENyZWF0ZVN0cmVhbVRyYWNlID0gZXhwb3J0cy5nZXRUcmFjZWRDcmVhdGVDbGllbnQgPSBleHBvcnRzLmVuZFNwYW4gPSB2b2lkIDA7XG5jb25zdCBhcGlfMSA9IHJlcXVpcmUoXCJAb3BlbnRlbGVtZXRyeS9hcGlcIik7XG5jb25zdCBlbmRTcGFuID0gKHNwYW4sIGVycikgPT4ge1xuICAgIGlmIChlcnIpIHtcbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgY29kZTogYXBpXzEuU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNwYW4uZW5kKCk7XG59O1xuZXhwb3J0cy5lbmRTcGFuID0gZW5kU3BhbjtcbmNvbnN0IGdldFRyYWNlZENyZWF0ZUNsaWVudCA9IChvcmlnaW5hbCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjcmVhdGVDbGllbnRUcmFjZSgpIHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gb3JpZ2luYWwuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgcmV0dXJuIGFwaV8xLmNvbnRleHQuYmluZChhcGlfMS5jb250ZXh0LmFjdGl2ZSgpLCBjbGllbnQpO1xuICAgIH07XG59O1xuZXhwb3J0cy5nZXRUcmFjZWRDcmVhdGVDbGllbnQgPSBnZXRUcmFjZWRDcmVhdGVDbGllbnQ7XG5jb25zdCBnZXRUcmFjZWRDcmVhdGVTdHJlYW1UcmFjZSA9IChvcmlnaW5hbCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjcmVhdGVfc3RyZWFtX3RyYWNlKCkge1xuICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLCAnc3RyZWFtJykpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnc3RyZWFtJywge1xuICAgICAgICAgICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGNoZWRfcmVkaXNfc3RyZWFtO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0KHZhbCkge1xuICAgICAgICAgICAgICAgICAgICBhcGlfMS5jb250ZXh0LmJpbmQoYXBpXzEuY29udGV4dC5hY3RpdmUoKSwgdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGF0Y2hlZF9yZWRpc19zdHJlYW0gPSB2YWw7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH07XG59O1xuZXhwb3J0cy5nZXRUcmFjZWRDcmVhdGVTdHJlYW1UcmFjZSA9IGdldFRyYWNlZENyZWF0ZVN0cmVhbVRyYWNlO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/utils.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/instrumentation.js":
/*!**************************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/instrumentation.js ***!
\**************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval(";globalThis[\"_sentryRewritesTunnelPath\"] = undefined;globalThis[\"SENTRY_RELEASE\"] = undefined;globalThis[\"_sentryBasePath\"] = undefined;globalThis[\"_sentryNextJsVersion\"] = \"16.1.6\";globalThis[\"_sentryRewriteFramesDistDir\"] = \".next\";globalThis[\"_sentryVercelCronsConfig\"] = undefined;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RedisInstrumentationV4_V5 = void 0;\nconst api_1 = __webpack_require__(/*! @opentelemetry/api */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/esm/index.js\");\nconst instrumentation_1 = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.214.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\nconst utils_1 = __webpack_require__(/*! ./utils */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/utils.js\");\nconst redis_common_1 = __webpack_require__(/*! @opentelemetry/redis-common */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+redis-common@0.38.2/node_modules/@opentelemetry/redis-common/build/src/index.js\");\n/** @knipignore */\nconst version_1 = __webpack_require__(/*! ../version */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js\");\nconst semantic_conventions_1 = __webpack_require__(/*! @opentelemetry/semantic-conventions */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+semantic-conventions@1.40.0/node_modules/@opentelemetry/semantic-conventions/build/esm/index.js\");\nconst semconv_1 = __webpack_require__(/*! ../semconv */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js\");\nconst OTEL_OPEN_SPANS = Symbol('opentelemetry.instrumentation.redis.open_spans');\nconst MULTI_COMMAND_OPTIONS = Symbol('opentelemetry.instrumentation.redis.multi_command_options');\nclass RedisInstrumentationV4_V5 extends instrumentation_1.InstrumentationBase {\n static COMPONENT = 'redis';\n _semconvStability;\n constructor(config = {}) {\n super(version_1.PACKAGE_NAME, version_1.PACKAGE_VERSION, config);\n this._semconvStability = config.semconvStability\n ? config.semconvStability\n : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n }\n setConfig(config = {}) {\n super.setConfig(config);\n this._semconvStability = config.semconvStability\n ? config.semconvStability\n : (0, instrumentation_1.semconvStabilityFromStr)('database', process.env.OTEL_SEMCONV_STABILITY_OPT_IN);\n }\n init() {\n // @node-redis/client is a new package introduced and consumed by 'redis 4.0.x'\n // on redis@4.1.0 it was changed to @redis/client.\n // we will instrument both packages\n return [\n this._getInstrumentationNodeModuleDefinition('@redis/client'),\n this._getInstrumentationNodeModuleDefinition('@node-redis/client'),\n ];\n }\n _getInstrumentationNodeModuleDefinition(basePackageName) {\n const commanderModuleFile = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/commander.js`, ['^1.0.0'], (moduleExports, moduleVersion) => {\n const transformCommandArguments = moduleExports.transformCommandArguments;\n if (!transformCommandArguments) {\n this._diag.error('internal instrumentation error, missing transformCommandArguments function');\n return moduleExports;\n }\n // function name and signature changed in redis 4.1.0 from 'extendWithCommands' to 'attachCommands'\n // the matching internal package names starts with 1.0.x (for redis 4.0.x)\n const functionToPatch = moduleVersion?.startsWith('1.0.')\n ? 'extendWithCommands'\n : 'attachCommands';\n // this is the function that extend a redis client with a list of commands.\n // the function patches the commandExecutor to record a span\n if ((0, instrumentation_1.isWrapped)(moduleExports?.[functionToPatch])) {\n this._unwrap(moduleExports, functionToPatch);\n }\n this._wrap(moduleExports, functionToPatch, this._getPatchExtendWithCommands(transformCommandArguments));\n return moduleExports;\n }, (moduleExports) => {\n if ((0, instrumentation_1.isWrapped)(moduleExports?.extendWithCommands)) {\n this._unwrap(moduleExports, 'extendWithCommands');\n }\n if ((0, instrumentation_1.isWrapped)(moduleExports?.attachCommands)) {\n this._unwrap(moduleExports, 'attachCommands');\n }\n });\n const multiCommanderModule = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/client/multi-command.js`, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, 'exec');\n }\n this._wrap(redisClientMultiCommandPrototype, 'exec', this._getPatchMultiCommandsExec(false));\n if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.execAsPipeline)) {\n this._unwrap(redisClientMultiCommandPrototype, 'execAsPipeline');\n }\n this._wrap(redisClientMultiCommandPrototype, 'execAsPipeline', this._getPatchMultiCommandsExec(true));\n if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n }\n this._wrap(redisClientMultiCommandPrototype, 'addCommand', this._getPatchMultiCommandsAddCommand());\n return moduleExports;\n }, (moduleExports) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, 'exec');\n }\n if ((0, instrumentation_1.isWrapped)(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n }\n });\n const clientIndexModule = new instrumentation_1.InstrumentationNodeModuleFile(`${basePackageName}/dist/lib/client/index.js`, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n // In some @redis/client versions 'multi' is a method. In later\n // versions, as of https://github.com/redis/node-redis/pull/2324,\n // 'MULTI' is a method and 'multi' is a property defined in the\n // constructor that points to 'MULTI', and therefore it will not\n // be defined on the prototype.\n if (redisClientPrototype?.multi) {\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, 'multi');\n }\n this._wrap(redisClientPrototype, 'multi', this._getPatchRedisClientMulti());\n }\n if (redisClientPrototype?.MULTI) {\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, 'MULTI');\n }\n this._wrap(redisClientPrototype, 'MULTI', this._getPatchRedisClientMulti());\n }\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, 'sendCommand');\n }\n this._wrap(redisClientPrototype, 'sendCommand', this._getPatchRedisClientSendCommand());\n this._wrap(redisClientPrototype, 'connect', this._getPatchedClientConnect());\n return moduleExports;\n }, (moduleExports) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, 'multi');\n }\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, 'MULTI');\n }\n if ((0, instrumentation_1.isWrapped)(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, 'sendCommand');\n }\n });\n return new instrumentation_1.InstrumentationNodeModuleDefinition(basePackageName, ['^1.0.0', '^5.0.0'], (moduleExports) => {\n return moduleExports;\n }, () => { }, [commanderModuleFile, multiCommanderModule, clientIndexModule]);\n }\n // serves both for redis 4.0.x where function name is extendWithCommands\n // and redis ^4.1.0 where function name is attachCommands\n _getPatchExtendWithCommands(transformCommandArguments) {\n const plugin = this;\n return function extendWithCommandsPatchWrapper(original) {\n return function extendWithCommandsPatch(config) {\n if (config?.BaseClass?.name !== 'RedisClient') {\n return original.apply(this, arguments);\n }\n const origExecutor = config.executor;\n config.executor = function (command, args) {\n const redisCommandArguments = transformCommandArguments(command, args).args;\n return plugin._traceClientCommand(origExecutor, this, arguments, redisCommandArguments);\n };\n return original.apply(this, arguments);\n };\n };\n }\n _getPatchMultiCommandsExec(isPipeline) {\n const plugin = this;\n return function execPatchWrapper(original) {\n return function execPatch() {\n const execRes = original.apply(this, arguments);\n if (typeof execRes?.then !== 'function') {\n plugin._diag.error('non-promise result when patching exec/execAsPipeline');\n return execRes;\n }\n return execRes\n .then((redisRes) => {\n const openSpans = this[OTEL_OPEN_SPANS];\n plugin._endSpansWithRedisReplies(openSpans, redisRes, isPipeline);\n return redisRes;\n })\n .catch((err) => {\n const openSpans = this[OTEL_OPEN_SPANS];\n if (!openSpans) {\n plugin._diag.error('cannot find open spans to end for multi/pipeline');\n }\n else {\n const replies = err.constructor.name === 'MultiErrorReply'\n ? err.replies\n : new Array(openSpans.length).fill(err);\n plugin._endSpansWithRedisReplies(openSpans, replies, isPipeline);\n }\n return Promise.reject(err);\n });\n };\n };\n }\n _getPatchMultiCommandsAddCommand() {\n const plugin = this;\n return function addCommandWrapper(original) {\n return function addCommandPatch(args) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n _getPatchRedisClientMulti() {\n return function multiPatchWrapper(original) {\n return function multiPatch() {\n const multiRes = original.apply(this, arguments);\n multiRes[MULTI_COMMAND_OPTIONS] = this.options;\n return multiRes;\n };\n };\n }\n _getPatchRedisClientSendCommand() {\n const plugin = this;\n return function sendCommandWrapper(original) {\n return function sendCommandPatch(args) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n _getPatchedClientConnect() {\n const plugin = this;\n return function connectWrapper(original) {\n return function patchedConnect() {\n const options = this.options;\n const attributes = (0, utils_1.getClientAttributes)(plugin._diag, options, plugin._semconvStability);\n const span = plugin.tracer.startSpan(`${RedisInstrumentationV4_V5.COMPONENT}-connect`, {\n kind: api_1.SpanKind.CLIENT,\n attributes,\n });\n const res = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n return original.apply(this);\n });\n return res\n .then((result) => {\n span.end();\n return result;\n })\n .catch((error) => {\n span.recordException(error);\n span.setStatus({\n code: api_1.SpanStatusCode.ERROR,\n message: error.message,\n });\n span.end();\n return Promise.reject(error);\n });\n };\n };\n }\n _traceClientCommand(origFunction, origThis, origArguments, redisCommandArguments) {\n const hasNoParentSpan = api_1.trace.getSpan(api_1.context.active()) === undefined;\n if (hasNoParentSpan && this.getConfig().requireParentSpan) {\n return origFunction.apply(origThis, origArguments);\n }\n const clientOptions = origThis.options || origThis[MULTI_COMMAND_OPTIONS];\n const commandName = redisCommandArguments[0]; // types also allows it to be a Buffer, but in practice it only string\n const commandArgs = redisCommandArguments.slice(1);\n const dbStatementSerializer = this.getConfig().dbStatementSerializer || redis_common_1.defaultDbStatementSerializer;\n const attributes = (0, utils_1.getClientAttributes)(this._diag, clientOptions, this._semconvStability);\n if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n attributes[semantic_conventions_1.ATTR_DB_OPERATION_NAME] = commandName;\n }\n try {\n const dbStatement = dbStatementSerializer(commandName, commandArgs);\n if (dbStatement != null) {\n if (this._semconvStability & instrumentation_1.SemconvStability.OLD) {\n attributes[semconv_1.ATTR_DB_STATEMENT] = dbStatement;\n }\n if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n attributes[semantic_conventions_1.ATTR_DB_QUERY_TEXT] = dbStatement;\n }\n }\n }\n catch (e) {\n this._diag.error('dbStatementSerializer throw an exception', e, {\n commandName,\n });\n }\n const span = this.tracer.startSpan(`${RedisInstrumentationV4_V5.COMPONENT}-${commandName}`, {\n kind: api_1.SpanKind.CLIENT,\n attributes,\n });\n const res = api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {\n return origFunction.apply(origThis, origArguments);\n });\n if (typeof res?.then === 'function') {\n res.then((redisRes) => {\n this._endSpanWithResponse(span, commandName, commandArgs, redisRes, undefined);\n }, (err) => {\n this._endSpanWithResponse(span, commandName, commandArgs, null, err);\n });\n }\n else {\n const redisClientMultiCommand = res;\n redisClientMultiCommand[OTEL_OPEN_SPANS] =\n redisClientMultiCommand[OTEL_OPEN_SPANS] || [];\n redisClientMultiCommand[OTEL_OPEN_SPANS].push({\n span,\n commandName,\n commandArgs,\n });\n }\n return res;\n }\n _endSpansWithRedisReplies(openSpans, replies, isPipeline = false) {\n if (!openSpans) {\n return this._diag.error('cannot find open spans to end for redis multi/pipeline');\n }\n if (replies.length !== openSpans.length) {\n return this._diag.error('number of multi command spans does not match response from redis');\n }\n // Determine a single operation name for the batch of commands.\n // If all commands are identical, include the command name (e.g., \"MULTI SET\").\n // Otherwise, use a generic \"MULTI\" or \"PIPELINE\" label for the span.\n const allCommands = openSpans.map(s => s.commandName);\n const allSameCommand = allCommands.every(cmd => cmd === allCommands[0]);\n const operationName = allSameCommand\n ? (isPipeline ? 'PIPELINE ' : 'MULTI ') + allCommands[0]\n : isPipeline\n ? 'PIPELINE'\n : 'MULTI';\n for (let i = 0; i < openSpans.length; i++) {\n const { span, commandArgs } = openSpans[i];\n const currCommandRes = replies[i];\n const [res, err] = currCommandRes instanceof Error\n ? [null, currCommandRes]\n : [currCommandRes, undefined];\n if (this._semconvStability & instrumentation_1.SemconvStability.STABLE) {\n span.setAttribute(semantic_conventions_1.ATTR_DB_OPERATION_NAME, operationName);\n }\n this._endSpanWithResponse(span, allCommands[i], commandArgs, res, err);\n }\n }\n _endSpanWithResponse(span, commandName, commandArgs, response, error) {\n const { responseHook } = this.getConfig();\n if (!error && responseHook) {\n try {\n responseHook(span, commandName, commandArgs, response);\n }\n catch (err) {\n this._diag.error('responseHook throw an exception', err);\n }\n }\n if (error) {\n span.recordException(error);\n span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: error?.message });\n }\n span.end();\n }\n}\nexports.RedisInstrumentationV4_V5 = RedisInstrumentationV4_V5;\n//# sourceMappingURL=instrumentation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvdjQtdjUvaW5zdHJ1bWVudGF0aW9uLmpzIiwibWFwcGluZ3MiOiJBQUFhLENBQUMsb0RBQW9ELHlDQUF5QywwQ0FBMEMsOENBQThDLG9EQUFvRDtBQUN2UDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsaUNBQWlDO0FBQ2pDLGNBQWMsbUJBQU8sQ0FBQyxrSUFBb0I7QUFDMUMsMEJBQTBCLG1CQUFPLENBQUMsaU1BQWdDO0FBQ2xFLGdCQUFnQixtQkFBTyxDQUFDLDJMQUFTO0FBQ2pDLHVCQUF1QixtQkFBTyxDQUFDLDhKQUE2QjtBQUM1RDtBQUNBLGtCQUFrQixtQkFBTyxDQUFDLDBMQUFZO0FBQ3RDLCtCQUErQixtQkFBTyxDQUFDLHNMQUFxQztBQUM1RSxrQkFBa0IsbUJBQU8sQ0FBQywwTEFBWTtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkZBQTJGLGdCQUFnQjtBQUMzRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCw0RkFBNEYsZ0JBQWdCO0FBQzVHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QseUZBQXlGLGdCQUFnQjtBQUN6RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVMsV0FBVztBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0RBQXdELG9DQUFvQztBQUM1RjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsOENBQThDLG9DQUFvQyxHQUFHLFlBQVk7QUFDakc7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixzQkFBc0I7QUFDOUMsb0JBQW9CLG9CQUFvQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGVBQWU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsMkRBQTJEO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDIiwic291cmNlcyI6WyIvVXNlcnMvbWFyY21pbnRlbC9Qcm9qZWN0cy9lLXRpYi5jb20vbm9kZV9tb2R1bGVzLy5wbnBtL0BvcGVudGVsZW1ldHJ5K2luc3RydW1lbnRhdGlvbi1yZWRpc0AwLjYyLjBfQG9wZW50ZWxlbWV0cnkrYXBpQDEuOS4xL25vZGVfbW9kdWxlcy9Ab3BlbnRlbGVtZXRyeS9pbnN0cnVtZW50YXRpb24tcmVkaXMvYnVpbGQvc3JjL3Y0LXY1L2luc3RydW1lbnRhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjs7Z2xvYmFsVGhpc1tcIl9zZW50cnlSZXdyaXRlc1R1bm5lbFBhdGhcIl0gPSB1bmRlZmluZWQ7Z2xvYmFsVGhpc1tcIlNFTlRSWV9SRUxFQVNFXCJdID0gdW5kZWZpbmVkO2dsb2JhbFRoaXNbXCJfc2VudHJ5QmFzZVBhdGhcIl0gPSB1bmRlZmluZWQ7Z2xvYmFsVGhpc1tcIl9zZW50cnlOZXh0SnNWZXJzaW9uXCJdID0gXCIxNi4xLjZcIjtnbG9iYWxUaGlzW1wiX3NlbnRyeVJld3JpdGVGcmFtZXNEaXN0RGlyXCJdID0gXCIubmV4dFwiO2dsb2JhbFRoaXNbXCJfc2VudHJ5VmVyY2VsQ3JvbnNDb25maWdcIl0gPSB1bmRlZmluZWQ7XG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SZWRpc0luc3RydW1lbnRhdGlvblY0X1Y1ID0gdm9pZCAwO1xuY29uc3QgYXBpXzEgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvYXBpXCIpO1xuY29uc3QgaW5zdHJ1bWVudGF0aW9uXzEgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uXCIpO1xuY29uc3QgdXRpbHNfMSA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuY29uc3QgcmVkaXNfY29tbW9uXzEgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvcmVkaXMtY29tbW9uXCIpO1xuLyoqIEBrbmlwaWdub3JlICovXG5jb25zdCB2ZXJzaW9uXzEgPSByZXF1aXJlKFwiLi4vdmVyc2lvblwiKTtcbmNvbnN0IHNlbWFudGljX2NvbnZlbnRpb25zXzEgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvc2VtYW50aWMtY29udmVudGlvbnNcIik7XG5jb25zdCBzZW1jb252XzEgPSByZXF1aXJlKFwiLi4vc2VtY29udlwiKTtcbmNvbnN0IE9URUxfT1BFTl9TUEFOUyA9IFN5bWJvbCgnb3BlbnRlbGVtZXRyeS5pbnN0cnVtZW50YXRpb24ucmVkaXMub3Blbl9zcGFucycpO1xuY29uc3QgTVVMVElfQ09NTUFORF9PUFRJT05TID0gU3ltYm9sKCdvcGVudGVsZW1ldHJ5Lmluc3RydW1lbnRhdGlvbi5yZWRpcy5tdWx0aV9jb21tYW5kX29wdGlvbnMnKTtcbmNsYXNzIFJlZGlzSW5zdHJ1bWVudGF0aW9uVjRfVjUgZXh0ZW5kcyBpbnN0cnVtZW50YXRpb25fMS5JbnN0cnVtZW50YXRpb25CYXNlIHtcbiAgICBzdGF0aWMgQ09NUE9ORU5UID0gJ3JlZGlzJztcbiAgICBfc2VtY29udlN0YWJpbGl0eTtcbiAgICBjb25zdHJ1Y3Rvcihjb25maWcgPSB7fSkge1xuICAgICAgICBzdXBlcih2ZXJzaW9uXzEuUEFDS0FHRV9OQU1FLCB2ZXJzaW9uXzEuUEFDS0FHRV9WRVJTSU9OLCBjb25maWcpO1xuICAgICAgICB0aGlzLl9zZW1jb252U3RhYmlsaXR5ID0gY29uZmlnLnNlbWNvbnZTdGFiaWxpdHlcbiAgICAgICAgICAgID8gY29uZmlnLnNlbWNvbnZTdGFiaWxpdHlcbiAgICAgICAgICAgIDogKDAsIGluc3RydW1lbnRhdGlvbl8xLnNlbWNvbnZTdGFiaWxpdHlGcm9tU3RyKSgnZGF0YWJhc2UnLCBwcm9jZXNzLmVudi5PVEVMX1NFTUNPTlZfU1RBQklMSVRZX09QVF9JTik7XG4gICAgfVxuICAgIHNldENvbmZpZyhjb25maWcgPSB7fSkge1xuICAgICAgICBzdXBlci5zZXRDb25maWcoY29uZmlnKTtcbiAgICAgICAgdGhpcy5fc2VtY29udlN0YWJpbGl0eSA9IGNvbmZpZy5zZW1jb252U3RhYmlsaXR5XG4gICAgICAgICAgICA/IGNvbmZpZy5zZW1jb252U3RhYmlsaXR5XG4gICAgICAgICAgICA6ICgwLCBpbnN0cnVtZW50YXRpb25fMS5zZW1jb252U3RhYmlsaXR5RnJvbVN0cikoJ2RhdGFiYXNlJywgcHJvY2Vzcy5lbnYuT1RFTF9TRU1DT05WX1NUQUJJTElUWV9PUFRfSU4pO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgICAgICAvLyBAbm9kZS1yZWRpcy9jbGllbnQgaXMgYSBuZXcgcGFja2FnZSBpbnRyb2R1Y2VkIGFuZCBjb25zdW1lZCBieSAncmVkaXMgNC4wLngnXG4gICAgICAgIC8vIG9uIHJlZGlzQDQuMS4wIGl0IHdhcyBjaGFuZ2VkIHRvIEByZWRpcy9jbGllbnQuXG4gICAgICAgIC8vIHdlIHdpbGwgaW5zdHJ1bWVudCBib3RoIHBhY2thZ2VzXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLl9nZXRJbnN0cnVtZW50YXRpb25Ob2RlTW9kdWxlRGVmaW5pdGlvbignQHJlZGlzL2NsaWVudCcpLFxuICAgICAgICAgICAgdGhpcy5fZ2V0SW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZURlZmluaXRpb24oJ0Bub2RlLXJlZGlzL2NsaWVudCcpLFxuICAgICAgICBdO1xuICAgIH1cbiAgICBfZ2V0SW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZURlZmluaXRpb24oYmFzZVBhY2thZ2VOYW1lKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRlck1vZHVsZUZpbGUgPSBuZXcgaW5zdHJ1bWVudGF0aW9uXzEuSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZUZpbGUoYCR7YmFzZVBhY2thZ2VOYW1lfS9kaXN0L2xpYi9jb21tYW5kZXIuanNgLCBbJ14xLjAuMCddLCAobW9kdWxlRXhwb3J0cywgbW9kdWxlVmVyc2lvbikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtQ29tbWFuZEFyZ3VtZW50cyA9IG1vZHVsZUV4cG9ydHMudHJhbnNmb3JtQ29tbWFuZEFyZ3VtZW50cztcbiAgICAgICAgICAgIGlmICghdHJhbnNmb3JtQ29tbWFuZEFyZ3VtZW50cykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWcuZXJyb3IoJ2ludGVybmFsIGluc3RydW1lbnRhdGlvbiBlcnJvciwgbWlzc2luZyB0cmFuc2Zvcm1Db21tYW5kQXJndW1lbnRzIGZ1bmN0aW9uJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vZHVsZUV4cG9ydHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBmdW5jdGlvbiBuYW1lIGFuZCBzaWduYXR1cmUgY2hhbmdlZCBpbiByZWRpcyA0LjEuMCBmcm9tICdleHRlbmRXaXRoQ29tbWFuZHMnIHRvICdhdHRhY2hDb21tYW5kcydcbiAgICAgICAgICAgIC8vIHRoZSBtYXRjaGluZyBpbnRlcm5hbCBwYWNrYWdlIG5hbWVzIHN0YXJ0cyB3aXRoIDEuMC54IChmb3IgcmVkaXMgNC4wLngpXG4gICAgICAgICAgICBjb25zdCBmdW5jdGlvblRvUGF0Y2ggPSBtb2R1bGVWZXJzaW9uPy5zdGFydHNXaXRoKCcxLjAuJylcbiAgICAgICAgICAgICAgICA/ICdleHRlbmRXaXRoQ29tbWFuZHMnXG4gICAgICAgICAgICAgICAgOiAnYXR0YWNoQ29tbWFuZHMnO1xuICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBleHRlbmQgYSByZWRpcyBjbGllbnQgd2l0aCBhIGxpc3Qgb2YgY29tbWFuZHMuXG4gICAgICAgICAgICAvLyB0aGUgZnVuY3Rpb24gcGF0Y2hlcyB0aGUgY29tbWFuZEV4ZWN1dG9yIHRvIHJlY29yZCBhIHNwYW5cbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShtb2R1bGVFeHBvcnRzPy5bZnVuY3Rpb25Ub1BhdGNoXSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl91bndyYXAobW9kdWxlRXhwb3J0cywgZnVuY3Rpb25Ub1BhdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3dyYXAobW9kdWxlRXhwb3J0cywgZnVuY3Rpb25Ub1BhdGNoLCB0aGlzLl9nZXRQYXRjaEV4dGVuZFdpdGhDb21tYW5kcyh0cmFuc2Zvcm1Db21tYW5kQXJndW1lbnRzKSk7XG4gICAgICAgICAgICByZXR1cm4gbW9kdWxlRXhwb3J0cztcbiAgICAgICAgfSwgKG1vZHVsZUV4cG9ydHMpID0+IHtcbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShtb2R1bGVFeHBvcnRzPy5leHRlbmRXaXRoQ29tbWFuZHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKG1vZHVsZUV4cG9ydHMsICdleHRlbmRXaXRoQ29tbWFuZHMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShtb2R1bGVFeHBvcnRzPy5hdHRhY2hDb21tYW5kcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl91bndyYXAobW9kdWxlRXhwb3J0cywgJ2F0dGFjaENvbW1hbmRzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBtdWx0aUNvbW1hbmRlck1vZHVsZSA9IG5ldyBpbnN0cnVtZW50YXRpb25fMS5JbnN0cnVtZW50YXRpb25Ob2RlTW9kdWxlRmlsZShgJHtiYXNlUGFja2FnZU5hbWV9L2Rpc3QvbGliL2NsaWVudC9tdWx0aS1jb21tYW5kLmpzYCwgWydeMS4wLjAnLCAnXjUuMC4wJ10sIChtb2R1bGVFeHBvcnRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWRpc0NsaWVudE11bHRpQ29tbWFuZFByb3RvdHlwZSA9IG1vZHVsZUV4cG9ydHM/LmRlZmF1bHQ/LnByb3RvdHlwZTtcbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudE11bHRpQ29tbWFuZFByb3RvdHlwZT8uZXhlYykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl91bndyYXAocmVkaXNDbGllbnRNdWx0aUNvbW1hbmRQcm90b3R5cGUsICdleGVjJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl93cmFwKHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kUHJvdG90eXBlLCAnZXhlYycsIHRoaXMuX2dldFBhdGNoTXVsdGlDb21tYW5kc0V4ZWMoZmFsc2UpKTtcbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudE11bHRpQ29tbWFuZFByb3RvdHlwZT8uZXhlY0FzUGlwZWxpbmUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kUHJvdG90eXBlLCAnZXhlY0FzUGlwZWxpbmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3dyYXAocmVkaXNDbGllbnRNdWx0aUNvbW1hbmRQcm90b3R5cGUsICdleGVjQXNQaXBlbGluZScsIHRoaXMuX2dldFBhdGNoTXVsdGlDb21tYW5kc0V4ZWModHJ1ZSkpO1xuICAgICAgICAgICAgaWYgKCgwLCBpbnN0cnVtZW50YXRpb25fMS5pc1dyYXBwZWQpKHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kUHJvdG90eXBlPy5hZGRDb21tYW5kKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChyZWRpc0NsaWVudE11bHRpQ29tbWFuZFByb3RvdHlwZSwgJ2FkZENvbW1hbmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3dyYXAocmVkaXNDbGllbnRNdWx0aUNvbW1hbmRQcm90b3R5cGUsICdhZGRDb21tYW5kJywgdGhpcy5fZ2V0UGF0Y2hNdWx0aUNvbW1hbmRzQWRkQ29tbWFuZCgpKTtcbiAgICAgICAgICAgIHJldHVybiBtb2R1bGVFeHBvcnRzO1xuICAgICAgICB9LCAobW9kdWxlRXhwb3J0cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVkaXNDbGllbnRNdWx0aUNvbW1hbmRQcm90b3R5cGUgPSBtb2R1bGVFeHBvcnRzPy5kZWZhdWx0Py5wcm90b3R5cGU7XG4gICAgICAgICAgICBpZiAoKDAsIGluc3RydW1lbnRhdGlvbl8xLmlzV3JhcHBlZCkocmVkaXNDbGllbnRNdWx0aUNvbW1hbmRQcm90b3R5cGU/LmV4ZWMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kUHJvdG90eXBlLCAnZXhlYycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCgwLCBpbnN0cnVtZW50YXRpb25fMS5pc1dyYXBwZWQpKHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kUHJvdG90eXBlPy5hZGRDb21tYW5kKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChyZWRpc0NsaWVudE11bHRpQ29tbWFuZFByb3RvdHlwZSwgJ2FkZENvbW1hbmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNsaWVudEluZGV4TW9kdWxlID0gbmV3IGluc3RydW1lbnRhdGlvbl8xLkluc3RydW1lbnRhdGlvbk5vZGVNb2R1bGVGaWxlKGAke2Jhc2VQYWNrYWdlTmFtZX0vZGlzdC9saWIvY2xpZW50L2luZGV4LmpzYCwgWydeMS4wLjAnLCAnXjUuMC4wJ10sIChtb2R1bGVFeHBvcnRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWRpc0NsaWVudFByb3RvdHlwZSA9IG1vZHVsZUV4cG9ydHM/LmRlZmF1bHQ/LnByb3RvdHlwZTtcbiAgICAgICAgICAgIC8vIEluIHNvbWUgQHJlZGlzL2NsaWVudCB2ZXJzaW9ucyAnbXVsdGknIGlzIGEgbWV0aG9kLiBJbiBsYXRlclxuICAgICAgICAgICAgLy8gdmVyc2lvbnMsIGFzIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWRpcy9ub2RlLXJlZGlzL3B1bGwvMjMyNCxcbiAgICAgICAgICAgIC8vICdNVUxUSScgaXMgYSBtZXRob2QgYW5kICdtdWx0aScgaXMgYSBwcm9wZXJ0eSBkZWZpbmVkIGluIHRoZVxuICAgICAgICAgICAgLy8gY29uc3RydWN0b3IgdGhhdCBwb2ludHMgdG8gJ01VTFRJJywgYW5kIHRoZXJlZm9yZSBpdCB3aWxsIG5vdFxuICAgICAgICAgICAgLy8gYmUgZGVmaW5lZCBvbiB0aGUgcHJvdG90eXBlLlxuICAgICAgICAgICAgaWYgKHJlZGlzQ2xpZW50UHJvdG90eXBlPy5tdWx0aSkge1xuICAgICAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudFByb3RvdHlwZT8ubXVsdGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChyZWRpc0NsaWVudFByb3RvdHlwZSwgJ211bHRpJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3dyYXAocmVkaXNDbGllbnRQcm90b3R5cGUsICdtdWx0aScsIHRoaXMuX2dldFBhdGNoUmVkaXNDbGllbnRNdWx0aSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZWRpc0NsaWVudFByb3RvdHlwZT8uTVVMVEkpIHtcbiAgICAgICAgICAgICAgICBpZiAoKDAsIGluc3RydW1lbnRhdGlvbl8xLmlzV3JhcHBlZCkocmVkaXNDbGllbnRQcm90b3R5cGU/Lk1VTFRJKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl91bndyYXAocmVkaXNDbGllbnRQcm90b3R5cGUsICdNVUxUSScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl93cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnTVVMVEknLCB0aGlzLl9nZXRQYXRjaFJlZGlzQ2xpZW50TXVsdGkoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKDAsIGluc3RydW1lbnRhdGlvbl8xLmlzV3JhcHBlZCkocmVkaXNDbGllbnRQcm90b3R5cGU/LnNlbmRDb21tYW5kKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vud3JhcChyZWRpc0NsaWVudFByb3RvdHlwZSwgJ3NlbmRDb21tYW5kJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl93cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnc2VuZENvbW1hbmQnLCB0aGlzLl9nZXRQYXRjaFJlZGlzQ2xpZW50U2VuZENvbW1hbmQoKSk7XG4gICAgICAgICAgICB0aGlzLl93cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnY29ubmVjdCcsIHRoaXMuX2dldFBhdGNoZWRDbGllbnRDb25uZWN0KCkpO1xuICAgICAgICAgICAgcmV0dXJuIG1vZHVsZUV4cG9ydHM7XG4gICAgICAgIH0sIChtb2R1bGVFeHBvcnRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWRpc0NsaWVudFByb3RvdHlwZSA9IG1vZHVsZUV4cG9ydHM/LmRlZmF1bHQ/LnByb3RvdHlwZTtcbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudFByb3RvdHlwZT8ubXVsdGkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnbXVsdGknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudFByb3RvdHlwZT8uTVVMVEkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnTVVMVEknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoMCwgaW5zdHJ1bWVudGF0aW9uXzEuaXNXcmFwcGVkKShyZWRpc0NsaWVudFByb3RvdHlwZT8uc2VuZENvbW1hbmQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW53cmFwKHJlZGlzQ2xpZW50UHJvdG90eXBlLCAnc2VuZENvbW1hbmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgaW5zdHJ1bWVudGF0aW9uXzEuSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZURlZmluaXRpb24oYmFzZVBhY2thZ2VOYW1lLCBbJ14xLjAuMCcsICdeNS4wLjAnXSwgKG1vZHVsZUV4cG9ydHMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBtb2R1bGVFeHBvcnRzO1xuICAgICAgICB9LCAoKSA9PiB7IH0sIFtjb21tYW5kZXJNb2R1bGVGaWxlLCBtdWx0aUNvbW1hbmRlck1vZHVsZSwgY2xpZW50SW5kZXhNb2R1bGVdKTtcbiAgICB9XG4gICAgLy8gc2VydmVzIGJvdGggZm9yIHJlZGlzIDQuMC54IHdoZXJlIGZ1bmN0aW9uIG5hbWUgaXMgZXh0ZW5kV2l0aENvbW1hbmRzXG4gICAgLy8gYW5kIHJlZGlzIF40LjEuMCB3aGVyZSBmdW5jdGlvbiBuYW1lIGlzIGF0dGFjaENvbW1hbmRzXG4gICAgX2dldFBhdGNoRXh0ZW5kV2l0aENvbW1hbmRzKHRyYW5zZm9ybUNvbW1hbmRBcmd1bWVudHMpIHtcbiAgICAgICAgY29uc3QgcGx1Z2luID0gdGhpcztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGV4dGVuZFdpdGhDb21tYW5kc1BhdGNoV3JhcHBlcihvcmlnaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGV4dGVuZFdpdGhDb21tYW5kc1BhdGNoKGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGlmIChjb25maWc/LkJhc2VDbGFzcz8ubmFtZSAhPT0gJ1JlZGlzQ2xpZW50Jykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWwuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ0V4ZWN1dG9yID0gY29uZmlnLmV4ZWN1dG9yO1xuICAgICAgICAgICAgICAgIGNvbmZpZy5leGVjdXRvciA9IGZ1bmN0aW9uIChjb21tYW5kLCBhcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlzQ29tbWFuZEFyZ3VtZW50cyA9IHRyYW5zZm9ybUNvbW1hbmRBcmd1bWVudHMoY29tbWFuZCwgYXJncykuYXJncztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBsdWdpbi5fdHJhY2VDbGllbnRDb21tYW5kKG9yaWdFeGVjdXRvciwgdGhpcywgYXJndW1lbnRzLCByZWRpc0NvbW1hbmRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgIH1cbiAgICBfZ2V0UGF0Y2hNdWx0aUNvbW1hbmRzRXhlYyhpc1BpcGVsaW5lKSB7XG4gICAgICAgIGNvbnN0IHBsdWdpbiA9IHRoaXM7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBleGVjUGF0Y2hXcmFwcGVyKG9yaWdpbmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gZXhlY1BhdGNoKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4ZWNSZXMgPSBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZXhlY1Jlcz8udGhlbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBwbHVnaW4uX2RpYWcuZXJyb3IoJ25vbi1wcm9taXNlIHJlc3VsdCB3aGVuIHBhdGNoaW5nIGV4ZWMvZXhlY0FzUGlwZWxpbmUnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4ZWNSZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBleGVjUmVzXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChyZWRpc1JlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcGVuU3BhbnMgPSB0aGlzW09URUxfT1BFTl9TUEFOU107XG4gICAgICAgICAgICAgICAgICAgIHBsdWdpbi5fZW5kU3BhbnNXaXRoUmVkaXNSZXBsaWVzKG9wZW5TcGFucywgcmVkaXNSZXMsIGlzUGlwZWxpbmUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkaXNSZXM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3BlblNwYW5zID0gdGhpc1tPVEVMX09QRU5fU1BBTlNdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wZW5TcGFucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luLl9kaWFnLmVycm9yKCdjYW5ub3QgZmluZCBvcGVuIHNwYW5zIHRvIGVuZCBmb3IgbXVsdGkvcGlwZWxpbmUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxpZXMgPSBlcnIuY29uc3RydWN0b3IubmFtZSA9PT0gJ011bHRpRXJyb3JSZXBseSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVyci5yZXBsaWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXcgQXJyYXkob3BlblNwYW5zLmxlbmd0aCkuZmlsbChlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luLl9lbmRTcGFuc1dpdGhSZWRpc1JlcGxpZXMob3BlblNwYW5zLCByZXBsaWVzLCBpc1BpcGVsaW5lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuICAgIF9nZXRQYXRjaE11bHRpQ29tbWFuZHNBZGRDb21tYW5kKCkge1xuICAgICAgICBjb25zdCBwbHVnaW4gPSB0aGlzO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gYWRkQ29tbWFuZFdyYXBwZXIob3JpZ2luYWwpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBhZGRDb21tYW5kUGF0Y2goYXJncykge1xuICAgICAgICAgICAgICAgIHJldHVybiBwbHVnaW4uX3RyYWNlQ2xpZW50Q29tbWFuZChvcmlnaW5hbCwgdGhpcywgYXJndW1lbnRzLCBhcmdzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuICAgIF9nZXRQYXRjaFJlZGlzQ2xpZW50TXVsdGkoKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBtdWx0aVBhdGNoV3JhcHBlcihvcmlnaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIG11bHRpUGF0Y2goKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbXVsdGlSZXMgPSBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIG11bHRpUmVzW01VTFRJX0NPTU1BTkRfT1BUSU9OU10gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG11bHRpUmVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2dldFBhdGNoUmVkaXNDbGllbnRTZW5kQ29tbWFuZCgpIHtcbiAgICAgICAgY29uc3QgcGx1Z2luID0gdGhpcztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIHNlbmRDb21tYW5kV3JhcHBlcihvcmlnaW5hbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIHNlbmRDb21tYW5kUGF0Y2goYXJncykge1xuICAgICAgICAgICAgICAgIHJldHVybiBwbHVnaW4uX3RyYWNlQ2xpZW50Q29tbWFuZChvcmlnaW5hbCwgdGhpcywgYXJndW1lbnRzLCBhcmdzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuICAgIF9nZXRQYXRjaGVkQ2xpZW50Q29ubmVjdCgpIHtcbiAgICAgICAgY29uc3QgcGx1Z2luID0gdGhpcztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGNvbm5lY3RXcmFwcGVyKG9yaWdpbmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gcGF0Y2hlZENvbm5lY3QoKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gKDAsIHV0aWxzXzEuZ2V0Q2xpZW50QXR0cmlidXRlcykocGx1Z2luLl9kaWFnLCBvcHRpb25zLCBwbHVnaW4uX3NlbWNvbnZTdGFiaWxpdHkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW4gPSBwbHVnaW4udHJhY2VyLnN0YXJ0U3BhbihgJHtSZWRpc0luc3RydW1lbnRhdGlvblY0X1Y1LkNPTVBPTkVOVH0tY29ubmVjdGAsIHtcbiAgICAgICAgICAgICAgICAgICAga2luZDogYXBpXzEuU3BhbktpbmQuQ0xJRU5ULFxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGFwaV8xLmNvbnRleHQud2l0aChhcGlfMS50cmFjZS5zZXRTcGFuKGFwaV8xLmNvbnRleHQuYWN0aXZlKCksIHNwYW4pLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbC5hcHBseSh0aGlzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogYXBpXzEuU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuICAgIF90cmFjZUNsaWVudENvbW1hbmQob3JpZ0Z1bmN0aW9uLCBvcmlnVGhpcywgb3JpZ0FyZ3VtZW50cywgcmVkaXNDb21tYW5kQXJndW1lbnRzKSB7XG4gICAgICAgIGNvbnN0IGhhc05vUGFyZW50U3BhbiA9IGFwaV8xLnRyYWNlLmdldFNwYW4oYXBpXzEuY29udGV4dC5hY3RpdmUoKSkgPT09IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGhhc05vUGFyZW50U3BhbiAmJiB0aGlzLmdldENvbmZpZygpLnJlcXVpcmVQYXJlbnRTcGFuKSB7XG4gICAgICAgICAgICByZXR1cm4gb3JpZ0Z1bmN0aW9uLmFwcGx5KG9yaWdUaGlzLCBvcmlnQXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjbGllbnRPcHRpb25zID0gb3JpZ1RoaXMub3B0aW9ucyB8fCBvcmlnVGhpc1tNVUxUSV9DT01NQU5EX09QVElPTlNdO1xuICAgICAgICBjb25zdCBjb21tYW5kTmFtZSA9IHJlZGlzQ29tbWFuZEFyZ3VtZW50c1swXTsgLy8gdHlwZXMgYWxzbyBhbGxvd3MgaXQgdG8gYmUgYSBCdWZmZXIsIGJ1dCBpbiBwcmFjdGljZSBpdCBvbmx5IHN0cmluZ1xuICAgICAgICBjb25zdCBjb21tYW5kQXJncyA9IHJlZGlzQ29tbWFuZEFyZ3VtZW50cy5zbGljZSgxKTtcbiAgICAgICAgY29uc3QgZGJTdGF0ZW1lbnRTZXJpYWxpemVyID0gdGhpcy5nZXRDb25maWcoKS5kYlN0YXRlbWVudFNlcmlhbGl6ZXIgfHwgcmVkaXNfY29tbW9uXzEuZGVmYXVsdERiU3RhdGVtZW50U2VyaWFsaXplcjtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9ICgwLCB1dGlsc18xLmdldENsaWVudEF0dHJpYnV0ZXMpKHRoaXMuX2RpYWcsIGNsaWVudE9wdGlvbnMsIHRoaXMuX3NlbWNvbnZTdGFiaWxpdHkpO1xuICAgICAgICBpZiAodGhpcy5fc2VtY29udlN0YWJpbGl0eSAmIGluc3RydW1lbnRhdGlvbl8xLlNlbWNvbnZTdGFiaWxpdHkuU1RBQkxFKSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzW3NlbWFudGljX2NvbnZlbnRpb25zXzEuQVRUUl9EQl9PUEVSQVRJT05fTkFNRV0gPSBjb21tYW5kTmFtZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGJTdGF0ZW1lbnQgPSBkYlN0YXRlbWVudFNlcmlhbGl6ZXIoY29tbWFuZE5hbWUsIGNvbW1hbmRBcmdzKTtcbiAgICAgICAgICAgIGlmIChkYlN0YXRlbWVudCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NlbWNvbnZTdGFiaWxpdHkgJiBpbnN0cnVtZW50YXRpb25fMS5TZW1jb252U3RhYmlsaXR5Lk9MRCkge1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzW3NlbWNvbnZfMS5BVFRSX0RCX1NUQVRFTUVOVF0gPSBkYlN0YXRlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NlbWNvbnZTdGFiaWxpdHkgJiBpbnN0cnVtZW50YXRpb25fMS5TZW1jb252U3RhYmlsaXR5LlNUQUJMRSkge1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzW3NlbWFudGljX2NvbnZlbnRpb25zXzEuQVRUUl9EQl9RVUVSWV9URVhUXSA9IGRiU3RhdGVtZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5fZGlhZy5lcnJvcignZGJTdGF0ZW1lbnRTZXJpYWxpemVyIHRocm93IGFuIGV4Y2VwdGlvbicsIGUsIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kTmFtZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNwYW4gPSB0aGlzLnRyYWNlci5zdGFydFNwYW4oYCR7UmVkaXNJbnN0cnVtZW50YXRpb25WNF9WNS5DT01QT05FTlR9LSR7Y29tbWFuZE5hbWV9YCwge1xuICAgICAgICAgICAga2luZDogYXBpXzEuU3BhbktpbmQuQ0xJRU5ULFxuICAgICAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHJlcyA9IGFwaV8xLmNvbnRleHQud2l0aChhcGlfMS50cmFjZS5zZXRTcGFuKGFwaV8xLmNvbnRleHQuYWN0aXZlKCksIHNwYW4pLCAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gb3JpZ0Z1bmN0aW9uLmFwcGx5KG9yaWdUaGlzLCBvcmlnQXJndW1lbnRzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzPy50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXMudGhlbigocmVkaXNSZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmRTcGFuV2l0aFJlc3BvbnNlKHNwYW4sIGNvbW1hbmROYW1lLCBjb21tYW5kQXJncywgcmVkaXNSZXMsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW5kU3BhbldpdGhSZXNwb25zZShzcGFuLCBjb21tYW5kTmFtZSwgY29tbWFuZEFyZ3MsIG51bGwsIGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kID0gcmVzO1xuICAgICAgICAgICAgcmVkaXNDbGllbnRNdWx0aUNvbW1hbmRbT1RFTF9PUEVOX1NQQU5TXSA9XG4gICAgICAgICAgICAgICAgcmVkaXNDbGllbnRNdWx0aUNvbW1hbmRbT1RFTF9PUEVOX1NQQU5TXSB8fCBbXTtcbiAgICAgICAgICAgIHJlZGlzQ2xpZW50TXVsdGlDb21tYW5kW09URUxfT1BFTl9TUEFOU10ucHVzaCh7XG4gICAgICAgICAgICAgICAgc3BhbixcbiAgICAgICAgICAgICAgICBjb21tYW5kTmFtZSxcbiAgICAgICAgICAgICAgICBjb21tYW5kQXJncyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIF9lbmRTcGFuc1dpdGhSZWRpc1JlcGxpZXMob3BlblNwYW5zLCByZXBsaWVzLCBpc1BpcGVsaW5lID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCFvcGVuU3BhbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaWFnLmVycm9yKCdjYW5ub3QgZmluZCBvcGVuIHNwYW5zIHRvIGVuZCBmb3IgcmVkaXMgbXVsdGkvcGlwZWxpbmUnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVwbGllcy5sZW5ndGggIT09IG9wZW5TcGFucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaWFnLmVycm9yKCdudW1iZXIgb2YgbXVsdGkgY29tbWFuZCBzcGFucyBkb2VzIG5vdCBtYXRjaCByZXNwb25zZSBmcm9tIHJlZGlzJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRGV0ZXJtaW5lIGEgc2luZ2xlIG9wZXJhdGlvbiBuYW1lIGZvciB0aGUgYmF0Y2ggb2YgY29tbWFuZHMuXG4gICAgICAgIC8vIElmIGFsbCBjb21tYW5kcyBhcmUgaWRlbnRpY2FsLCBpbmNsdWRlIHRoZSBjb21tYW5kIG5hbWUgKGUuZy4sIFwiTVVMVEkgU0VUXCIpLlxuICAgICAgICAvLyBPdGhlcndpc2UsIHVzZSBhIGdlbmVyaWMgXCJNVUxUSVwiIG9yIFwiUElQRUxJTkVcIiBsYWJlbCBmb3IgdGhlIHNwYW4uXG4gICAgICAgIGNvbnN0IGFsbENvbW1hbmRzID0gb3BlblNwYW5zLm1hcChzID0+IHMuY29tbWFuZE5hbWUpO1xuICAgICAgICBjb25zdCBhbGxTYW1lQ29tbWFuZCA9IGFsbENvbW1hbmRzLmV2ZXJ5KGNtZCA9PiBjbWQgPT09IGFsbENvbW1hbmRzWzBdKTtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uTmFtZSA9IGFsbFNhbWVDb21tYW5kXG4gICAgICAgICAgICA/IChpc1BpcGVsaW5lID8gJ1BJUEVMSU5FICcgOiAnTVVMVEkgJykgKyBhbGxDb21tYW5kc1swXVxuICAgICAgICAgICAgOiBpc1BpcGVsaW5lXG4gICAgICAgICAgICAgICAgPyAnUElQRUxJTkUnXG4gICAgICAgICAgICAgICAgOiAnTVVMVEknO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wZW5TcGFucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgeyBzcGFuLCBjb21tYW5kQXJncyB9ID0gb3BlblNwYW5zW2ldO1xuICAgICAgICAgICAgY29uc3QgY3VyckNvbW1hbmRSZXMgPSByZXBsaWVzW2ldO1xuICAgICAgICAgICAgY29uc3QgW3JlcywgZXJyXSA9IGN1cnJDb21tYW5kUmVzIGluc3RhbmNlb2YgRXJyb3JcbiAgICAgICAgICAgICAgICA/IFtudWxsLCBjdXJyQ29tbWFuZFJlc11cbiAgICAgICAgICAgICAgICA6IFtjdXJyQ29tbWFuZFJlcywgdW5kZWZpbmVkXTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zZW1jb252U3RhYmlsaXR5ICYgaW5zdHJ1bWVudGF0aW9uXzEuU2VtY29udlN0YWJpbGl0eS5TVEFCTEUpIHtcbiAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZShzZW1hbnRpY19jb252ZW50aW9uc18xLkFUVFJfREJfT1BFUkFUSU9OX05BTUUsIG9wZXJhdGlvbk5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fZW5kU3BhbldpdGhSZXNwb25zZShzcGFuLCBhbGxDb21tYW5kc1tpXSwgY29tbWFuZEFyZ3MsIHJlcywgZXJyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfZW5kU3BhbldpdGhSZXNwb25zZShzcGFuLCBjb21tYW5kTmFtZSwgY29tbWFuZEFyZ3MsIHJlc3BvbnNlLCBlcnJvcikge1xuICAgICAgICBjb25zdCB7IHJlc3BvbnNlSG9vayB9ID0gdGhpcy5nZXRDb25maWcoKTtcbiAgICAgICAgaWYgKCFlcnJvciAmJiByZXNwb25zZUhvb2spIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VIb29rKHNwYW4sIGNvbW1hbmROYW1lLCBjb21tYW5kQXJncywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWcuZXJyb3IoJ3Jlc3BvbnNlSG9vayB0aHJvdyBhbiBleGNlcHRpb24nLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IpO1xuICAgICAgICAgICAgc3Bhbi5zZXRTdGF0dXMoeyBjb2RlOiBhcGlfMS5TcGFuU3RhdHVzQ29kZS5FUlJPUiwgbWVzc2FnZTogZXJyb3I/Lm1lc3NhZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICB9XG59XG5leHBvcnRzLlJlZGlzSW5zdHJ1bWVudGF0aW9uVjRfVjUgPSBSZWRpc0luc3RydW1lbnRhdGlvblY0X1Y1O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5zdHJ1bWVudGF0aW9uLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/instrumentation.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/utils.js":
/*!****************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/utils.js ***!
\****************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getClientAttributes = void 0;\nconst semantic_conventions_1 = __webpack_require__(/*! @opentelemetry/semantic-conventions */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+semantic-conventions@1.40.0/node_modules/@opentelemetry/semantic-conventions/build/esm/index.js\");\nconst semconv_1 = __webpack_require__(/*! ../semconv */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/semconv.js\");\nconst instrumentation_1 = __webpack_require__(/*! @opentelemetry/instrumentation */ \"(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation@0.214.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation/build/esm/index.js\");\nfunction getClientAttributes(diag, options, semconvStability) {\n const attributes = {};\n if (semconvStability & instrumentation_1.SemconvStability.OLD) {\n Object.assign(attributes, {\n [semconv_1.ATTR_DB_SYSTEM]: semconv_1.DB_SYSTEM_VALUE_REDIS,\n [semconv_1.ATTR_NET_PEER_NAME]: options?.socket?.host,\n [semconv_1.ATTR_NET_PEER_PORT]: options?.socket?.port,\n [semconv_1.ATTR_DB_CONNECTION_STRING]: removeCredentialsFromDBConnectionStringAttribute(diag, options?.url),\n });\n }\n if (semconvStability & instrumentation_1.SemconvStability.STABLE) {\n Object.assign(attributes, {\n [semantic_conventions_1.ATTR_DB_SYSTEM_NAME]: semconv_1.DB_SYSTEM_NAME_VALUE_REDIS,\n [semantic_conventions_1.ATTR_SERVER_ADDRESS]: options?.socket?.host,\n [semantic_conventions_1.ATTR_SERVER_PORT]: options?.socket?.port,\n });\n }\n return attributes;\n}\nexports.getClientAttributes = getClientAttributes;\n/**\n * removeCredentialsFromDBConnectionStringAttribute removes basic auth from url and user_pwd from query string\n *\n * Examples:\n * redis://user:pass@localhost:6379/mydb => redis://localhost:6379/mydb\n * redis://localhost:6379?db=mydb&user_pwd=pass => redis://localhost:6379?db=mydb\n */\nfunction removeCredentialsFromDBConnectionStringAttribute(diag, url) {\n if (typeof url !== 'string' || !url) {\n return;\n }\n try {\n const u = new URL(url);\n u.searchParams.delete('user_pwd');\n u.username = '';\n u.password = '';\n return u.href;\n }\n catch (err) {\n diag.error('failed to sanitize redis connection url', err);\n }\n return;\n}\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvdjQtdjUvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0QsMkJBQTJCO0FBQzNCLCtCQUErQixtQkFBTyxDQUFDLHNMQUFxQztBQUM1RSxrQkFBa0IsbUJBQU8sQ0FBQywwTEFBWTtBQUN0QywwQkFBMEIsbUJBQU8sQ0FBQyxpTUFBZ0M7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS9Ab3BlbnRlbGVtZXRyeStpbnN0cnVtZW50YXRpb24tcmVkaXNAMC42Mi4wX0BvcGVudGVsZW1ldHJ5K2FwaUAxLjkuMS9ub2RlX21vZHVsZXMvQG9wZW50ZWxlbWV0cnkvaW5zdHJ1bWVudGF0aW9uLXJlZGlzL2J1aWxkL3NyYy92NC12NS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0Q2xpZW50QXR0cmlidXRlcyA9IHZvaWQgMDtcbmNvbnN0IHNlbWFudGljX2NvbnZlbnRpb25zXzEgPSByZXF1aXJlKFwiQG9wZW50ZWxlbWV0cnkvc2VtYW50aWMtY29udmVudGlvbnNcIik7XG5jb25zdCBzZW1jb252XzEgPSByZXF1aXJlKFwiLi4vc2VtY29udlwiKTtcbmNvbnN0IGluc3RydW1lbnRhdGlvbl8xID0gcmVxdWlyZShcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvblwiKTtcbmZ1bmN0aW9uIGdldENsaWVudEF0dHJpYnV0ZXMoZGlhZywgb3B0aW9ucywgc2VtY29udlN0YWJpbGl0eSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB7fTtcbiAgICBpZiAoc2VtY29udlN0YWJpbGl0eSAmIGluc3RydW1lbnRhdGlvbl8xLlNlbWNvbnZTdGFiaWxpdHkuT0xEKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYXR0cmlidXRlcywge1xuICAgICAgICAgICAgW3NlbWNvbnZfMS5BVFRSX0RCX1NZU1RFTV06IHNlbWNvbnZfMS5EQl9TWVNURU1fVkFMVUVfUkVESVMsXG4gICAgICAgICAgICBbc2VtY29udl8xLkFUVFJfTkVUX1BFRVJfTkFNRV06IG9wdGlvbnM/LnNvY2tldD8uaG9zdCxcbiAgICAgICAgICAgIFtzZW1jb252XzEuQVRUUl9ORVRfUEVFUl9QT1JUXTogb3B0aW9ucz8uc29ja2V0Py5wb3J0LFxuICAgICAgICAgICAgW3NlbWNvbnZfMS5BVFRSX0RCX0NPTk5FQ1RJT05fU1RSSU5HXTogcmVtb3ZlQ3JlZGVudGlhbHNGcm9tREJDb25uZWN0aW9uU3RyaW5nQXR0cmlidXRlKGRpYWcsIG9wdGlvbnM/LnVybCksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoc2VtY29udlN0YWJpbGl0eSAmIGluc3RydW1lbnRhdGlvbl8xLlNlbWNvbnZTdGFiaWxpdHkuU1RBQkxFKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYXR0cmlidXRlcywge1xuICAgICAgICAgICAgW3NlbWFudGljX2NvbnZlbnRpb25zXzEuQVRUUl9EQl9TWVNURU1fTkFNRV06IHNlbWNvbnZfMS5EQl9TWVNURU1fTkFNRV9WQUxVRV9SRURJUyxcbiAgICAgICAgICAgIFtzZW1hbnRpY19jb252ZW50aW9uc18xLkFUVFJfU0VSVkVSX0FERFJFU1NdOiBvcHRpb25zPy5zb2NrZXQ/Lmhvc3QsXG4gICAgICAgICAgICBbc2VtYW50aWNfY29udmVudGlvbnNfMS5BVFRSX1NFUlZFUl9QT1JUXTogb3B0aW9ucz8uc29ja2V0Py5wb3J0LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGF0dHJpYnV0ZXM7XG59XG5leHBvcnRzLmdldENsaWVudEF0dHJpYnV0ZXMgPSBnZXRDbGllbnRBdHRyaWJ1dGVzO1xuLyoqXG4gKiByZW1vdmVDcmVkZW50aWFsc0Zyb21EQkNvbm5lY3Rpb25TdHJpbmdBdHRyaWJ1dGUgcmVtb3ZlcyBiYXNpYyBhdXRoIGZyb20gdXJsIGFuZCB1c2VyX3B3ZCBmcm9tIHF1ZXJ5IHN0cmluZ1xuICpcbiAqIEV4YW1wbGVzOlxuICogICByZWRpczovL3VzZXI6cGFzc0Bsb2NhbGhvc3Q6NjM3OS9teWRiID0+IHJlZGlzOi8vbG9jYWxob3N0OjYzNzkvbXlkYlxuICogICByZWRpczovL2xvY2FsaG9zdDo2Mzc5P2RiPW15ZGImdXNlcl9wd2Q9cGFzcyA9PiByZWRpczovL2xvY2FsaG9zdDo2Mzc5P2RiPW15ZGJcbiAqL1xuZnVuY3Rpb24gcmVtb3ZlQ3JlZGVudGlhbHNGcm9tREJDb25uZWN0aW9uU3RyaW5nQXR0cmlidXRlKGRpYWcsIHVybCkge1xuICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJyB8fCAhdXJsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdSA9IG5ldyBVUkwodXJsKTtcbiAgICAgICAgdS5zZWFyY2hQYXJhbXMuZGVsZXRlKCd1c2VyX3B3ZCcpO1xuICAgICAgICB1LnVzZXJuYW1lID0gJyc7XG4gICAgICAgIHUucGFzc3dvcmQgPSAnJztcbiAgICAgICAgcmV0dXJuIHUuaHJlZjtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICBkaWFnLmVycm9yKCdmYWlsZWQgdG8gc2FuaXRpemUgcmVkaXMgY29ubmVjdGlvbiB1cmwnLCBlcnIpO1xuICAgIH1cbiAgICByZXR1cm47XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/v4-v5/utils.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js":
/*!************************************************************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js ***!
\************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
eval("\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.PACKAGE_VERSION = '0.62.0';\nexports.PACKAGE_NAME = '@opentelemetry/instrumentation-redis';\n//# sourceMappingURL=version.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vQG9wZW50ZWxlbWV0cnkraW5zdHJ1bWVudGF0aW9uLXJlZGlzQDAuNjIuMF9Ab3BlbnRlbGVtZXRyeSthcGlAMS45LjEvbm9kZV9tb2R1bGVzL0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcy9idWlsZC9zcmMvdmVyc2lvbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxvQkFBb0IsR0FBRyx1QkFBdUI7QUFDOUM7QUFDQSx1QkFBdUI7QUFDdkIsb0JBQW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWFyY21pbnRlbC9Qcm9qZWN0cy9lLXRpYi5jb20vbm9kZV9tb2R1bGVzLy5wbnBtL0BvcGVudGVsZW1ldHJ5K2luc3RydW1lbnRhdGlvbi1yZWRpc0AwLjYyLjBfQG9wZW50ZWxlbWV0cnkrYXBpQDEuOS4xL25vZGVfbW9kdWxlcy9Ab3BlbnRlbGVtZXRyeS9pbnN0cnVtZW50YXRpb24tcmVkaXMvYnVpbGQvc3JjL3ZlcnNpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5QQUNLQUdFX05BTUUgPSBleHBvcnRzLlBBQ0tBR0VfVkVSU0lPTiA9IHZvaWQgMDtcbi8vIHRoaXMgaXMgYXV0b2dlbmVyYXRlZCBmaWxlLCBzZWUgc2NyaXB0cy92ZXJzaW9uLXVwZGF0ZS5qc1xuZXhwb3J0cy5QQUNLQUdFX1ZFUlNJT04gPSAnMC42Mi4wJztcbmV4cG9ydHMuUEFDS0FHRV9OQU1FID0gJ0BvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1yZWRpcyc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD12ZXJzaW9uLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/@opentelemetry+instrumentation-redis@0.62.0_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/instrumentation-redis/build/src/version.js\n");
/***/ })
};
;