{
  "bomFormat": "CycloneDX",
  "specVersion": "1.3",
  "version": 1,
  "serialNumber": "urn:uuid:a9f0337b-d25f-4d14-b9e4-d6a7e22d3ef7",
  "metadata": {
    "timestamp": "2026-10-28T09:47:57.501492427Z",
    "tools": [
      {
        "vendor": "CycloneDX",
        "name": "cargo-cyclonedx",
        "version": "0.5.9"
      }
    ],
    "authors": [
      {
        "name": "Lars Artmann",
        "email": "lars@larsartmann.com"
      }
    ],
    "component": {
      "type": "application",
      "bom-ref": "path+file:///home/lars/projects/ssh-key-monitor#0.5.0",
      "author": "Lars Artmann <lars@larsartmann.com>",
      "name": "ssh-key-monitor",
      "version": "0.5.0",
      "description": "SSH key discovery and change-detection engine. Scans the platform's OpenSSH key locations (Unix and Windows); classifies key files, parses known_hosts per entry, computes SHA256 fingerprints, and emits typed Added/Removed/PermissionsChanged change events. Ships with Unix and Windows directory-scan backends plus optional baseline persistence.",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "name": "Unknown",
            "text": {
              "encoding": "base64",
              "content": "IyBzc2gta2V5LW1vbml0b3IgTGljZW5jZSwgdmVyc2lvbiAxLjAKCioqRWZmZWN0aXZlOioqIDIwMjYtMTAtMjggwrcgKipDb3B5cmlnaHQ6KiogMjAyNiBMYXJzIEFydG1hbm4gwrcKKipQdWJsaXNoZXI6KiogQXJ0bWFubiBUZWNobm9sb2dpZXMgR21iSCwgRnJhbmtmdXJ0IGFtIE1haW4sIEdlcm1hbnkKClRoaXMgbGljZW5jZSBpcyB0aGUgd2hvbGUgYWdyZWVtZW50IGZvciB1c2luZyBzc2gta2V5LW1vbml0b3IuIEl0IGdyYW50cwp5b3VyIHJpZ2h0cyBkaXJlY3RseSwgc28geW91IGRvIG5vdCBuZWVkIHRvIHJlYWQgYSB3ZWIgcGFnZSB0byBrbm93IHdoYXQgeW91Cm1heSBkbyDigJQgdGhlIHBhZ2UgdGhhdCBjYXJyaWVzIHRoZSBwcmljZSBpcyBhIHJlZmVyZW5jZSwgbm90IHRoZSBncmFudC4KCi0tLQoKIyMgMS4gVGhlIHNob3J0IHZlcnNpb24KCi0gKipJbmRpdmlkdWFscywgb3BlbiBzb3VyY2UgYW5kIGVkdWNhdGlvbjogZnJlZSwgZm9yIGFueSBudW1iZXIgb2YKICBtYWNoaW5lcy4qKiBOb3QgYSB0cmlhbC4gTm90IGEgY2FwLiBObyBjYXJkLCBubyBzaWdudXAsIG5vIHJlcG9ydGluZy4KLSAqKk9yZ2FuaXNhdGlvbnM6IG9uZSBmbGF0IGFubnVhbCBwcmljZSBwZXIgb3JnYW5pc2F0aW9uKiosIHVubGltaXRlZAogIG1hY2hpbmVzIGFuZCB1bmxpbWl0ZWQgZW5naW5lZXJzLiBUaGUgY3VycmVudCBwcmljZSBpcyBvbgogIDxodHRwczovL3NzaC1rZXktbW9uaXRvci5hcnRtYW5uLnRlY2gvI3ByaWNpbmc+LiBZb3Ugc2VsZi1jZXJ0aWZ5IHRoYXQgeW91CiAgYXJlIGFuIG9yZ2FuaXNhdGlvbjsgd2UgZG8gbm90IGF1ZGl0LCBtZXRlciBvciBjb3VudCBhbnl0aGluZy4KLSAqKkV2ZXJ5b25lIGdldHMgdGhlIHNhbWUgc29mdHdhcmUuKiogRXZlcnkgZmVhdHVyZSBzaGlwcyBpbiBldmVyeSBidWlsZC4KICBUaGVyZSBpcyBub3RoaW5nIHRvIHVubG9jay4KLSAqKk5vdGhpbmcgcGhvbmVzIGhvbWUuKiogVGhlIHNvZnR3YXJlIG9wZW5zIG5vIG5ldHdvcmsgY29ubmVjdGlvbnMgYW5kCiAgY29sbGVjdHMgbm90aGluZy4KLSAqKlRyeSBpdCBmb3IgNjAgZGF5cyBiZWZvcmUgcGF5aW5nIGFueXRoaW5nKiosIGJ5IGFueSBvcmdhbmlzYXRpb24sIG9uCiAgcmVxdWVzdC4KCklmIHRoZSBzaG9ydCB2ZXJzaW9uIGFuZCB0aGUgbnVtYmVyZWQgY2xhdXNlcyBldmVyIGRpc2FncmVlLCB0aGUgbnVtYmVyZWQKY2xhdXNlcyB3aW4uCgojIyAyLiBEZWZpbml0aW9ucwoKKioiU29mdHdhcmUiKiogbWVhbnMgdGhlIHNzaC1rZXktbW9uaXRvciBlbmdpbmUsIGl0cyBjb21tYW5kLWxpbmUgdG9vbHMsIGl0cwpnZW5lcmF0ZWQgZXZlbnQtY29udHJhY3QgZG9jdW1lbnRzLCB0aGUgYnVpbHQgYmluYXJpZXMgYW5kIHRoZSBhY2NvbXBhbnlpbmcKZG9jdW1lbnRhdGlvbiwgaW4gc291cmNlIG9yIGJpbmFyeSBmb3JtLCB0b2dldGhlciB3aXRoIGFueSB1cGRhdGUgd2UgcHVibGlzaC4KCioqIllvdSIqKiBtZWFucyB0aGUgcGVyc29uIG9yIGxlZ2FsIGVudGl0eSBleGVyY2lzaW5nIHRoZSByaWdodHMgYmVsb3cuCgoqKiJPcmdhbmlzYXRpb24iKiogbWVhbnMgYW55IGVudGl0eSBvdGhlciB0aGFuIGEgbmF0dXJhbCBwZXJzb24gYWN0aW5nIGZvcgp0aGVtc2VsdmVzOiBhIGNvbXBhbnksIHBhcnRuZXJzaGlwLCBmb3VuZGF0aW9uLCBwdWJsaWMgYm9keSwgY2x1Yiwgb3IgYW55Cmdyb3VwIG9mIHBlb3BsZSBhY3RpbmcgdG9nZXRoZXIgZm9yIGEgcHVycG9zZSBvdGhlciB0aGFuIGFzIHByaXZhdGUKaW5kaXZpZHVhbHMuCgoqKiJGcmVlIHVzZSIqKiBtZWFucyB1c2UgdW5kZXIgwqczLiAqKiJQYWlkIHVzZSIqKiBtZWFucyB1c2UgdW5kZXIgwqc0LgoKKioiTWFjaGluZSB5b3UgYWRtaW5pc3RlciIqKiBtZWFucyBhIGNvbXB1dGVyIHlvdSBvd24sIGxlYXNlLCBvciBhcmUKcmVzcG9uc2libGUgZm9yIG9wZXJhdGluZyBmb3IgeW91ciBvd24gcHVycG9zZXMuCgojIyAzLiBGcmVlIHVzZSDigJQgbm8gcGF5bWVudCwgYW55IG51bWJlciBvZiBtYWNoaW5lcwoKWW91IG1heSB1c2UgdGhlIFNvZnR3YXJlIHVuZGVyIHRoaXMgc2VjdGlvbiwgKip3aXRob3V0IHBheWluZyBhbmQgd2l0aG91dCBhbnkKbGltaXQgb24gdGhlIG51bWJlciBvZiBtYWNoaW5lcywga2V5cywgc2NhbnMsIGVuZ2luZWVycyBvciBldmVudHMqKiwgaWYgeW91CmFyZToKCjEuICoqYW4gaW5kaXZpZHVhbCoqLCB1c2luZyB0aGUgU29mdHdhcmUgZm9yIHBlcnNvbmFsIHB1cnBvc2VzIG9yIGZvciB5b3VyCiAgIG93biB3b3JrIGFzIGEgc29sZSB0cmFkZXI7IG9yCjIuICoqYW4gb3Blbi1zb3VyY2UgcHJvamVjdCoqLCB3aGVyZSB0aGUgU29mdHdhcmUgaXMgdXNlZCBpbiBjb25uZWN0aW9uIHdpdGgKICAgYSBwcm9qZWN0IHdob3NlIHNvdXJjZSBjb2RlIGlzIHB1YmxpY2x5IGF2YWlsYWJsZSB1bmRlciBhbiBvcGVuLXNvdXJjZQogICBsaWNlbmNlOyBvcgozLiAqKmVkdWNhdGlvbiBvciByZXNlYXJjaCoqLCBpbiB0ZWFjaGluZywgY291cnNld29yaywgb3Igbm9uLWNvbW1lcmNpYWwKICAgYWNhZGVtaWMgcmVzZWFyY2g7IG9yCjQuICoqZXZhbHVhdGluZyB0aGUgU29mdHdhcmUqKiwgZm9yIHVwIHRvIDYwIGRheXMsIGluIGFueSBvcmdhbmlzYXRpb24sIGZvcgogICB0aGUgcHVycG9zZSBvZiBkZWNpZGluZyB3aGV0aGVyIHRvIGxpY2Vuc2UgaXQuCgpVbmRlciBGcmVlIHVzZSB5b3UgbWF5IHJ1biB0aGUgU29mdHdhcmUgb24gYW55IG1hY2hpbmUgeW91IGFkbWluaXN0ZXIsIGNvcHkKaXQgYXMgbmVlZGVkIGZvciB0aGF0IHB1cnBvc2UsIGFuZCB1c2UgZXZlcnkgZmVhdHVyZSBpbiBpdCwgaW5jbHVkaW5nIGZvcgp3b3JrIHlvdSBhcmUgcGFpZCB0byBkbyBhcyBhbiBpbmRpdmlkdWFsLgoKIyMgNC4gUGFpZCB1c2Ug4oCUIG9uZSBmbGF0IHByaWNlIHBlciBvcmdhbmlzYXRpb24KCklmIHlvdSBhcmUgYW4gT3JnYW5pc2F0aW9uIGFuZCB5b3VyIHVzZSBpcyBub3QgY292ZXJlZCBieSDCpzMsIHlvdSBtYXkgdXNlIHRoZQpTb2Z0d2FyZSAqKmFmdGVyIHBheWluZyB0aGUgY3VycmVudCBhbm51YWwgcHJpY2UgZm9yIG9uZSBvcmdhbmlzYXRpb24qKiwgd2hpY2gKY292ZXJzOgoKLSAqKmFueSBudW1iZXIgb2YgbWFjaGluZXMqKiB5b3UgYWRtaW5pc3RlciBvciBvcGVyYXRlIG9uIHlvdXIgb3duIGJlaGFsZjsKLSAqKmFueSBudW1iZXIgb2YgZW5naW5lZXJzKiogaW4geW91ciBvcmdhbmlzYXRpb247Ci0gKipldmVyeSBmZWF0dXJlKiosIGluIGV2ZXJ5IGJ1aWxkLCB3aXRoIG5vIGFkZC1vbnMgdG8gYnV5OwotICoqZXZlcnkgdXBkYXRlKiogd2UgcHVibGlzaCB3aGlsZSB5b3VyIGxpY2VuY2UgaXMgYWN0aXZlLgoKVGhlIHByaWNlIGFuZCB0aGUgcHVyY2hhc2Ugcm91dGUgYXJlIG9uCjxodHRwczovL3NzaC1rZXktbW9uaXRvci5hcnRtYW5uLnRlY2gvI3ByaWNpbmc+LiAqKlRoZSBwcmljZSBpcyBhIHJlZmVyZW5jZSwKbm90IHBhcnQgb2YgdGhlIGdyYW50OioqIHdlIG1heSBjaGFuZ2UgaXQsIGFuZCB0aGUgY2hhbmdlIGFwcGxpZXMgZnJvbSB5b3VyCm5leHQgcmVuZXdhbC4gWW91ciByZWNlaXB0LCBvciB5b3VyIGludm9pY2UsIGlzIHlvdXIgbGljZW5jZSDigJQgd2UgZG8gbm90IGlzc3VlCmtleXMsIHRva2VucywgYWN0aXZhdGlvbiBjb2Rlcywgb3IgbGljZW5jZSBmaWxlcywgYW5kIHRoZSBTb2Z0d2FyZSBkb2VzIG5vdApjaGVjayBmb3IgYW55IG9mIHRoZW0uCgoqKkZvdW5kZXIgdGVybXMuKiogSWYgeW91IGFyZSBhbW9uZyB0aGUgZmlyc3QgdGVuIE9yZ2FuaXNhdGlvbnMgdG8gbGljZW5zZQp0aGUgU29mdHdhcmUsIHlvdSBwYXkgdGhlIGZvdW5kZXIgcHJpY2Ugc3RhdGVkIG9uIHRoZSBwcmljaW5nIHBhZ2UgZm9yIGFzCmxvbmcgYXMgeW91ciBsaWNlbmNlIHN0YXlzIGNvbnRpbnVvdXNseSBhY3RpdmUuCgoqKkdyYW5kZmF0aGVyaW5nLioqIElmIHlvdSBsaWNlbnNlZCB1bmRlciBhbiBlYXJsaWVyIHByaWNpbmcgbW9kZWwsIHlvdXIKZXhpc3RpbmcgdGVybSBjb250aW51ZXMgb24gdGhlIHRlcm1zIHlvdSBwYWlkIGZvciwgYW5kIMKnNiBnb3Zlcm5zIHdoYXQgaGFwcGVucwphdCByZW5ld2FsLgoKKipFbnRlcnByaXNlIHRlcm1zLioqIFByb2N1cmVtZW50LCBpbnZvaWNpbmcsIGFpci1nYXBwZWQgb3BlcmF0aW9uLCBhIG5hbWVkCnN1cHBvcnQgY29udGFjdCwgb3IgYW4gYWdyZWVkIHNlcnZpY2UgbGV2ZWwgYXJlIGF2YWlsYWJsZSB1bmRlciBhIHNlcGFyYXRlCnNpZ25lZCBhZ3JlZW1lbnQuIFRoYXQgYWdyZWVtZW50LCB3aGVyZSBpdCBjb25mbGljdHMgd2l0aCB0aGlzIGxpY2VuY2UsCnByZXZhaWxzIGZvciB0aGF0IGN1c3RvbWVyLgoKKipSZWZ1bmRzLioqIFdpdGhpbiAzMCBkYXlzIG9mIGEgcGF5bWVudCwgb25lIGVtYWlsIHRvCjxzc2gta2V5LW1vbml0b3JAYXJ0bWFubi50ZWNoPiBnZXRzIHlvdSBhIGZ1bGwgcmVmdW5kLiBXZSBkbyBub3QgYXNrIHF1ZXN0aW9ucwphbmQgd2UgZG8gbm90IHJlcXVpcmUgYSBmb3JtLgoKIyMgNS4gV2hhdCB3ZSBjb21taXQgdG8sIGFuZCB3aWxsIG5vdCBkbwoKVGhlc2UgYXJlIHRlcm1zIG9mIHRoaXMgbGljZW5jZSwgbm90IG1hcmtldGluZyBzdGF0ZW1lbnRzLgoKMS4gKipObyBmZWF0dXJlIGdhdGVzLioqIFRoZXJlIGlzIG9uZSBTb2Z0d2FyZS4gRnJlZSB1c2UgYW5kIFBhaWQgdXNlIHJ1bgogICBieXRlLWlkZW50aWNhbCBidWlsZHMsIGFuZCB3ZSB3aWxsIG5vdCB3aXRoaG9sZCBhIGNhcGFiaWxpdHkg4oCUIG5vdCBXaW5kb3dzCiAgIEFDTCBoYW5kbGluZywgbm90IGNlcnRpZmljYXRlIHBhcnNpbmcsIG5vdCBhIGRvY3VtZW50IHNjaGVtYSwgbm90IGFuCiAgIGludGVncmF0aW9uIHN1cmZhY2Ug4oCUIGJlaGluZCBwYXltZW50IGF0IGFueSB0aWVyLgoyLiAqKk5vIHBob25lLWhvbWUsIG5vIHRlbGVtZXRyeSwgbm8gbWV0ZXJpbmcuKiogVGhlIFNvZnR3YXJlIG9wZW5zIG5vIG5ldHdvcmsKICAgY29ubmVjdGlvbiwgc2VuZHMgbm90aGluZywgYW5kIGNvbnRhaW5zIG5vIGxpY2VuY2Ugc2VydmVyIGNsaWVudC4gV2UgZG8gbm90CiAgIGNvdW50IHlvdXIgbWFjaGluZXMsIGtleXMsIHNjYW5zIG9yIHBlb3BsZS4gUGFpZCB1c2UgaXMgc2VsZi1jZXJ0aWZpZWQuIFdlCiAgIHdpbGwgbm90IGFkZCBtZXRlcmluZyB0byB0aGlzIFNvZnR3YXJlLgozLiAqKk5vIHBlci11bml0IHByaWNpbmcuKiogV2Ugd2lsbCBub3QgcHJpY2UgdGhpcyBTb2Z0d2FyZSBwZXIgbWFjaGluZSwgcGVyCiAgIHNlYXQsIHBlciBrZXksIHBlciBzY2FuIG9yIHBlciBldmVudC4gQ2hhcmdpbmcgZm9yIGNvdmVyYWdlIGlzIGluY29tcGF0aWJsZQogICB3aXRoIGEgdG9vbCB3aG9zZSBwdXJwb3NlIGlzIHRvIG1ha2UgY292ZXJhZ2UgY29tcGxldGUuCjQuICoqTm90aWNlIGJlZm9yZSBjaGFuZ2UuKiogV2Ugd2lsbCBnaXZlIGF0IGxlYXN0ICoqOTAgZGF5cycgbm90aWNlKiogYmVmb3JlCiAgIGFueSBjaGFuZ2UgdG8gdGhpcyBsaWNlbmNlIHRha2VzIGVmZmVjdCwgYW5kIG5vIGNoYW5nZSBldmVyIHJlZHVjZXMgdGhlCiAgIHJpZ2h0cyBhdHRhY2hlZCB0byBhIHJlbGVhc2UgeW91IGFscmVhZHkgaGF2ZS4gQSByZWxlYXNlIHlvdSBkb3dubG9hZGVkCiAgIGtlZXBzIHRoZSBsaWNlbmNlIGl0IHNoaXBwZWQgd2l0aC4KNS4gKipVbmxpbWl0ZWQgZXZhbHVhdGlvbi4qKiBBbnkgb3JnYW5pc2F0aW9uIG1heSByZXF1ZXN0IDYwIGRheXMgb2YKICAgZXZhbHVhdGlvbiwgZXh0ZW5kZWQgb24gcmVxdWVzdC4KCiMjIDYuIENoYW5nZXMgdG8gdGhpcyBsaWNlbmNlCgpXZSBtYXkgcHVibGlzaCBuZXcgdmVyc2lvbnMgb2YgdGhpcyBsaWNlbmNlLiBFYWNoIHJlbGVhc2Ugb2YgdGhlIFNvZnR3YXJlCnN0YXRlcyB0aGUgbGljZW5jZSB2ZXJzaW9uIGl0IHNoaXBzIHVuZGVyLCBhbmQgKip0aGF0IHZlcnNpb24gZ292ZXJucyB0aGF0CnJlbGVhc2UgcGVybWFuZW50bHkqKi4gQSBuZXcgbGljZW5jZSB2ZXJzaW9uIGFwcGxpZXMgdG8gcmVsZWFzZXMgcHVibGlzaGVkCmFmdGVyIGl0IHRha2VzIGVmZmVjdCwgYW5kIHRvIHJlbmV3YWxzIG9mIFBhaWQgdXNlIGZyb20gdGhlIHJlbmV3YWwgZGF0ZS4gV2UKd2lsbCBhbm5vdW5jZSBhIG5ldyB2ZXJzaW9uIGF0IGxlYXN0IDkwIGRheXMgYmVmb3JlIGl0IGFwcGxpZXMsIG9uIHRoZSBwcmljaW5nCnBhZ2UgYW5kIGluIHRoZSByZWxlYXNlIG5vdGVzLgoKIyMgNy4gQ29weWluZywgcmVkaXN0cmlidXRpb24sIGFuZCBydW5uaW5nIGl0IGZvciBvdGhlcnMKCllvdSBtYXkgY29weSB0aGUgU29mdHdhcmUgYXMgbmVlZGVkIGZvciB1c2UgcGVybWl0dGVkIGJ5IMKnMyBvciDCpzQsIGluY2x1ZGluZwppbnRlcm5hbCBtaXJyb3JzIGFuZCBidWlsZCBjYWNoZXMsIGFuZCB5b3UgbWF5IGluY2x1ZGUgaXQgaW4geW91ciBvd24gaW50ZXJuYWwKbWFjaGluZSBpbWFnZXMgYW5kIGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudC4KCllvdSBtYXkgKipub3QqKiByZWRpc3RyaWJ1dGUgdGhlIFNvZnR3YXJlIHRvIHRoaXJkIHBhcnRpZXMsIHB1Ymxpc2ggaXQsIHNlbGwKaXQsIG9yIG9mZmVyIGl0IGFzIGEgc2VydmljZSB0byBvdGhlcnMsIGV4Y2VwdDoKCi0gKiphcyBhbiBPRU0gb3IgaG9zdGVyIHVuZGVyIGEgc2VwYXJhdGUgd3JpdHRlbiBhZ3JlZW1lbnQqKiB3aXRoIHVzLCBpbiB3aGljaAogIGNhc2UgdGhlIHByaWNpbmcgdGllciBvZiAqeW91ciogY2xpZW50cywgbm90IHlvdXJzLCBkZWNpZGVzIHRoZSBmZWU7Ci0gKiphcyBhIGNvcHkgb2YgYW4gdW5tb2RpZmllZCBiaW5hcnkqKiBwYXNzZWQgdG8gYSBwYXJ0eSB3aG8gaXMgdGhlbXNlbHZlcwogIGNvdmVyZWQgYnkgwqczIG9yIHdobyBob2xkcyBQYWlkIHVzZSwgcHJvdmlkZWQgeW91IHBhc3MgdGhpcyBsaWNlbmNlIGFsb25nCiAgYW5kIGFkZCBub3RoaW5nIHRvIGl0LgoKWW91IG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIHRoaXMgbGljZW5jZSwgb3IgYW55IGNvcHlyaWdodCwgbGljZW5jZSBvcgphdHRyaWJ1dGlvbiBub3RpY2UsIGZyb20gdGhlIFNvZnR3YXJlLgoKIyMgOC4gU291cmNlIGNvZGUKCldoZXJlIHlvdSByZWNlaXZlIHRoZSBTb2Z0d2FyZSBpbiBzb3VyY2UgZm9ybSDigJQgZm9yIGV4YW1wbGUgYXMgYSBjdXN0b21lcgp1bmRlciBhbiBlbnRlcnByaXNlIGFncmVlbWVudCwgYXMgYW4gYXVkaXRvciwgb3IgYmVjYXVzZSB3ZSBsYXRlciBwdWJsaXNoIGl0IOKAlAoqKnRoZSBncmFudHMgaW4gwqczLCDCpzQgYW5kIMKnNyBhcHBseSB0byB0aGUgc291cmNlIGV4YWN0bHkgYXMgdGhleSBhcHBseSB0byB0aGUKYmluYXJpZXMuKiogUmVhZGluZyB0aGUgc291cmNlLCBidWlsZGluZyBpdCBmb3IgeW91ciBvd24gcGVybWl0dGVkIHVzZSwgYW5kCnZlcmlmeWluZyB0aGF0IGEgYmluYXJ5IGNvcnJlc3BvbmRzIHRvIGl0IGFyZSBwZXJtaXR0ZWQgdXNlcy4gVGhpcyBzZWN0aW9uCmdyYW50cyBubyBhZGRpdGlvbmFsIHJlZGlzdHJpYnV0aW9uIHJpZ2h0IGJleW9uZCDCpzcuCgojIyA5LiBObyB3YXJyYW50eQoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCgoqKkl0IGlzIGEgZGV0ZWN0aW9uIHRvb2wuKiogSXQgcmVwb3J0cyB3aGF0IGNoYW5nZWQgYmV0d2VlbiBzY2Fucy4gQSBxdWlldApzY2FuIGlzIG5vdCBhIGd1YXJhbnRlZSB0aGF0IG5vdGhpbmcgY2hhbmdlZCwgYW5kIGl0IGlzIG5vdCBhIHN1YnN0aXR1dGUgZm9yCnlvdXIgb3duIHNlY3VyaXR5IGNvbnRyb2xzLiBTY2hlZHVsaW5nIHNjYW5zLCBrZWVwaW5nIGJhc2VsaW5lcywgYW5kIGFjdGluZyBvbgp3aGF0IHRoZXkgcmVwb3J0IGFyZSB5b3VyIHJlc3BvbnNpYmlsaXR5LgoKIyMgMTAuIExpbWl0YXRpb24gb2YgbGlhYmlsaXR5CgpUTyBUSEUgTUFYSU1VTSBFWFRFTlQgUEVSTUlUVEVEIEJZIExBVywgVEhFIENPUFlSSUdIVCBIT0xERVIgQU5EIFBVQkxJU0hFUgpTSEFMTCBOT1QgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCkFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04KV0lUSCBUSEUgU09GVFdBUkUgT1IgSVRTIFVTRS4gV0hFUkUgTElBQklMSVRZIENBTk5PVCBCRSBFWENMVURFRCwgSVQgSVMKTElNSVRFRCBUTyBUSEUgQU1PVU5UIFlPVSBQQUlEIFVTIElOIFRIRSBUV0VMVkUgTU9OVEhTIEJFRk9SRSBUSEUgQ0xBSU0uCgpOb3RoaW5nIGluIHRoaXMgbGljZW5jZSBsaW1pdHMgbGlhYmlsaXR5IGZvciBpbnRlbnQsIGdyb3NzIG5lZ2xpZ2VuY2UsIGRlYXRoCm9yIHBlcnNvbmFsIGluanVyeSwgb3IgYW55IG90aGVyIGxpYWJpbGl0eSB0aGF0IGNhbm5vdCBiZSBsaW1pdGVkIGJ5IGxhdy4KCiMjIDExLiBUZXJtIGFuZCB0ZXJtaW5hdGlvbgoKRnJlZSB1c2UgY29udGludWVzIGZvciBhcyBsb25nIGFzIHlvdSBjb21wbHkgd2l0aCB0aGlzIGxpY2VuY2UuIFBhaWQgdXNlCmNvbnRpbnVlcyBmb3IgdGhlIHRlcm0geW91IHBhaWQgZm9yIGFuZCByZW5ld3MgYXMgc3RhdGVkIGF0IHB1cmNoYXNlLiBJZiB5b3UKYnJlYWNoIHRoaXMgbGljZW5jZSB3ZSBtYXkgdGVybWluYXRlIHlvdXIgcmlnaHRzIGFmdGVyIHdyaXR0ZW4gbm90aWNlIGFuZCBhCjMwLWRheSBvcHBvcnR1bml0eSB0byBjdXJlLiBPbiB0ZXJtaW5hdGlvbiB5b3UgbXVzdCBzdG9wIHVzaW5nIHRoZSBTb2Z0d2FyZQphbmQgZGVsZXRlIGNvcGllcyB5b3UgaG9sZCwgZXhjZXB0IGNvcGllcyB5b3UgbXVzdCByZXRhaW4gYnkgbGF3LgoKU2VjdGlvbnMgNSAoY29tbWl0bWVudHMpLCA5LCAxMCBhbmQgMTIgc3Vydml2ZSB0ZXJtaW5hdGlvbi4KCiMjIDEyLiBHb3Zlcm5pbmcgbGF3IGFuZCBjb250YWN0CgpUaGlzIGxpY2VuY2UgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgdGhlIEZlZGVyYWwgUmVwdWJsaWMgb2YgR2VybWFueSwKZXhjbHVkaW5nIGl0cyBjb25mbGljdC1vZi1sYXcgcnVsZXMgYW5kIHRoZSBVTiBDb252ZW50aW9uIG9uIENvbnRyYWN0cyBmb3IgdGhlCkludGVybmF0aW9uYWwgU2FsZSBvZiBHb29kcy4gVGhlIGNvdXJ0cyBvZiBGcmFua2Z1cnQgYW0gTWFpbiBoYXZlIGV4Y2x1c2l2ZQpqdXJpc2RpY3Rpb24sIHVubGVzcyBtYW5kYXRvcnkgbGF3IHByb3ZpZGVzIG90aGVyd2lzZS4KClF1ZXN0aW9ucywgbGljZW5zaW5nLCBPRU0gYW5kIGVudGVycHJpc2UgZW5xdWlyaWVzOgoKICAgIEFydG1hbm4gVGVjaG5vbG9naWVzIEdtYkgKICAgIEJvY2tlbmhlaW1lciBMYW5kc3RyYcOfZSAxNy0xOSwgNjAzMjUgRnJhbmtmdXJ0IGFtIE1haW4sIEdlcm1hbnkKICAgIHNzaC1rZXktbW9uaXRvckBhcnRtYW5uLnRlY2gKCi0tLQoKKlBsYWluLWxhbmd1YWdlIG5vdGUsIG5vdCBhIGNsYXVzZTogdGhpcyBsaWNlbmNlIGlzIGRlbGliZXJhdGVseSBzaG9ydCBhbmQKcmVhZGFibGUgYmVjYXVzZSBhIGxpY2VuY2Ugbm9ib2R5IHJlYWRzIGlzIG5vdCBhIGxpY2VuY2UuIEl0IGdyYW50cyByZWFsCnJpZ2h0cyB0byBtb3N0IG9mIHRoZSBwZW9wbGUgd2hvIHdpbGwgZXZlciBkb3dubG9hZCB0aGlzIHNvZnR3YXJlLioK"
            }
          }
        }
      ],
      "purl": "pkg:cargo/ssh-key-monitor@0.5.0?download_url=file://.",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/ssh-key-monitor"
        },
        {
          "type": "website",
          "url": "https://github.com/LarsArtmann/ssh-key-monitor"
        },
        {
          "type": "vcs",
          "url": "https://github.com/LarsArtmann/ssh-key-monitor"
        }
      ],
      "components": [
        {
          "type": "library",
          "bom-ref": "path+file:///home/lars/projects/ssh-key-monitor#0.5.0 bin-target-0",
          "name": "ssh_key_monitor",
          "version": "0.5.0",
          "purl": "pkg:cargo/ssh-key-monitor@0.5.0?download_url=file://.#src/lib.rs"
        },
        {
          "type": "application",
          "bom-ref": "path+file:///home/lars/projects/ssh-key-monitor#0.5.0 bin-target-1",
          "name": "ssh-key-audit",
          "version": "0.5.0",
          "purl": "pkg:cargo/ssh-key-monitor@0.5.0?download_url=file://.#src/bin/ssh-key-audit.rs"
        }
      ]
    },
    "properties": [
      {
        "name": "cdx:rustc:sbom:target:triple",
        "value": "x86_64-unknown-linux-gnu"
      }
    ]
  },
  "components": [
    {
      "type": "library",
      "bom-ref": "path+file:///home/lars/projects/collector-utils#0.5.0",
      "author": "Lars Artmann <lars@larsartmann.com>",
      "name": "collector-utils",
      "version": "0.5.0",
      "description": "Shared infrastructure for monitor365 collector crates — categorized errors, diagnostics, three-level health checking, the CollectorBackend trait, and runtime dispatch machinery.",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "name": "Unknown",
            "text": {
              "encoding": "base64",
              "content": "UHJvcHJpZXRhcnkgYW5kIENvbmZpZGVudGlhbCDigJQgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCkNvcHlyaWdodCAoYykgMjAyNiBMYXJzIEFydG1hbm4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgpUaGlzIHNvdXJjZSBjb2RlIGFuZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiAodGhlICJTb2Z0d2FyZSIpIGlzIHRoZQpwcm9wcmlldGFyeSBhbmQgY29uZmlkZW50aWFsIHByb3BlcnR5IG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyLgoKTk8gTElDRU5TRSBJUyBHUkFOVEVEIFRPIFVTRSwgQ09QWSwgTU9ESUZZLCBNRVJHRSwgUFVCTElTSCwgRElTVFJJQlVURSwKU1VCTElDRU5TRSwgT1IgU0VMTCBDT1BJRVMgT0YgVEhFIFNPRlRXQVJFIFdJVEhPVVQgVEhFIFBSSU9SIFdSSVRURU4KUEVSTUlTU0lPTiBPRiBUSEUgQ09QWVJJR0hUIEhPTERFUi4KClVuYXV0aG9yaXplZCB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIHRoaXMgU29mdHdhcmUsIGluIHdob2xlCm9yIGluIHBhcnQsIGlzIHN0cmljdGx5IHByb2hpYml0ZWQgYW5kIG1heSByZXN1bHQgaW4gc2V2ZXJlIGNpdmlsIGFuZApjcmltaW5hbCBwZW5hbHRpZXMuCgpGb3IgbGljZW5zaW5nIGlucXVpcmllcyBvciBwZXJtaXNzaW9uIHJlcXVlc3RzLCBjb250YWN0OgoKICAgIExhcnMgQXJ0bWFubiA8bGFyc0BsYXJzYXJ0bWFubi5jb20+CgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgpERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCg=="
            }
          }
        }
      ],
      "purl": "pkg:cargo/collector-utils@0.5.0?download_url=file:///home/lars/projects/collector-utils",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://github.com/LarsArtmann/collector-utils"
        },
        {
          "type": "vcs",
          "url": "https://github.com/LarsArtmann/collector-utils"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#base64@0.22.1",
      "author": "Marshall Pierce <marshall@mpierce.org>",
      "name": "base64",
      "version": "0.22.1",
      "description": "encodes and decodes base64 as bytes or utf8",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/base64@0.22.1",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/base64"
        },
        {
          "type": "vcs",
          "url": "https://github.com/marshallpierce/rust-base64"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#block-buffer@0.10.4",
      "author": "RustCrypto Developers",
      "name": "block-buffer",
      "version": "0.10.4",
      "description": "Buffer type for block processing of data",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/block-buffer@0.10.4",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/block-buffer"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/utils"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#bytes@1.12.1",
      "author": "Carl Lerche <me@carllerche.com>, Sean McArthur <sean@seanmonstar.com>",
      "name": "bytes",
      "version": "1.12.1",
      "description": "Types and traits for working with bytes",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
        }
      ],
      "licenses": [
        {
          "expression": "MIT"
        }
      ],
      "purl": "pkg:cargo/bytes@1.12.1",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/bytes"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.5",
      "author": "Alex Crichton <alex@alexcrichton.com>",
      "name": "cfg-if",
      "version": "1.0.5",
      "description": "A macro to ergonomically define an item depending on a large number of #[cfg] parameters. Structured like an if-else chain, the first matching branch is the item that gets emitted. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/cfg-if@1.0.5",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/cfg-if"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#cpufeatures@0.2.17",
      "author": "RustCrypto Developers",
      "name": "cpufeatures",
      "version": "0.2.17",
      "description": "Lightweight runtime CPU feature detection for aarch64, loongarch64, and x86/x86_64 targets,  with no_std support and support for mobile targets including Android and iOS ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/cpufeatures@0.2.17",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/cpufeatures"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/utils"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#crypto-common@0.1.7",
      "author": "RustCrypto Developers",
      "name": "crypto-common",
      "version": "0.1.7",
      "description": "Common cryptographic traits",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/crypto-common@0.1.7",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/crypto-common"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/traits"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#digest@0.10.7",
      "author": "RustCrypto Developers",
      "name": "digest",
      "version": "0.10.7",
      "description": "Traits for cryptographic hash functions and message authentication codes",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/digest@0.10.7",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/digest"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/traits"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#errno@0.3.14",
      "author": "Chris Wong <lambda.fairy@gmail.com>, Dan Gohman <dev@sunfishcode.online>",
      "name": "errno",
      "version": "0.3.14",
      "description": "Cross-platform interface to the `errno` variable.",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/errno@0.3.14",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/errno"
        },
        {
          "type": "vcs",
          "url": "https://github.com/lambda-fairy/rust-errno"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#generic-array@0.14.7",
      "author": "Bartłomiej Kamiński <fizyk20@gmail.com>, Aaron Trent <novacrazy@gmail.com>",
      "name": "generic-array",
      "version": "0.14.7",
      "description": "Generic types implementing functionality of arrays",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
        }
      ],
      "licenses": [
        {
          "expression": "MIT"
        }
      ],
      "purl": "pkg:cargo/generic-array@0.14.7",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "http://fizyk20.github.io/generic-array/generic_array/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/fizyk20/generic-array.git"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#hmac@0.12.1",
      "author": "RustCrypto Developers",
      "name": "hmac",
      "version": "0.12.1",
      "description": "Generic implementation of Hash-based Message Authentication Code (HMAC)",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/hmac@0.12.1",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/hmac"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/MACs"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.18",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "name": "itoa",
      "version": "1.0.18",
      "description": "Fast integer primitive to string conversion",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/itoa@1.0.18",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/itoa"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/itoa"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.191",
      "name": "libc",
      "version": "0.2.191",
      "description": "Raw FFI bindings to platform libraries like libc.",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/libc@0.2.191",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/libc"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#lock_api@0.4.14",
      "author": "Amanieu d'Antras <amanieu@gmail.com>",
      "name": "lock_api",
      "version": "0.4.14",
      "description": "Wrappers to create fully-featured Mutex and RwLock types. Compatible with no_std.",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/lock_api@0.4.14",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/Amanieu/parking_lot"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#memchr@2.8.3",
      "author": "Andrew Gallant <jamslam@gmail.com>, bluss",
      "name": "memchr",
      "version": "2.8.3",
      "description": "Provides extremely fast (uses SIMD on x86_64, aarch64 and wasm32) routines for 1, 2 or 3 byte search and single substring search. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
        }
      ],
      "licenses": [
        {
          "expression": "Unlicense OR MIT"
        }
      ],
      "purl": "pkg:cargo/memchr@2.8.3",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/memchr/"
        },
        {
          "type": "website",
          "url": "https://github.com/BurntSushi/memchr"
        },
        {
          "type": "vcs",
          "url": "https://github.com/BurntSushi/memchr"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#mio@1.2.4",
      "author": "Carl Lerche <me@carllerche.com>, Thomas de Zeeuw <thomasdezeeuw@gmail.com>, Tokio Contributors <team@tokio.rs>",
      "name": "mio",
      "version": "1.2.4",
      "description": "Lightweight non-blocking I/O.",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "1788edb87fdc09c7e26304471e2f5be8cdefb1b6930d6e3985fc02ff53bf86ee"
        }
      ],
      "licenses": [
        {
          "expression": "MIT"
        }
      ],
      "purl": "pkg:cargo/mio@1.2.4",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://github.com/tokio-rs/mio"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/mio"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4",
      "author": "Aleksey Kladov <aleksey.kladov@gmail.com>",
      "name": "once_cell",
      "version": "1.21.4",
      "description": "Single assignment cells and lazy values.",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/once_cell@1.21.4",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/once_cell"
        },
        {
          "type": "vcs",
          "url": "https://github.com/matklad/once_cell"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#parking_lot@0.12.5",
      "author": "Amanieu d'Antras <amanieu@gmail.com>",
      "name": "parking_lot",
      "version": "0.12.5",
      "description": "More compact and efficient implementations of the standard synchronization primitives.",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/parking_lot@0.12.5",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/Amanieu/parking_lot"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.12",
      "author": "Amanieu d'Antras <amanieu@gmail.com>",
      "name": "parking_lot_core",
      "version": "0.9.12",
      "description": "An advanced API for creating custom synchronization primitives.",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/parking_lot_core@0.9.12",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/Amanieu/parking_lot"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pin-project-lite@0.2.17",
      "name": "pin-project-lite",
      "version": "0.2.17",
      "description": "A lightweight version of pin-project written with declarative macros. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ],
      "purl": "pkg:cargo/pin-project-lite@0.2.17",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/taiki-e/pin-project-lite"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
      "author": "David Tolnay <dtolnay@gmail.com>, Alex Crichton <alex@alexcrichton.com>",
      "name": "proc-macro2",
      "version": "1.0.107",
      "description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/proc-macro2@1.0.107",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/proc-macro2"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/proc-macro2"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "name": "quote",
      "version": "1.0.47",
      "description": "Quasi-quoting macro quote!(...)",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/quote@1.0.47",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/quote/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/quote"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#scopeguard@1.2.0",
      "author": "bluss",
      "name": "scopeguard",
      "version": "1.2.0",
      "description": "A RAII scope guard that will run a given closure when it goes out of scope, even if the code between panics (assuming unwinding panic).  Defines the macros `defer!`, `defer_on_unwind!`, `defer_on_success!` as shorthands for guards with one of the implemented strategies. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/scopeguard@1.2.0",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/scopeguard/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/bluss/scopeguard"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
      "author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
      "name": "serde",
      "version": "1.0.229",
      "description": "A generic serialization/deserialization framework",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/serde@1.0.229",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/serde"
        },
        {
          "type": "website",
          "url": "https://serde.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/serde-rs/serde"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229",
      "author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
      "name": "serde_core",
      "version": "1.0.229",
      "description": "Serde traits only, with no support for derive -- use the `serde` crate instead",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/serde_core@1.0.229",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/serde_core"
        },
        {
          "type": "website",
          "url": "https://serde.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/serde-rs/serde"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde_derive@1.0.229",
      "author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
      "name": "serde_derive",
      "version": "1.0.229",
      "description": "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/serde_derive@1.0.229",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://serde.rs/derive.html"
        },
        {
          "type": "website",
          "url": "https://serde.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/serde-rs/serde"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.154",
      "name": "serde_json",
      "version": "1.0.154",
      "description": "A JSON serialization file format",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/serde_json@1.0.154",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/serde_json"
        },
        {
          "type": "vcs",
          "url": "https://github.com/serde-rs/json"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#sha1@0.10.7",
      "author": "RustCrypto Developers",
      "name": "sha1",
      "version": "0.10.7",
      "description": "SHA-1 hash function",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a978451301f4db1d02937a4ab3ccce137717b81826e79b7d49ffe3244a13c3b8"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/sha1@0.10.7",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/sha1"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/hashes"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#sha2@0.10.9",
      "author": "RustCrypto Developers",
      "name": "sha2",
      "version": "0.10.9",
      "description": "Pure Rust implementation of the SHA-2 hash function family including SHA-224, SHA-256, SHA-384, and SHA-512. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/sha2@0.10.9",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/sha2"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/hashes"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#signal-hook-registry@1.4.8",
      "author": "Michal 'vorner' Vaner <vorner@vorner.cz>, Masaki Hara <ackie.h.gmai@gmail.com>",
      "name": "signal-hook-registry",
      "version": "1.4.8",
      "description": "Backend crate for signal-hook",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/signal-hook-registry@1.4.8",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/signal-hook-registry"
        },
        {
          "type": "vcs",
          "url": "https://github.com/vorner/signal-hook"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#smallvec@1.16.4",
      "author": "The Servo Project Developers",
      "name": "smallvec",
      "version": "1.16.4",
      "description": "'Small vector' optimization: store up to a small number of items on the stack",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d0d5d4b1981b8bbbb7aed204cae5726d683d5d6ac7e74ec54122ea28f315e7c8"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/smallvec@1.16.4",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/smallvec/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/servo/rust-smallvec"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#socket2@0.6.5",
      "author": "Alex Crichton <alex@alexcrichton.com>, Thomas de Zeeuw <thomasdezeeuw@gmail.com>",
      "name": "socket2",
      "version": "0.6.5",
      "description": "Utilities for handling networking sockets with a maximal amount of configuration possible intended. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/socket2@0.6.5",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/socket2"
        },
        {
          "type": "website",
          "url": "https://github.com/rust-lang/socket2"
        },
        {
          "type": "vcs",
          "url": "https://github.com/rust-lang/socket2"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#subtle@2.6.1",
      "author": "Isis Lovecruft <isis@patternsinthevoid.net>, Henry de Valence <hdevalence@hdevalence.ca>",
      "name": "subtle",
      "version": "2.6.1",
      "description": "Pure-Rust traits and utilities for constant-time cryptographic implementations.",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
        }
      ],
      "licenses": [
        {
          "expression": "BSD-3-Clause"
        }
      ],
      "purl": "pkg:cargo/subtle@2.6.1",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/subtle"
        },
        {
          "type": "website",
          "url": "https://dalek.rs/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dalek-cryptography/subtle"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.119",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "name": "syn",
      "version": "2.0.119",
      "description": "Parser for Rust source code",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/syn@2.0.119",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/syn"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/syn"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#syn@3.0.9",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "name": "syn",
      "version": "3.0.9",
      "description": "Parser for Rust source code",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/syn@3.0.9",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/syn"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/syn"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#tokio-macros@2.7.2",
      "author": "Tokio Contributors <team@tokio.rs>",
      "name": "tokio-macros",
      "version": "2.7.2",
      "description": "Tokio's proc macros. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e"
        }
      ],
      "licenses": [
        {
          "expression": "MIT"
        }
      ],
      "purl": "pkg:cargo/tokio-macros@2.7.2",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://tokio.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tokio"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#tokio@1.54.1",
      "author": "Tokio Contributors <team@tokio.rs>",
      "name": "tokio",
      "version": "1.54.1",
      "description": "An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b52fd3255258d26fac7264ab5a76b53c13367136dc011d3d6ad4f8ed070396a3"
        }
      ],
      "licenses": [
        {
          "expression": "MIT"
        }
      ],
      "purl": "pkg:cargo/tokio@1.54.1",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://tokio.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tokio"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#tracing-attributes@0.1.31",
      "author": "Tokio Contributors <team@tokio.rs>, Eliza Weisman <eliza@buoyant.io>, David Barsky <dbarsky@amazon.com>",
      "name": "tracing-attributes",
      "version": "0.1.31",
      "description": "Procedural macro attributes for automatically instrumenting functions. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
        }
      ],
      "licenses": [
        {
          "expression": "MIT"
        }
      ],
      "purl": "pkg:cargo/tracing-attributes@0.1.31",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://tokio.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tracing"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#tracing-core@0.1.36",
      "author": "Tokio Contributors <team@tokio.rs>",
      "name": "tracing-core",
      "version": "0.1.36",
      "description": "Core primitives for application-level tracing. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
        }
      ],
      "licenses": [
        {
          "expression": "MIT"
        }
      ],
      "purl": "pkg:cargo/tracing-core@0.1.36",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://tokio.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tracing"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#tracing@0.1.44",
      "author": "Eliza Weisman <eliza@buoyant.io>, Tokio Contributors <team@tokio.rs>",
      "name": "tracing",
      "version": "0.1.44",
      "description": "Application-level tracing for Rust. ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
        }
      ],
      "licenses": [
        {
          "expression": "MIT"
        }
      ],
      "purl": "pkg:cargo/tracing@0.1.44",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://tokio.rs"
        },
        {
          "type": "vcs",
          "url": "https://github.com/tokio-rs/tracing"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#typenum@1.20.1",
      "name": "typenum",
      "version": "1.20.1",
      "description": "Typenum is a Rust library for type-level numbers evaluated at     compile time. It currently supports bits, unsigned integers, and signed     integers. It also provides a type-level array of type-level numbers, but its     implementation is incomplete.",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/typenum@1.20.1",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/typenum"
        },
        {
          "type": "vcs",
          "url": "https://github.com/paholg/typenum"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.27",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "name": "unicode-ident",
      "version": "1.0.27",
      "description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563"
        }
      ],
      "licenses": [
        {
          "expression": "(MIT OR Apache-2.0) AND Unicode-3.0"
        }
      ],
      "purl": "pkg:cargo/unicode-ident@1.0.27",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/unicode-ident"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/unicode-ident"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#version_check@0.9.5",
      "author": "Sergio Benitez <sb@sergio.bz>",
      "name": "version_check",
      "version": "0.9.5",
      "description": "Tiny crate to check the version of the installed/running rustc.",
      "scope": "excluded",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
        }
      ],
      "licenses": [
        {
          "expression": "MIT OR Apache-2.0"
        }
      ],
      "purl": "pkg:cargo/version_check@0.9.5",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/version_check/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/SergioBenitez/version_check"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#zeroize@1.9.1",
      "author": "The RustCrypto Project Developers",
      "name": "zeroize",
      "version": "1.9.1",
      "description": "Securely clear secrets from memory with a simple trait built on stable Rust primitives which guarantee memory is zeroed using an operation will not be 'optimized away' by the compiler. Uses a portable pure Rust implementation that works everywhere, even WASM! ",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "e13084392c5e4bc371903e2935a5eaeed24905a7511356b883835e18a78f6879"
        }
      ],
      "licenses": [
        {
          "expression": "Apache-2.0 OR MIT"
        }
      ],
      "purl": "pkg:cargo/zeroize@1.9.1",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/zeroize"
        },
        {
          "type": "vcs",
          "url": "https://github.com/RustCrypto/utils"
        }
      ]
    },
    {
      "type": "library",
      "bom-ref": "registry+https://github.com/rust-lang/crates.io-index#zmij@1.0.23",
      "author": "David Tolnay <dtolnay@gmail.com>",
      "name": "zmij",
      "version": "1.0.23",
      "description": "A double-to-string conversion algorithm based on Schubfach and xjb",
      "scope": "required",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
        }
      ],
      "licenses": [
        {
          "expression": "MIT"
        }
      ],
      "purl": "pkg:cargo/zmij@1.0.23",
      "externalReferences": [
        {
          "type": "documentation",
          "url": "https://docs.rs/zmij"
        },
        {
          "type": "vcs",
          "url": "https://github.com/dtolnay/zmij"
        }
      ]
    }
  ],
  "dependencies": [
    {
      "ref": "path+file:///home/lars/projects/collector-utils#0.5.0",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
        "registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.154",
        "registry+https://github.com/rust-lang/crates.io-index#tracing@0.1.44"
      ]
    },
    {
      "ref": "path+file:///home/lars/projects/ssh-key-monitor#0.5.0",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#base64@0.22.1",
        "path+file:///home/lars/projects/collector-utils#0.5.0",
        "registry+https://github.com/rust-lang/crates.io-index#hmac@0.12.1",
        "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.191",
        "registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
        "registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.154",
        "registry+https://github.com/rust-lang/crates.io-index#sha1@0.10.7",
        "registry+https://github.com/rust-lang/crates.io-index#sha2@0.10.9",
        "registry+https://github.com/rust-lang/crates.io-index#tokio@1.54.1",
        "registry+https://github.com/rust-lang/crates.io-index#tracing@0.1.44",
        "registry+https://github.com/rust-lang/crates.io-index#zeroize@1.9.1"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#base64@0.22.1"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#block-buffer@0.10.4",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#generic-array@0.14.7"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#bytes@1.12.1"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.5"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#cpufeatures@0.2.17"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#crypto-common@0.1.7",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#generic-array@0.14.7",
        "registry+https://github.com/rust-lang/crates.io-index#typenum@1.20.1"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#digest@0.10.7",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#block-buffer@0.10.4",
        "registry+https://github.com/rust-lang/crates.io-index#crypto-common@0.1.7",
        "registry+https://github.com/rust-lang/crates.io-index#subtle@2.6.1"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#errno@0.3.14",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.191"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#generic-array@0.14.7",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#typenum@1.20.1",
        "registry+https://github.com/rust-lang/crates.io-index#version_check@0.9.5"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#hmac@0.12.1",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#digest@0.10.7"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.18"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.191"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#lock_api@0.4.14",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#scopeguard@1.2.0"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#memchr@2.8.3"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#mio@1.2.4",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.191"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#parking_lot@0.12.5",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#lock_api@0.4.14",
        "registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.12"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.12",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.5",
        "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.191",
        "registry+https://github.com/rust-lang/crates.io-index#smallvec@1.16.4"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#pin-project-lite@0.2.17"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.27"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#scopeguard@1.2.0"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229",
        "registry+https://github.com/rust-lang/crates.io-index#serde_derive@1.0.229"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#serde_derive@1.0.229",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
        "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
        "registry+https://github.com/rust-lang/crates.io-index#syn@3.0.9"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.154",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.18",
        "registry+https://github.com/rust-lang/crates.io-index#memchr@2.8.3",
        "registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229",
        "registry+https://github.com/rust-lang/crates.io-index#zmij@1.0.23"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#sha1@0.10.7",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.5",
        "registry+https://github.com/rust-lang/crates.io-index#cpufeatures@0.2.17",
        "registry+https://github.com/rust-lang/crates.io-index#digest@0.10.7"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#sha2@0.10.9",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.5",
        "registry+https://github.com/rust-lang/crates.io-index#cpufeatures@0.2.17",
        "registry+https://github.com/rust-lang/crates.io-index#digest@0.10.7"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#signal-hook-registry@1.4.8",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#errno@0.3.14",
        "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.191"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#smallvec@1.16.4"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#socket2@0.6.5",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.191"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#subtle@2.6.1"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.119",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
        "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
        "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.27"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#syn@3.0.9",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
        "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
        "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.27"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#tokio-macros@2.7.2",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
        "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
        "registry+https://github.com/rust-lang/crates.io-index#syn@3.0.9"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#tokio@1.54.1",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#bytes@1.12.1",
        "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.191",
        "registry+https://github.com/rust-lang/crates.io-index#mio@1.2.4",
        "registry+https://github.com/rust-lang/crates.io-index#parking_lot@0.12.5",
        "registry+https://github.com/rust-lang/crates.io-index#pin-project-lite@0.2.17",
        "registry+https://github.com/rust-lang/crates.io-index#signal-hook-registry@1.4.8",
        "registry+https://github.com/rust-lang/crates.io-index#socket2@0.6.5",
        "registry+https://github.com/rust-lang/crates.io-index#tokio-macros@2.7.2"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#tracing-attributes@0.1.31",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
        "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
        "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.119"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#tracing-core@0.1.36",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#tracing@0.1.44",
      "dependsOn": [
        "registry+https://github.com/rust-lang/crates.io-index#pin-project-lite@0.2.17",
        "registry+https://github.com/rust-lang/crates.io-index#tracing-attributes@0.1.31",
        "registry+https://github.com/rust-lang/crates.io-index#tracing-core@0.1.36"
      ]
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#typenum@1.20.1"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.27"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#version_check@0.9.5"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#zeroize@1.9.1"
    },
    {
      "ref": "registry+https://github.com/rust-lang/crates.io-index#zmij@1.0.23"
    }
  ]
}