{
  "bomFormat": "CycloneDX",
  "version": 1,
  "specVersion": "1.5",
  "components": [
    {
      "type": "library",
      "name": "react",
      "version": "19.2.4",
      "bom-ref": "pkg:npm/react@19.2.4",
      "purl": "pkg:npm/react@19.2.4",
      "hashes": [
        {
          "alg": "SHA-512",
          "content": "cd2c9ff67a720799cc3b38a516009986f7fc4cb8d3e15716c6211cf098d1357ee3e348ab05ad0600042bbb0fd888530ba92e329198c92eafa0994f5213396596"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "react-dom",
      "version": "19.2.4",
      "bom-ref": "pkg:npm/react-dom@19.2.4",
      "purl": "pkg:npm/react-dom@19.2.4",
      "hashes": [
        {
          "alg": "SHA-512",
          "content": "f0c63f1794dedb154136d4d0f59af00b41907f4859571c155940296808f4b94bf9c0c20633db75b5b2112ec13d8d7dd4f9bf57362ed48782f317b11d05a44f35"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "react-router",
      "version": "7.13.0",
      "bom-ref": "pkg:npm/react-router@7.13.0",
      "purl": "pkg:npm/react-router@7.13.0",
      "hashes": [
        {
          "alg": "SHA-512",
          "content": "397cb009bc83d071269c8f9323bbfe1f856721fde75e39b29fe0ddfe7564ebdc3b8bbb85768321cae92ec28b406e8fac7eab7e232d0738b3b1c092e2764e4307"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "scheduler",
      "version": "0.27.0",
      "bom-ref": "pkg:npm/scheduler@0.27.0",
      "purl": "pkg:npm/scheduler@0.27.0",
      "hashes": [
        {
          "alg": "SHA-512",
          "content": "4f03048cb05a3c8fddc45813052251eca00688f413a3cee236d984a161da28db28ba71bd11e7a3dd02f7af84ab28d39fb311431d3b3772fed557945beb00c452"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "application",
      "bom-ref": "coturn-5a518078b2ce7fcee72d6a7cdede314595525c5b",
      "name": "coturn",
      "author": "coturn TURN server project",
      "version": "5a518078b2ce7fcee72d6a7cdede314595525c5b",
      "licenses": [
        {
          "expression": "BSD-3-Clause"
        }
      ],
      "externalReferences": [
        {
          "url": "https://github.com/coturn/coturn.git",
          "type": "vcs"
        },
        {
          "url": "https://github.com/coturn/coturn",
          "type": "website"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix",
      "description": "Actor framework for Rust",
      "author": "Nikolay Kim <fafhrd91@gmail.com>",
      "version": "0.13.5",
      "bom-ref": "pkg:cargo/actix@0.13.5",
      "purl": "pkg:cargo/actix@0.13.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "de7fa236829ba0841304542f7614c42b80fca007455315c45c785ccfa873a85b"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-codec",
      "description": "Codec utilities for working with framed protocols",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "0.5.2",
      "bom-ref": "pkg:cargo/actix-codec@0.5.2",
      "purl": "pkg:cargo/actix-codec@0.5.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-net"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-http",
      "description": "HTTP types and services for the Actix ecosystem",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "3.11.0",
      "bom-ref": "pkg:cargo/actix-http@3.11.0",
      "purl": "pkg:cargo/actix-http@3.11.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "44dfe5c9e0004c623edc65391dfd51daa201e7e30ebd9c9bedf873048ec32bc2"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://actix.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-web"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-macros",
      "description": "Macros for Actix system and runtime",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Ibraheem Ahmed <ibrah1440@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "0.2.4",
      "bom-ref": "pkg:cargo/actix-macros@0.2.4",
      "purl": "pkg:cargo/actix-macros@0.2.4",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-net.git"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-router",
      "description": "Resource path matching and router",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Ali MJ Al-Nasrawy <alimjalnasrawy@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "0.5.3",
      "bom-ref": "pkg:cargo/actix-router@0.5.3",
      "purl": "pkg:cargo/actix-router@0.5.3",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-web"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-rt",
      "description": "Tokio-based single-threaded async runtime for the Actix ecosystem",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "2.10.0",
      "bom-ref": "pkg:cargo/actix-rt@2.10.0",
      "purl": "pkg:cargo/actix-rt@2.10.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://actix.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-net"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-server",
      "description": "General purpose TCP server built for the Actix ecosystem",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>, Ali MJ Al-Nasrawy <alimjalnasrawy@gmail.com>",
      "version": "2.5.0",
      "bom-ref": "pkg:cargo/actix-server@2.5.0",
      "purl": "pkg:cargo/actix-server@2.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "7ca2549781d8dd6d75c40cf6b6051260a2cc2f3c62343d761a969a0640646894"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://actix.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-net/tree/master/actix-server"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-service",
      "description": "Service trait and combinators for representing asynchronous request/response operations.",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "2.0.3",
      "bom-ref": "pkg:cargo/actix-service@2.0.3",
      "purl": "pkg:cargo/actix-service@2.0.3",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-net"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-tls",
      "description": "TLS acceptor and connector services for Actix ecosystem",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "3.4.0",
      "bom-ref": "pkg:cargo/actix-tls@3.4.0",
      "purl": "pkg:cargo/actix-tls@3.4.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "ac453898d866cdbecdbc2334fe1738c747b4eba14a677261f2b768ba05329389"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-net.git"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-utils",
      "description": "Various utilities used in the Actix ecosystem",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "3.0.1",
      "bom-ref": "pkg:cargo/actix-utils@3.0.1",
      "purl": "pkg:cargo/actix-utils@3.0.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-net"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-web",
      "description": "Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "4.10.2",
      "bom-ref": "pkg:cargo/actix-web@4.10.2",
      "purl": "pkg:cargo/actix-web@4.10.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "f2e3b15b3dc6c6ed996e4032389e9849d4ab002b1e92fbfe85b5f307d1479b4d"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://actix.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-web"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-web-actors",
      "description": "Actix actors support for Actix Web",
      "author": "Nikolay Kim <fafhrd91@gmail.com>",
      "version": "4.3.1+deprecated",
      "bom-ref": "pkg:cargo/actix-web-actors@4.3.1+deprecated",
      "purl": "pkg:cargo/actix-web-actors@4.3.1+deprecated",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "f98c5300b38fd004fe7d2a964f9a90813fdbe8a81fed500587e78b1b71c6f980"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://actix.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-web"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix-web-codegen",
      "description": "Routing and runtime macros for Actix Web",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "4.3.0",
      "bom-ref": "pkg:cargo/actix-web-codegen@4.3.0",
      "purl": "pkg:cargo/actix-web-codegen@4.3.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://actix.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-web"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "actix_derive",
      "description": "Derive macros for `actix` actors",
      "author": "Callym <hi@callym.com>, Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "0.6.2",
      "bom-ref": "pkg:cargo/actix_derive@0.6.2",
      "purl": "pkg:cargo/actix_derive@0.6.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b6ac1e58cded18cb28ddc17143c4dea5345b3ad575e14f32f66e4054a56eb271"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "adler2",
      "description": "A simple clean-room implementation of the Adler-32 checksum",
      "author": "Jonas Schievink <jonasschievink@gmail.com>, oyvindln <oyvindln@users.noreply.github.com>",
      "version": "2.0.0",
      "bom-ref": "pkg:cargo/adler2@2.0.0",
      "purl": "pkg:cargo/adler2@2.0.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/adler2/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/oyvindln/adler2"
        }
      ],
      "licenses": [
        {
          "expression": "0BSD OR MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "aho-corasick",
      "description": "Fast multiple substring searching.",
      "author": "Andrew Gallant <jamslam@gmail.com>",
      "version": "1.1.3",
      "bom-ref": "pkg:cargo/aho-corasick@1.1.3",
      "purl": "pkg:cargo/aho-corasick@1.1.3",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/BurntSushi/aho-corasick"
        },
        {
          "type": "vcs",
          "url": "https://github.com/BurntSushi/aho-corasick"
        }
      ],
      "licenses": [
        {
          "expression": "Unlicense OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "alloc-no-stdlib",
      "description": "A dynamic allocator that may be used with or without the stdlib. This allows a package with nostd to allocate memory dynamically and be used either with a custom allocator, items on the stack, or by a package that wishes to simply use Box<>. It also provides options to use calloc or a mutable global variable for pre-zeroed memory",
      "author": "Daniel Reiter Horn <danielrh@dropbox.com>",
      "version": "2.0.4",
      "bom-ref": "pkg:cargo/alloc-no-stdlib@2.0.4",
      "purl": "pkg:cargo/alloc-no-stdlib@2.0.4",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/dropbox/rust-alloc-no-stdlib"
        },
        {
          "type": "documentation",
          "url": "https://raw.githubusercontent.com/dropbox/rust-alloc-no-stdlib/master/tests/lib.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dropbox/rust-alloc-no-stdlib"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "alloc-stdlib",
      "description": "A dynamic allocator example that may be used with the stdlib",
      "author": "Daniel Reiter Horn <danielrh@dropbox.com>",
      "version": "0.2.2",
      "bom-ref": "pkg:cargo/alloc-stdlib@0.2.2",
      "purl": "pkg:cargo/alloc-stdlib@0.2.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/dropbox/rust-alloc-no-stdlib"
        },
        {
          "type": "documentation",
          "url": "https://raw.githubusercontent.com/dropbox/rust-alloc-no-stdlib/master/alloc-stdlib/tests/lib.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dropbox/rust-alloc-no-stdlib"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "anyhow",
      "description": "Flexible concrete Error type built on std::error::Error",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "version": "1.0.98",
      "bom-ref": "pkg:cargo/anyhow@1.0.98",
      "purl": "pkg:cargo/anyhow@1.0.98",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/anyhow"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/anyhow"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "aws-lc-rs",
      "description": "aws-lc-rs is a cryptographic library using AWS-LC for its cryptographic operations. This library strives to be API-compatible with the popular Rust library named ring.",
      "author": "AWS-LibCrypto",
      "version": "1.13.0",
      "bom-ref": "pkg:cargo/aws-lc-rs@1.13.0",
      "purl": "pkg:cargo/aws-lc-rs@1.13.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "19b756939cb2f8dc900aa6dcd505e6e2428e9cae7ff7b028c49e3946efa70878"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/aws/aws-lc-rs"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/crate/aws-lc-rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/aws/aws-lc-rs"
        }
      ],
      "licenses": [
        {
          "expression": "ISC AND (Apache-2.0 OR ISC)"
        }
      ]
    },
    {
      "type": "library",
      "name": "aws-lc-sys",
      "description": "AWS-LC is a general-purpose cryptographic library maintained by the AWS Cryptography team for AWS and their customers. It іs based on code from the Google BoringSSL project and the OpenSSL project.",
      "author": "AWS-LC",
      "version": "0.28.0",
      "bom-ref": "pkg:cargo/aws-lc-sys@0.28.0",
      "purl": "pkg:cargo/aws-lc-sys@0.28.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b9f7720b74ed28ca77f90769a71fd8c637a0137f6fae4ae947e1050229cff57f"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/aws/aws-lc-rs"
        }
      ],
      "licenses": [
        {
          "expression": "ISC AND (Apache-2.0 OR ISC) AND OpenSSL"
        }
      ]
    },
    {
      "type": "library",
      "name": "base64",
      "description": "encodes and decodes base64 as bytes or utf8",
      "author": "Marshall Pierce <marshall@mpierce.org>",
      "version": "0.22.1",
      "bom-ref": "pkg:cargo/base64@0.22.1",
      "purl": "pkg:cargo/base64@0.22.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/base64"
        },
        {
          "type": "vcs",
          "url": "https://github.com/marshallpierce/rust-base64"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "bitflags",
      "description": "A macro to generate structures which behave like bitflags.\n",
      "author": "The Rust Project Developers",
      "version": "2.6.0",
      "bom-ref": "pkg:cargo/bitflags@2.6.0",
      "purl": "pkg:cargo/bitflags@2.6.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/bitflags/bitflags"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/bitflags"
        },
        {
          "type": "vcs",
          "url": "https://github.com/bitflags/bitflags"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "block-buffer",
      "description": "Buffer type for block processing of data",
      "author": "RustCrypto Developers",
      "version": "0.10.4",
      "bom-ref": "pkg:cargo/block-buffer@0.10.4",
      "purl": "pkg:cargo/block-buffer@0.10.4",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/block-buffer"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/utils"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "brotli",
      "description": "A brotli compressor and decompressor that with an interface avoiding the rust stdlib. This makes it suitable for embedded devices and kernels. It is designed with a pluggable allocator so that the standard lib's allocator may be employed. The default build also includes a stdlib allocator and stream interface. Disable this with --features=no-stdlib. All included code is safe.",
      "author": "Daniel Reiter Horn <danielrh@dropbox.com>, The Brotli Authors",
      "version": "8.0.1",
      "bom-ref": "pkg:cargo/brotli@8.0.1",
      "purl": "pkg:cargo/brotli@8.0.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/dropbox/rust-brotli"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/brotli/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dropbox/rust-brotli"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause AND MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "brotli-decompressor",
      "description": "A brotli decompressor that with an interface avoiding the rust stdlib. This makes it suitable for embedded devices and kernels. It is designed with a pluggable allocator so that the standard lib's allocator may be employed. The default build also includes a stdlib allocator and stream interface. Disable this with --features=no-stdlib. Alternatively, --features=unsafe turns off array bounds checks and memory initialization but provides a safe interface for the caller.  Without adding the --features=unsafe argument, all included code is safe. For compression in addition to this library, download https://github.com/dropbox/rust-brotli ",
      "author": "Daniel Reiter Horn <danielrh@dropbox.com>, The Brotli Authors",
      "version": "5.0.0",
      "bom-ref": "pkg:cargo/brotli-decompressor@5.0.0",
      "purl": "pkg:cargo/brotli-decompressor@5.0.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/dropbox/rust-brotli-decompressor"
        },
        {
          "type": "documentation",
          "url": "https://github.com/dropbox/rust-brotli-decompressor/blob/master/README.md"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dropbox/rust-brotli-decompressor"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause/MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "byteorder",
      "description": "Library for reading/writing numbers in big-endian and little-endian.",
      "author": "Andrew Gallant <jamslam@gmail.com>",
      "version": "1.5.0",
      "bom-ref": "pkg:cargo/byteorder@1.5.0",
      "purl": "pkg:cargo/byteorder@1.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/BurntSushi/byteorder"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/byteorder"
        },
        {
          "type": "vcs",
          "url": "https://github.com/BurntSushi/byteorder"
        }
      ],
      "licenses": [
        {
          "expression": "Unlicense OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "bytes",
      "description": "Types and traits for working with bytes",
      "author": "Carl Lerche <me@carllerche.com>, Sean McArthur <sean@seanmonstar.com>",
      "version": "1.9.0",
      "bom-ref": "pkg:cargo/bytes@1.9.0",
      "purl": "pkg:cargo/bytes@1.9.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/bytes"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "bytestring",
      "description": "A UTF-8 encoded read-only string using `Bytes` as storage",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "1.4.0",
      "bom-ref": "pkg:cargo/bytestring@1.4.0",
      "purl": "pkg:cargo/bytestring@1.4.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://actix.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-net"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "cfg-if",
      "description": "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n",
      "author": "Alex Crichton <alex@alexcrichton.com>",
      "version": "1.0.0",
      "bom-ref": "pkg:cargo/cfg-if@1.0.0",
      "purl": "pkg:cargo/cfg-if@1.0.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/alexcrichton/cfg-if"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/cfg-if"
        },
        {
          "type": "vcs",
          "url": "https://github.com/alexcrichton/cfg-if"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "chrono",
      "description": "Date and time library for Rust",
      "version": "0.4.41",
      "bom-ref": "pkg:cargo/chrono@0.4.41",
      "purl": "pkg:cargo/chrono@0.4.41",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/chronotope/chrono"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/chrono/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/chronotope/chrono"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "cookie",
      "description": "HTTP cookie parsing and cookie jar management. Supports signed and private\n(encrypted, authenticated) jars.\n",
      "author": "Sergio Benitez <sb@sergio.bz>, Alex Crichton <alex@alexcrichton.com>",
      "version": "0.16.2",
      "bom-ref": "pkg:cargo/cookie@0.16.2",
      "purl": "pkg:cargo/cookie@0.16.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/cookie"
        },
        {
          "type": "vcs",
          "url": "https://github.com/SergioBenitez/cookie-rs"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "cpufeatures",
      "description": "Lightweight runtime CPU feature detection for aarch64, loongarch64, and x86/x86_64 targets, \nwith no_std support and support for mobile targets including Android and iOS\n",
      "author": "RustCrypto Developers",
      "version": "0.2.16",
      "bom-ref": "pkg:cargo/cpufeatures@0.2.16",
      "purl": "pkg:cargo/cpufeatures@0.2.16",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/cpufeatures"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/utils"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "crc32fast",
      "description": "Fast, SIMD-accelerated CRC32 (IEEE) checksum computation",
      "author": "Sam Rijs <srijs@airpost.net>, Alex Crichton <alex@alexcrichton.com>",
      "version": "1.4.2",
      "bom-ref": "pkg:cargo/crc32fast@1.4.2",
      "purl": "pkg:cargo/crc32fast@1.4.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/srijs/rust-crc32fast"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "crossbeam-channel",
      "description": "Multi-producer multi-consumer channels for message passing",
      "version": "0.5.15",
      "bom-ref": "pkg:cargo/crossbeam-channel@0.5.15",
      "purl": "pkg:cargo/crossbeam-channel@0.5.15",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-channel"
        },
        {
          "type": "vcs",
          "url": "https://github.com/crossbeam-rs/crossbeam"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "crossbeam-utils",
      "description": "Utilities for concurrent programming",
      "version": "0.8.20",
      "bom-ref": "pkg:cargo/crossbeam-utils@0.8.20",
      "purl": "pkg:cargo/crossbeam-utils@0.8.20",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils"
        },
        {
          "type": "vcs",
          "url": "https://github.com/crossbeam-rs/crossbeam"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "crypto-common",
      "description": "Common cryptographic traits",
      "author": "RustCrypto Developers",
      "version": "0.1.6",
      "bom-ref": "pkg:cargo/crypto-common@0.1.6",
      "purl": "pkg:cargo/crypto-common@0.1.6",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/crypto-common"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/traits"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "deranged",
      "description": "Ranged integers",
      "author": "Jacob Pratt <jacob@jhpratt.dev>",
      "version": "0.4.1",
      "bom-ref": "pkg:cargo/deranged@0.4.1",
      "purl": "pkg:cargo/deranged@0.4.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/jhpratt/deranged"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "derive_more",
      "description": "Adds #[derive(x)] macros for more traits",
      "author": "Jelte Fennema <github-tech@jeltef.nl>",
      "version": "2.0.1",
      "bom-ref": "pkg:cargo/derive_more@2.0.1",
      "purl": "pkg:cargo/derive_more@2.0.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/derive_more"
        },
        {
          "type": "vcs",
          "url": "https://github.com/JelteF/derive_more"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "derive_more-impl",
      "description": "Internal implementation of `derive_more` crate",
      "author": "Jelte Fennema <github-tech@jeltef.nl>",
      "version": "2.0.1",
      "bom-ref": "pkg:cargo/derive_more-impl@2.0.1",
      "purl": "pkg:cargo/derive_more-impl@2.0.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/derive_more"
        },
        {
          "type": "vcs",
          "url": "https://github.com/JelteF/derive_more"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "digest",
      "description": "Traits for cryptographic hash functions and message authentication codes",
      "author": "RustCrypto Developers",
      "version": "0.10.7",
      "bom-ref": "pkg:cargo/digest@0.10.7",
      "purl": "pkg:cargo/digest@0.10.7",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/digest"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/traits"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "displaydoc",
      "description": "A derive macro for implementing the display Trait via a doc comment and string interpolation\n",
      "author": "Jane Lusby <jlusby@yaah.dev>",
      "version": "0.2.5",
      "bom-ref": "pkg:cargo/displaydoc@0.2.5",
      "purl": "pkg:cargo/displaydoc@0.2.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/yaahc/displaydoc"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/displaydoc"
        },
        {
          "type": "vcs",
          "url": "https://github.com/yaahc/displaydoc"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "encoding_rs",
      "description": "A Gecko-oriented implementation of the Encoding Standard",
      "author": "Henri Sivonen <hsivonen@hsivonen.fi>",
      "version": "0.8.35",
      "bom-ref": "pkg:cargo/encoding_rs@0.8.35",
      "purl": "pkg:cargo/encoding_rs@0.8.35",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://docs.rs/encoding_rs/"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/encoding_rs/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/hsivonen/encoding_rs"
        }
      ],
      "licenses": [
        {
          "expression": "(Apache-2.0 OR MIT) AND BSD-3-Clause"
        }
      ]
    },
    {
      "type": "library",
      "name": "equivalent",
      "description": "Traits for key comparison in maps.",
      "version": "1.0.1",
      "bom-ref": "pkg:cargo/equivalent@1.0.1",
      "purl": "pkg:cargo/equivalent@1.0.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/cuviper/equivalent"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "flate2",
      "description": "DEFLATE compression and decompression exposed as Read/BufRead/Write streams.\nSupports miniz_oxide and multiple zlib implementations. Supports zlib, gzip,\nand raw deflate streams.\n",
      "author": "Alex Crichton <alex@alexcrichton.com>, Josh Triplett <josh@joshtriplett.org>",
      "version": "1.1.1",
      "bom-ref": "pkg:cargo/flate2@1.1.1",
      "purl": "pkg:cargo/flate2@1.1.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/rust-lang/flate2-rs"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/flate2"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/flate2-rs"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "flexi_logger",
      "description": "An easy-to-configure and flexible logger that writes logs to stderr or stdout and/or to files. It allows custom logline formats, and it allows changing the log specification at runtime. It also allows defining additional log streams, e.g. for alert or security messages.",
      "author": "emabee <meinolf.block-hd@t-online.de>",
      "version": "0.30.1",
      "bom-ref": "pkg:cargo/flexi_logger@0.30.1",
      "purl": "pkg:cargo/flexi_logger@0.30.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "fcd71620581c99445892ad71e2c2e0d6f62edf2e22822556f0d2ee9f8508af29"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/flexi_logger"
        },
        {
          "type": "vcs",
          "url": "https://github.com/emabee/flexi_logger"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "fnv",
      "description": "Fowler–Noll–Vo hash function",
      "author": "Alex Crichton <alex@alexcrichton.com>",
      "version": "1.0.7",
      "bom-ref": "pkg:cargo/fnv@1.0.7",
      "purl": "pkg:cargo/fnv@1.0.7",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://doc.servo.org/fnv/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/servo/rust-fnv"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Apache-2.0 / MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "foldhash",
      "description": "A fast, non-cryptographic, minimally DoS-resistant hashing algorithm.",
      "author": "Orson Peters <orsonpeters@gmail.com>",
      "version": "0.1.5",
      "bom-ref": "pkg:cargo/foldhash@0.1.5",
      "purl": "pkg:cargo/foldhash@0.1.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/orlp/foldhash"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Zlib"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "foreign-types",
      "description": "A framework for Rust wrappers over C APIs",
      "author": "Steven Fackler <sfackler@gmail.com>",
      "version": "0.3.2",
      "bom-ref": "pkg:cargo/foreign-types@0.3.2",
      "purl": "pkg:cargo/foreign-types@0.3.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/sfackler/foreign-types"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "foreign-types-shared",
      "description": "An internal crate used by foreign-types",
      "author": "Steven Fackler <sfackler@gmail.com>",
      "version": "0.1.1",
      "bom-ref": "pkg:cargo/foreign-types-shared@0.1.1",
      "purl": "pkg:cargo/foreign-types-shared@0.1.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/sfackler/foreign-types"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "form_urlencoded",
      "description": "Parser and serializer for the application/x-www-form-urlencoded syntax, as used by HTML forms.",
      "author": "The rust-url developers",
      "version": "1.2.1",
      "bom-ref": "pkg:cargo/form_urlencoded@1.2.1",
      "purl": "pkg:cargo/form_urlencoded@1.2.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/servo/rust-url"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "futures-core",
      "description": "The core traits and types in for the `futures` library.\n",
      "version": "0.3.31",
      "bom-ref": "pkg:cargo/futures-core@0.3.31",
      "purl": "pkg:cargo/futures-core@0.3.31",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://rust-lang.github.io/futures-rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/futures-rs"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "futures-sink",
      "description": "The asynchronous `Sink` trait for the futures-rs library.\n",
      "version": "0.3.31",
      "bom-ref": "pkg:cargo/futures-sink@0.3.31",
      "purl": "pkg:cargo/futures-sink@0.3.31",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://rust-lang.github.io/futures-rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/futures-rs"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "futures-task",
      "description": "Tools for working with tasks.\n",
      "version": "0.3.31",
      "bom-ref": "pkg:cargo/futures-task@0.3.31",
      "purl": "pkg:cargo/futures-task@0.3.31",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://rust-lang.github.io/futures-rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/futures-rs"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "futures-util",
      "description": "Common utilities and extension traits for the futures-rs library.\n",
      "version": "0.3.31",
      "bom-ref": "pkg:cargo/futures-util@0.3.31",
      "purl": "pkg:cargo/futures-util@0.3.31",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://rust-lang.github.io/futures-rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/futures-rs"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "generic-array",
      "description": "Generic types implementing functionality of arrays",
      "author": "Bartłomiej Kamiński <fizyk20@gmail.com>, Aaron Trent <novacrazy@gmail.com>",
      "version": "0.14.7",
      "bom-ref": "pkg:cargo/generic-array@0.14.7",
      "purl": "pkg:cargo/generic-array@0.14.7",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "http://fizyk20.github.io/generic-array/generic_array/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/fizyk20/generic-array.git"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "getrandom",
      "description": "A small cross-platform library for retrieving random data from system source",
      "author": "The Rand Project Developers",
      "version": "0.3.1",
      "bom-ref": "pkg:cargo/getrandom@0.3.1",
      "purl": "pkg:cargo/getrandom@0.3.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/getrandom"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-random/getrandom"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "h2",
      "description": "An HTTP/2 client and server",
      "author": "Carl Lerche <me@carllerche.com>, Sean McArthur <sean@seanmonstar.com>",
      "version": "0.3.26",
      "bom-ref": "pkg:cargo/h2@0.3.26",
      "purl": "pkg:cargo/h2@0.3.26",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/h2"
        },
        {
          "type": "vcs",
          "url": "https://github.com/hyperium/h2"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "hashbrown",
      "description": "A Rust port of Google's SwissTable hash map",
      "author": "Amanieu d'Antras <amanieu@gmail.com>",
      "version": "0.15.2",
      "bom-ref": "pkg:cargo/hashbrown@0.15.2",
      "purl": "pkg:cargo/hashbrown@0.15.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/hashbrown"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "http",
      "description": "A set of types for representing HTTP requests and responses.\n",
      "author": "Alex Crichton <alex@alexcrichton.com>, Carl Lerche <me@carllerche.com>, Sean McArthur <sean@seanmonstar.com>",
      "version": "0.2.12",
      "bom-ref": "pkg:cargo/http@0.2.12",
      "purl": "pkg:cargo/http@0.2.12",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/http"
        },
        {
          "type": "vcs",
          "url": "https://github.com/hyperium/http"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "httparse",
      "description": "A tiny, safe, speedy, zero-copy HTTP/1.x parser.",
      "author": "Sean McArthur <sean@seanmonstar.com>",
      "version": "1.9.5",
      "bom-ref": "pkg:cargo/httparse@1.9.5",
      "purl": "pkg:cargo/httparse@1.9.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/httparse"
        },
        {
          "type": "vcs",
          "url": "https://github.com/seanmonstar/httparse"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "httpdate",
      "description": "HTTP date parsing and formatting",
      "author": "Pyfisch <pyfisch@posteo.org>",
      "version": "1.0.3",
      "bom-ref": "pkg:cargo/httpdate@1.0.3",
      "purl": "pkg:cargo/httpdate@1.0.3",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/pyfisch/httpdate"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "iana-time-zone",
      "description": "get the IANA time zone for the current system",
      "author": "Andrew Straw <strawman@astraw.com>, René Kijewski <rene.kijewski@fu-berlin.de>, Ryan Lopopolo <rjl@hyperbo.la>",
      "version": "0.1.61",
      "bom-ref": "pkg:cargo/iana-time-zone@0.1.61",
      "purl": "pkg:cargo/iana-time-zone@0.1.61",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/strawlab/iana-time-zone"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "icu_collections",
      "description": "Collection of API for use in ICU libraries.",
      "author": "The ICU4X Project Developers",
      "version": "1.5.0",
      "bom-ref": "pkg:cargo/icu_collections@1.5.0",
      "purl": "pkg:cargo/icu_collections@1.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://icu4x.unicode.org"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "icu_locid",
      "description": "API for managing Unicode Language and Locale Identifiers",
      "author": "The ICU4X Project Developers",
      "version": "1.5.0",
      "bom-ref": "pkg:cargo/icu_locid@1.5.0",
      "purl": "pkg:cargo/icu_locid@1.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://icu4x.unicode.org"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "icu_locid_transform",
      "description": "API for Unicode Language and Locale Identifiers canonicalization",
      "author": "The ICU4X Project Developers",
      "version": "1.5.0",
      "bom-ref": "pkg:cargo/icu_locid_transform@1.5.0",
      "purl": "pkg:cargo/icu_locid_transform@1.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://icu4x.unicode.org"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "icu_locid_transform_data",
      "description": "Data for the icu_locid_transform crate",
      "author": "The ICU4X Project Developers",
      "version": "1.5.0",
      "bom-ref": "pkg:cargo/icu_locid_transform_data@1.5.0",
      "purl": "pkg:cargo/icu_locid_transform_data@1.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://icu4x.unicode.org"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "icu_normalizer",
      "description": "API for normalizing text into Unicode Normalization Forms",
      "author": "The ICU4X Project Developers",
      "version": "1.5.0",
      "bom-ref": "pkg:cargo/icu_normalizer@1.5.0",
      "purl": "pkg:cargo/icu_normalizer@1.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://icu4x.unicode.org"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "icu_normalizer_data",
      "description": "Data for the icu_normalizer crate",
      "author": "The ICU4X Project Developers",
      "version": "1.5.0",
      "bom-ref": "pkg:cargo/icu_normalizer_data@1.5.0",
      "purl": "pkg:cargo/icu_normalizer_data@1.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://icu4x.unicode.org"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "icu_properties",
      "description": "Definitions for Unicode properties",
      "author": "The ICU4X Project Developers",
      "version": "1.5.1",
      "bom-ref": "pkg:cargo/icu_properties@1.5.1",
      "purl": "pkg:cargo/icu_properties@1.5.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://icu4x.unicode.org"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "icu_properties_data",
      "description": "Data for the icu_properties crate",
      "author": "The ICU4X Project Developers",
      "version": "1.5.0",
      "bom-ref": "pkg:cargo/icu_properties_data@1.5.0",
      "purl": "pkg:cargo/icu_properties_data@1.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://icu4x.unicode.org"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "icu_provider",
      "description": "Trait and struct definitions for the ICU data provider",
      "author": "The ICU4X Project Developers",
      "version": "1.5.0",
      "bom-ref": "pkg:cargo/icu_provider@1.5.0",
      "purl": "pkg:cargo/icu_provider@1.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://icu4x.unicode.org"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "icu_provider_macros",
      "description": "Proc macros for ICU data providers",
      "author": "The ICU4X Project Developers",
      "version": "1.5.0",
      "bom-ref": "pkg:cargo/icu_provider_macros@1.5.0",
      "purl": "pkg:cargo/icu_provider_macros@1.5.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://icu4x.unicode.org"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "idna",
      "description": "IDNA (Internationalizing Domain Names in Applications) and Punycode.",
      "author": "The rust-url developers",
      "version": "1.0.3",
      "bom-ref": "pkg:cargo/idna@1.0.3",
      "purl": "pkg:cargo/idna@1.0.3",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/servo/rust-url/"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "idna_adapter",
      "description": "Back end adapter for idna",
      "author": "The rust-url developers",
      "version": "1.2.0",
      "bom-ref": "pkg:cargo/idna_adapter@1.2.0",
      "purl": "pkg:cargo/idna_adapter@1.2.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://docs.rs/crate/idna_adapter/latest"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/idna_adapter/latest/idna_adapter/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/hsivonen/idna_adapter"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "impl-more",
      "description": "Concise, declarative trait implementation macros",
      "author": "Rob Ede <robjtede@icloud.com>",
      "version": "0.1.8",
      "bom-ref": "pkg:cargo/impl-more@0.1.8",
      "purl": "pkg:cargo/impl-more@0.1.8",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "aae21c3177a27788957044151cc2800043d127acaa460a47ebb9b84dfa2c6aa0"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/robjtede/impl-more"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "indexmap",
      "description": "A hash table with consistent order and fast iteration.",
      "version": "2.7.0",
      "bom-ref": "pkg:cargo/indexmap@2.7.0",
      "purl": "pkg:cargo/indexmap@2.7.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/indexmap/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/indexmap-rs/indexmap"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "itoa",
      "description": "Fast integer primitive to string conversion",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "version": "1.0.14",
      "bom-ref": "pkg:cargo/itoa@1.0.14",
      "purl": "pkg:cargo/itoa@1.0.14",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/itoa"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/itoa"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "language-tags",
      "description": "Language tags for Rust",
      "author": "Pyfisch <pyfisch@gmail.com>, Tpt <thomas@pellissier-tanon.fr>",
      "version": "0.3.2",
      "bom-ref": "pkg:cargo/language-tags@0.3.2",
      "purl": "pkg:cargo/language-tags@0.3.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/pyfisch/rust-language-tags"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "libc",
      "description": "Raw FFI bindings to platform libraries like libc.\n",
      "author": "The Rust Project Developers",
      "version": "0.2.168",
      "bom-ref": "pkg:cargo/libc@0.2.168",
      "purl": "pkg:cargo/libc@0.2.168",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/rust-lang/libc"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/libc/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/libc"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "linked-hash-map",
      "description": "A HashMap wrapper that holds key-value pairs in insertion order",
      "author": "Stepan Koltsov <stepan.koltsov@gmail.com>, Andrew Paseltiner <apaseltiner@gmail.com>",
      "version": "0.5.6",
      "bom-ref": "pkg:cargo/linked-hash-map@0.5.6",
      "purl": "pkg:cargo/linked-hash-map@0.5.6",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/contain-rs/linked-hash-map"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/linked-hash-map"
        },
        {
          "type": "vcs",
          "url": "https://github.com/contain-rs/linked-hash-map"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "litemap",
      "description": "A key-value Map implementation based on a flat, sorted Vec.",
      "author": "The ICU4X Project Developers",
      "version": "0.7.4",
      "bom-ref": "pkg:cargo/litemap@0.7.4",
      "purl": "pkg:cargo/litemap@0.7.4",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/litemap"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "local-channel",
      "description": "A non-threadsafe multi-producer, single-consumer, futures-aware, FIFO queue",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "0.1.5",
      "bom-ref": "pkg:cargo/local-channel@0.1.5",
      "purl": "pkg:cargo/local-channel@0.1.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-net"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "local-waker",
      "description": "A synchronization primitive for thread-local task wakeup",
      "author": "Nikolay Kim <fafhrd91@gmail.com>, Rob Ede <robjtede@icloud.com>",
      "version": "0.1.4",
      "bom-ref": "pkg:cargo/local-waker@0.1.4",
      "purl": "pkg:cargo/local-waker@0.1.4",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/actix/actix-net"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "lock_api",
      "description": "Wrappers to create fully-featured Mutex and RwLock types. Compatible with no_std.",
      "author": "Amanieu d'Antras <amanieu@gmail.com>",
      "version": "0.4.12",
      "bom-ref": "pkg:cargo/lock_api@0.4.12",
      "purl": "pkg:cargo/lock_api@0.4.12",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/Amanieu/parking_lot"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "log",
      "description": "A lightweight logging facade for Rust\n",
      "author": "The Rust Project Developers",
      "version": "0.4.27",
      "bom-ref": "pkg:cargo/log@0.4.27",
      "purl": "pkg:cargo/log@0.4.27",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/log"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/log"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "memchr",
      "description": "Provides extremely fast (uses SIMD on x86_64, aarch64 and wasm32) routines for\n1, 2 or 3 byte search and single substring search.\n",
      "author": "Andrew Gallant <jamslam@gmail.com>, bluss",
      "version": "2.7.4",
      "bom-ref": "pkg:cargo/memchr@2.7.4",
      "purl": "pkg:cargo/memchr@2.7.4",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/BurntSushi/memchr"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/memchr/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/BurntSushi/memchr"
        }
      ],
      "licenses": [
        {
          "expression": "Unlicense OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "mime",
      "description": "Strongly Typed Mimes",
      "author": "Sean McArthur <sean@seanmonstar.com>",
      "version": "0.3.17",
      "bom-ref": "pkg:cargo/mime@0.3.17",
      "purl": "pkg:cargo/mime@0.3.17",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/mime"
        },
        {
          "type": "vcs",
          "url": "https://github.com/hyperium/mime"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "miniz_oxide",
      "description": "DEFLATE compression and decompression library rewritten in Rust based on miniz",
      "author": "Frommi <daniil.liferenko@gmail.com>, oyvindln <oyvindln@users.noreply.github.com>, Rich Geldreich richgel99@gmail.com",
      "version": "0.8.8",
      "bom-ref": "pkg:cargo/miniz_oxide@0.8.8",
      "purl": "pkg:cargo/miniz_oxide@0.8.8",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/miniz_oxide"
        },
        {
          "type": "vcs",
          "url": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Zlib OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "mio",
      "description": "Lightweight non-blocking I/O.",
      "author": "Carl Lerche <me@carllerche.com>, Thomas de Zeeuw <thomasdezeeuw@gmail.com>, Tokio Contributors <team@tokio.rs>",
      "version": "0.8.11",
      "bom-ref": "pkg:cargo/mio@0.8.11",
      "purl": "pkg:cargo/mio@0.8.11",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/tokio-rs/mio"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/mio"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "nu-ansi-term",
      "description": "Library for ANSI terminal colors and styles (bold, underline)",
      "author": "ogham@bsago.me, Ryan Scheel (Havvy) <ryan.havvy@gmail.com>, Josh Triplett <josh@joshtriplett.org>, The Nushell Project Developers",
      "version": "0.50.1",
      "bom-ref": "pkg:cargo/nu-ansi-term@0.50.1",
      "purl": "pkg:cargo/nu-ansi-term@0.50.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/nushell/nu-ansi-term"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "num-conv",
      "description": "`num_conv` is a crate to convert between integer types without using `as` casts. This provides\nbetter certainty when refactoring, makes the exact behavior of code more explicit, and allows using\nturbofish syntax.\n",
      "author": "Jacob Pratt <jacob@jhpratt.dev>",
      "version": "0.1.0",
      "bom-ref": "pkg:cargo/num-conv@0.1.0",
      "purl": "pkg:cargo/num-conv@0.1.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/jhpratt/num-conv"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "num-traits",
      "description": "Numeric traits for generic mathematics",
      "author": "The Rust Project Developers",
      "version": "0.2.19",
      "bom-ref": "pkg:cargo/num-traits@0.2.19",
      "purl": "pkg:cargo/num-traits@0.2.19",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/rust-num/num-traits"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/num-traits"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-num/num-traits"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "num_threads",
      "description": "A minimal library that determines the number of running threads for the current process.",
      "author": "Jacob Pratt <open-source@jhpratt.dev>",
      "version": "0.1.7",
      "bom-ref": "pkg:cargo/num_threads@0.1.7",
      "purl": "pkg:cargo/num_threads@0.1.7",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/jhpratt/num_threads"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "once_cell",
      "description": "Single assignment cells and lazy values.",
      "author": "Aleksey Kladov <aleksey.kladov@gmail.com>",
      "version": "1.20.2",
      "bom-ref": "pkg:cargo/once_cell@1.20.2",
      "purl": "pkg:cargo/once_cell@1.20.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/once_cell"
        },
        {
          "type": "vcs",
          "url": "https://github.com/matklad/once_cell"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "openssl",
      "description": "OpenSSL bindings",
      "author": "Steven Fackler <sfackler@gmail.com>",
      "version": "0.10.72",
      "bom-ref": "pkg:cargo/openssl@0.10.72",
      "purl": "pkg:cargo/openssl@0.10.72",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/sfackler/rust-openssl"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "openssl-macros",
      "description": "Internal macros used by the openssl crate.",
      "version": "0.1.1",
      "bom-ref": "pkg:cargo/openssl-macros@0.1.1",
      "purl": "pkg:cargo/openssl-macros@0.1.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "openssl-sys",
      "description": "FFI bindings to OpenSSL",
      "author": "Alex Crichton <alex@alexcrichton.com>, Steven Fackler <sfackler@gmail.com>",
      "version": "0.9.107",
      "bom-ref": "pkg:cargo/openssl-sys@0.9.107",
      "purl": "pkg:cargo/openssl-sys@0.9.107",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/sfackler/rust-openssl"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "parking_lot",
      "description": "More compact and efficient implementations of the standard synchronization primitives.",
      "author": "Amanieu d'Antras <amanieu@gmail.com>",
      "version": "0.12.3",
      "bom-ref": "pkg:cargo/parking_lot@0.12.3",
      "purl": "pkg:cargo/parking_lot@0.12.3",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/Amanieu/parking_lot"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "parking_lot_core",
      "description": "An advanced API for creating custom synchronization primitives.",
      "author": "Amanieu d'Antras <amanieu@gmail.com>",
      "version": "0.9.10",
      "bom-ref": "pkg:cargo/parking_lot_core@0.9.10",
      "purl": "pkg:cargo/parking_lot_core@0.9.10",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/Amanieu/parking_lot"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "percent-encoding",
      "description": "Percent encoding and decoding",
      "author": "The rust-url developers",
      "version": "2.3.1",
      "bom-ref": "pkg:cargo/percent-encoding@2.3.1",
      "purl": "pkg:cargo/percent-encoding@2.3.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/servo/rust-url/"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "pin-project-lite",
      "description": "A lightweight version of pin-project written with declarative macros.\n",
      "version": "0.2.15",
      "bom-ref": "pkg:cargo/pin-project-lite@0.2.15",
      "purl": "pkg:cargo/pin-project-lite@0.2.15",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/taiki-e/pin-project-lite"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "pin-utils",
      "description": "Utilities for pinning\n",
      "author": "Josef Brandl <mail@josefbrandl.de>",
      "version": "0.1.0",
      "bom-ref": "pkg:cargo/pin-utils@0.1.0",
      "purl": "pkg:cargo/pin-utils@0.1.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/pin-utils"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang-nursery/pin-utils"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "powerfmt",
      "description": "    `powerfmt` is a library that provides utilities for formatting values. This crate makes it\n    significantly easier to support filling to a minimum width with alignment, avoid heap\n    allocation, and avoid repetitive calculations.\n",
      "author": "Jacob Pratt <jacob@jhpratt.dev>",
      "version": "0.2.0",
      "bom-ref": "pkg:cargo/powerfmt@0.2.0",
      "purl": "pkg:cargo/powerfmt@0.2.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/jhpratt/powerfmt"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "ppv-lite86",
      "description": "Implementation of the crypto-simd API for x86",
      "author": "The CryptoCorrosion Contributors",
      "version": "0.2.20",
      "bom-ref": "pkg:cargo/ppv-lite86@0.2.20",
      "purl": "pkg:cargo/ppv-lite86@0.2.20",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/cryptocorrosion/cryptocorrosion"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "proc-macro2",
      "description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.",
      "author": "David Tolnay <dtolnay@gmail.com>, Alex Crichton <alex@alexcrichton.com>",
      "version": "1.0.92",
      "bom-ref": "pkg:cargo/proc-macro2@1.0.92",
      "purl": "pkg:cargo/proc-macro2@1.0.92",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/proc-macro2"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/proc-macro2"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "quote",
      "description": "Quasi-quoting macro quote!(...)",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "version": "1.0.37",
      "bom-ref": "pkg:cargo/quote@1.0.37",
      "purl": "pkg:cargo/quote@1.0.37",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/quote/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/quote"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "rand",
      "description": "Random number generators and other randomness functionality.\n",
      "author": "The Rand Project Developers, The Rust Project Developers",
      "version": "0.9.1",
      "bom-ref": "pkg:cargo/rand@0.9.1",
      "purl": "pkg:cargo/rand@0.9.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://rust-random.github.io/book"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/rand"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-random/rand"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "rand_chacha",
      "description": "ChaCha random number generator\n",
      "author": "The Rand Project Developers, The Rust Project Developers, The CryptoCorrosion Contributors",
      "version": "0.9.0",
      "bom-ref": "pkg:cargo/rand_chacha@0.9.0",
      "purl": "pkg:cargo/rand_chacha@0.9.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://rust-random.github.io/book"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/rand_chacha"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-random/rand"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "rand_core",
      "description": "Core random number generator traits and tools for implementation.\n",
      "author": "The Rand Project Developers, The Rust Project Developers",
      "version": "0.9.0",
      "bom-ref": "pkg:cargo/rand_core@0.9.0",
      "purl": "pkg:cargo/rand_core@0.9.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://rust-random.github.io/book"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/rand_core"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-random/rand"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "regex",
      "description": "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n",
      "author": "The Rust Project Developers, Andrew Gallant <jamslam@gmail.com>",
      "version": "1.11.1",
      "bom-ref": "pkg:cargo/regex@1.11.1",
      "purl": "pkg:cargo/regex@1.11.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/rust-lang/regex"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/regex"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/regex"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "regex-automata",
      "description": "Automata construction and matching using regular expressions.",
      "author": "The Rust Project Developers, Andrew Gallant <jamslam@gmail.com>",
      "version": "0.4.9",
      "bom-ref": "pkg:cargo/regex-automata@0.4.9",
      "purl": "pkg:cargo/regex-automata@0.4.9",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/regex-automata"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/regex/tree/master/regex-automata"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "regex-lite",
      "description": "A lightweight regex engine that optimizes for binary size and compilation time.\n",
      "author": "The Rust Project Developers, Andrew Gallant <jamslam@gmail.com>",
      "version": "0.1.6",
      "bom-ref": "pkg:cargo/regex-lite@0.1.6",
      "purl": "pkg:cargo/regex-lite@0.1.6",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/regex-lite"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/regex/tree/master/regex-lite"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "regex-syntax",
      "description": "A regular expression parser.",
      "author": "The Rust Project Developers, Andrew Gallant <jamslam@gmail.com>",
      "version": "0.8.5",
      "bom-ref": "pkg:cargo/regex-syntax@0.8.5",
      "purl": "pkg:cargo/regex-syntax@0.8.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/regex-syntax"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/regex/tree/master/regex-syntax"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "ring",
      "description": "An experiment.",
      "version": "0.17.13",
      "bom-ref": "pkg:cargo/ring@0.17.13",
      "purl": "pkg:cargo/ring@0.17.13",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/briansmith/ring"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Apache-2.0 AND ISC"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "rustls",
      "description": "Rustls is a modern TLS library written in Rust.",
      "version": "0.23.27",
      "bom-ref": "pkg:cargo/rustls@0.23.27",
      "purl": "pkg:cargo/rustls@0.23.27",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/rustls/rustls"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rustls/rustls"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR ISC OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "rustls-pemfile",
      "description": "Basic .pem file parser for keys and certificates",
      "version": "2.2.0",
      "bom-ref": "pkg:cargo/rustls-pemfile@2.2.0",
      "purl": "pkg:cargo/rustls-pemfile@2.2.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/rustls/pemfile"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rustls/pemfile"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR ISC OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "rustls-pki-types",
      "description": "Shared types for the rustls PKI ecosystem",
      "version": "1.11.0",
      "bom-ref": "pkg:cargo/rustls-pki-types@1.11.0",
      "purl": "pkg:cargo/rustls-pki-types@1.11.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/rustls/pki-types"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/rustls-pki-types"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rustls/pki-types"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "rustls-webpki",
      "description": "Web PKI X.509 Certificate Verification.",
      "version": "0.103.3",
      "bom-ref": "pkg:cargo/rustls-webpki@0.103.3",
      "purl": "pkg:cargo/rustls-webpki@0.103.3",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/rustls/webpki"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "ISC"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "ryu",
      "description": "Fast floating point to string conversion",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "version": "1.0.18",
      "bom-ref": "pkg:cargo/ryu@1.0.18",
      "purl": "pkg:cargo/ryu@1.0.18",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/ryu"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/ryu"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR BSL-1.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "scopeguard",
      "description": "A RAII scope guard that will run a given closure when it goes out of scope,\neven if the code between panics (assuming unwinding panic).\n\nDefines the macros `defer!`, `defer_on_unwind!`, `defer_on_success!` as\nshorthands for guards with one of the implemented strategies.\n",
      "author": "bluss",
      "version": "1.2.0",
      "bom-ref": "pkg:cargo/scopeguard@1.2.0",
      "purl": "pkg:cargo/scopeguard@1.2.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/scopeguard/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/bluss/scopeguard"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "serde",
      "description": "A generic serialization/deserialization framework",
      "author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
      "version": "1.0.219",
      "bom-ref": "pkg:cargo/serde@1.0.219",
      "purl": "pkg:cargo/serde@1.0.219",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://serde.rs"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/serde"
        },
        {
          "type": "vcs",
          "url": "https://github.com/serde-rs/serde"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "serde_derive",
      "description": "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]",
      "author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
      "version": "1.0.219",
      "bom-ref": "pkg:cargo/serde_derive@1.0.219",
      "purl": "pkg:cargo/serde_derive@1.0.219",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://serde.rs"
        },
        {
          "type": "documentation",
          "url": "https://serde.rs/derive.html"
        },
        {
          "type": "vcs",
          "url": "https://github.com/serde-rs/serde"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "serde_json",
      "description": "A JSON serialization file format",
      "author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
      "version": "1.0.140",
      "bom-ref": "pkg:cargo/serde_json@1.0.140",
      "purl": "pkg:cargo/serde_json@1.0.140",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/serde_json"
        },
        {
          "type": "vcs",
          "url": "https://github.com/serde-rs/json"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "serde_urlencoded",
      "description": "`x-www-form-urlencoded` meets Serde",
      "author": "Anthony Ramine <n.oxyde@gmail.com>",
      "version": "0.7.1",
      "bom-ref": "pkg:cargo/serde_urlencoded@0.7.1",
      "purl": "pkg:cargo/serde_urlencoded@0.7.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/serde_urlencoded/0.7.1/serde_urlencoded/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/nox/serde_urlencoded"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "sha1",
      "description": "SHA-1 hash function",
      "author": "RustCrypto Developers",
      "version": "0.10.6",
      "bom-ref": "pkg:cargo/sha1@0.10.6",
      "purl": "pkg:cargo/sha1@0.10.6",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/sha1"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/hashes"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "signal-hook-registry",
      "description": "Backend crate for signal-hook",
      "author": "Michal 'vorner' Vaner <vorner@vorner.cz>, Masaki Hara <ackie.h.gmai@gmail.com>",
      "version": "1.4.2",
      "bom-ref": "pkg:cargo/signal-hook-registry@1.4.2",
      "purl": "pkg:cargo/signal-hook-registry@1.4.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/signal-hook-registry"
        },
        {
          "type": "vcs",
          "url": "https://github.com/vorner/signal-hook"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Apache-2.0/MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "slab",
      "description": "Pre-allocated storage for a uniform data type",
      "author": "Carl Lerche <me@carllerche.com>",
      "version": "0.4.9",
      "bom-ref": "pkg:cargo/slab@0.4.9",
      "purl": "pkg:cargo/slab@0.4.9",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/slab"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "smallvec",
      "description": "'Small vector' optimization: store up to a small number of items on the stack",
      "author": "The Servo Project Developers",
      "version": "1.13.2",
      "bom-ref": "pkg:cargo/smallvec@1.13.2",
      "purl": "pkg:cargo/smallvec@1.13.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/smallvec/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/servo/rust-smallvec"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "socket2",
      "description": "Utilities for handling networking sockets with a maximal amount of configuration\npossible intended.\n",
      "author": "Alex Crichton <alex@alexcrichton.com>, Thomas de Zeeuw <thomasdezeeuw@gmail.com>",
      "version": "0.5.8",
      "bom-ref": "pkg:cargo/socket2@0.5.8",
      "purl": "pkg:cargo/socket2@0.5.8",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/rust-lang/socket2"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/socket2"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/socket2"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "stable_deref_trait",
      "description": "An unsafe marker trait for types like Box and Rc that dereference to a stable address even when moved, and hence can be used with libraries such as owning_ref and rental.\n",
      "author": "Robert Grosse <n210241048576@gmail.com>",
      "version": "1.2.0",
      "bom-ref": "pkg:cargo/stable_deref_trait@1.2.0",
      "purl": "pkg:cargo/stable_deref_trait@1.2.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/stable_deref_trait/1.2.0/stable_deref_trait"
        },
        {
          "type": "vcs",
          "url": "https://github.com/storyyeller/stable_deref_trait"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "subtle",
      "description": "Pure-Rust traits and utilities for constant-time cryptographic implementations.",
      "author": "Isis Lovecruft <isis@patternsinthevoid.net>, Henry de Valence <hdevalence@hdevalence.ca>",
      "version": "2.6.1",
      "bom-ref": "pkg:cargo/subtle@2.6.1",
      "purl": "pkg:cargo/subtle@2.6.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://dalek.rs/"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/subtle"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dalek-cryptography/subtle"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "syn",
      "description": "Parser for Rust source code",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "version": "2.0.90",
      "bom-ref": "pkg:cargo/syn@2.0.90",
      "purl": "pkg:cargo/syn@2.0.90",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/syn"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/syn"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "synstructure",
      "description": "Helper methods and macros for custom derives",
      "author": "Nika Layzell <nika@thelayzells.com>",
      "version": "0.13.1",
      "bom-ref": "pkg:cargo/synstructure@0.13.1",
      "purl": "pkg:cargo/synstructure@0.13.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/synstructure"
        },
        {
          "type": "vcs",
          "url": "https://github.com/mystor/synstructure"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "thiserror",
      "description": "derive(Error)",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "version": "2.0.6",
      "bom-ref": "pkg:cargo/thiserror@2.0.6",
      "purl": "pkg:cargo/thiserror@2.0.6",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/thiserror"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/thiserror"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "thiserror-impl",
      "description": "Implementation detail of the `thiserror` crate",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "version": "2.0.6",
      "bom-ref": "pkg:cargo/thiserror-impl@2.0.6",
      "purl": "pkg:cargo/thiserror-impl@2.0.6",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/thiserror"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "time",
      "description": "Date and time library. Fully interoperable with the standard library. Mostly compatible with #![no_std].",
      "author": "Jacob Pratt <open-source@jhpratt.dev>, Time contributors",
      "version": "0.3.41",
      "bom-ref": "pkg:cargo/time@0.3.41",
      "purl": "pkg:cargo/time@0.3.41",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://time-rs.github.io"
        },
        {
          "type": "vcs",
          "url": "https://github.com/time-rs/time"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "time-core",
      "description": "This crate is an implementation detail and should not be relied upon directly.",
      "author": "Jacob Pratt <open-source@jhpratt.dev>, Time contributors",
      "version": "0.1.4",
      "bom-ref": "pkg:cargo/time-core@0.1.4",
      "purl": "pkg:cargo/time-core@0.1.4",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/time-rs/time"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "time-macros",
      "description": "    Procedural macros for the time crate.\n    This crate is an implementation detail and should not be relied upon directly.\n",
      "author": "Jacob Pratt <open-source@jhpratt.dev>, Time contributors",
      "version": "0.2.22",
      "bom-ref": "pkg:cargo/time-macros@0.2.22",
      "purl": "pkg:cargo/time-macros@0.2.22",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/time-rs/time"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "tinystr",
      "description": "A small ASCII-only bounded length string representation.",
      "author": "The ICU4X Project Developers",
      "version": "0.7.6",
      "bom-ref": "pkg:cargo/tinystr@0.7.6",
      "purl": "pkg:cargo/tinystr@0.7.6",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "tokio",
      "description": "An event-driven, non-blocking I/O platform for writing asynchronous I/O\nbacked applications.\n",
      "author": "Tokio Contributors <team@tokio.rs>",
      "version": "1.38.2",
      "bom-ref": "pkg:cargo/tokio@1.38.2",
      "purl": "pkg:cargo/tokio@1.38.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "68722da18b0fc4a05fdc1120b302b82051265792a1e1b399086e9b204b10ad3d"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://tokio.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tokio"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "tokio-openssl",
      "description": "An implementation of SSL streams for Tokio backed by OpenSSL\n",
      "author": "Alex Crichton <alex@alexcrichton.com>",
      "version": "0.6.5",
      "bom-ref": "pkg:cargo/tokio-openssl@0.6.5",
      "purl": "pkg:cargo/tokio-openssl@0.6.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "59df6849caa43bb7567f9a36f863c447d95a11d5903c9cc334ba32576a27eadd"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tokio-openssl"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "tokio-rustls",
      "description": "Asynchronous TLS/SSL streams for Tokio using Rustls.",
      "version": "0.26.1",
      "bom-ref": "pkg:cargo/tokio-rustls@0.26.1",
      "purl": "pkg:cargo/tokio-rustls@0.26.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/rustls/tokio-rustls"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/tokio-rustls"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rustls/tokio-rustls"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "tokio-util",
      "description": "Additional utilities for working with Tokio.\n",
      "author": "Tokio Contributors <team@tokio.rs>",
      "version": "0.7.13",
      "bom-ref": "pkg:cargo/tokio-util@0.7.13",
      "purl": "pkg:cargo/tokio-util@0.7.13",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://tokio.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tokio"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "tracing",
      "description": "Application-level tracing for Rust.\n",
      "author": "Eliza Weisman <eliza@buoyant.io>, Tokio Contributors <team@tokio.rs>",
      "version": "0.1.41",
      "bom-ref": "pkg:cargo/tracing@0.1.41",
      "purl": "pkg:cargo/tracing@0.1.41",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://tokio.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tracing"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "tracing-attributes",
      "description": "Procedural macro attributes for automatically instrumenting functions.\n",
      "author": "Tokio Contributors <team@tokio.rs>, Eliza Weisman <eliza@buoyant.io>, David Barsky <dbarsky@amazon.com>",
      "version": "0.1.28",
      "bom-ref": "pkg:cargo/tracing-attributes@0.1.28",
      "purl": "pkg:cargo/tracing-attributes@0.1.28",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://tokio.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tracing"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "tracing-core",
      "description": "Core primitives for application-level tracing.\n",
      "author": "Tokio Contributors <team@tokio.rs>",
      "version": "0.1.33",
      "bom-ref": "pkg:cargo/tracing-core@0.1.33",
      "purl": "pkg:cargo/tracing-core@0.1.33",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://tokio.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tracing"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "ttl_cache",
      "description": "A cache that will expire values after a TTL",
      "author": "Stu Small <stuart.alan.small@gmail.com>",
      "version": "0.5.1",
      "bom-ref": "pkg:cargo/ttl_cache@0.5.1",
      "purl": "pkg:cargo/ttl_cache@0.5.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "4189890526f0168710b6ee65ceaedf1460c48a14318ceec933cb26baa492096a"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/ttl_cache/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/stusmall/ttl_cache"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "typenum",
      "description": "Typenum is a Rust library for type-level numbers evaluated at\n    compile time. It currently supports bits, unsigned integers, and signed\n    integers. It also provides a type-level array of type-level numbers, but its\n    implementation is incomplete.",
      "author": "Paho Lurie-Gregg <paho@paholg.com>, Andre Bogus <bogusandre@gmail.com>",
      "version": "1.17.0",
      "bom-ref": "pkg:cargo/typenum@1.17.0",
      "purl": "pkg:cargo/typenum@1.17.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/typenum"
        },
        {
          "type": "vcs",
          "url": "https://github.com/paholg/typenum"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "unicode-ident",
      "description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "version": "1.0.14",
      "bom-ref": "pkg:cargo/unicode-ident@1.0.14",
      "purl": "pkg:cargo/unicode-ident@1.0.14",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/unicode-ident"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/unicode-ident"
        }
      ],
      "licenses": [
        {
          "expression": "(MIT OR Apache-2.0) AND Unicode-3.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "unicode-xid",
      "description": "Determine whether characters have the XID_Start\nor XID_Continue properties according to\nUnicode Standard Annex #31.\n",
      "author": "erick.tryzelaar <erick.tryzelaar@gmail.com>, kwantam <kwantam@gmail.com>, Manish Goregaokar <manishsmail@gmail.com>",
      "version": "0.2.6",
      "bom-ref": "pkg:cargo/unicode-xid@0.2.6",
      "purl": "pkg:cargo/unicode-xid@0.2.6",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/unicode-rs/unicode-xid"
        },
        {
          "type": "documentation",
          "url": "https://unicode-rs.github.io/unicode-xid"
        },
        {
          "type": "vcs",
          "url": "https://github.com/unicode-rs/unicode-xid"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "untrusted",
      "description": "Safe, fast, zero-panic, zero-crashing, zero-allocation parsing of untrusted inputs in Rust.",
      "author": "Brian Smith <brian@briansmith.org>",
      "version": "0.9.0",
      "bom-ref": "pkg:cargo/untrusted@0.9.0",
      "purl": "pkg:cargo/untrusted@0.9.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://briansmith.org/rustdoc/untrusted/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/briansmith/untrusted"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "ISC"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "ureq",
      "description": "Simple, safe HTTP client",
      "author": "Martin Algesten <martin@algesten.se>, Jacob Hoffman-Andrews <ureq@hoffman-andrews.com>",
      "version": "2.12.1",
      "bom-ref": "pkg:cargo/ureq@2.12.1",
      "purl": "pkg:cargo/ureq@2.12.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/algesten/ureq"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "url",
      "description": "URL library for Rust, based on the WHATWG URL Standard",
      "author": "The rust-url developers",
      "version": "2.5.4",
      "bom-ref": "pkg:cargo/url@2.5.4",
      "purl": "pkg:cargo/url@2.5.4",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/url"
        },
        {
          "type": "vcs",
          "url": "https://github.com/servo/rust-url"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ]
    },
    {
      "type": "library",
      "name": "utf16_iter",
      "description": "Iterator by char over potentially-invalid UTF-16 in &[u16]",
      "author": "Henri Sivonen <hsivonen@hsivonen.fi>",
      "version": "1.0.5",
      "bom-ref": "pkg:cargo/utf16_iter@1.0.5",
      "purl": "pkg:cargo/utf16_iter@1.0.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://docs.rs/utf16_iter/"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/utf16_iter/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/hsivonen/utf16_iter"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "utf8_iter",
      "description": "Iterator by char over potentially-invalid UTF-8 in &[u8]",
      "author": "Henri Sivonen <hsivonen@hsivonen.fi>",
      "version": "1.0.4",
      "bom-ref": "pkg:cargo/utf8_iter@1.0.4",
      "purl": "pkg:cargo/utf8_iter@1.0.4",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://docs.rs/utf8_iter/"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/utf8_iter/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/hsivonen/utf8_iter"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "uuid",
      "description": "A library to generate and parse UUIDs.",
      "author": "Ashley Mannix<ashleymannix@live.com.au>, Dylan DPC<dylan.dpc@gmail.com>, Hunar Roop Kahlon<hunar.roop@gmail.com>",
      "version": "1.16.0",
      "bom-ref": "pkg:cargo/uuid@1.16.0",
      "purl": "pkg:cargo/uuid@1.16.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/uuid-rs/uuid"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/uuid"
        },
        {
          "type": "vcs",
          "url": "https://github.com/uuid-rs/uuid"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "webpki-roots",
      "description": "Mozilla's CA root certificates for use with webpki",
      "version": "1.0.0",
      "bom-ref": "pkg:cargo/webpki-roots@1.0.0",
      "purl": "pkg:cargo/webpki-roots@1.0.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://github.com/rustls/webpki-roots"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rustls/webpki-roots"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "CDLA-Permissive-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "write16",
      "description": "A UTF-16 analog of the Write trait",
      "version": "1.0.0",
      "bom-ref": "pkg:cargo/write16@1.0.0",
      "purl": "pkg:cargo/write16@1.0.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
        }
      ],
      "externalReferences": [
        {
          "type": "website",
          "comment": "Homepage",
          "url": "https://docs.rs/write16/"
        },
        {
          "type": "documentation",
          "url": "https://docs.rs/write16/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/hsivonen/write16"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "writeable",
      "description": "A more efficient alternative to fmt::Display",
      "author": "The ICU4X Project Developers",
      "version": "0.5.5",
      "bom-ref": "pkg:cargo/writeable@0.5.5",
      "purl": "pkg:cargo/writeable@0.5.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "yoke",
      "description": "Abstraction allowing borrowed data to be carried along with the backing data it borrows from",
      "author": "Manish Goregaokar <manishsmail@gmail.com>",
      "version": "0.7.5",
      "bom-ref": "pkg:cargo/yoke@0.7.5",
      "purl": "pkg:cargo/yoke@0.7.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "yoke-derive",
      "description": "Custom derive for the yoke crate",
      "author": "Manish Goregaokar <manishsmail@gmail.com>",
      "version": "0.7.5",
      "bom-ref": "pkg:cargo/yoke-derive@0.7.5",
      "purl": "pkg:cargo/yoke-derive@0.7.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "zerocopy",
      "description": "Zerocopy makes zero-cost memory manipulation effortless. We write \"unsafe\" so you don't have to.",
      "author": "Joshua Liebow-Feeser <joshlf@google.com>",
      "version": "0.8.15",
      "bom-ref": "pkg:cargo/zerocopy@0.8.15",
      "purl": "pkg:cargo/zerocopy@0.8.15",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a1e101d4bc320b6f9abb68846837b70e25e380ca2f467ab494bf29fcc435fcc3"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/google/zerocopy"
        }
      ],
      "licenses": [
        {
          "expression": "BSD-2-Clause OR Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "zerocopy-derive",
      "description": "Custom derive for traits from the zerocopy crate",
      "author": "Joshua Liebow-Feeser <joshlf@google.com>",
      "version": "0.7.35",
      "bom-ref": "pkg:cargo/zerocopy-derive@0.7.35",
      "purl": "pkg:cargo/zerocopy-derive@0.7.35",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/google/zerocopy"
        }
      ],
      "licenses": [
        {
          "expression": "BSD-2-Clause OR Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "zerofrom",
      "description": "ZeroFrom trait for constructing",
      "author": "Manish Goregaokar <manishsmail@gmail.com>",
      "version": "0.1.5",
      "bom-ref": "pkg:cargo/zerofrom@0.1.5",
      "purl": "pkg:cargo/zerofrom@0.1.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "zerofrom-derive",
      "description": "Custom derive for the zerofrom crate",
      "author": "Manish Goregaokar <manishsmail@gmail.com>",
      "version": "0.1.5",
      "bom-ref": "pkg:cargo/zerofrom-derive@0.1.5",
      "purl": "pkg:cargo/zerofrom-derive@0.1.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "zeroize",
      "description": "Securely clear secrets from memory with a simple trait built on\nstable Rust primitives which guarantee memory is zeroed using an\noperation will not be 'optimized away' by the compiler.\nUses a portable pure Rust implementation that works everywhere,\neven WASM!\n",
      "author": "The RustCrypto Project Developers",
      "version": "1.8.1",
      "bom-ref": "pkg:cargo/zeroize@1.8.1",
      "purl": "pkg:cargo/zeroize@1.8.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/utils/tree/master/zeroize"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ]
    },
    {
      "type": "library",
      "name": "zerovec",
      "description": "Zero-copy vector backed by a byte array",
      "author": "The ICU4X Project Developers",
      "version": "0.10.4",
      "bom-ref": "pkg:cargo/zerovec@0.10.4",
      "purl": "pkg:cargo/zerovec@0.10.4",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "zerovec-derive",
      "description": "Custom derive for the zerovec crate",
      "author": "Manish Goregaokar <manishsmail@gmail.com>",
      "version": "0.10.3",
      "bom-ref": "pkg:cargo/zerovec-derive@0.10.3",
      "purl": "pkg:cargo/zerovec-derive@0.10.3",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/unicode-org/icu4x"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Unicode-3.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "zstd",
      "description": "Binding for the zstd compression library.",
      "author": "Alexandre Bury <alexandre.bury@gmail.com>",
      "version": "0.13.2",
      "bom-ref": "pkg:cargo/zstd@0.13.2",
      "purl": "pkg:cargo/zstd@0.13.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9"
        }
      ],
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/zstd"
        },
        {
          "type": "vcs",
          "url": "https://github.com/gyscos/zstd-rs"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "zstd-safe",
      "description": "Safe low-level bindings for the zstd compression library.",
      "author": "Alexandre Bury <alexandre.bury@gmail.com>",
      "version": "7.2.1",
      "bom-ref": "pkg:cargo/zstd-safe@7.2.1",
      "purl": "pkg:cargo/zstd-safe@7.2.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/gyscos/zstd-rs"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "zstd-sys",
      "description": "Low-level bindings for the zstd compression library.",
      "author": "Alexandre Bury <alexandre.bury@gmail.com>",
      "version": "2.0.13+zstd.1.5.6",
      "bom-ref": "pkg:cargo/zstd-sys@2.0.13+zstd.1.5.6",
      "purl": "pkg:cargo/zstd-sys@2.0.13+zstd.1.5.6",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa"
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/gyscos/zstd-rs"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT/Apache-2.0"
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/beorn7/perks",
      "version": "v1.0.1",
      "bom-ref": "pkg:golang/github.com/beorn7/perks@v1.0.1",
      "purl": "pkg:golang/github.com/beorn7/perks@v1.0.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "5656ca2a735f57c6c9cdeaa86b870e2aa3ba6d8af75a0299c4ef19d7afa1b0e3"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IChDKSAyMDEzIEJsYWtlIE1pemVyYW55CgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCiJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLApkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCnRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCmluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCkVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgpNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORApOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFCkxJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCldJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/cespare/xxhash/v2",
      "version": "v2.3.0",
      "bom-ref": "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0",
      "purl": "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "50bf35e7153d4aab059626f3ba08338d786883b6cbea85fd05b3599cbd9416fb"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IChjKSAyMDE2IENhbGViIFNwYXJlCgpNSVQgTGljZW5zZQoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCmEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQoiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCndpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCnBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwp0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQppbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELApFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRQpMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OCk9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgpXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K"
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/eclipse/paho.golang",
      "version": "v0.23.0",
      "bom-ref": "pkg:golang/github.com/eclipse/paho.golang@v0.23.0",
      "purl": "pkg:golang/github.com/eclipse/paho.golang@v0.23.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "287825db0cfa109a3b70c06692e869b7b0b9efabcffa4a4fbfb8e3bd2c91e8c9"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "EPL-2.0",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMi4wIChFUEwtMi4wKQoKVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwphcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKYW5kIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbnkgdGhpcyBkaXN0cmlidXRpb24uCgpUaGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBpcyBhdmFpbGFibGUgYXQKICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwphbmQgdGhlIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgaXMgYXZhaWxhYmxlIGF0CiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VkbC12MTAucGhwLgoKRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHdoYXQgZHVhbC1saWNlbnNpbmcgbWVhbnMgdG8geW91LCBzZWU6Cmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbGZhcS5waHAjRFVBTExJQwoKKioqKgpUaGUgZXBsLTIuMCBpcyBjb3BpZWQgYmVsb3cgaW4gb3JkZXIgdG8gcGFzcyB0aGUgcGtnLmdvLmRldiBsaWNlbnNlIGNoZWNrIChodHRwczovL3BrZy5nby5kZXYvbGljZW5zZS1wb2xpY3kpLgoqKioqCkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDIuMAoKICAgIFRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCiAgICBQVUJMSUMgTElDRU5TRSAoIkFHUkVFTUVOVCIpLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OCiAgICBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFIE9GIFRISVMgQUdSRUVNRU5ULgoKMS4gREVGSU5JVElPTlMKCiJDb250cmlidXRpb24iIG1lYW5zOgoKICBhKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29udGVudAogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKCiAgYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgogICAgIGkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZAogICAgIGlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07CiAgd2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20KICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KICAib3JpZ2luYXRlcyIgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieQogIHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4KICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKICBhcmUgbm90IE1vZGlmaWVkIFdvcmtzLgoKIkNvbnRyaWJ1dG9yIiBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLgoKIkxpY2Vuc2VkIFBhdGVudHMiIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQpvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCgoiUHJvZ3JhbSIgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKQWdyZWVtZW50LgoKIlJlY2lwaWVudCIgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudApvciBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UgKGFzIGFwcGxpY2FibGUpLCBpbmNsdWRpbmcgQ29udHJpYnV0b3JzLgoKIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQplZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCnJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgoKIk1vZGlmaWVkIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0gdGhhdApyZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCmluIFNvdXJjZSBDb2RlIGZvcm0gdGhhdCBjb250YWlucyBhbnkgY29udGVudHMgb2YgdGhlIFByb2dyYW0uIE1vZGlmaWVkCldvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywKaW50ZXJmYWNlcywgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseQppbiBlYWNoIGNhc2UgaW4gb3JkZXIgdG8gbGluayB0bywgYmluZCBieSBuYW1lLCBvciBzdWJjbGFzcyB0aGUgUHJvZ3JhbQpvciBNb2RpZmllZCBXb3JrcyB0aGVyZW9mLgoKIkRpc3RyaWJ1dGUiIG1lYW5zIHRoZSBhY3RzIG9mIGEpIGRpc3RyaWJ1dGluZyBvciBiKSBtYWtpbmcgYXZhaWxhYmxlCmluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCgoiU291cmNlIENvZGUiIG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZwptb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLApkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCgoiU2Vjb25kYXJ5IExpY2Vuc2UiIG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsClZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55CmV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcyBpZGVudGlmaWVkIGJ5IHRoZSBpbml0aWFsCkNvbnRyaWJ1dG9yLgoKMi4gR1JBTlQgT0YgUklHSFRTCgogIGEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQogIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAogIHB1YmxpY2x5IHBlcmZvcm0sIERpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCiAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KCiAgYikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CiAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAogIGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsCiAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAogIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAogIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwgYXQKICB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbgogIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZCBieSB0aGUKICBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueSBvdGhlcgogIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlciBzZSBpcwogIGxpY2Vuc2VkIGhlcmV1bmRlci4KCiAgYykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCiAgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUKICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgogIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMKICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAogIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlCiAgcmlnaHRzIGFuZCBsaWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5CiAgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsCiAgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eQogIHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvIGFsbG93IFJlY2lwaWVudCB0byBEaXN0cmlidXRlIHRoZQogIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlCiAgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KCiAgZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMKICBzdWZmaWNpZW50IGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudAogIHRoZSBjb3B5cmlnaHQgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCgogIGUpIE5vdHdpdGhzdGFuZGluZyB0aGUgdGVybXMgb2YgYW55IFNlY29uZGFyeSBMaWNlbnNlLCBubwogIENvbnRyaWJ1dG9yIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4KICB0aG9zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQpIGFzIGEgcmVzdWx0IG9mIHN1Y2ggUmVjaXBpZW50J3MKICByZWNlaXB0IG9mIHRoZSBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlCiAgKGlmIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KCjMuIFJFUVVJUkVNRU5UUwoKMy4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46CgogIGEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQogIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5CiAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAoKICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCiAgZGlmZmVyZW50IHRoYW4gdGhpcyBBZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQgc3VjaCBsaWNlbnNlOgogICAgIGkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcKICAgICB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZAogICAgIGltcGxpZWQgd2FycmFudGllcyBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcwogICAgIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKCiAgICAgaWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAogICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCiAgICAgaW5jaWRlbnRhbCBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKCiAgICAgaWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJyByaWdodHMKICAgICBpbiB0aGUgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAoKICAgICBpdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueQogICAgIHBhcnR5IHRvIGJlIHVuZGVyIGEgbGljZW5zZSB0aGF0IHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnRzCiAgICAgb2YgdGhpcyBzZWN0aW9uIDMuCgozLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZToKCiAgYSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlCiAgUHJvZ3JhbSAoaSkgaXMgY29tYmluZWQgd2l0aCBvdGhlciBtYXRlcmlhbCBpbiBhIHNlcGFyYXRlIGZpbGUgb3IKICBmaWxlcyBtYWRlIGF2YWlsYWJsZSB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbAogIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbgogIEV4aGliaXQgQSBvZiB0aGlzIEFncmVlbWVudCwgdGhlbiB0aGUgUHJvZ3JhbSBtYXkgYmUgbWFkZSBhdmFpbGFibGUKICB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaCBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAoKICBiKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZgogIHRoZSBQcm9ncmFtLgoKMy4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsCnRyYWRlbWFyaywgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zCm9mIGxpYWJpbGl0eSAoIm5vdGljZXMiKSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YKdGhlIFByb2dyYW0gd2hpY2ggdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkCnRoZWlyIG93biBhcHByb3ByaWF0ZSBub3RpY2VzLgoKNC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT04KCkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCndpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcwpsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLAp0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0Cm9mZmVyaW5nIHNob3VsZCBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsCmxpYWJpbGl0eSBmb3Igb3RoZXIgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMKdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IKKCJDb21tZXJjaWFsIENvbnRyaWJ1dG9yIikgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeQpvdGhlciBDb250cmlidXRvciAoIkluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIikgYWdhaW5zdCBhbnkgbG9zc2VzLApkYW1hZ2VzIGFuZCBjb3N0cyAoY29sbGVjdGl2ZWx5ICJMb3NzZXMiKSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cwphbmQgb3RoZXIgbGVnYWwgYWN0aW9ucyBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQKQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudCBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2gKQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbQppbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4gVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QKYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkCmludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkCkNvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbgp3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB0byBjb250cm9sLAphbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sIHRoZSBkZWZlbnNlIGFuZCBhbnkKcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG1heQpwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCgpGb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbApwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhIENvbW1lcmNpYWwKQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCmNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlCmNsYWltcyBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkKYWxvbmUuIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0bwpkZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlCmNsYWltcyBhbmQgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvCnBheSBhbnkgZGFtYWdlcyBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkKdGhvc2UgZGFtYWdlcy4KCjUuIE5PIFdBUlJBTlRZCgpFWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQKUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAiQVMgSVMiCkJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IKSU1QTElFRCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRgpUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcyBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQphcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwKcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywKY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMKb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCgo2LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWQoKRVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UClBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMKU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVApQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCkNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCkFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFCkVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKNy4gR0VORVJBTAoKSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mCnRoZSByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyCmFjdGlvbiBieSB0aGUgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZQptaW5pbXVtIGV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuCgpJZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkKKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlClByb2dyYW0gaXRzZWxmIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUKb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzCnJpZ2h0cyBncmFudGVkIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaApsaXRpZ2F0aW9uIGlzIGZpbGVkLgoKQWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQKZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMKQWdyZWVtZW50IGFuZCBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mCnRpbWUgYWZ0ZXIgYmVjb21pbmcgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MKcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UKYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuCkhvd2V2ZXIsIFJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMKZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCgpFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCmJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kCm1heSBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQKcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZgp0aGlzIEFncmVlbWVudCBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudApTdGV3YXJkIGhhcyB0aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uCmlzIHRoZSBpbml0aWFsIEFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlCnJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlCmVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZwp2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0gKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlCkRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMKcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLApDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cwpDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCgpFeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55CkNvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sCmVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCnRvIGJlIGVuZm9yY2VhYmxlIGJ5IGFueSBlbnRpdHkgdGhhdCBpcyBub3QgYSBDb250cmlidXRvciBvciBSZWNpcGllbnQuCk5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KCkV4aGliaXQgQSAtIEZvcm0gb2YgU2Vjb25kYXJ5IExpY2Vuc2VzIE5vdGljZQoKIlRoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZwpTZWNvbmRhcnkgTGljZW5zZXMgd2hlbiB0aGUgY29uZGl0aW9ucyBmb3Igc3VjaCBhdmFpbGFiaWxpdHkgc2V0IGZvcnRoCmluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS4iCgogIFNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKICBpcyBub3Qgc3VmZmljaWVudCB0byBsaWNlbnNlIHRoZSBTb3VyY2UgQ29kZSB1bmRlciBTZWNvbmRhcnkgTGljZW5zZXMuCgogIElmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyCiAgZmlsZSwgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRQogIGZpbGUgaW4gYSByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0bwogIGxvb2sgZm9yIHN1Y2ggYSBub3RpY2UuCgogIFlvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/fsnotify/fsnotify",
      "version": "v1.9.0",
      "bom-ref": "pkg:golang/github.com/fsnotify/fsnotify@v1.9.0",
      "purl": "pkg:golang/github.com/fsnotify/fsnotify@v1.9.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d8c97e3893736d8093cecc6dbfcbca4850fd3db2639a1605d7893f8ca0bb4bd9"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IMKpIDIwMTIgVGhlIEdvIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkNvcHlyaWdodCDCqSBmc25vdGlmeSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgoKUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgoKKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKICBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkCiAgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMKICBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECkFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECldBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgpBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwpMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCg=="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/gabriel-vasile/mimetype",
      "version": "v1.4.13",
      "bom-ref": "pkg:golang/github.com/gabriel-vasile/mimetype@v1.4.13",
      "purl": "pkg:golang/github.com/gabriel-vasile/mimetype@v1.4.13",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e3a9d7a24b25501b00244ff032ca7982d3b9d346b8177364cfd51fa64d807143"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "TUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAxOCBHYWJyaWVsIFZhc2lsZQoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLApGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLApPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQpTT0ZUV0FSRS4K"
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/go-playground/locales",
      "version": "v0.14.1",
      "bom-ref": "pkg:golang/github.com/go-playground/locales@v0.14.1",
      "purl": "pkg:golang/github.com/go-playground/locales@v0.14.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "116690ff0b308e295f28b4c40a25f3ed187edc18c585f0c52affe85ec9448c90"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "VGhlIE1JVCBMaWNlbnNlIChNSVQpCgpDb3B5cmlnaHQgKGMpIDIwMTYgR28gUGxheWdyb3VuZAoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLApGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLApPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQpTT0ZUV0FSRS4="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/go-playground/universal-translator",
      "version": "v0.18.1",
      "bom-ref": "pkg:golang/github.com/go-playground/universal-translator@v0.18.1",
      "purl": "pkg:golang/github.com/go-playground/universal-translator@v0.18.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "05c9e6d19c2c1b259b0b32265effa90099d82bd4b8ef72d016ecc26c36df4856"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "VGhlIE1JVCBMaWNlbnNlIChNSVQpCgpDb3B5cmlnaHQgKGMpIDIwMTYgR28gUGxheWdyb3VuZAoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLApGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLApPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQpTT0ZUV0FSRS4K"
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/go-playground/validator/v10",
      "version": "v10.30.1",
      "bom-ref": "pkg:golang/github.com/go-playground/validator/v10@v10.30.1",
      "purl": "pkg:golang/github.com/go-playground/validator/v10@v10.30.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "7f7cc348dff33a66bec3afb55acc2077d7cb91dc32d3a9ed409a74041bc51b4c"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "VGhlIE1JVCBMaWNlbnNlIChNSVQpCgpDb3B5cmlnaHQgKGMpIDIwMTUgRGVhbiBLYXJuCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbApjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbApjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFClNPRlRXQVJFLgoK"
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/godbus/dbus/v5",
      "version": "v5.2.2",
      "bom-ref": "pkg:golang/github.com/godbus/dbus/v5@v5.2.2",
      "purl": "pkg:golang/github.com/godbus/dbus/v5@v5.2.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "4d44774e0b525439a38973a0000c9a65b62621e3f70cf9257778e028657c9974"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-2-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IChjKSAyMDEzLCBHZW9yZyBSZWlua2UgKDxndWVsZmV5IGF0IGdtYWlsIGRvdCBjb20+KSwgR29vZ2xlCkFsbCByaWdodHMgcmVzZXJ2ZWQuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmFyZSBtZXQ6CgoxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCnRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodApub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCmRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCkxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVApIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsClNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRApUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SClBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTClNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/golang-jwt/jwt/v5",
      "version": "v5.3.1",
      "bom-ref": "pkg:golang/github.com/golang-jwt/jwt/v5@v5.3.1",
      "purl": "pkg:golang/github.com/golang-jwt/jwt/v5@v5.3.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "9187fcd434d615eeedfb556f2fb792fa32855566949caf5c075a9bc27eb76026"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IChjKSAyMDEyIERhdmUgR3JpamFsdmEKQ29weXJpZ2h0IChjKSAyMDIxIGdvbGFuZy1qd3QgbWFpbnRhaW5lcnMKClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/google/uuid",
      "version": "v1.6.0",
      "bom-ref": "pkg:golang/github.com/google/uuid@v1.6.0",
      "purl": "pkg:golang/github.com/google/uuid@v1.6.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "348bda24330eb231c0f27d630212d2833ac0cf2d4782bfa136b6f9edefbde05d"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IChjKSAyMDA5LDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCm1ldDoKCiAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgppbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCmRpc3RyaWJ1dGlvbi4KICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCmNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCnRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCkxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVApPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZClRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCk9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCg=="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/gorilla/mux",
      "version": "v1.8.1",
      "bom-ref": "pkg:golang/github.com/gorilla/mux@v1.8.1",
      "purl": "pkg:golang/github.com/gorilla/mux@v1.8.1",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "4ee04be3db57c20ac561686aacd82b50d118f76bbcd523e1bbbb137734048966"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IChjKSAyMDIzIFRoZSBHb3JpbGxhIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQptZXQ6CgoJICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgoJICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQpjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCmluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKZGlzdHJpYnV0aW9uLgoJICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwpjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQp0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwoiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsClNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCkRBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQpUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCihJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/gorilla/websocket",
      "version": "v1.5.3",
      "bom-ref": "pkg:golang/github.com/gorilla/websocket@v1.5.3",
      "purl": "pkg:golang/github.com/gorilla/websocket@v1.5.3",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b1a0ed67a3dbc7fd2ef9b818437abdea96600b37e129718faadee467bd9a34d8"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-2-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IChjKSAyMDEzIFRoZSBHb3JpbGxhIFdlYlNvY2tldCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgoKUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cm1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgoKICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KCiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAogIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KClRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQpESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCkZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCkRBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SClNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCkNBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCk9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCk9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCg=="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/icholy/digest",
      "version": "v1.1.0",
      "bom-ref": "pkg:golang/github.com/icholy/digest@v1.1.0",
      "purl": "pkg:golang/github.com/icholy/digest@v1.1.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "1df1a0f48ae3ee2f885f5a3540098f7c804dbbf4390394eede7fcc103f64f47e"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "TUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAyMCBJbGlhIENob2x5CgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbApjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbApjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFClNPRlRXQVJFLgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/leodido/go-urn",
      "version": "v1.4.0",
      "bom-ref": "pkg:golang/github.com/leodido/go-urn@v1.4.0",
      "purl": "pkg:golang/github.com/leodido/go-urn@v1.4.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "593f47c04f521840aede583877f74803e8f19658c46b5fdf7d72a6463a9d9884"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "TUlUIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAxOCBMZW9uYXJkbyBEaSBEb25hdG8KClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKU09GVFdBUkUuCg=="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/munnerz/goautoneg",
      "version": "v0.0.0-20191010083416-a7dc8b61c822",
      "bom-ref": "pkg:golang/github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822",
      "purl": "pkg:golang/github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "0b7c3d3ea208d35fceab57359d4026f3c30e1dc402f65e6622548c02964cac70"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IChjKSAyMDExLCBPcGVuIEtub3dsZWRnZSBGb3VuZGF0aW9uIEx0ZC4KQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCm1ldDoKCiAgICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgoKICAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKICAgIGRpc3RyaWJ1dGlvbi4KCiAgICBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBPcGVuIEtub3dsZWRnZSBGb3VuZGF0aW9uIEx0ZC4gbm9yIHRoZQogICAgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUKICAgIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbgogICAgcGVybWlzc2lvbi4KClRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCkEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCkhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZClRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCk9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCg=="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/prometheus/client_golang",
      "version": "v1.23.2",
      "bom-ref": "pkg:golang/github.com/prometheus/client_golang@v1.23.2",
      "purl": "pkg:golang/github.com/prometheus/client_golang@v1.23.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "25ef7aa1b721e510d5cb714332776852c8c0846e44762e3d8744495918bfa34a"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Apache-2.0",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAogICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCgogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KCiAgIDEuIERlZmluaXRpb25zLgoKICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCgogICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQogICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCgogICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCiAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCiAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCiAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQogICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgoKICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQogICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgoKICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCiAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KCiAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCiAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAogICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCgogICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgogICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCiAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yawogICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgoKICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAogICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCiAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCiAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KCiAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCiAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CiAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgogICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CiAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCiAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCiAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCiAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAogICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQogICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKCiAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CiAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAogICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KCiAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCiAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAogICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KCiAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCiAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAogICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQogICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQogICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQogICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCiAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CiAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCiAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KCiAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCiAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAogICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQogICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCiAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAoKICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwogICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCgogICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCiAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCiAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCgogICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAogICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CiAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCiAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCiAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cwogICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAogICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCiAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAogICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgoKICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCiAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgogICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCiAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCgogICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCiAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yawogICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQogICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAogICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCgogICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCiAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCiAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgoKICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCiAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgogICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucwogICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCiAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQogICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgoKICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCiAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAogICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQogICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQogICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCiAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQogICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCiAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgogICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCgogICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCiAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCiAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCiAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCiAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CiAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCiAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CiAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCgogICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KCiAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCiAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCiAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKICAgICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCiAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KCiAgIENvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQoKICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/prometheus/client_model",
      "version": "v0.6.2",
      "bom-ref": "pkg:golang/github.com/prometheus/client_model@v0.6.2",
      "purl": "pkg:golang/github.com/prometheus/client_model@v0.6.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a01b20c291acee257388cbeb1a1139ddcfc6acb52c65d1e7a8dc2a3cbc706729"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Apache-2.0",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAogICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCgogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KCiAgIDEuIERlZmluaXRpb25zLgoKICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCgogICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQogICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCgogICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCiAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCiAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCiAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQogICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgoKICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQogICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgoKICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCiAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KCiAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCiAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAogICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCgogICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgogICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCiAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yawogICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgoKICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAogICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCiAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCiAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KCiAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCiAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CiAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgogICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CiAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCiAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCiAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCiAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAogICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQogICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKCiAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CiAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAogICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KCiAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCiAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAogICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KCiAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCiAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAogICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQogICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQogICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQogICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCiAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CiAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCiAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KCiAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCiAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAogICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQogICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCiAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAoKICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwogICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCgogICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCiAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCiAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCgogICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAogICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CiAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCiAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCiAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cwogICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAogICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCiAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAogICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgoKICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCiAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgogICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCiAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCgogICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCiAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yawogICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQogICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAogICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCgogICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCiAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCiAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgoKICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCiAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgogICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucwogICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCiAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQogICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgoKICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCiAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAogICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQogICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQogICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCiAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQogICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCiAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgogICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCgogICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCiAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCiAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCiAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCiAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CiAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCiAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CiAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCgogICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KCiAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCiAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCiAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKICAgICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCiAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KCiAgIENvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQoKICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/prometheus/common",
      "version": "v0.67.5",
      "bom-ref": "pkg:golang/github.com/prometheus/common@v0.67.5",
      "purl": "pkg:golang/github.com/prometheus/common@v0.67.5",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a4880af78596950b7558bc000b98f6ca72da0510e28a7a006fce876474d4188e"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Apache-2.0",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAogICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCgogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KCiAgIDEuIERlZmluaXRpb25zLgoKICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCgogICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQogICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCgogICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCiAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCiAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCiAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQogICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgoKICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQogICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgoKICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCiAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KCiAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCiAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAogICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCgogICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgogICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCiAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yawogICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgoKICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAogICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCiAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCiAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KCiAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCiAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CiAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgogICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CiAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCiAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCiAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCiAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAogICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQogICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKCiAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CiAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAogICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KCiAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCiAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAogICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KCiAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCiAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAogICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQogICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQogICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQogICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCiAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CiAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCiAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KCiAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCiAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAogICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQogICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCiAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAoKICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwogICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCgogICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCiAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCiAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCgogICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAogICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CiAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCiAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCiAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cwogICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAogICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCiAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAogICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgoKICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCiAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgogICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCiAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCgogICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCiAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yawogICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQogICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAogICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCgogICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCiAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCiAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgoKICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCiAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgogICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucwogICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCiAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQogICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgoKICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCiAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAogICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQogICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQogICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCiAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQogICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCiAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgogICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCgogICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCiAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCiAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCiAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCiAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CiAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCiAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CiAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCgogICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KCiAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCiAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCiAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKICAgICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCiAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KCiAgIENvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQoKICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "github.com/prometheus/procfs",
      "version": "v0.19.2",
      "bom-ref": "pkg:golang/github.com/prometheus/procfs@v0.19.2",
      "purl": "pkg:golang/github.com/prometheus/procfs@v0.19.2",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "cd4321a845bae84c7b3972220e4965ded97d6b565d8a550e77f17a657c38570b"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Apache-2.0",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAogICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCgogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KCiAgIDEuIERlZmluaXRpb25zLgoKICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCgogICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQogICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCgogICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCiAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCiAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCiAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQogICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgoKICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQogICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgoKICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCiAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KCiAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCiAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAogICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCgogICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgogICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCiAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yawogICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgoKICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAogICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCiAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCiAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KCiAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCiAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CiAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgogICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CiAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCiAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCiAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCiAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAogICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQogICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKCiAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CiAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAogICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KCiAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCiAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAogICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KCiAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCiAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAogICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQogICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQogICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQogICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCiAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CiAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCiAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KCiAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCiAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAogICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQogICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCiAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAoKICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwogICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCgogICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCiAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCiAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCgogICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAogICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CiAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCiAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCiAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cwogICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAogICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCiAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAogICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgoKICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCiAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgogICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCiAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCgogICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCiAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yawogICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQogICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAogICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCgogICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCiAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCiAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgoKICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCiAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgogICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucwogICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCiAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQogICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgoKICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCiAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAogICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQogICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQogICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCiAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQogICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCiAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgogICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCgogICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCiAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCiAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCiAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCiAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CiAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCiAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CiAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCgogICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KCiAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCiAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCiAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKICAgICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCiAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KCiAgIENvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQoKICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "go.yaml.in/yaml/v2",
      "version": "v2.4.3",
      "bom-ref": "pkg:golang/go.yaml.in/yaml/v2@v2.4.3",
      "purl": "pkg:golang/go.yaml.in/yaml/v2@v2.4.3",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "ea0bce4a34284c1defb7597e094fad4b28bf1ce8df3a344b2786306191b044ed"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "Apache-2.0",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAogICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCgogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KCiAgIDEuIERlZmluaXRpb25zLgoKICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCgogICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQogICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCgogICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCiAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCiAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCiAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQogICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgoKICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQogICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgoKICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCiAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KCiAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCiAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAogICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCgogICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgogICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCiAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yawogICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgoKICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAogICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCiAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCiAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KCiAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCiAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CiAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgogICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CiAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCiAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCiAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCiAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAogICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQogICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKCiAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CiAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAogICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KCiAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCiAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAogICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KCiAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCiAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAogICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQogICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQogICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQogICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCiAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CiAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCiAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KCiAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCiAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAogICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQogICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCiAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAoKICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwogICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCgogICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCiAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCiAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCgogICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAogICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CiAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCiAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCiAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cwogICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAogICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCiAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAogICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgoKICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCiAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgogICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCiAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCgogICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCiAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yawogICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgogICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQogICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAogICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCgogICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCiAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCiAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgoKICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCiAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgogICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucwogICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCiAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQogICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgoKICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCiAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAogICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQogICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQogICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCiAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQogICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCiAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgogICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCgogICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCiAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCiAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCiAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCiAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CiAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCiAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CiAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCgogICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KCiAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCiAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJ7fSIKICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCiAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKICAgICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCiAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KCiAgIENvcHlyaWdodCB7eXl5eX0ge25hbWUgb2YgY29weXJpZ2h0IG93bmVyfQoKICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgo="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "golang.org/x/crypto",
      "version": "v0.48.0",
      "bom-ref": "pkg:golang/golang.org/x/crypto@v0.48.0",
      "purl": "pkg:golang/golang.org/x/crypto@v0.48.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "fd547356a8914a0827858ee0351c4f6ae110e43af0f6168a74cd23a9f70216db"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IDIwMDkgVGhlIEdvIEF1dGhvcnMuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQptZXQ6CgogICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCmNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQpkaXN0cmlidXRpb24uCiAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgTExDIG5vciB0aGUgbmFtZXMgb2YgaXRzCmNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCnRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCkxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVApPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZClRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCk9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCg=="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "golang.org/x/sync",
      "version": "v0.19.0",
      "bom-ref": "pkg:golang/golang.org/x/sync@v0.19.0",
      "purl": "pkg:golang/golang.org/x/sync@v0.19.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "bd5fb579636667981e465623ce6d9a751816dbf99ca5ebd7360e74619b4f084e"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IDIwMDkgVGhlIEdvIEF1dGhvcnMuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQptZXQ6CgogICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCmNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQpkaXN0cmlidXRpb24uCiAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgTExDIG5vciB0aGUgbmFtZXMgb2YgaXRzCmNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCnRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCkxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVApPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZClRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCk9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCg=="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "golang.org/x/sys",
      "version": "v0.41.0",
      "bom-ref": "pkg:golang/golang.org/x/sys@v0.41.0",
      "purl": "pkg:golang/golang.org/x/sys@v0.41.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "22f8fed82a7fca5ccb88453cf508566e5627384f737abb9db7d16d79cab60ba9"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IDIwMDkgVGhlIEdvIEF1dGhvcnMuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQptZXQ6CgogICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCmNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQpkaXN0cmlidXRpb24uCiAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgTExDIG5vciB0aGUgbmFtZXMgb2YgaXRzCmNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCnRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCkxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVApPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZClRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCk9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCg=="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "golang.org/x/text",
      "version": "v0.34.0",
      "bom-ref": "pkg:golang/golang.org/x/text@v0.34.0",
      "purl": "pkg:golang/golang.org/x/text@v0.34.0",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a0bfd0ab429d6aac5ad4a6cd78c2b042ad2b78b082685b6abb678db9278d1db9"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IDIwMDkgVGhlIEdvIEF1dGhvcnMuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQptZXQ6CgogICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCmNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQpkaXN0cmlidXRpb24uCiAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgTExDIG5vciB0aGUgbmFtZXMgb2YgaXRzCmNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCnRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCkxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVApPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZClRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCk9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCg=="
            }
          }
        }
      ]
    },
    {
      "type": "library",
      "name": "google.golang.org/protobuf",
      "version": "v1.36.11",
      "bom-ref": "pkg:golang/google.golang.org/protobuf@v1.36.11",
      "purl": "pkg:golang/google.golang.org/protobuf@v1.36.11",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "7d5e99c21368703c812cad1d8fe7e0f1e92d7157a0041b84a25a5b4d0c813551"
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "BSD-3-Clause",
            "text": {
              "contentType": "text/plain",
              "encoding": "base64",
              "content": "Q29weXJpZ2h0IChjKSAyMDE4IFRoZSBHbyBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgoKUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cm1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKbWV0OgoKICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodApub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQpjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCmluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKZGlzdHJpYnV0aW9uLgogICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KClRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCkEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCk9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLApTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCkxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLApEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAooSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K"
            }
          }
        }
      ]
    },
    {
      "type": "application",
      "bom-ref": "mosquitto-672ae3e57f8b4e086f6ce2dec836734cc38258c3",
      "name": "mosquitto",
      "author": "mosquitto TURN server project",
      "version": "672ae3e57f8b4e086f6ce2dec836734cc38258c3",
      "licenses": [
        {
          "expression": "EPL-2.0"
        },
        {
          "expression": "EPL-1.0"
        }
      ],
      "externalReferences": [
        {
          "url": "https://github.com/eclipse-mosquitto/mosquitto.git",
          "type": "vcs"
        },
        {
          "url": "https://github.com/eclipse-mosquitto/mosquitto",
          "type": "website"
        }
      ]
    }
  ],
  "dependencies": [
    {
      "ref": "pkg:npm/react-dom@19.2.4",
      "dependsOn": [
        "pkg:npm/scheduler@0.27.0"
      ]
    },
    {
      "ref": "pkg:npm/react-router@7.13.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:npm/react@19.2.4",
      "dependsOn": []
    },
    {
      "ref": "pkg:npm/scheduler@0.27.0",
      "dependsOn": []
    },
    {
      "ref": "coturn-5a518078b2ce7fcee72d6a7cdede314595525c5b",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/actix-codec@0.5.2",
      "dependsOn": [
        "pkg:cargo/bitflags@2.6.0",
        "pkg:cargo/bytes@1.9.0",
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/futures-sink@0.3.31",
        "pkg:cargo/memchr@2.7.4",
        "pkg:cargo/pin-project-lite@0.2.15",
        "pkg:cargo/tokio@1.38.2",
        "pkg:cargo/tokio-util@0.7.13",
        "pkg:cargo/tracing@0.1.41"
      ]
    },
    {
      "ref": "pkg:cargo/actix-http@3.11.0",
      "dependsOn": [
        "pkg:cargo/actix-codec@0.5.2",
        "pkg:cargo/actix-rt@2.10.0",
        "pkg:cargo/actix-service@2.0.3",
        "pkg:cargo/actix-tls@3.4.0",
        "pkg:cargo/actix-utils@3.0.1",
        "pkg:cargo/base64@0.22.1",
        "pkg:cargo/bitflags@2.6.0",
        "pkg:cargo/brotli@8.0.1",
        "pkg:cargo/bytes@1.9.0",
        "pkg:cargo/bytestring@1.4.0",
        "pkg:cargo/derive_more@2.0.1",
        "pkg:cargo/encoding_rs@0.8.35",
        "pkg:cargo/flate2@1.1.1",
        "pkg:cargo/foldhash@0.1.5",
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/h2@0.3.26",
        "pkg:cargo/http@0.2.12",
        "pkg:cargo/httparse@1.9.5",
        "pkg:cargo/httpdate@1.0.3",
        "pkg:cargo/itoa@1.0.14",
        "pkg:cargo/language-tags@0.3.2",
        "pkg:cargo/local-channel@0.1.5",
        "pkg:cargo/mime@0.3.17",
        "pkg:cargo/percent-encoding@2.3.1",
        "pkg:cargo/pin-project-lite@0.2.15",
        "pkg:cargo/rand@0.9.1",
        "pkg:cargo/sha1@0.10.6",
        "pkg:cargo/smallvec@1.13.2",
        "pkg:cargo/tokio@1.38.2",
        "pkg:cargo/tokio-util@0.7.13",
        "pkg:cargo/tracing@0.1.41",
        "pkg:cargo/zstd@0.13.2"
      ]
    },
    {
      "ref": "pkg:cargo/actix-macros@0.2.4",
      "dependsOn": [
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/actix-router@0.5.3",
      "dependsOn": [
        "pkg:cargo/bytestring@1.4.0",
        "pkg:cargo/cfg-if@1.0.0",
        "pkg:cargo/http@0.2.12",
        "pkg:cargo/regex@1.11.1",
        "pkg:cargo/regex-lite@0.1.6",
        "pkg:cargo/serde@1.0.219",
        "pkg:cargo/tracing@0.1.41"
      ]
    },
    {
      "ref": "pkg:cargo/actix-rt@2.10.0",
      "dependsOn": [
        "pkg:cargo/actix-macros@0.2.4",
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/tokio@1.38.2"
      ]
    },
    {
      "ref": "pkg:cargo/actix-server@2.5.0",
      "dependsOn": [
        "pkg:cargo/actix-rt@2.10.0",
        "pkg:cargo/actix-service@2.0.3",
        "pkg:cargo/actix-utils@3.0.1",
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/futures-util@0.3.31",
        "pkg:cargo/mio@1.0.3",
        "pkg:cargo/socket2@0.5.8",
        "pkg:cargo/tokio@1.38.2",
        "pkg:cargo/tracing@0.1.41"
      ]
    },
    {
      "ref": "pkg:cargo/actix-service@2.0.3",
      "dependsOn": [
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/pin-project-lite@0.2.15"
      ]
    },
    {
      "ref": "pkg:cargo/actix-tls@3.4.0",
      "dependsOn": [
        "pkg:cargo/actix-rt@2.10.0",
        "pkg:cargo/actix-service@2.0.3",
        "pkg:cargo/actix-utils@3.0.1",
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/http@0.2.12",
        "pkg:cargo/http@1.2.0",
        "pkg:cargo/impl-more@0.1.8",
        "pkg:cargo/openssl@0.10.72",
        "pkg:cargo/pin-project-lite@0.2.15",
        "pkg:cargo/rustls-pki-types@1.11.0",
        "pkg:cargo/tokio@1.38.2",
        "pkg:cargo/tokio-openssl@0.6.5",
        "pkg:cargo/tokio-rustls@0.26.1",
        "pkg:cargo/tokio-util@0.7.13",
        "pkg:cargo/tracing@0.1.41"
      ]
    },
    {
      "ref": "pkg:cargo/actix-utils@3.0.1",
      "dependsOn": [
        "pkg:cargo/local-waker@0.1.4",
        "pkg:cargo/pin-project-lite@0.2.15"
      ]
    },
    {
      "ref": "pkg:cargo/actix-web-actors@4.3.1+deprecated",
      "dependsOn": [
        "pkg:cargo/actix@0.13.5",
        "pkg:cargo/actix-codec@0.5.2",
        "pkg:cargo/actix-http@3.11.0",
        "pkg:cargo/actix-web@4.10.2",
        "pkg:cargo/bytes@1.9.0",
        "pkg:cargo/bytestring@1.4.0",
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/pin-project-lite@0.2.15",
        "pkg:cargo/tokio@1.38.2",
        "pkg:cargo/tokio-util@0.7.13"
      ]
    },
    {
      "ref": "pkg:cargo/actix-web-codegen@4.3.0",
      "dependsOn": [
        "pkg:cargo/actix-router@0.5.3",
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/actix-web@4.10.2",
      "dependsOn": [
        "pkg:cargo/actix-codec@0.5.2",
        "pkg:cargo/actix-http@3.11.0",
        "pkg:cargo/actix-macros@0.2.4",
        "pkg:cargo/actix-router@0.5.3",
        "pkg:cargo/actix-rt@2.10.0",
        "pkg:cargo/actix-server@2.5.0",
        "pkg:cargo/actix-service@2.0.3",
        "pkg:cargo/actix-tls@3.4.0",
        "pkg:cargo/actix-utils@3.0.1",
        "pkg:cargo/actix-web-codegen@4.3.0",
        "pkg:cargo/bytes@1.9.0",
        "pkg:cargo/bytestring@1.4.0",
        "pkg:cargo/cfg-if@1.0.0",
        "pkg:cargo/cookie@0.16.2",
        "pkg:cargo/derive_more@2.0.1",
        "pkg:cargo/encoding_rs@0.8.35",
        "pkg:cargo/foldhash@0.1.5",
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/futures-util@0.3.31",
        "pkg:cargo/impl-more@0.1.8",
        "pkg:cargo/itoa@1.0.14",
        "pkg:cargo/language-tags@0.3.2",
        "pkg:cargo/log@0.4.27",
        "pkg:cargo/mime@0.3.17",
        "pkg:cargo/once_cell@1.20.2",
        "pkg:cargo/pin-project-lite@0.2.15",
        "pkg:cargo/regex@1.11.1",
        "pkg:cargo/regex-lite@0.1.6",
        "pkg:cargo/serde@1.0.219",
        "pkg:cargo/serde_json@1.0.140",
        "pkg:cargo/serde_urlencoded@0.7.1",
        "pkg:cargo/smallvec@1.13.2",
        "pkg:cargo/socket2@0.5.8",
        "pkg:cargo/time@0.3.41",
        "pkg:cargo/tracing@0.1.41",
        "pkg:cargo/url@2.5.4"
      ]
    },
    {
      "ref": "pkg:cargo/actix@0.13.5",
      "dependsOn": [
        "pkg:cargo/actix-macros@0.2.4",
        "pkg:cargo/actix-rt@2.10.0",
        "pkg:cargo/actix_derive@0.6.2",
        "pkg:cargo/bitflags@2.6.0",
        "pkg:cargo/bytes@1.9.0",
        "pkg:cargo/crossbeam-channel@0.5.15",
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/futures-sink@0.3.31",
        "pkg:cargo/futures-task@0.3.31",
        "pkg:cargo/futures-util@0.3.31",
        "pkg:cargo/log@0.4.27",
        "pkg:cargo/once_cell@1.20.2",
        "pkg:cargo/parking_lot@0.12.3",
        "pkg:cargo/pin-project-lite@0.2.15",
        "pkg:cargo/smallvec@1.13.2",
        "pkg:cargo/tokio@1.38.2",
        "pkg:cargo/tokio-util@0.7.13"
      ]
    },
    {
      "ref": "pkg:cargo/actix_derive@0.6.2",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/adler2@2.0.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/aho-corasick@1.1.3",
      "dependsOn": [
        "pkg:cargo/memchr@2.7.4"
      ]
    },
    {
      "ref": "pkg:cargo/alloc-no-stdlib@2.0.4",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/alloc-stdlib@0.2.2",
      "dependsOn": [
        "pkg:cargo/alloc-no-stdlib@2.0.4"
      ]
    },
    {
      "ref": "pkg:cargo/anyhow@1.0.98",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/aws-lc-rs@1.13.0",
      "dependsOn": [
        "pkg:cargo/aws-lc-sys@0.28.0",
        "pkg:cargo/zeroize@1.8.1"
      ]
    },
    {
      "ref": "pkg:cargo/aws-lc-sys@0.28.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/base64@0.22.1",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/bitflags@2.6.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/block-buffer@0.10.4",
      "dependsOn": [
        "pkg:cargo/generic-array@0.14.7"
      ]
    },
    {
      "ref": "pkg:cargo/brotli-decompressor@5.0.0",
      "dependsOn": [
        "pkg:cargo/alloc-no-stdlib@2.0.4",
        "pkg:cargo/alloc-stdlib@0.2.2"
      ]
    },
    {
      "ref": "pkg:cargo/brotli@8.0.1",
      "dependsOn": [
        "pkg:cargo/alloc-no-stdlib@2.0.4",
        "pkg:cargo/alloc-stdlib@0.2.2",
        "pkg:cargo/brotli-decompressor@5.0.0"
      ]
    },
    {
      "ref": "pkg:cargo/byteorder@1.5.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/bytes@1.9.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/bytestring@1.4.0",
      "dependsOn": [
        "pkg:cargo/bytes@1.9.0"
      ]
    },
    {
      "ref": "pkg:cargo/cfg-if@1.0.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/chrono@0.4.41",
      "dependsOn": [
        "pkg:cargo/iana-time-zone@0.1.61",
        "pkg:cargo/num-traits@0.2.19"
      ]
    },
    {
      "ref": "pkg:cargo/cookie@0.16.2",
      "dependsOn": [
        "pkg:cargo/percent-encoding@2.3.1",
        "pkg:cargo/time@0.3.41"
      ]
    },
    {
      "ref": "pkg:cargo/cpufeatures@0.2.16",
      "dependsOn": [
        "pkg:cargo/libc@0.2.168"
      ]
    },
    {
      "ref": "pkg:cargo/crc32fast@1.4.2",
      "dependsOn": [
        "pkg:cargo/cfg-if@1.0.0"
      ]
    },
    {
      "ref": "pkg:cargo/crossbeam-channel@0.5.15",
      "dependsOn": [
        "pkg:cargo/crossbeam-utils@0.8.20"
      ]
    },
    {
      "ref": "pkg:cargo/crossbeam-utils@0.8.20",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/crypto-common@0.1.6",
      "dependsOn": [
        "pkg:cargo/generic-array@0.14.7",
        "pkg:cargo/typenum@1.17.0"
      ]
    },
    {
      "ref": "pkg:cargo/deranged@0.4.1",
      "dependsOn": [
        "pkg:cargo/powerfmt@0.2.0"
      ]
    },
    {
      "ref": "pkg:cargo/derive_more-impl@2.0.1",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90",
        "pkg:cargo/unicode-xid@0.2.6"
      ]
    },
    {
      "ref": "pkg:cargo/derive_more@2.0.1",
      "dependsOn": [
        "pkg:cargo/derive_more-impl@2.0.1"
      ]
    },
    {
      "ref": "pkg:cargo/digest@0.10.7",
      "dependsOn": [
        "pkg:cargo/block-buffer@0.10.4",
        "pkg:cargo/crypto-common@0.1.6"
      ]
    },
    {
      "ref": "pkg:cargo/displaydoc@0.2.5",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/encoding_rs@0.8.35",
      "dependsOn": [
        "pkg:cargo/cfg-if@1.0.0"
      ]
    },
    {
      "ref": "pkg:cargo/equivalent@1.0.1",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/flate2@1.1.1",
      "dependsOn": [
        "pkg:cargo/crc32fast@1.4.2",
        "pkg:cargo/miniz_oxide@0.8.8"
      ]
    },
    {
      "ref": "pkg:cargo/flexi_logger@0.30.1",
      "dependsOn": [
        "pkg:cargo/chrono@0.4.41",
        "pkg:cargo/log@0.4.27",
        "pkg:cargo/nu-ansi-term@0.50.1",
        "pkg:cargo/regex@1.11.1",
        "pkg:cargo/thiserror@2.0.6"
      ]
    },
    {
      "ref": "pkg:cargo/fnv@1.0.7",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/foldhash@0.1.5",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/foreign-types-shared@0.1.1",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/foreign-types@0.3.2",
      "dependsOn": [
        "pkg:cargo/foreign-types-shared@0.1.1"
      ]
    },
    {
      "ref": "pkg:cargo/form_urlencoded@1.2.1",
      "dependsOn": [
        "pkg:cargo/percent-encoding@2.3.1"
      ]
    },
    {
      "ref": "pkg:cargo/futures-core@0.3.31",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/futures-sink@0.3.31",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/futures-task@0.3.31",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/futures-util@0.3.31",
      "dependsOn": [
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/futures-sink@0.3.31",
        "pkg:cargo/futures-task@0.3.31",
        "pkg:cargo/pin-project-lite@0.2.15",
        "pkg:cargo/pin-utils@0.1.0"
      ]
    },
    {
      "ref": "pkg:cargo/generic-array@0.14.7",
      "dependsOn": [
        "pkg:cargo/typenum@1.17.0"
      ]
    },
    {
      "ref": "pkg:cargo/getrandom@0.3.1",
      "dependsOn": [
        "pkg:cargo/cfg-if@1.0.0",
        "pkg:cargo/libc@0.2.168"
      ]
    },
    {
      "ref": "pkg:cargo/h2@0.3.26",
      "dependsOn": [
        "pkg:cargo/bytes@1.9.0",
        "pkg:cargo/fnv@1.0.7",
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/futures-sink@0.3.31",
        "pkg:cargo/futures-util@0.3.31",
        "pkg:cargo/http@0.2.12",
        "pkg:cargo/indexmap@2.7.0",
        "pkg:cargo/slab@0.4.9",
        "pkg:cargo/tokio@1.38.2",
        "pkg:cargo/tokio-util@0.7.13",
        "pkg:cargo/tracing@0.1.41"
      ]
    },
    {
      "ref": "pkg:cargo/hashbrown@0.15.2",
      "dependsOn": [
        "pkg:cargo/foldhash@0.1.5"
      ]
    },
    {
      "ref": "pkg:cargo/http@0.2.12",
      "dependsOn": [
        "pkg:cargo/bytes@1.9.0",
        "pkg:cargo/fnv@1.0.7",
        "pkg:cargo/itoa@1.0.14"
      ]
    },
    {
      "ref": "pkg:cargo/httparse@1.9.5",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/httpdate@1.0.3",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/iana-time-zone@0.1.61",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/icu_collections@1.5.0",
      "dependsOn": [
        "pkg:cargo/displaydoc@0.2.5",
        "pkg:cargo/yoke@0.7.5",
        "pkg:cargo/zerofrom@0.1.5",
        "pkg:cargo/zerovec@0.10.4"
      ]
    },
    {
      "ref": "pkg:cargo/icu_locid@1.5.0",
      "dependsOn": [
        "pkg:cargo/displaydoc@0.2.5",
        "pkg:cargo/litemap@0.7.4",
        "pkg:cargo/tinystr@0.7.6",
        "pkg:cargo/writeable@0.5.5",
        "pkg:cargo/zerovec@0.10.4"
      ]
    },
    {
      "ref": "pkg:cargo/icu_locid_transform@1.5.0",
      "dependsOn": [
        "pkg:cargo/displaydoc@0.2.5",
        "pkg:cargo/icu_locid@1.5.0",
        "pkg:cargo/icu_locid_transform_data@1.5.0",
        "pkg:cargo/icu_provider@1.5.0",
        "pkg:cargo/tinystr@0.7.6",
        "pkg:cargo/zerovec@0.10.4"
      ]
    },
    {
      "ref": "pkg:cargo/icu_locid_transform_data@1.5.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/icu_normalizer@1.5.0",
      "dependsOn": [
        "pkg:cargo/displaydoc@0.2.5",
        "pkg:cargo/icu_collections@1.5.0",
        "pkg:cargo/icu_normalizer_data@1.5.0",
        "pkg:cargo/icu_properties@1.5.1",
        "pkg:cargo/icu_provider@1.5.0",
        "pkg:cargo/smallvec@1.13.2",
        "pkg:cargo/utf16_iter@1.0.5",
        "pkg:cargo/utf8_iter@1.0.4",
        "pkg:cargo/write16@1.0.0",
        "pkg:cargo/zerovec@0.10.4"
      ]
    },
    {
      "ref": "pkg:cargo/icu_normalizer_data@1.5.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/icu_properties@1.5.1",
      "dependsOn": [
        "pkg:cargo/displaydoc@0.2.5",
        "pkg:cargo/icu_collections@1.5.0",
        "pkg:cargo/icu_locid_transform@1.5.0",
        "pkg:cargo/icu_properties_data@1.5.0",
        "pkg:cargo/icu_provider@1.5.0",
        "pkg:cargo/tinystr@0.7.6",
        "pkg:cargo/zerovec@0.10.4"
      ]
    },
    {
      "ref": "pkg:cargo/icu_properties_data@1.5.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/icu_provider@1.5.0",
      "dependsOn": [
        "pkg:cargo/displaydoc@0.2.5",
        "pkg:cargo/icu_locid@1.5.0",
        "pkg:cargo/icu_provider_macros@1.5.0",
        "pkg:cargo/stable_deref_trait@1.2.0",
        "pkg:cargo/tinystr@0.7.6",
        "pkg:cargo/writeable@0.5.5",
        "pkg:cargo/yoke@0.7.5",
        "pkg:cargo/zerofrom@0.1.5",
        "pkg:cargo/zerovec@0.10.4"
      ]
    },
    {
      "ref": "pkg:cargo/icu_provider_macros@1.5.0",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/idna@1.0.3",
      "dependsOn": [
        "pkg:cargo/idna_adapter@1.2.0",
        "pkg:cargo/smallvec@1.13.2",
        "pkg:cargo/utf8_iter@1.0.4"
      ]
    },
    {
      "ref": "pkg:cargo/idna_adapter@1.2.0",
      "dependsOn": [
        "pkg:cargo/icu_normalizer@1.5.0",
        "pkg:cargo/icu_properties@1.5.1"
      ]
    },
    {
      "ref": "pkg:cargo/impl-more@0.1.8",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/indexmap@2.7.0",
      "dependsOn": [
        "pkg:cargo/equivalent@1.0.1",
        "pkg:cargo/hashbrown@0.15.2"
      ]
    },
    {
      "ref": "pkg:cargo/itoa@1.0.14",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/language-tags@0.3.2",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/libc@0.2.168",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/linked-hash-map@0.5.6",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/litemap@0.7.4",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/local-channel@0.1.5",
      "dependsOn": [
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/futures-sink@0.3.31",
        "pkg:cargo/local-waker@0.1.4"
      ]
    },
    {
      "ref": "pkg:cargo/local-waker@0.1.4",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/lock_api@0.4.12",
      "dependsOn": [
        "pkg:cargo/scopeguard@1.2.0"
      ]
    },
    {
      "ref": "pkg:cargo/log@0.4.27",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/memchr@2.7.4",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/mime@0.3.17",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/miniz_oxide@0.8.8",
      "dependsOn": [
        "pkg:cargo/adler2@2.0.0"
      ]
    },
    {
      "ref": "pkg:cargo/mio@0.8.11",
      "dependsOn": [
        "pkg:cargo/libc@0.2.168"
      ]
    },
    {
      "ref": "pkg:cargo/nu-ansi-term@0.50.1",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/num-conv@0.1.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/num-traits@0.2.19",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/num_threads@0.1.7",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/once_cell@1.20.2",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/openssl-macros@0.1.1",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/openssl-sys@0.9.107",
      "dependsOn": [
        "pkg:cargo/libc@0.2.168"
      ]
    },
    {
      "ref": "pkg:cargo/openssl@0.10.72",
      "dependsOn": [
        "pkg:cargo/bitflags@2.6.0",
        "pkg:cargo/cfg-if@1.0.0",
        "pkg:cargo/foreign-types@0.3.2",
        "pkg:cargo/libc@0.2.168",
        "pkg:cargo/once_cell@1.20.2",
        "pkg:cargo/openssl-macros@0.1.1",
        "pkg:cargo/openssl-sys@0.9.107"
      ]
    },
    {
      "ref": "pkg:cargo/parking_lot@0.12.3",
      "dependsOn": [
        "pkg:cargo/lock_api@0.4.12",
        "pkg:cargo/parking_lot_core@0.9.10"
      ]
    },
    {
      "ref": "pkg:cargo/parking_lot_core@0.9.10",
      "dependsOn": [
        "pkg:cargo/cfg-if@1.0.0",
        "pkg:cargo/libc@0.2.168",
        "pkg:cargo/smallvec@1.13.2"
      ]
    },
    {
      "ref": "pkg:cargo/percent-encoding@2.3.1",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/pin-project-lite@0.2.15",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/pin-utils@0.1.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/powerfmt@0.2.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/ppv-lite86@0.2.20",
      "dependsOn": [
        "pkg:cargo/zerocopy@0.7.35"
      ]
    },
    {
      "ref": "pkg:cargo/proc-macro2@1.0.92",
      "dependsOn": [
        "pkg:cargo/unicode-ident@1.0.14"
      ]
    },
    {
      "ref": "pkg:cargo/quote@1.0.37",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92"
      ]
    },
    {
      "ref": "pkg:cargo/rand@0.9.1",
      "dependsOn": [
        "pkg:cargo/rand_chacha@0.9.0",
        "pkg:cargo/rand_core@0.9.0"
      ]
    },
    {
      "ref": "pkg:cargo/rand_chacha@0.9.0",
      "dependsOn": [
        "pkg:cargo/ppv-lite86@0.2.20",
        "pkg:cargo/rand_core@0.9.0"
      ]
    },
    {
      "ref": "pkg:cargo/rand_core@0.9.0",
      "dependsOn": [
        "pkg:cargo/getrandom@0.3.1",
        "pkg:cargo/zerocopy@0.8.15"
      ]
    },
    {
      "ref": "pkg:cargo/regex-automata@0.4.9",
      "dependsOn": [
        "pkg:cargo/aho-corasick@1.1.3",
        "pkg:cargo/memchr@2.7.4",
        "pkg:cargo/regex-syntax@0.8.5"
      ]
    },
    {
      "ref": "pkg:cargo/regex-lite@0.1.6",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/regex-syntax@0.8.5",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/regex@1.11.1",
      "dependsOn": [
        "pkg:cargo/aho-corasick@1.1.3",
        "pkg:cargo/memchr@2.7.4",
        "pkg:cargo/regex-automata@0.4.9",
        "pkg:cargo/regex-syntax@0.8.5"
      ]
    },
    {
      "ref": "pkg:cargo/ring@0.17.13",
      "dependsOn": [
        "pkg:cargo/cfg-if@1.0.0",
        "pkg:cargo/getrandom@0.2.15",
        "pkg:cargo/libc@0.2.168",
        "pkg:cargo/untrusted@0.9.0"
      ]
    },
    {
      "ref": "pkg:cargo/rustls-pemfile@2.2.0",
      "dependsOn": [
        "pkg:cargo/rustls-pki-types@1.11.0"
      ]
    },
    {
      "ref": "pkg:cargo/rustls-pki-types@1.11.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/rustls-webpki@0.103.3",
      "dependsOn": [
        "pkg:cargo/aws-lc-rs@1.13.0",
        "pkg:cargo/ring@0.17.13",
        "pkg:cargo/rustls-pki-types@1.11.0",
        "pkg:cargo/untrusted@0.9.0"
      ]
    },
    {
      "ref": "pkg:cargo/rustls@0.23.27",
      "dependsOn": [
        "pkg:cargo/aws-lc-rs@1.13.0",
        "pkg:cargo/log@0.4.27",
        "pkg:cargo/once_cell@1.20.2",
        "pkg:cargo/ring@0.17.13",
        "pkg:cargo/rustls-pki-types@1.11.0",
        "pkg:cargo/rustls-webpki@0.103.3",
        "pkg:cargo/subtle@2.6.1",
        "pkg:cargo/zeroize@1.8.1"
      ]
    },
    {
      "ref": "pkg:cargo/ryu@1.0.18",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/scopeguard@1.2.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/serde@1.0.219",
      "dependsOn": [
        "pkg:cargo/serde_derive@1.0.219"
      ]
    },
    {
      "ref": "pkg:cargo/serde_derive@1.0.219",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/serde_json@1.0.140",
      "dependsOn": [
        "pkg:cargo/itoa@1.0.14",
        "pkg:cargo/memchr@2.7.4",
        "pkg:cargo/ryu@1.0.18",
        "pkg:cargo/serde@1.0.219"
      ]
    },
    {
      "ref": "pkg:cargo/serde_urlencoded@0.7.1",
      "dependsOn": [
        "pkg:cargo/form_urlencoded@1.2.1",
        "pkg:cargo/itoa@1.0.14",
        "pkg:cargo/ryu@1.0.18",
        "pkg:cargo/serde@1.0.219"
      ]
    },
    {
      "ref": "pkg:cargo/sha1@0.10.6",
      "dependsOn": [
        "pkg:cargo/cfg-if@1.0.0",
        "pkg:cargo/cpufeatures@0.2.16",
        "pkg:cargo/digest@0.10.7"
      ]
    },
    {
      "ref": "pkg:cargo/signal-hook-registry@1.4.2",
      "dependsOn": [
        "pkg:cargo/libc@0.2.168"
      ]
    },
    {
      "ref": "pkg:cargo/slab@0.4.9",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/smallvec@1.13.2",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/socket2@0.5.8",
      "dependsOn": [
        "pkg:cargo/libc@0.2.168"
      ]
    },
    {
      "ref": "pkg:cargo/stable_deref_trait@1.2.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/subtle@2.6.1",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/syn@2.0.90",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/unicode-ident@1.0.14"
      ]
    },
    {
      "ref": "pkg:cargo/synstructure@0.13.1",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/thiserror-impl@2.0.6",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/thiserror@2.0.6",
      "dependsOn": [
        "pkg:cargo/thiserror-impl@2.0.6"
      ]
    },
    {
      "ref": "pkg:cargo/time-core@0.1.4",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/time-macros@0.2.22",
      "dependsOn": [
        "pkg:cargo/num-conv@0.1.0",
        "pkg:cargo/time-core@0.1.4"
      ]
    },
    {
      "ref": "pkg:cargo/time@0.3.41",
      "dependsOn": [
        "pkg:cargo/deranged@0.4.1",
        "pkg:cargo/itoa@1.0.14",
        "pkg:cargo/libc@0.2.168",
        "pkg:cargo/num-conv@0.1.0",
        "pkg:cargo/num_threads@0.1.7",
        "pkg:cargo/powerfmt@0.2.0",
        "pkg:cargo/serde@1.0.219",
        "pkg:cargo/time-core@0.1.4",
        "pkg:cargo/time-macros@0.2.22"
      ]
    },
    {
      "ref": "pkg:cargo/tinystr@0.7.6",
      "dependsOn": [
        "pkg:cargo/displaydoc@0.2.5",
        "pkg:cargo/zerovec@0.10.4"
      ]
    },
    {
      "ref": "pkg:cargo/tokio-openssl@0.6.5",
      "dependsOn": [
        "pkg:cargo/openssl@0.10.72",
        "pkg:cargo/openssl-sys@0.9.107",
        "pkg:cargo/tokio@1.38.2"
      ]
    },
    {
      "ref": "pkg:cargo/tokio-rustls@0.26.1",
      "dependsOn": [
        "pkg:cargo/rustls@0.23.27",
        "pkg:cargo/tokio@1.38.2"
      ]
    },
    {
      "ref": "pkg:cargo/tokio-util@0.7.13",
      "dependsOn": [
        "pkg:cargo/bytes@1.9.0",
        "pkg:cargo/futures-core@0.3.31",
        "pkg:cargo/futures-sink@0.3.31",
        "pkg:cargo/pin-project-lite@0.2.15",
        "pkg:cargo/tokio@1.38.2"
      ]
    },
    {
      "ref": "pkg:cargo/tokio@1.38.2",
      "dependsOn": [
        "pkg:cargo/bytes@1.9.0",
        "pkg:cargo/libc@0.2.168",
        "pkg:cargo/mio@0.8.11",
        "pkg:cargo/parking_lot@0.12.3",
        "pkg:cargo/pin-project-lite@0.2.15",
        "pkg:cargo/signal-hook-registry@1.4.2",
        "pkg:cargo/socket2@0.5.8"
      ]
    },
    {
      "ref": "pkg:cargo/tracing-attributes@0.1.28",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/tracing-core@0.1.33",
      "dependsOn": [
        "pkg:cargo/once_cell@1.20.2"
      ]
    },
    {
      "ref": "pkg:cargo/tracing@0.1.41",
      "dependsOn": [
        "pkg:cargo/log@0.4.27",
        "pkg:cargo/pin-project-lite@0.2.15",
        "pkg:cargo/tracing-attributes@0.1.28",
        "pkg:cargo/tracing-core@0.1.33"
      ]
    },
    {
      "ref": "pkg:cargo/ttl_cache@0.5.1",
      "dependsOn": [
        "pkg:cargo/linked-hash-map@0.5.6"
      ]
    },
    {
      "ref": "pkg:cargo/typenum@1.17.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/unicode-ident@1.0.14",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/unicode-xid@0.2.6",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/untrusted@0.9.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/ureq@2.12.1",
      "dependsOn": [
        "pkg:cargo/base64@0.22.1",
        "pkg:cargo/flate2@1.1.1",
        "pkg:cargo/log@0.4.27",
        "pkg:cargo/once_cell@1.20.2",
        "pkg:cargo/rustls@0.23.27",
        "pkg:cargo/rustls-pki-types@1.11.0",
        "pkg:cargo/serde@1.0.219",
        "pkg:cargo/serde_json@1.0.140",
        "pkg:cargo/url@2.5.4",
        "pkg:cargo/webpki-roots@0.26.11"
      ]
    },
    {
      "ref": "pkg:cargo/url@2.5.4",
      "dependsOn": [
        "pkg:cargo/form_urlencoded@1.2.1",
        "pkg:cargo/idna@1.0.3",
        "pkg:cargo/percent-encoding@2.3.1"
      ]
    },
    {
      "ref": "pkg:cargo/utf16_iter@1.0.5",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/utf8_iter@1.0.4",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/uuid@1.16.0",
      "dependsOn": [
        "pkg:cargo/getrandom@0.3.1"
      ]
    },
    {
      "ref": "pkg:cargo/webpki-roots@1.0.0",
      "dependsOn": [
        "pkg:cargo/rustls-pki-types@1.11.0"
      ]
    },
    {
      "ref": "pkg:cargo/write16@1.0.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/writeable@0.5.5",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/yoke-derive@0.7.5",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90",
        "pkg:cargo/synstructure@0.13.1"
      ]
    },
    {
      "ref": "pkg:cargo/yoke@0.7.5",
      "dependsOn": [
        "pkg:cargo/serde@1.0.219",
        "pkg:cargo/stable_deref_trait@1.2.0",
        "pkg:cargo/yoke-derive@0.7.5",
        "pkg:cargo/zerofrom@0.1.5"
      ]
    },
    {
      "ref": "pkg:cargo/zerocopy-derive@0.7.35",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/zerocopy@0.8.15",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/zerofrom-derive@0.1.5",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90",
        "pkg:cargo/synstructure@0.13.1"
      ]
    },
    {
      "ref": "pkg:cargo/zerofrom@0.1.5",
      "dependsOn": [
        "pkg:cargo/zerofrom-derive@0.1.5"
      ]
    },
    {
      "ref": "pkg:cargo/zeroize@1.8.1",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/zerovec-derive@0.10.3",
      "dependsOn": [
        "pkg:cargo/proc-macro2@1.0.92",
        "pkg:cargo/quote@1.0.37",
        "pkg:cargo/syn@2.0.90"
      ]
    },
    {
      "ref": "pkg:cargo/zerovec@0.10.4",
      "dependsOn": [
        "pkg:cargo/yoke@0.7.5",
        "pkg:cargo/zerofrom@0.1.5",
        "pkg:cargo/zerovec-derive@0.10.3"
      ]
    },
    {
      "ref": "pkg:cargo/zstd-safe@7.2.1",
      "dependsOn": [
        "pkg:cargo/zstd-sys@2.0.13+zstd.1.5.6"
      ]
    },
    {
      "ref": "pkg:cargo/zstd-sys@2.0.13+zstd.1.5.6",
      "dependsOn": []
    },
    {
      "ref": "pkg:cargo/zstd@0.13.2",
      "dependsOn": [
        "pkg:cargo/zstd-safe@7.2.1"
      ]
    },
    {
      "ref": "pkg:golang/github.com/beorn7/perks@v1.0.1"
    },
    {
      "ref": "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0"
    },
    {
      "ref": "pkg:golang/github.com/eclipse/paho.golang@v0.23.0",
      "dependsOn": [
        "pkg:golang/github.com/google/go-cmp@v0.7.0",
        "pkg:golang/github.com/gorilla/websocket@v1.5.3",
        "pkg:golang/github.com/stretchr/testify@v1.11.1",
        "pkg:golang/go.uber.org/goleak@v1.3.0",
        "pkg:golang/golang.org/x/net@v0.43.0",
        "pkg:golang/github.com/davecgh/go-spew@v1.1.1",
        "pkg:golang/github.com/kr/text@v0.2.0",
        "pkg:golang/github.com/pmezard/go-difflib@v1.0.0",
        "pkg:golang/gopkg.in/yaml.v3@v3.0.1"
      ]
    },
    {
      "ref": "pkg:golang/github.com/fsnotify/fsnotify@v1.9.0",
      "dependsOn": [
        "pkg:golang/golang.org/x/sys@v0.13.0"
      ]
    },
    {
      "ref": "pkg:golang/github.com/gabriel-vasile/mimetype@v1.4.13",
      "dependsOn": []
    },
    {
      "ref": "pkg:golang/github.com/go-playground/locales@v0.14.1",
      "dependsOn": [
        "pkg:golang/golang.org/x/text@v0.3.8"
      ]
    },
    {
      "ref": "pkg:golang/github.com/go-playground/universal-translator@v0.18.1",
      "dependsOn": [
        "pkg:golang/github.com/go-playground/locales@v0.14.1"
      ]
    },
    {
      "ref": "pkg:golang/github.com/go-playground/validator/v10@v10.30.1",
      "dependsOn": [
        "pkg:golang/github.com/gabriel-vasile/mimetype@v1.4.12",
        "pkg:golang/github.com/go-playground/assert/v2@v2.2.0",
        "pkg:golang/github.com/go-playground/locales@v0.14.1",
        "pkg:golang/github.com/go-playground/universal-translator@v0.18.1",
        "pkg:golang/github.com/leodido/go-urn@v1.4.0",
        "pkg:golang/golang.org/x/crypto@v0.46.0",
        "pkg:golang/golang.org/x/text@v0.32.0",
        "pkg:golang/golang.org/x/sys@v0.39.0"
      ]
    },
    {
      "ref": "pkg:golang/github.com/godbus/dbus/v5@v5.2.2",
      "dependsOn": [
        "pkg:golang/golang.org/x/sys@v0.27.0"
      ]
    },
    {
      "ref": "pkg:golang/github.com/golang-jwt/jwt/v5@v5.3.1",
      "dependsOn": []
    },
    {
      "ref": "pkg:golang/github.com/google/uuid@v1.6.0"
    },
    {
      "ref": "pkg:golang/github.com/gorilla/mux@v1.8.1"
    },
    {
      "ref": "pkg:golang/github.com/gorilla/websocket@v1.5.3"
    },
    {
      "ref": "pkg:golang/github.com/icholy/digest@v1.1.0",
      "dependsOn": [
        "pkg:golang/gotest.tools/v3@v3.5.1",
        "pkg:golang/github.com/google/go-cmp@v0.5.9"
      ]
    },
    {
      "ref": "pkg:golang/github.com/leodido/go-urn@v1.4.0",
      "dependsOn": [
        "pkg:golang/github.com/stretchr/testify@v1.8.4",
        "pkg:golang/github.com/davecgh/go-spew@v1.1.1",
        "pkg:golang/github.com/pmezard/go-difflib@v1.0.0",
        "pkg:golang/gopkg.in/yaml.v3@v3.0.1"
      ]
    },
    {
      "ref": "pkg:golang/github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822"
    },
    {
      "ref": "pkg:golang/github.com/prometheus/client_golang@v1.23.2",
      "dependsOn": [
        "pkg:golang/github.com/beorn7/perks@v1.0.1",
        "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0",
        "pkg:golang/github.com/google/go-cmp@v0.7.0",
        "pkg:golang/github.com/json-iterator/go@v1.1.12",
        "pkg:golang/github.com/klauspost/compress@v1.18.0",
        "pkg:golang/github.com/kylelemons/godebug@v1.1.0",
        "pkg:golang/github.com/prometheus/client_model@v0.6.2",
        "pkg:golang/github.com/prometheus/common@v0.66.1",
        "pkg:golang/github.com/prometheus/procfs@v0.16.1",
        "pkg:golang/go.uber.org/goleak@v1.3.0",
        "pkg:golang/golang.org/x/sys@v0.35.0",
        "pkg:golang/google.golang.org/protobuf@v1.36.8",
        "pkg:golang/github.com/jpillora/backoff@v1.0.0",
        "pkg:golang/github.com/kr/pretty@v0.3.1",
        "pkg:golang/github.com/modern-go/concurrent@v0.0.0-20180306012644-bacd9c7ef1dd",
        "pkg:golang/github.com/modern-go/reflect2@v1.0.2",
        "pkg:golang/github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822",
        "pkg:golang/github.com/mwitkow/go-conntrack@v0.0.0-20190716064945-2f068394615f",
        "pkg:golang/go.yaml.in/yaml/v2@v2.4.2",
        "pkg:golang/golang.org/x/net@v0.43.0",
        "pkg:golang/golang.org/x/oauth2@v0.30.0",
        "pkg:golang/golang.org/x/text@v0.28.0"
      ]
    },
    {
      "ref": "pkg:golang/github.com/prometheus/client_model@v0.6.2",
      "dependsOn": [
        "pkg:golang/google.golang.org/protobuf@v1.36.6"
      ]
    },
    {
      "ref": "pkg:golang/github.com/prometheus/common@v0.67.5",
      "dependsOn": [
        "pkg:golang/github.com/alecthomas/kingpin/v2@v2.4.0",
        "pkg:golang/github.com/golang-jwt/jwt/v5@v5.3.0",
        "pkg:golang/github.com/google/go-cmp@v0.7.0",
        "pkg:golang/github.com/google/uuid@v1.6.0",
        "pkg:golang/github.com/julienschmidt/httprouter@v1.3.0",
        "pkg:golang/github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822",
        "pkg:golang/github.com/mwitkow/go-conntrack@v0.0.0-20190716064945-2f068394615f",
        "pkg:golang/github.com/prometheus/client_model@v0.6.2",
        "pkg:golang/github.com/stretchr/testify@v1.11.1",
        "pkg:golang/go.yaml.in/yaml/v2@v2.4.3",
        "pkg:golang/golang.org/x/net@v0.48.0",
        "pkg:golang/golang.org/x/oauth2@v0.34.0",
        "pkg:golang/google.golang.org/protobuf@v1.36.11",
        "pkg:golang/github.com/alecthomas/units@v0.0.0-20240927000941-0f3dac36c52b",
        "pkg:golang/github.com/beorn7/perks@v1.0.1",
        "pkg:golang/github.com/cespare/xxhash/v2@v2.3.0",
        "pkg:golang/github.com/davecgh/go-spew@v1.1.1",
        "pkg:golang/github.com/jpillora/backoff@v1.0.0",
        "pkg:golang/github.com/pmezard/go-difflib@v1.0.0",
        "pkg:golang/github.com/prometheus/client_golang@v1.20.4",
        "pkg:golang/github.com/prometheus/procfs@v0.15.1",
        "pkg:golang/github.com/rogpeppe/go-internal@v1.10.0",
        "pkg:golang/github.com/xhit/go-str2duration/v2@v2.1.0",
        "pkg:golang/golang.org/x/sys@v0.39.0",
        "pkg:golang/golang.org/x/text@v0.32.0",
        "pkg:golang/gopkg.in/check.v1@v1.0.0-20201130134442-10cb98267c6c",
        "pkg:golang/gopkg.in/yaml.v3@v3.0.1"
      ]
    },
    {
      "ref": "pkg:golang/github.com/prometheus/procfs@v0.19.2",
      "dependsOn": [
        "pkg:golang/github.com/google/go-cmp@v0.7.0",
        "pkg:golang/golang.org/x/sync@v0.17.0",
        "pkg:golang/golang.org/x/sys@v0.37.0"
      ]
    },
    {
      "ref": "pkg:golang/go.yaml.in/yaml/v2@v2.4.3",
      "dependsOn": [
        "pkg:golang/gopkg.in/check.v1@v0.0.0-20161208181325-20d25e280405"
      ]
    },
    {
      "ref": "pkg:golang/golang.org/x/crypto@v0.48.0",
      "dependsOn": [
        "pkg:golang/golang.org/x/net@v0.49.0",
        "pkg:golang/golang.org/x/sys@v0.41.0",
        "pkg:golang/golang.org/x/term@v0.40.0",
        "pkg:golang/golang.org/x/text@v0.34.0"
      ]
    },
    {
      "ref": "pkg:golang/golang.org/x/sync@v0.19.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:golang/golang.org/x/sys@v0.41.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:golang/golang.org/x/text@v0.34.0",
      "dependsOn": [
        "pkg:golang/golang.org/x/tools@v0.41.0",
        "pkg:golang/golang.org/x/mod@v0.32.0",
        "pkg:golang/golang.org/x/sync@v0.19.0"
      ]
    },
    {
      "ref": "pkg:golang/google.golang.org/protobuf@v1.36.11",
      "dependsOn": [
        "pkg:golang/github.com/golang/protobuf@v1.5.0",
        "pkg:golang/github.com/google/go-cmp@v0.7.0"
      ]
    },
    {
      "ref": "mosquitto-672ae3e57f8b4e086f6ce2dec836734cc38258c3",
      "dependsOn": []
    }
  ]
}