@getopenpay/openpay-js 0.3.3 → 0.3.5-alpha.15c8455

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,52 @@
1
+ import { m as s } from "./metrics-api-CmjS_jEE.js";
2
+ import { t as d } from "./index-J2Ae7cvA.js";
3
+ import { l as u } from "./utils-BerULHZm.js";
4
+ import { I as N, i as T, s as w, a as E } from "./utils-BerULHZm.js";
5
+ import { d as f } from "./diag-api-B65gCteJ.js";
6
+ function l(e, r, t, o) {
7
+ for (var n = 0, a = e.length; n < a; n++) {
8
+ var i = e[n];
9
+ r && i.setTracerProvider(r), t && i.setMeterProvider(t), o && i.setLoggerProvider && i.setLoggerProvider(o), i.getConfig().enabled || i.enable();
10
+ }
11
+ }
12
+ function c(e) {
13
+ e.forEach(function(r) {
14
+ return r.disable();
15
+ });
16
+ }
17
+ function I(e) {
18
+ var r, t, o = e.tracerProvider || d.getTracerProvider(), n = e.meterProvider || s.getMeterProvider(), a = e.loggerProvider || u.getLoggerProvider(), i = (t = (r = e.instrumentations) === null || r === void 0 ? void 0 : r.flat()) !== null && t !== void 0 ? t : [];
19
+ return l(i, o, n, a), function() {
20
+ c(i);
21
+ };
22
+ }
23
+ function m(e) {
24
+ return f.warn("Path normalization is not implemented for this platform. To silence this warning, ensure no node-specific instrumentations are loaded, and node-specific types (e.g. InstrumentationNodeModuleFile), are not used in a browser context)"), e;
25
+ }
26
+ var P = (
27
+ /** @class */
28
+ /* @__PURE__ */ function() {
29
+ function e(r, t, o, n, a) {
30
+ this.name = r, this.supportedVersions = t, this.patch = o, this.unpatch = n, this.files = a || [];
31
+ }
32
+ return e;
33
+ }()
34
+ ), M = (
35
+ /** @class */
36
+ /* @__PURE__ */ function() {
37
+ function e(r, t, o, n) {
38
+ this.supportedVersions = t, this.patch = o, this.unpatch = n, this.name = m(r);
39
+ }
40
+ return e;
41
+ }()
42
+ );
43
+ export {
44
+ N as InstrumentationBase,
45
+ P as InstrumentationNodeModuleDefinition,
46
+ M as InstrumentationNodeModuleFile,
47
+ T as isWrapped,
48
+ I as registerInstrumentations,
49
+ w as safeExecuteInTheMiddle,
50
+ E as safeExecuteInTheMiddleAsync
51
+ };
52
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtIX57MDBofX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IG0gYXMgbWV0cmljcyB9IGZyb20gJy4vbWV0cmljcy1hcGktIX57MDBnfX4uanMnO1xuaW1wb3J0IHsgdCBhcyB0cmFjZSB9IGZyb20gJy4vaW5kZXgtIX57MDA1fX4uanMnO1xuaW1wb3J0IHsgbCBhcyBsb2dzIH0gZnJvbSAnLi91dGlscy0hfnswMGZ9fi5qcyc7XG5leHBvcnQgeyBJIGFzIEluc3RydW1lbnRhdGlvbkJhc2UsIGkgYXMgaXNXcmFwcGVkLCBzIGFzIHNhZmVFeGVjdXRlSW5UaGVNaWRkbGUsIGEgYXMgc2FmZUV4ZWN1dGVJblRoZU1pZGRsZUFzeW5jIH0gZnJvbSAnLi91dGlscy0hfnswMGZ9fi5qcyc7XG5pbXBvcnQgeyBkIGFzIGRpYWcgfSBmcm9tICcuL2RpYWctYXBpLSF+ezAwNH1+LmpzJztcblxuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogRW5hYmxlIGluc3RydW1lbnRhdGlvbnNcbiAqIEBwYXJhbSBpbnN0cnVtZW50YXRpb25zXG4gKiBAcGFyYW0gdHJhY2VyUHJvdmlkZXJcbiAqIEBwYXJhbSBtZXRlclByb3ZpZGVyXG4gKi9cbmZ1bmN0aW9uIGVuYWJsZUluc3RydW1lbnRhdGlvbnMoaW5zdHJ1bWVudGF0aW9ucywgdHJhY2VyUHJvdmlkZXIsIG1ldGVyUHJvdmlkZXIsIGxvZ2dlclByb3ZpZGVyKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGogPSBpbnN0cnVtZW50YXRpb25zLmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICB2YXIgaW5zdHJ1bWVudGF0aW9uID0gaW5zdHJ1bWVudGF0aW9uc1tpXTtcbiAgICAgICAgaWYgKHRyYWNlclByb3ZpZGVyKSB7XG4gICAgICAgICAgICBpbnN0cnVtZW50YXRpb24uc2V0VHJhY2VyUHJvdmlkZXIodHJhY2VyUHJvdmlkZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtZXRlclByb3ZpZGVyKSB7XG4gICAgICAgICAgICBpbnN0cnVtZW50YXRpb24uc2V0TWV0ZXJQcm92aWRlcihtZXRlclByb3ZpZGVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9nZ2VyUHJvdmlkZXIgJiYgaW5zdHJ1bWVudGF0aW9uLnNldExvZ2dlclByb3ZpZGVyKSB7XG4gICAgICAgICAgICBpbnN0cnVtZW50YXRpb24uc2V0TG9nZ2VyUHJvdmlkZXIobG9nZ2VyUHJvdmlkZXIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluc3RydW1lbnRhdGlvbnMgaGF2ZSBiZWVuIGFscmVhZHkgZW5hYmxlZCBkdXJpbmcgY3JlYXRpb25cbiAgICAgICAgLy8gc28gZW5hYmxlIG9ubHkgaWYgdXNlciBwcmV2ZW50ZWQgdGhhdCBieSBzZXR0aW5nIGVuYWJsZWQgdG8gZmFsc2VcbiAgICAgICAgLy8gdGhpcyBpcyB0byBwcmV2ZW50IGRvdWJsZSBlbmFibGluZyBidXQgd2hlbiBjYWxsaW5nIHJlZ2lzdGVyIGFsbFxuICAgICAgICAvLyBpbnN0cnVtZW50YXRpb25zIHNob3VsZCBiZSBub3cgZW5hYmxlZFxuICAgICAgICBpZiAoIWluc3RydW1lbnRhdGlvbi5nZXRDb25maWcoKS5lbmFibGVkKSB7XG4gICAgICAgICAgICBpbnN0cnVtZW50YXRpb24uZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vKipcbiAqIERpc2FibGUgaW5zdHJ1bWVudGF0aW9uc1xuICogQHBhcmFtIGluc3RydW1lbnRhdGlvbnNcbiAqL1xuZnVuY3Rpb24gZGlzYWJsZUluc3RydW1lbnRhdGlvbnMoaW5zdHJ1bWVudGF0aW9ucykge1xuICAgIGluc3RydW1lbnRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAoaW5zdHJ1bWVudGF0aW9uKSB7IHJldHVybiBpbnN0cnVtZW50YXRpb24uZGlzYWJsZSgpOyB9KTtcbn1cblxuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogSXQgd2lsbCByZWdpc3RlciBpbnN0cnVtZW50YXRpb25zIGFuZCBwbHVnaW5zXG4gKiBAcGFyYW0gb3B0aW9uc1xuICogQHJldHVybiByZXR1cm5zIGZ1bmN0aW9uIHRvIHVubG9hZCBpbnN0cnVtZW50YXRpb24gYW5kIHBsdWdpbnMgdGhhdCB3ZXJlXG4gKiAgIHJlZ2lzdGVyZWRcbiAqL1xuZnVuY3Rpb24gcmVnaXN0ZXJJbnN0cnVtZW50YXRpb25zKG9wdGlvbnMpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIHZhciB0cmFjZXJQcm92aWRlciA9IG9wdGlvbnMudHJhY2VyUHJvdmlkZXIgfHwgdHJhY2UuZ2V0VHJhY2VyUHJvdmlkZXIoKTtcbiAgICB2YXIgbWV0ZXJQcm92aWRlciA9IG9wdGlvbnMubWV0ZXJQcm92aWRlciB8fCBtZXRyaWNzLmdldE1ldGVyUHJvdmlkZXIoKTtcbiAgICB2YXIgbG9nZ2VyUHJvdmlkZXIgPSBvcHRpb25zLmxvZ2dlclByb3ZpZGVyIHx8IGxvZ3MuZ2V0TG9nZ2VyUHJvdmlkZXIoKTtcbiAgICB2YXIgaW5zdHJ1bWVudGF0aW9ucyA9IChfYiA9IChfYSA9IG9wdGlvbnMuaW5zdHJ1bWVudGF0aW9ucykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZsYXQoKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogW107XG4gICAgZW5hYmxlSW5zdHJ1bWVudGF0aW9ucyhpbnN0cnVtZW50YXRpb25zLCB0cmFjZXJQcm92aWRlciwgbWV0ZXJQcm92aWRlciwgbG9nZ2VyUHJvdmlkZXIpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGRpc2FibGVJbnN0cnVtZW50YXRpb25zKGluc3RydW1lbnRhdGlvbnMpO1xuICAgIH07XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIFBsYWNlaG9sZGVyIG5vcm1hbGl6ZSBmdW5jdGlvbiB0byByZXBsYWNlIHRoZSBub2RlIHZhcmlhbnQgaW4gYnJvd3NlciBydW50aW1lcyxcbiAqIHRoaXMgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBhbmQgd2lsbCBwZXJmb3JtIGEgbm8tb3AgYW5kIHdhcm4gaWYgaXQgaXMgY2FsbGVkIHJlZ2FyZGxlc3MuXG4gKlxuICogVGhpcyBpcyBhIHdvcmthcm91bmQgdG8gZml4IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWpzL2lzc3Vlcy80MzczIHVudGlsIHRoZSBpbnN0cnVtZW50YXRpb25cbiAqIHBhY2thZ2UgY2FuIGJlIG1hZGUgbm9kZS1vbmx5LlxuICpcbiAqIEBwYXJhbSBwYXRoIGlucHV0IHBhdGhcbiAqIEByZXR1cm4gdW5tb2RpZmllZCBwYXRoXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplKHBhdGgpIHtcbiAgICBkaWFnLndhcm4oJ1BhdGggbm9ybWFsaXphdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIHRoaXMgcGxhdGZvcm0uIFRvIHNpbGVuY2UgdGhpcyB3YXJuaW5nLCBlbnN1cmUgbm8gbm9kZS1zcGVjaWZpYyBpbnN0cnVtZW50YXRpb25zIGFyZSBsb2FkZWQsIGFuZCBub2RlLXNwZWNpZmljIHR5cGVzIChlLmcuIEluc3RydW1lbnRhdGlvbk5vZGVNb2R1bGVGaWxlKSwgYXJlIG5vdCB1c2VkIGluIGEgYnJvd3NlciBjb250ZXh0KScpO1xuICAgIHJldHVybiBwYXRoO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xudmFyIEluc3RydW1lbnRhdGlvbk5vZGVNb2R1bGVEZWZpbml0aW9uID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEluc3RydW1lbnRhdGlvbk5vZGVNb2R1bGVEZWZpbml0aW9uKG5hbWUsIHN1cHBvcnRlZFZlcnNpb25zLCBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHBhdGNoLCBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHVucGF0Y2gsIGZpbGVzKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuc3VwcG9ydGVkVmVyc2lvbnMgPSBzdXBwb3J0ZWRWZXJzaW9ucztcbiAgICAgICAgdGhpcy5wYXRjaCA9IHBhdGNoO1xuICAgICAgICB0aGlzLnVucGF0Y2ggPSB1bnBhdGNoO1xuICAgICAgICB0aGlzLmZpbGVzID0gZmlsZXMgfHwgW107XG4gICAgfVxuICAgIHJldHVybiBJbnN0cnVtZW50YXRpb25Ob2RlTW9kdWxlRGVmaW5pdGlvbjtcbn0oKSk7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZUZpbGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZUZpbGUobmFtZSwgc3VwcG9ydGVkVmVyc2lvbnMsIFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcGF0Y2gsIFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgdW5wYXRjaCkge1xuICAgICAgICB0aGlzLnN1cHBvcnRlZFZlcnNpb25zID0gc3VwcG9ydGVkVmVyc2lvbnM7XG4gICAgICAgIHRoaXMucGF0Y2ggPSBwYXRjaDtcbiAgICAgICAgdGhpcy51bnBhdGNoID0gdW5wYXRjaDtcbiAgICAgICAgdGhpcy5uYW1lID0gbm9ybWFsaXplKG5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZUZpbGU7XG59KCkpO1xuXG5leHBvcnQgeyBJbnN0cnVtZW50YXRpb25Ob2RlTW9kdWxlRGVmaW5pdGlvbiwgSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZUZpbGUsIHJlZ2lzdGVySW5zdHJ1bWVudGF0aW9ucyB9OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMsS0FBS0EsU0FBZTtBQUM3QixTQUFTLEtBQUtDLFNBQWE7QUFDM0IsU0FBUyxLQUFLQyxTQUFZO0FBQzFCLFNBQWMsS0FBTEMsR0FBK0IsS0FBTEMsR0FBcUIsS0FBTEMsR0FBa0MsS0FBTEMsU0FBd0M7QUFDeEgsU0FBUyxLQUFLQyxTQUFZO0FBdUIxQixTQUFTQyxFQUF1QkMsR0FBa0JDLEdBQWdCQyxHQUFlQyxHQUFnQjtBQUM3RixXQUFTUixJQUFJLEdBQUdTLElBQUlKLEVBQWlCLFFBQVFMLElBQUlTLEdBQUdULEtBQUs7QUFDckQsUUFBSVUsSUFBa0JMLEVBQWlCTCxDQUFDO0FBQ3hDLElBQUlNLEtBQ0FJLEVBQWdCLGtCQUFrQkosQ0FBYyxHQUVoREMsS0FDQUcsRUFBZ0IsaUJBQWlCSCxDQUFhLEdBRTlDQyxLQUFrQkUsRUFBZ0IscUJBQ2xDQSxFQUFnQixrQkFBa0JGLENBQWMsR0FNL0NFLEVBQWdCLFVBQVUsRUFBRSxXQUM3QkEsRUFBZ0IsT0FBTztBQUFBLEVBRS9CO0FBQ0o7QUFLQSxTQUFTQyxFQUF3Qk4sR0FBa0I7QUFDL0MsRUFBQUEsRUFBaUIsUUFBUSxTQUFVSyxHQUFpQjtBQUFFLFdBQU9BLEVBQWdCLFFBQVE7QUFBQSxFQUFHLENBQUM7QUFDN0Y7QUF1QkEsU0FBU0UsRUFBeUJDLEdBQVM7QUFDdkMsTUFBSUMsR0FBSUMsR0FDSlQsSUFBaUJPLEVBQVEsa0JBQWtCaEIsRUFBTSxrQkFBa0IsR0FDbkVVLElBQWdCTSxFQUFRLGlCQUFpQmpCLEVBQVEsaUJBQWlCLEdBQ2xFWSxJQUFpQkssRUFBUSxrQkFBa0JmLEVBQUssa0JBQWtCLEdBQ2xFTyxLQUFvQlUsS0FBTUQsSUFBS0QsRUFBUSxzQkFBc0IsUUFBUUMsTUFBTyxTQUFTLFNBQVNBLEVBQUcsS0FBSyxPQUFPLFFBQVFDLE1BQU8sU0FBU0EsSUFBSyxDQUFDO0FBQy9JLFNBQUFYLEVBQXVCQyxHQUFrQkMsR0FBZ0JDLEdBQWVDLENBQWMsR0FDL0UsV0FBWTtBQUNmLElBQUFHLEVBQXdCTixDQUFnQjtBQUFBLEVBQzVDO0FBQ0o7QUE0QkEsU0FBU1csRUFBVUMsR0FBTTtBQUNyQixTQUFBZCxFQUFLLEtBQUsseU9BQXlPLEdBQzVPYztBQUNYO0FBaUJBLElBQUlDO0FBQUE7QUFBQSxFQUFxRCwyQkFBWTtBQUNqRSxhQUFTQSxFQUFvQ0MsR0FBTUMsR0FFbkRDLEdBRUFDLEdBQVNDLEdBQU87QUFDWixXQUFLLE9BQU9KLEdBQ1osS0FBSyxvQkFBb0JDLEdBQ3pCLEtBQUssUUFBUUMsR0FDYixLQUFLLFVBQVVDLEdBQ2YsS0FBSyxRQUFRQyxLQUFTLENBQUM7QUFBQSxJQUMzQjtBQUNBLFdBQU9MO0FBQUEsRUFDWCxFQUFFO0FBQUEsR0FpQkVNO0FBQUE7QUFBQSxFQUErQywyQkFBWTtBQUMzRCxhQUFTQSxFQUE4QkwsR0FBTUMsR0FFN0NDLEdBRUFDLEdBQVM7QUFDTCxXQUFLLG9CQUFvQkYsR0FDekIsS0FBSyxRQUFRQyxHQUNiLEtBQUssVUFBVUMsR0FDZixLQUFLLE9BQU9OLEVBQVVHLENBQUk7QUFBQSxJQUM5QjtBQUNBLFdBQU9LO0FBQUEsRUFDWCxFQUFFO0FBQUE7IiwKICAibmFtZXMiOiBbIm1ldHJpY3MiLCAidHJhY2UiLCAibG9ncyIsICJJIiwgImkiLCAicyIsICJhIiwgImRpYWciLCAiZW5hYmxlSW5zdHJ1bWVudGF0aW9ucyIsICJpbnN0cnVtZW50YXRpb25zIiwgInRyYWNlclByb3ZpZGVyIiwgIm1ldGVyUHJvdmlkZXIiLCAibG9nZ2VyUHJvdmlkZXIiLCAiaiIsICJpbnN0cnVtZW50YXRpb24iLCAiZGlzYWJsZUluc3RydW1lbnRhdGlvbnMiLCAicmVnaXN0ZXJJbnN0cnVtZW50YXRpb25zIiwgIm9wdGlvbnMiLCAiX2EiLCAiX2IiLCAibm9ybWFsaXplIiwgInBhdGgiLCAiSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZURlZmluaXRpb24iLCAibmFtZSIsICJzdXBwb3J0ZWRWZXJzaW9ucyIsICJwYXRjaCIsICJ1bnBhdGNoIiwgImZpbGVzIiwgIkluc3RydW1lbnRhdGlvbk5vZGVNb2R1bGVGaWxlIl0KfQo=
@@ -0,0 +1,130 @@
1
+ import { R as u } from "./index-J2Ae7cvA.js";
2
+ import { B as c } from "./SimpleSpanProcessor-CGuirs18.js";
3
+ import { A as g, b as x, a as S, C as b, F as w, I as P, N as C, P as T, R as O, d as M, S as A, e as E, c as R, T as N } from "./SimpleSpanProcessor-CGuirs18.js";
4
+ import { P as F, a as j, b as k, g as I, c as W, h as U, n as X, p as z, s as D, d as G } from "./utils-Bvp_BxtD.js";
5
+ var l = function(n, r) {
6
+ var e = typeof Symbol == "function" && n[Symbol.iterator];
7
+ if (!e) return n;
8
+ var t = e.call(n), o, a = [], s;
9
+ try {
10
+ for (; (r === void 0 || r-- > 0) && !(o = t.next()).done; ) a.push(o.value);
11
+ } catch (i) {
12
+ s = { error: i };
13
+ } finally {
14
+ try {
15
+ o && !o.done && (e = t.return) && e.call(t);
16
+ } finally {
17
+ if (s) throw s.error;
18
+ }
19
+ }
20
+ return a;
21
+ }, p = function(n, r, e) {
22
+ if (e || arguments.length === 2) for (var t = 0, o = r.length, a; t < o; t++)
23
+ (a || !(t in r)) && (a || (a = Array.prototype.slice.call(r, 0, t)), a[t] = r[t]);
24
+ return n.concat(a || Array.prototype.slice.call(r));
25
+ }, f = (
26
+ /** @class */
27
+ function() {
28
+ function n() {
29
+ this._enabled = !1, this._currentContext = u;
30
+ }
31
+ return n.prototype._bindFunction = function(r, e) {
32
+ r === void 0 && (r = u);
33
+ var t = this, o = function() {
34
+ for (var a = this, s = [], i = 0; i < arguments.length; i++)
35
+ s[i] = arguments[i];
36
+ return t.with(r, function() {
37
+ return e.apply(a, s);
38
+ });
39
+ };
40
+ return Object.defineProperty(o, "length", {
41
+ enumerable: !1,
42
+ configurable: !0,
43
+ writable: !1,
44
+ value: e.length
45
+ }), o;
46
+ }, n.prototype.active = function() {
47
+ return this._currentContext;
48
+ }, n.prototype.bind = function(r, e) {
49
+ return r === void 0 && (r = this.active()), typeof e == "function" ? this._bindFunction(r, e) : e;
50
+ }, n.prototype.disable = function() {
51
+ return this._currentContext = u, this._enabled = !1, this;
52
+ }, n.prototype.enable = function() {
53
+ return this._enabled ? this : (this._enabled = !0, this._currentContext = u, this);
54
+ }, n.prototype.with = function(r, e, t) {
55
+ for (var o = [], a = 3; a < arguments.length; a++)
56
+ o[a - 3] = arguments[a];
57
+ var s = this._currentContext;
58
+ this._currentContext = r || u;
59
+ try {
60
+ return e.call.apply(e, p([t], l(o), !1));
61
+ } finally {
62
+ this._currentContext = s;
63
+ }
64
+ }, n;
65
+ }()
66
+ ), d = /* @__PURE__ */ function() {
67
+ var n = function(r, e) {
68
+ return n = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, o) {
69
+ t.__proto__ = o;
70
+ } || function(t, o) {
71
+ for (var a in o) Object.prototype.hasOwnProperty.call(o, a) && (t[a] = o[a]);
72
+ }, n(r, e);
73
+ };
74
+ return function(r, e) {
75
+ if (typeof e != "function" && e !== null)
76
+ throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
77
+ n(r, e);
78
+ function t() {
79
+ this.constructor = r;
80
+ }
81
+ r.prototype = e === null ? Object.create(e) : (t.prototype = e.prototype, new t());
82
+ };
83
+ }(), v = (
84
+ /** @class */
85
+ function(n) {
86
+ d(r, n);
87
+ function r(e) {
88
+ e === void 0 && (e = {});
89
+ var t = n.call(this, e) || this;
90
+ if (e.contextManager)
91
+ throw "contextManager should be defined in register method not in constructor";
92
+ if (e.propagator)
93
+ throw "propagator should be defined in register method not in constructor";
94
+ return t;
95
+ }
96
+ return r.prototype.register = function(e) {
97
+ e === void 0 && (e = {}), e.contextManager === void 0 && (e.contextManager = new f()), e.contextManager && e.contextManager.enable(), n.prototype.register.call(this, e);
98
+ }, r;
99
+ }(c)
100
+ );
101
+ export {
102
+ g as AlwaysOffSampler,
103
+ x as AlwaysOnSampler,
104
+ c as BasicTracerProvider,
105
+ S as BatchSpanProcessor,
106
+ b as ConsoleSpanExporter,
107
+ w as ForceFlushState,
108
+ P as InMemorySpanExporter,
109
+ C as NoopSpanProcessor,
110
+ T as ParentBasedSampler,
111
+ F as PerformanceTimingNames,
112
+ O as RandomIdGenerator,
113
+ M as SamplingDecision,
114
+ A as SimpleSpanProcessor,
115
+ E as Span,
116
+ f as StackContextManager,
117
+ R as TraceIdRatioBasedSampler,
118
+ N as Tracer,
119
+ v as WebTracerProvider,
120
+ j as addSpanNetworkEvent,
121
+ k as addSpanNetworkEvents,
122
+ I as getElementXPath,
123
+ W as getResource,
124
+ U as hasKey,
125
+ X as normalizeUrl,
126
+ z as parseUrl,
127
+ D as shouldPropagateTraceHeaders,
128
+ G as sortResources
129
+ };
130
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtIX57MDA2fX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IFIgYXMgUk9PVF9DT05URVhUIH0gZnJvbSAnLi9pbmRleC0hfnswMDV9fi5qcyc7XG5pbXBvcnQgeyBCIGFzIEJhc2ljVHJhY2VyUHJvdmlkZXIgfSBmcm9tICcuL1NpbXBsZVNwYW5Qcm9jZXNzb3ItIX57MDAyfX4uanMnO1xuZXhwb3J0IHsgQSBhcyBBbHdheXNPZmZTYW1wbGVyLCBiIGFzIEFsd2F5c09uU2FtcGxlciwgYSBhcyBCYXRjaFNwYW5Qcm9jZXNzb3IsIEMgYXMgQ29uc29sZVNwYW5FeHBvcnRlciwgRiBhcyBGb3JjZUZsdXNoU3RhdGUsIEkgYXMgSW5NZW1vcnlTcGFuRXhwb3J0ZXIsIE4gYXMgTm9vcFNwYW5Qcm9jZXNzb3IsIFAgYXMgUGFyZW50QmFzZWRTYW1wbGVyLCBSIGFzIFJhbmRvbUlkR2VuZXJhdG9yLCBkIGFzIFNhbXBsaW5nRGVjaXNpb24sIFMgYXMgU2ltcGxlU3BhblByb2Nlc3NvciwgZSBhcyBTcGFuLCBjIGFzIFRyYWNlSWRSYXRpb0Jhc2VkU2FtcGxlciwgVCBhcyBUcmFjZXIgfSBmcm9tICcuL1NpbXBsZVNwYW5Qcm9jZXNzb3ItIX57MDAyfX4uanMnO1xuZXhwb3J0IHsgUCBhcyBQZXJmb3JtYW5jZVRpbWluZ05hbWVzLCBhIGFzIGFkZFNwYW5OZXR3b3JrRXZlbnQsIGIgYXMgYWRkU3Bhbk5ldHdvcmtFdmVudHMsIGcgYXMgZ2V0RWxlbWVudFhQYXRoLCBjIGFzIGdldFJlc291cmNlLCBoIGFzIGhhc0tleSwgbiBhcyBub3JtYWxpemVVcmwsIHAgYXMgcGFyc2VVcmwsIHMgYXMgc2hvdWxkUHJvcGFnYXRlVHJhY2VIZWFkZXJzLCBkIGFzIHNvcnRSZXNvdXJjZXMgfSBmcm9tICcuL3V0aWxzLSF+ezAwN31+LmpzJztcblxuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbnZhciBfX3JlYWQgPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX3JlYWQpIHx8IGZ1bmN0aW9uIChvLCBuKSB7XG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xuICAgIGlmICghbSkgcmV0dXJuIG87XG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XG4gICAgdHJ5IHtcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxuICAgIGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XG4gICAgfVxuICAgIHJldHVybiBhcjtcbn07XG52YXIgX19zcHJlYWRBcnJheSA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fc3ByZWFkQXJyYXkpIHx8IGZ1bmN0aW9uICh0bywgZnJvbSwgcGFjaykge1xuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XG59O1xuLyoqXG4gKiBTdGFjayBDb250ZXh0IE1hbmFnZXIgZm9yIG1hbmFnaW5nIHRoZSBzdGF0ZSBpbiB3ZWJcbiAqIGl0IGRvZXNuJ3QgZnVsbHkgc3VwcG9ydCB0aGUgYXN5bmMgY2FsbHMgdGhvdWdoXG4gKi9cbnZhciBTdGFja0NvbnRleHRNYW5hZ2VyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFN0YWNrQ29udGV4dE1hbmFnZXIoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiB3aGV0aGVyIHRoZSBjb250ZXh0IG1hbmFnZXIgaXMgZW5hYmxlZCBvciBub3RcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEtlZXBzIHRoZSByZWZlcmVuY2UgdG8gY3VycmVudCBjb250ZXh0XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9jdXJyZW50Q29udGV4dCA9IFJPT1RfQ09OVEVYVDtcbiAgICB9XG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGV4dFxuICAgICAqIEBwYXJhbSB0YXJnZXQgRnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgd2l0aGluIHRoZSBjb250ZXh0XG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICBTdGFja0NvbnRleHRNYW5hZ2VyLnByb3RvdHlwZS5fYmluZEZ1bmN0aW9uID0gZnVuY3Rpb24gKGNvbnRleHQsIHRhcmdldCkge1xuICAgICAgICBpZiAoY29udGV4dCA9PT0gdm9pZCAwKSB7IGNvbnRleHQgPSBST09UX0NPTlRFWFQ7IH1cbiAgICAgICAgdmFyIG1hbmFnZXIgPSB0aGlzO1xuICAgICAgICB2YXIgY29udGV4dFdyYXBwZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG1hbmFnZXIud2l0aChjb250ZXh0LCBmdW5jdGlvbiAoKSB7IHJldHVybiB0YXJnZXQuYXBwbHkoX3RoaXMsIGFyZ3MpOyB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnRleHRXcmFwcGVyLCAnbGVuZ3RoJywge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICB2YWx1ZTogdGFyZ2V0Lmxlbmd0aCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb250ZXh0V3JhcHBlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFjdGl2ZSBjb250ZXh0XG4gICAgICovXG4gICAgU3RhY2tDb250ZXh0TWFuYWdlci5wcm90b3R5cGUuYWN0aXZlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudENvbnRleHQ7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBCaW5kcyBhIHRoZSBjZXJ0YWluIGNvbnRleHQgb3IgdGhlIGFjdGl2ZSBvbmUgdG8gdGhlIHRhcmdldCBmdW5jdGlvbiBhbmQgdGhlbiByZXR1cm5zIHRoZSB0YXJnZXRcbiAgICAgKiBAcGFyYW0gY29udGV4dCBBIGNvbnRleHQgKHNwYW4pIHRvIGJlIGJpbmQgdG8gdGFyZ2V0XG4gICAgICogQHBhcmFtIHRhcmdldCBhIGZ1bmN0aW9uIG9yIGV2ZW50IGVtaXR0ZXIuIFdoZW4gdGFyZ2V0IG9yIG9uZSBvZiBpdHMgY2FsbGJhY2tzIGlzIGNhbGxlZCxcbiAgICAgKiAgdGhlIHByb3ZpZGVkIGNvbnRleHQgd2lsbCBiZSB1c2VkIGFzIHRoZSBhY3RpdmUgY29udGV4dCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjYWxsLlxuICAgICAqL1xuICAgIFN0YWNrQ29udGV4dE1hbmFnZXIucHJvdG90eXBlLmJpbmQgPSBmdW5jdGlvbiAoY29udGV4dCwgdGFyZ2V0KSB7XG4gICAgICAgIC8vIGlmIG5vIHNwZWNpZmljIGNvbnRleHQgdG8gcHJvcGFnYXRlIGlzIGdpdmVuLCB3ZSB1c2UgdGhlIGN1cnJlbnQgb25lXG4gICAgICAgIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnRleHQgPSB0aGlzLmFjdGl2ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYmluZEZ1bmN0aW9uKGNvbnRleHQsIHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIERpc2FibGUgdGhlIGNvbnRleHQgbWFuYWdlciAoY2xlYXJzIHRoZSBjdXJyZW50IGNvbnRleHQpXG4gICAgICovXG4gICAgU3RhY2tDb250ZXh0TWFuYWdlci5wcm90b3R5cGUuZGlzYWJsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5fY3VycmVudENvbnRleHQgPSBST09UX0NPTlRFWFQ7XG4gICAgICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzIHRoZSBjb250ZXh0IG1hbmFnZXIgYW5kIGNyZWF0ZXMgYSBkZWZhdWx0KHJvb3QpIGNvbnRleHRcbiAgICAgKi9cbiAgICBTdGFja0NvbnRleHRNYW5hZ2VyLnByb3RvdHlwZS5lbmFibGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzLl9lbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fY3VycmVudENvbnRleHQgPSBST09UX0NPTlRFWFQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQ2FsbHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIFtmbl0gd2l0aCB0aGUgcHJvdmlkZWQgW2NvbnRleHRdLiBJZiBbY29udGV4dF0gaXMgdW5kZWZpbmVkIHRoZW4gaXQgd2lsbCB1c2UgdGhlIHdpbmRvdy5cbiAgICAgKiBUaGUgY29udGV4dCB3aWxsIGJlIHNldCBhcyBhY3RpdmVcbiAgICAgKiBAcGFyYW0gY29udGV4dFxuICAgICAqIEBwYXJhbSBmbiBDYWxsYmFjayBmdW5jdGlvblxuICAgICAqIEBwYXJhbSB0aGlzQXJnIG9wdGlvbmFsIHJlY2VpdmVyIHRvIGJlIHVzZWQgZm9yIGNhbGxpbmcgZm5cbiAgICAgKiBAcGFyYW0gYXJncyBvcHRpb25hbCBhcmd1bWVudHMgZm9yd2FyZGVkIHRvIGZuXG4gICAgICovXG4gICAgU3RhY2tDb250ZXh0TWFuYWdlci5wcm90b3R5cGUud2l0aCA9IGZ1bmN0aW9uIChjb250ZXh0LCBmbiwgdGhpc0FyZykge1xuICAgICAgICB2YXIgYXJncyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBfaSA9IDM7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgYXJnc1tfaSAtIDNdID0gYXJndW1lbnRzW19pXTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHJldmlvdXNDb250ZXh0ID0gdGhpcy5fY3VycmVudENvbnRleHQ7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRDb250ZXh0ID0gY29udGV4dCB8fCBST09UX0NPTlRFWFQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZm4uY2FsbC5hcHBseShmbiwgX19zcHJlYWRBcnJheShbdGhpc0FyZ10sIF9fcmVhZChhcmdzKSwgZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRDb250ZXh0ID0gcHJldmlvdXNDb250ZXh0O1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gU3RhY2tDb250ZXh0TWFuYWdlcjtcbn0oKSk7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgX19leHRlbmRzID0gKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcbiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbi8qKlxuICogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgd2ViIHRyYWNlciB3aXRoIHtAbGluayBTdGFja0NvbnRleHRNYW5hZ2VyfVxuICovXG52YXIgV2ViVHJhY2VyUHJvdmlkZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFdlYlRyYWNlclByb3ZpZGVyLCBfc3VwZXIpO1xuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcgVHJhY2VyIGluc3RhbmNlLlxuICAgICAqIEBwYXJhbSBjb25maWcgV2ViIFRyYWNlciBjb25maWdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBXZWJUcmFjZXJQcm92aWRlcihjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyA9PT0gdm9pZCAwKSB7IGNvbmZpZyA9IHt9OyB9XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGNvbmZpZykgfHwgdGhpcztcbiAgICAgICAgaWYgKGNvbmZpZy5jb250ZXh0TWFuYWdlcikge1xuICAgICAgICAgICAgdGhyb3cgKCdjb250ZXh0TWFuYWdlciBzaG91bGQgYmUgZGVmaW5lZCBpbiByZWdpc3RlciBtZXRob2Qgbm90IGluJyArXG4gICAgICAgICAgICAgICAgJyBjb25zdHJ1Y3RvcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcucHJvcGFnYXRvcikge1xuICAgICAgICAgICAgdGhyb3cgJ3Byb3BhZ2F0b3Igc2hvdWxkIGJlIGRlZmluZWQgaW4gcmVnaXN0ZXIgbWV0aG9kIG5vdCBpbiBjb25zdHJ1Y3Rvcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciB0aGlzIFRyYWNlclByb3ZpZGVyIGZvciB1c2Ugd2l0aCB0aGUgT3BlblRlbGVtZXRyeSBBUEkuXG4gICAgICogVW5kZWZpbmVkIHZhbHVlcyBtYXkgYmUgcmVwbGFjZWQgd2l0aCBkZWZhdWx0cywgYW5kXG4gICAgICogbnVsbCB2YWx1ZXMgd2lsbCBiZSBza2lwcGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uIG9iamVjdCBmb3IgU0RLIHJlZ2lzdHJhdGlvblxuICAgICAqL1xuICAgIFdlYlRyYWNlclByb3ZpZGVyLnByb3RvdHlwZS5yZWdpc3RlciA9IGZ1bmN0aW9uIChjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyA9PT0gdm9pZCAwKSB7IGNvbmZpZyA9IHt9OyB9XG4gICAgICAgIGlmIChjb25maWcuY29udGV4dE1hbmFnZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uZmlnLmNvbnRleHRNYW5hZ2VyID0gbmV3IFN0YWNrQ29udGV4dE1hbmFnZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLmNvbnRleHRNYW5hZ2VyKSB7XG4gICAgICAgICAgICBjb25maWcuY29udGV4dE1hbmFnZXIuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgX3N1cGVyLnByb3RvdHlwZS5yZWdpc3Rlci5jYWxsKHRoaXMsIGNvbmZpZyk7XG4gICAgfTtcbiAgICByZXR1cm4gV2ViVHJhY2VyUHJvdmlkZXI7XG59KEJhc2ljVHJhY2VyUHJvdmlkZXIpKTtcblxuZXhwb3J0IHsgQmFzaWNUcmFjZXJQcm92aWRlciwgU3RhY2tDb250ZXh0TWFuYWdlciwgV2ViVHJhY2VyUHJvdmlkZXIgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLFNBQW9CO0FBQ2xDLFNBQVMsS0FBS0MsU0FBMkI7QUFDekMsU0FBYyxLQUFMQyxHQUE0QixLQUFMQyxHQUEyQixLQUFMQyxHQUE4QixLQUFMQyxHQUErQixLQUFMQyxHQUEyQixLQUFMQyxHQUFnQyxLQUFMQyxHQUE2QixLQUFMQyxHQUE4QixLQUFMQyxHQUE2QixLQUFMQyxHQUE0QixLQUFMQyxHQUErQixLQUFMQyxHQUFnQixLQUFMQyxHQUFvQyxLQUFMQyxTQUFtQjtBQUNqVixTQUFjLEtBQUxOLEdBQWtDLEtBQUxMLEdBQStCLEtBQUxELEdBQWdDLEtBQUxhLEdBQTJCLEtBQUxGLEdBQXVCLEtBQUxHLEdBQWtCLEtBQUxDLEdBQXdCLEtBQUxDLEdBQW9CLEtBQUxDLEdBQXVDLEtBQUxULFNBQTBCO0FBaUI5TyxJQUFJVSxJQUE0QyxTQUFVQyxHQUFHSixHQUFHO0FBQzVELE1BQUlLLElBQUksT0FBTyxVQUFXLGNBQWNELEVBQUUsT0FBTyxRQUFRO0FBQ3pELE1BQUksQ0FBQ0MsRUFBRyxRQUFPRDtBQUNmLE1BQUlFLElBQUlELEVBQUUsS0FBS0QsQ0FBQyxHQUFHRyxHQUFHQyxJQUFLLENBQUMsR0FBR2I7QUFDL0IsTUFBSTtBQUNBLFlBQVFLLE1BQU0sVUFBVUEsTUFBTSxNQUFNLEVBQUVPLElBQUlELEVBQUUsS0FBSyxHQUFHLE9BQU0sQ0FBQUUsRUFBRyxLQUFLRCxFQUFFLEtBQUs7QUFBQSxFQUM3RSxTQUNPRSxHQUFPO0FBQUUsSUFBQWQsSUFBSSxFQUFFLE9BQU9jLEVBQU07QUFBQSxFQUFHLFVBQ3RDO0FBQ0ksUUFBSTtBQUNBLE1BQUlG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LElBRWhEZ0IsRUFBTyxrQkFDUEEsRUFBTyxlQUFlLE9BQU8sR0FFakNELEVBQU8sVUFBVSxTQUFTLEtBQUssTUFBTUMsQ0FBTTtBQUFBLElBQy9DLEdBQ09GO0FBQUEsRUFDWCxFQUFFOUMsQ0FBbUI7QUFBQTsiLAogICJuYW1lcyI6IFsiUk9PVF9DT05URVhUIiwgIkJhc2ljVHJhY2VyUHJvdmlkZXIiLCAiQSIsICJiIiwgImEiLCAiQyIsICJGIiwgIkkiLCAiTiIsICJQIiwgIlIiLCAiZCIsICJTIiwgImUiLCAiYyIsICJUIiwgImciLCAiaCIsICJuIiwgInAiLCAicyIsICJfX3JlYWQiLCAibyIsICJtIiwgImkiLCAiciIsICJhciIsICJlcnJvciIsICJfX3NwcmVhZEFycmF5IiwgInRvIiwgImZyb20iLCAicGFjayIsICJsIiwgIlN0YWNrQ29udGV4dE1hbmFnZXIiLCAiY29udGV4dCIsICJ0YXJnZXQiLCAibWFuYWdlciIsICJjb250ZXh0V3JhcHBlciIsICJfdGhpcyIsICJhcmdzIiwgIl9pIiwgImZuIiwgInRoaXNBcmciLCAicHJldmlvdXNDb250ZXh0IiwgIl9fZXh0ZW5kcyIsICJleHRlbmRTdGF0aWNzIiwgIl9fIiwgIldlYlRyYWNlclByb3ZpZGVyIiwgIl9zdXBlciIsICJjb25maWciXQp9Cg==
@@ -0,0 +1,150 @@
1
+ import { b as I, t as l, i as D, T as o, d as T, e as b } from "./index-J2Ae7cvA.js";
2
+ var C = I("OpenTelemetry SDK Context Key SUPPRESS_TRACING");
3
+ function A(r) {
4
+ return r.getValue(C) === !0;
5
+ }
6
+ var p = I("OpenTelemetry Context Key B3 Debug Flag"), f = "b3", v = "x-b3-traceid", g = "x-b3-spanid", c = "x-b3-sampled", N = "x-b3-parentspanid", S = "x-b3-flags", V = /* @__PURE__ */ new Set([!0, "true", "True", "1", 1]), B = /* @__PURE__ */ new Set([!1, "false", "False", "0", 0]);
7
+ function F(r) {
8
+ return r === o.SAMPLED || r === o.NONE;
9
+ }
10
+ function R(r) {
11
+ return Array.isArray(r) ? r[0] : r;
12
+ }
13
+ function d(r, t, e) {
14
+ var n = t.get(r, e);
15
+ return R(n);
16
+ }
17
+ function m(r, t) {
18
+ var e = d(r, t, v);
19
+ return typeof e == "string" ? e.padStart(32, "0") : "";
20
+ }
21
+ function x(r, t) {
22
+ var e = d(r, t, g);
23
+ return typeof e == "string" ? e : "";
24
+ }
25
+ function h(r, t) {
26
+ var e = d(r, t, S);
27
+ return e === "1" ? "1" : void 0;
28
+ }
29
+ function U(r, t) {
30
+ var e = d(r, t, c), n = h(r, t);
31
+ if (n === "1" || V.has(e))
32
+ return o.SAMPLED;
33
+ if (e === void 0 || B.has(e))
34
+ return o.NONE;
35
+ }
36
+ var G = (
37
+ /** @class */
38
+ function() {
39
+ function r() {
40
+ }
41
+ return r.prototype.inject = function(t, e, n) {
42
+ var a = l.getSpanContext(t);
43
+ if (!(!a || !D(a) || A(t))) {
44
+ var i = t.getValue(p);
45
+ n.set(e, v, a.traceId), n.set(e, g, a.spanId), i === "1" ? n.set(e, S, i) : a.traceFlags !== void 0 && n.set(e, c, (o.SAMPLED & a.traceFlags) === o.SAMPLED ? "1" : "0");
46
+ }
47
+ }, r.prototype.extract = function(t, e, n) {
48
+ var a = m(e, n), i = x(e, n), u = U(e, n), s = h(e, n);
49
+ return T(a) && b(i) && F(u) ? (t = t.setValue(p, s), l.setSpanContext(t, {
50
+ traceId: a,
51
+ spanId: i,
52
+ isRemote: !0,
53
+ traceFlags: u
54
+ })) : t;
55
+ }, r.prototype.fields = function() {
56
+ return [
57
+ v,
58
+ g,
59
+ S,
60
+ c,
61
+ N
62
+ ];
63
+ }, r;
64
+ }()
65
+ ), H = function(r, t) {
66
+ var e = typeof Symbol == "function" && r[Symbol.iterator];
67
+ if (!e) return r;
68
+ var n = e.call(r), a, i = [], u;
69
+ try {
70
+ for (; (t === void 0 || t-- > 0) && !(a = n.next()).done; ) i.push(a.value);
71
+ } catch (s) {
72
+ u = { error: s };
73
+ } finally {
74
+ try {
75
+ a && !a.done && (e = n.return) && e.call(n);
76
+ } finally {
77
+ if (u) throw u.error;
78
+ }
79
+ }
80
+ return i;
81
+ }, X = /((?:[0-9a-f]{16}){1,2})-([0-9a-f]{16})(?:-([01d](?![0-9a-f])))?(?:-([0-9a-f]{16}))?/, j = "0".repeat(16), w = /* @__PURE__ */ new Set(["d", "1"]), O = "d";
82
+ function K(r) {
83
+ return r.length === 32 ? r : "" + j + r;
84
+ }
85
+ function Y(r) {
86
+ return r && w.has(r) ? o.SAMPLED : o.NONE;
87
+ }
88
+ var k = (
89
+ /** @class */
90
+ function() {
91
+ function r() {
92
+ }
93
+ return r.prototype.inject = function(t, e, n) {
94
+ var a = l.getSpanContext(t);
95
+ if (!(!a || !D(a) || A(t))) {
96
+ var i = t.getValue(p) || a.traceFlags & 1, u = a.traceId + "-" + a.spanId + "-" + i;
97
+ n.set(e, f, u);
98
+ }
99
+ }, r.prototype.extract = function(t, e, n) {
100
+ var a = n.get(e, f), i = Array.isArray(a) ? a[0] : a;
101
+ if (typeof i != "string")
102
+ return t;
103
+ var u = i.match(X);
104
+ if (!u)
105
+ return t;
106
+ var s = H(u, 4), L = s[1], P = s[2], _ = s[3], y = K(L);
107
+ if (!T(y) || !b(P))
108
+ return t;
109
+ var M = Y(_);
110
+ return _ === O && (t = t.setValue(p, _)), l.setSpanContext(t, {
111
+ traceId: y,
112
+ spanId: P,
113
+ isRemote: !0,
114
+ traceFlags: M
115
+ });
116
+ }, r.prototype.fields = function() {
117
+ return [f];
118
+ }, r;
119
+ }()
120
+ ), E;
121
+ (function(r) {
122
+ r[r.SINGLE_HEADER = 0] = "SINGLE_HEADER", r[r.MULTI_HEADER = 1] = "MULTI_HEADER";
123
+ })(E || (E = {}));
124
+ var z = (
125
+ /** @class */
126
+ function() {
127
+ function r(t) {
128
+ t === void 0 && (t = {}), this._b3MultiPropagator = new G(), this._b3SinglePropagator = new k(), t.injectEncoding === E.MULTI_HEADER ? (this._inject = this._b3MultiPropagator.inject, this._fields = this._b3MultiPropagator.fields()) : (this._inject = this._b3SinglePropagator.inject, this._fields = this._b3SinglePropagator.fields());
129
+ }
130
+ return r.prototype.inject = function(t, e, n) {
131
+ A(t) || this._inject(t, e, n);
132
+ }, r.prototype.extract = function(t, e, n) {
133
+ var a = n.get(e, f), i = Array.isArray(a) ? a[0] : a;
134
+ return i ? this._b3SinglePropagator.extract(t, e, n) : this._b3MultiPropagator.extract(t, e, n);
135
+ }, r.prototype.fields = function() {
136
+ return this._fields;
137
+ }, r;
138
+ }()
139
+ );
140
+ export {
141
+ E as B3InjectEncoding,
142
+ z as B3Propagator,
143
+ f as B3_CONTEXT_HEADER,
144
+ S as X_B3_FLAGS,
145
+ N as X_B3_PARENT_SPAN_ID,
146
+ c as X_B3_SAMPLED,
147
+ g as X_B3_SPAN_ID,
148
+ v as X_B3_TRACE_ID
149
+ };
150
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtIX57MDBpfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGIgYXMgY3JlYXRlQ29udGV4dEtleSwgdCBhcyB0cmFjZSwgaSBhcyBpc1NwYW5Db250ZXh0VmFsaWQsIFQgYXMgVHJhY2VGbGFncywgZCBhcyBpc1ZhbGlkVHJhY2VJZCwgZSBhcyBpc1ZhbGlkU3BhbklkIH0gZnJvbSAnLi9pbmRleC0hfnswMDV9fi5qcyc7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgU1VQUFJFU1NfVFJBQ0lOR19LRVkgPSBjcmVhdGVDb250ZXh0S2V5KCdPcGVuVGVsZW1ldHJ5IFNESyBDb250ZXh0IEtleSBTVVBQUkVTU19UUkFDSU5HJyk7XG5mdW5jdGlvbiBpc1RyYWNpbmdTdXBwcmVzc2VkKGNvbnRleHQpIHtcbiAgICByZXR1cm4gY29udGV4dC5nZXRWYWx1ZShTVVBQUkVTU19UUkFDSU5HX0tFWSkgPT09IHRydWU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiogc2hhcmVkIGNvbnRleHQgZm9yIHN0b3JpbmcgYW4gZXh0cmFjdGVkIGIzIGRlYnVnIGZsYWcgKi9cbnZhciBCM19ERUJVR19GTEFHX0tFWSA9IGNyZWF0ZUNvbnRleHRLZXkoJ09wZW5UZWxlbWV0cnkgQ29udGV4dCBLZXkgQjMgRGVidWcgRmxhZycpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqIEIzIHNpbmdsZS1oZWFkZXIga2V5ICovXG52YXIgQjNfQ09OVEVYVF9IRUFERVIgPSAnYjMnO1xuLyogYjMgbXVsdGktaGVhZGVyIGtleXMgKi9cbnZhciBYX0IzX1RSQUNFX0lEID0gJ3gtYjMtdHJhY2VpZCc7XG52YXIgWF9CM19TUEFOX0lEID0gJ3gtYjMtc3BhbmlkJztcbnZhciBYX0IzX1NBTVBMRUQgPSAneC1iMy1zYW1wbGVkJztcbnZhciBYX0IzX1BBUkVOVF9TUEFOX0lEID0gJ3gtYjMtcGFyZW50c3BhbmlkJztcbnZhciBYX0IzX0ZMQUdTID0gJ3gtYjMtZmxhZ3MnO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xudmFyIFZBTElEX1NBTVBMRURfVkFMVUVTID0gbmV3IFNldChbdHJ1ZSwgJ3RydWUnLCAnVHJ1ZScsICcxJywgMV0pO1xudmFyIFZBTElEX1VOU0FNUExFRF9WQUxVRVMgPSBuZXcgU2V0KFtmYWxzZSwgJ2ZhbHNlJywgJ0ZhbHNlJywgJzAnLCAwXSk7XG5mdW5jdGlvbiBpc1ZhbGlkU2FtcGxlZFZhbHVlKHNhbXBsZWQpIHtcbiAgICByZXR1cm4gc2FtcGxlZCA9PT0gVHJhY2VGbGFncy5TQU1QTEVEIHx8IHNhbXBsZWQgPT09IFRyYWNlRmxhZ3MuTk9ORTtcbn1cbmZ1bmN0aW9uIHBhcnNlSGVhZGVyKGhlYWRlcikge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGhlYWRlcikgPyBoZWFkZXJbMF0gOiBoZWFkZXI7XG59XG5mdW5jdGlvbiBnZXRIZWFkZXJWYWx1ZShjYXJyaWVyLCBnZXR0ZXIsIGtleSkge1xuICAgIHZhciBoZWFkZXIgPSBnZXR0ZXIuZ2V0KGNhcnJpZXIsIGtleSk7XG4gICAgcmV0dXJuIHBhcnNlSGVhZGVyKGhlYWRlcik7XG59XG5mdW5jdGlvbiBnZXRUcmFjZUlkKGNhcnJpZXIsIGdldHRlcikge1xuICAgIHZhciB0cmFjZUlkID0gZ2V0SGVhZGVyVmFsdWUoY2FycmllciwgZ2V0dGVyLCBYX0IzX1RSQUNFX0lEKTtcbiAgICBpZiAodHlwZW9mIHRyYWNlSWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0cmFjZUlkLnBhZFN0YXJ0KDMyLCAnMCcpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG59XG5mdW5jdGlvbiBnZXRTcGFuSWQoY2FycmllciwgZ2V0dGVyKSB7XG4gICAgdmFyIHNwYW5JZCA9IGdldEhlYWRlclZhbHVlKGNhcnJpZXIsIGdldHRlciwgWF9CM19TUEFOX0lEKTtcbiAgICBpZiAodHlwZW9mIHNwYW5JZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHNwYW5JZDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xufVxuZnVuY3Rpb24gZ2V0RGVidWcoY2FycmllciwgZ2V0dGVyKSB7XG4gICAgdmFyIGRlYnVnID0gZ2V0SGVhZGVyVmFsdWUoY2FycmllciwgZ2V0dGVyLCBYX0IzX0ZMQUdTKTtcbiAgICByZXR1cm4gZGVidWcgPT09ICcxJyA/ICcxJyA6IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIGdldFRyYWNlRmxhZ3MoY2FycmllciwgZ2V0dGVyKSB7XG4gICAgdmFyIHRyYWNlRmxhZ3MgPSBnZXRIZWFkZXJWYWx1ZShjYXJyaWVyLCBnZXR0ZXIsIFhfQjNfU0FNUExFRCk7XG4gICAgdmFyIGRlYnVnID0gZ2V0RGVidWcoY2FycmllciwgZ2V0dGVyKTtcbiAgICBpZiAoZGVidWcgPT09ICcxJyB8fCBWQUxJRF9TQU1QTEVEX1ZBTFVFUy5oYXModHJhY2VGbGFncykpIHtcbiAgICAgICAgcmV0dXJuIFRyYWNlRmxhZ3MuU0FNUExFRDtcbiAgICB9XG4gICAgaWYgKHRyYWNlRmxhZ3MgPT09IHVuZGVmaW5lZCB8fCBWQUxJRF9VTlNBTVBMRURfVkFMVUVTLmhhcyh0cmFjZUZsYWdzKSkge1xuICAgICAgICByZXR1cm4gVHJhY2VGbGFncy5OT05FO1xuICAgIH1cbiAgICAvLyBUaGlzIGluZGljYXRlcyB0byBpc1ZhbGlkU2FtcGxlZFZhbHVlIHRoYXQgdGhpcyBpcyBub3QgdmFsaWRcbiAgICByZXR1cm47XG59XG4vKipcbiAqIFByb3BhZ2F0b3IgZm9yIHRoZSBCMyBtdWx0aXBsZS1oZWFkZXIgSFRUUCBmb3JtYXQuXG4gKiBCYXNlZCBvbjogaHR0cHM6Ly9naXRodWIuY29tL29wZW56aXBraW4vYjMtcHJvcGFnYXRpb25cbiAqL1xudmFyIEIzTXVsdGlQcm9wYWdhdG9yID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEIzTXVsdGlQcm9wYWdhdG9yKCkge1xuICAgIH1cbiAgICBCM011bHRpUHJvcGFnYXRvci5wcm90b3R5cGUuaW5qZWN0ID0gZnVuY3Rpb24gKGNvbnRleHQsIGNhcnJpZXIsIHNldHRlcikge1xuICAgICAgICB2YXIgc3BhbkNvbnRleHQgPSB0cmFjZS5nZXRTcGFuQ29udGV4dChjb250ZXh0KTtcbiAgICAgICAgaWYgKCFzcGFuQ29udGV4dCB8fFxuICAgICAgICAgICAgIWlzU3BhbkNvbnRleHRWYWxpZChzcGFuQ29udGV4dCkgfHxcbiAgICAgICAgICAgIGlzVHJhY2luZ1N1cHByZXNzZWQoY29udGV4dCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHZhciBkZWJ1ZyA9IGNvbnRleHQuZ2V0VmFsdWUoQjNfREVCVUdfRkxBR19LRVkpO1xuICAgICAgICBzZXR0ZXIuc2V0KGNhcnJpZXIsIFhfQjNfVFJBQ0VfSUQsIHNwYW5Db250ZXh0LnRyYWNlSWQpO1xuICAgICAgICBzZXR0ZXIuc2V0KGNhcnJpZXIsIFhfQjNfU1BBTl9JRCwgc3BhbkNvbnRleHQuc3BhbklkKTtcbiAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBCMyBzcGVjLCBpZiB0aGUgZGVidWcgZmxhZyBpcyBzZXQsXG4gICAgICAgIC8vIHRoZSBzYW1wbGVkIGZsYWcgc2hvdWxkbid0IGJlIHByb3BhZ2F0ZWQgYXMgd2VsbC5cbiAgICAgICAgaWYgKGRlYnVnID09PSAnMScpIHtcbiAgICAgICAgICAgIHNldHRlci5zZXQoY2FycmllciwgWF9CM19GTEFHUywgZGVidWcpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHNwYW5Db250ZXh0LnRyYWNlRmxhZ3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gV2Ugc2V0IHRoZSBoZWFkZXIgb25seSBpZiB0aGVyZSBpcyBhbiBleGlzdGluZyBzYW1wbGluZyBkZWNpc2lvbi5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSB3ZSB3aWxsIG9taXQgaXQgPT4gQWJzZW50LlxuICAgICAgICAgICAgc2V0dGVyLnNldChjYXJyaWVyLCBYX0IzX1NBTVBMRUQsIChUcmFjZUZsYWdzLlNBTVBMRUQgJiBzcGFuQ29udGV4dC50cmFjZUZsYWdzKSA9PT0gVHJhY2VGbGFncy5TQU1QTEVEXG4gICAgICAgICAgICAgICAgPyAnMSdcbiAgICAgICAgICAgICAgICA6ICcwJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEIzTXVsdGlQcm9wYWdhdG9yLnByb3RvdHlwZS5leHRyYWN0ID0gZnVuY3Rpb24gKGNvbnRleHQsIGNhcnJpZXIsIGdldHRlcikge1xuICAgICAgICB2YXIgdHJhY2VJZCA9IGdldFRyYWNlSWQoY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgdmFyIHNwYW5JZCA9IGdldFNwYW5JZChjYXJyaWVyLCBnZXR0ZXIpO1xuICAgICAgICB2YXIgdHJhY2VGbGFncyA9IGdldFRyYWNlRmxhZ3MoY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgdmFyIGRlYnVnID0gZ2V0RGVidWcoY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgaWYgKGlzVmFsaWRUcmFjZUlkKHRyYWNlSWQpICYmXG4gICAgICAgICAgICBpc1ZhbGlkU3BhbklkKHNwYW5JZCkgJiZcbiAgICAgICAgICAgIGlzVmFsaWRTYW1wbGVkVmFsdWUodHJhY2VGbGFncykpIHtcbiAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0LnNldFZhbHVlKEIzX0RFQlVHX0ZMQUdfS0VZLCBkZWJ1Zyk7XG4gICAgICAgICAgICByZXR1cm4gdHJhY2Uuc2V0U3BhbkNvbnRleHQoY29udGV4dCwge1xuICAgICAgICAgICAgICAgIHRyYWNlSWQ6IHRyYWNlSWQsXG4gICAgICAgICAgICAgICAgc3BhbklkOiBzcGFuSWQsXG4gICAgICAgICAgICAgICAgaXNSZW1vdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgdHJhY2VGbGFnczogdHJhY2VGbGFncyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgIH07XG4gICAgQjNNdWx0aVByb3BhZ2F0b3IucHJvdG90eXBlLmZpZWxkcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIFhfQjNfVFJBQ0VfSUQsXG4gICAgICAgICAgICBYX0IzX1NQQU5fSUQsXG4gICAgICAgICAgICBYX0IzX0ZMQUdTLFxuICAgICAgICAgICAgWF9CM19TQU1QTEVELFxuICAgICAgICAgICAgWF9CM19QQVJFTlRfU1BBTl9JRCxcbiAgICAgICAgXTtcbiAgICB9O1xuICAgIHJldHVybiBCM011bHRpUHJvcGFnYXRvcjtcbn0oKSk7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgX19yZWFkID0gKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19yZWFkKSB8fCBmdW5jdGlvbiAobywgbikge1xuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgICBpZiAoIW0pIHJldHVybiBvO1xuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICAgIHRyeSB7XG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICAgIH1cbiAgICByZXR1cm4gYXI7XG59O1xudmFyIEIzX0NPTlRFWFRfUkVHRVggPSAvKCg/OlswLTlhLWZdezE2fSl7MSwyfSktKFswLTlhLWZdezE2fSkoPzotKFswMWRdKD8hWzAtOWEtZl0pKSk/KD86LShbMC05YS1mXXsxNn0pKT8vO1xudmFyIFBBRERJTkcgPSAnMCcucmVwZWF0KDE2KTtcbnZhciBTQU1QTEVEX1ZBTFVFUyA9IG5ldyBTZXQoWydkJywgJzEnXSk7XG52YXIgREVCVUdfU1RBVEUgPSAnZCc7XG5mdW5jdGlvbiBjb252ZXJ0VG9UcmFjZUlkMTI4KHRyYWNlSWQpIHtcbiAgICByZXR1cm4gdHJhY2VJZC5sZW5ndGggPT09IDMyID8gdHJhY2VJZCA6IFwiXCIgKyBQQURESU5HICsgdHJhY2VJZDtcbn1cbmZ1bmN0aW9uIGNvbnZlcnRUb1RyYWNlRmxhZ3Moc2FtcGxpbmdTdGF0ZSkge1xuICAgIGlmIChzYW1wbGluZ1N0YXRlICYmIFNBTVBMRURfVkFMVUVTLmhhcyhzYW1wbGluZ1N0YXRlKSkge1xuICAgICAgICByZXR1cm4gVHJhY2VGbGFncy5TQU1QTEVEO1xuICAgIH1cbiAgICByZXR1cm4gVHJhY2VGbGFncy5OT05FO1xufVxuLyoqXG4gKiBQcm9wYWdhdG9yIGZvciB0aGUgQjMgc2luZ2xlLWhlYWRlciBIVFRQIGZvcm1hdC5cbiAqIEJhc2VkIG9uOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbnppcGtpbi9iMy1wcm9wYWdhdGlvblxuICovXG52YXIgQjNTaW5nbGVQcm9wYWdhdG9yID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEIzU2luZ2xlUHJvcGFnYXRvcigpIHtcbiAgICB9XG4gICAgQjNTaW5nbGVQcm9wYWdhdG9yLnByb3RvdHlwZS5pbmplY3QgPSBmdW5jdGlvbiAoY29udGV4dCwgY2Fycmllciwgc2V0dGVyKSB7XG4gICAgICAgIHZhciBzcGFuQ29udGV4dCA9IHRyYWNlLmdldFNwYW5Db250ZXh0KGNvbnRleHQpO1xuICAgICAgICBpZiAoIXNwYW5Db250ZXh0IHx8XG4gICAgICAgICAgICAhaXNTcGFuQ29udGV4dFZhbGlkKHNwYW5Db250ZXh0KSB8fFxuICAgICAgICAgICAgaXNUcmFjaW5nU3VwcHJlc3NlZChjb250ZXh0KSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdmFyIHNhbXBsaW5nU3RhdGUgPSBjb250ZXh0LmdldFZhbHVlKEIzX0RFQlVHX0ZMQUdfS0VZKSB8fCBzcGFuQ29udGV4dC50cmFjZUZsYWdzICYgMHgxO1xuICAgICAgICB2YXIgdmFsdWUgPSBzcGFuQ29udGV4dC50cmFjZUlkICsgXCItXCIgKyBzcGFuQ29udGV4dC5zcGFuSWQgKyBcIi1cIiArIHNhbXBsaW5nU3RhdGU7XG4gICAgICAgIHNldHRlci5zZXQoY2FycmllciwgQjNfQ09OVEVYVF9IRUFERVIsIHZhbHVlKTtcbiAgICB9O1xuICAgIEIzU2luZ2xlUHJvcGFnYXRvci5wcm90b3R5cGUuZXh0cmFjdCA9IGZ1bmN0aW9uIChjb250ZXh0LCBjYXJyaWVyLCBnZXR0ZXIpIHtcbiAgICAgICAgdmFyIGhlYWRlciA9IGdldHRlci5nZXQoY2FycmllciwgQjNfQ09OVEVYVF9IRUFERVIpO1xuICAgICAgICB2YXIgYjNDb250ZXh0ID0gQXJyYXkuaXNBcnJheShoZWFkZXIpID8gaGVhZGVyWzBdIDogaGVhZGVyO1xuICAgICAgICBpZiAodHlwZW9mIGIzQ29udGV4dCAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICAgICAgdmFyIG1hdGNoID0gYjNDb250ZXh0Lm1hdGNoKEIzX0NPTlRFWFRfUkVHRVgpO1xuICAgICAgICBpZiAoIW1hdGNoKVxuICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgICAgIHZhciBfYSA9IF9fcmVhZChtYXRjaCwgNCksIGV4dHJhY3RlZFRyYWNlSWQgPSBfYVsxXSwgc3BhbklkID0gX2FbMl0sIHNhbXBsaW5nU3RhdGUgPSBfYVszXTtcbiAgICAgICAgdmFyIHRyYWNlSWQgPSBjb252ZXJ0VG9UcmFjZUlkMTI4KGV4dHJhY3RlZFRyYWNlSWQpO1xuICAgICAgICBpZiAoIWlzVmFsaWRUcmFjZUlkKHRyYWNlSWQpIHx8ICFpc1ZhbGlkU3BhbklkKHNwYW5JZCkpXG4gICAgICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICAgICAgdmFyIHRyYWNlRmxhZ3MgPSBjb252ZXJ0VG9UcmFjZUZsYWdzKHNhbXBsaW5nU3RhdGUpO1xuICAgICAgICBpZiAoc2FtcGxpbmdTdGF0ZSA9PT0gREVCVUdfU1RBVEUpIHtcbiAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0LnNldFZhbHVlKEIzX0RFQlVHX0ZMQUdfS0VZLCBzYW1wbGluZ1N0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJhY2Uuc2V0U3BhbkNvbnRleHQoY29udGV4dCwge1xuICAgICAgICAgICAgdHJhY2VJZDogdHJhY2VJZCxcbiAgICAgICAgICAgIHNwYW5JZDogc3BhbklkLFxuICAgICAgICAgICAgaXNSZW1vdGU6IHRydWUsXG4gICAgICAgICAgICB0cmFjZUZsYWdzOiB0cmFjZUZsYWdzLFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEIzU2luZ2xlUHJvcGFnYXRvci5wcm90b3R5cGUuZmllbGRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gW0IzX0NPTlRFWFRfSEVBREVSXTtcbiAgICB9O1xuICAgIHJldHVybiBCM1NpbmdsZVByb3BhZ2F0b3I7XG59KCkpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqIEVudW1lcmF0aW9uIG9mIEIzIGluamVjdCBlbmNvZGluZ3MgKi9cbnZhciBCM0luamVjdEVuY29kaW5nO1xuKGZ1bmN0aW9uIChCM0luamVjdEVuY29kaW5nKSB7XG4gICAgQjNJbmplY3RFbmNvZGluZ1tCM0luamVjdEVuY29kaW5nW1wiU0lOR0xFX0hFQURFUlwiXSA9IDBdID0gXCJTSU5HTEVfSEVBREVSXCI7XG4gICAgQjNJbmplY3RFbmNvZGluZ1tCM0luamVjdEVuY29kaW5nW1wiTVVMVElfSEVBREVSXCJdID0gMV0gPSBcIk1VTFRJX0hFQURFUlwiO1xufSkoQjNJbmplY3RFbmNvZGluZyB8fCAoQjNJbmplY3RFbmNvZGluZyA9IHt9KSk7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIFByb3BhZ2F0b3IgdGhhdCBleHRyYWN0cyBCMyBjb250ZXh0IGluIGJvdGggc2luZ2xlIGFuZCBtdWx0aS1oZWFkZXIgdmFyaWFudHMsXG4gKiB3aXRoIGNvbmZpZ3VyYWJsZSBpbmplY3Rpb24gZm9ybWF0IGRlZmF1bHRpbmcgdG8gQjMgc2luZ2xlLWhlYWRlci4gRHVlIHRvXG4gKiB0aGUgYXN5bW1ldHJ5IGluIGluamVjdGlvbiBhbmQgZXh0cmFjdGlvbiBmb3JtYXRzIHRoaXMgaXMgbm90IHN1aXRhYmxlIHRvXG4gKiBiZSBpbXBsZW1lbnRlZCBhcyBhIGNvbXBvc2l0ZSBwcm9wYWdhdG9yLlxuICogQmFzZWQgb246IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuemlwa2luL2IzLXByb3BhZ2F0aW9uXG4gKi9cbnZhciBCM1Byb3BhZ2F0b3IgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQjNQcm9wYWdhdG9yKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnID09PSB2b2lkIDApIHsgY29uZmlnID0ge307IH1cbiAgICAgICAgdGhpcy5fYjNNdWx0aVByb3BhZ2F0b3IgPSBuZXcgQjNNdWx0aVByb3BhZ2F0b3IoKTtcbiAgICAgICAgdGhpcy5fYjNTaW5nbGVQcm9wYWdhdG9yID0gbmV3IEIzU2luZ2xlUHJvcGFnYXRvcigpO1xuICAgICAgICBpZiAoY29uZmlnLmluamVjdEVuY29kaW5nID09PSBCM0luamVjdEVuY29kaW5nLk1VTFRJX0hFQURFUikge1xuICAgICAgICAgICAgdGhpcy5faW5qZWN0ID0gdGhpcy5fYjNNdWx0aVByb3BhZ2F0b3IuaW5qZWN0O1xuICAgICAgICAgICAgdGhpcy5fZmllbGRzID0gdGhpcy5fYjNNdWx0aVByb3BhZ2F0b3IuZmllbGRzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbmplY3QgPSB0aGlzLl9iM1NpbmdsZVByb3BhZ2F0b3IuaW5qZWN0O1xuICAgICAgICAgICAgdGhpcy5fZmllbGRzID0gdGhpcy5fYjNTaW5nbGVQcm9wYWdhdG9yLmZpZWxkcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEIzUHJvcGFnYXRvci5wcm90b3R5cGUuaW5qZWN0ID0gZnVuY3Rpb24gKGNvbnRleHQsIGNhcnJpZXIsIHNldHRlcikge1xuICAgICAgICBpZiAoaXNUcmFjaW5nU3VwcHJlc3NlZChjb250ZXh0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2luamVjdChjb250ZXh0LCBjYXJyaWVyLCBzZXR0ZXIpO1xuICAgIH07XG4gICAgQjNQcm9wYWdhdG9yLnByb3RvdHlwZS5leHRyYWN0ID0gZnVuY3Rpb24gKGNvbnRleHQsIGNhcnJpZXIsIGdldHRlcikge1xuICAgICAgICB2YXIgaGVhZGVyID0gZ2V0dGVyLmdldChjYXJyaWVyLCBCM19DT05URVhUX0hFQURFUik7XG4gICAgICAgIHZhciBiM0NvbnRleHQgPSBBcnJheS5pc0FycmF5KGhlYWRlcikgPyBoZWFkZXJbMF0gOiBoZWFkZXI7XG4gICAgICAgIGlmIChiM0NvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9iM1NpbmdsZVByb3BhZ2F0b3IuZXh0cmFjdChjb250ZXh0LCBjYXJyaWVyLCBnZXR0ZXIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2IzTXVsdGlQcm9wYWdhdG9yLmV4dHJhY3QoY29udGV4dCwgY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQjNQcm9wYWdhdG9yLnByb3RvdHlwZS5maWVsZHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZHM7XG4gICAgfTtcbiAgICByZXR1cm4gQjNQcm9wYWdhdG9yO1xufSgpKTtcblxuZXhwb3J0IHsgQjNJbmplY3RFbmNvZGluZywgQjNQcm9wYWdhdG9yLCBCM19DT05URVhUX0hFQURFUiwgWF9CM19GTEFHUywgWF9CM19QQVJFTlRfU1BBTl9JRCwgWF9CM19TQU1QTEVELCBYX0IzX1NQQU5fSUQsIFhfQjNfVFJBQ0VfSUQgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQWtCLEtBQUtDLEdBQU8sS0FBS0MsR0FBb0IsS0FBS0MsR0FBWSxLQUFLQyxHQUFnQixLQUFLQyxTQUFxQjtBQWlCckksSUFBSUMsSUFBdUJOLEVBQWlCLGdEQUFnRDtBQUM1RixTQUFTTyxFQUFvQkMsR0FBUztBQUNsQyxTQUFPQSxFQUFRLFNBQVNGLENBQW9CLE1B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SyxRQUFRQSxHQUFTZSxHQUFTWSxDQUFNO0FBQUEsSUFDekMsR0FDQXlCLEVBQWEsVUFBVSxVQUFVLFNBQVVwRCxHQUFTZSxHQUFTQyxHQUFRO0FBQ2pFLFVBQUlILElBQVNHLEVBQU8sSUFBSUQsR0FBU2IsQ0FBaUIsR0FDOUM2QyxJQUFZLE1BQU0sUUFBUWxDLENBQU0sSUFBSUEsRUFBTyxDQUFDLElBQUlBO0FBQ3BELGFBQUlrQyxJQUNPLEtBQUssb0JBQW9CLFFBQVEvQyxHQUFTZSxHQUFTQyxDQUFNLElBR3pELEtBQUssbUJBQW1CLFFBQVFoQixHQUFTZSxHQUFTQyxDQUFNO0FBQUEsSUFFdkUsR0FDQW9DLEVBQWEsVUFBVSxTQUFTLFdBQVk7QUFDeEMsYUFBTyxLQUFLO0FBQUEsSUFDaEIsR0FDT0E7QUFBQSxFQUNYLEVBQUU7QUFBQTsiLAogICJuYW1lcyI6IFsiY3JlYXRlQ29udGV4dEtleSIsICJ0cmFjZSIsICJpc1NwYW5Db250ZXh0VmFsaWQiLCAiVHJhY2VGbGFncyIsICJpc1ZhbGlkVHJhY2VJZCIsICJpc1ZhbGlkU3BhbklkIiwgIlNVUFBSRVNTX1RSQUNJTkdfS0VZIiwgImlzVHJhY2luZ1N1cHByZXNzZWQiLCAiY29udGV4dCIsICJCM19ERUJVR19GTEFHX0tFWSIsICJCM19DT05URVhUX0hFQURFUiIsICJYX0IzX1RSQUNFX0lEIiwgIlhfQjNfU1BBTl9JRCIsICJYX0IzX1NBTVBMRUQiLCAiWF9CM19QQVJFTlRfU1BBTl9JRCIsICJYX0IzX0ZMQUdTIiwgIlZBTElEX1NBTVBMRURfVkFMVUVTIiwgIlZBTElEX1VOU0FNUExFRF9WQUxVRVMiLCAiaXNWYWxpZFNhbXBsZWRWYWx1ZSIsICJzYW1wbGVkIiwgInBhcnNlSGVhZGVyIiwgImhlYWRlciIsICJnZXRIZWFkZXJWYWx1ZSIsICJjYXJyaWVyIiwgImdldHRlciIsICJrZXkiLCAiZ2V0VHJhY2VJZCIsICJ0cmFjZUlkIiwgImdldFNwYW5JZCIsICJzcGFuSWQiLCAiZ2V0RGVidWciLCAiZGVidWciLCAiZ2V0VHJhY2VGbGFncyIsICJ0cmFjZUZsYWdzIiwgIkIzTXVsdGlQcm9wYWdhdG9yIiwgInNldHRlciIsICJzcGFuQ29udGV4dCIsICJfX3JlYWQiLCAibyIsICJuIiwgIm0iLCAiaSIsICJyIiwgImFyIiwgImUiLCAiZXJyb3IiLCAiQjNfQ09OVEVYVF9SRUdFWCIsICJQQURESU5HIiwgIlNBTVBMRURfVkFMVUVTIiwgIkRFQlVHX1NUQVRFIiwgImNvbnZlcnRUb1RyYWNlSWQxMjgiLCAiY29udmVydFRvVHJhY2VGbGFncyIsICJzYW1wbGluZ1N0YXRlIiwgIkIzU2luZ2xlUHJvcGFnYXRvciIsICJ2YWx1ZSIsICJiM0NvbnRleHQiLCAibWF0Y2giLCAiX2EiLCAiZXh0cmFjdGVkVHJhY2VJZCIsICJCM0luamVjdEVuY29kaW5nIiwgIkIzUHJvcGFnYXRvciIsICJjb25maWciXQp9Cg==