all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe3a:b239
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 75ca7cda-40a9-4b36-a7a3-1cbeddbd17f3
        host_id: df70f2a3f3d0c26428f22685cfc722ebc48099d99e7332c39e017195
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe3a:b239
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.103
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.12
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe3a:b239
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job flake8 explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#32>'
      - '<Job flake8 explicit: None implied: None source: osism/python-osism/.zuul.yaml@main#133>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 9260ad7a04b04ee7bb57dff2e7336636
      build_refs:
      - branch: main
        change: '1613'
        change_message: "chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.8.11\n\nThis
          PR contains the following updates:\n\n| Package | Type | Update | Change
          |\n|---|---|---|---|\n| [ghcr.io/astral-sh/uv](https://redirect.github.com/astral-sh/uv)
          | final | patch | `0.8.4` -> `0.8.11` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/uv
          (ghcr.io/astral-sh/uv)</summary>\n\n### [`v0.8.11`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0811)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.10...0.8.11)\n\n#####
          Python\n\n- Add Python 3.14.0rc2\n- Update Pyodide to 0.28.1\n\n##### Enhancements\n\n-
          Add Debian 13 trixie to published Docker images ([#&#8203;15269](https://redirect.github.com/astral-sh/uv/pull/15269))\n-
          Add `extra-build-dependencies` hint for any missing module on build failure
          ([#&#8203;15252](https://redirect.github.com/astral-sh/uv/pull/15252))\n-
          Make 'v' prefix cyan in overlap warnings ([#&#8203;15259](https://redirect.github.com/astral-sh/uv/pull/15259))\n\n#####
          Bug fixes\n\n- Fix missing uv version in extended Docker image tags ([#&#8203;15263](https://redirect.github.com/astral-sh/uv/pull/15263))\n-
          Persist cache info when re-installing cached wheels ([#&#8203;15274](https://redirect.github.com/astral-sh/uv/pull/15274))\n\n#####
          Rust API\n\n- Allow passing custom `reqwest` clients to `RegistryClient`
          ([#&#8203;15281](https://redirect.github.com/astral-sh/uv/pull/15281))\n\n###
          [`v0.8.10`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0810)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.9...0.8.10)\n\n#####
          Python\n\n- Add support for installing Pyodide versions ([#&#8203;14518](https://redirect.github.com/astral-sh/uv/pull/14518))\n\n#####
          Enhancements\n\n- Allow Python requests with missing segments, e.g., just
          `aarch64` ([#&#8203;14399](https://redirect.github.com/astral-sh/uv/pull/14399))\n\n#####
          Preview\n\n- Move warnings for conflicting modules into preview ([#&#8203;15253](https://redirect.github.com/astral-sh/uv/pull/15253))\n\n###
          [`v0.8.9`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#089)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.8...0.8.9)\n\n#####
          Enhancements\n\n- Add `--reinstall` flag to `uv python upgrade` ([#&#8203;15194](https://redirect.github.com/astral-sh/uv/pull/15194))\n\n#####
          Bug fixes\n\n- Include build settings in cache key for registry source distribution
          lookups ([#&#8203;15225](https://redirect.github.com/astral-sh/uv/pull/15225))\n-
          Avoid creating bin links on `uv python upgrade` if they don't already exist
          ([#&#8203;15192](https://redirect.github.com/astral-sh/uv/pull/15192))\n-
          Respect system proxies on macOS and Windows ([#&#8203;15221](https://redirect.github.com/astral-sh/uv/pull/15221))\n\n#####
          Documentation\n\n- Add the 3.14 classifier ([#&#8203;15187](https://redirect.github.com/astral-sh/uv/pull/15187))\n\n###
          [`v0.8.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#088)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.7...0.8.8)\n\n#####
          Bug fixes\n\n- Fix `find_uv_bin` compatibility with Python <3.10 ([#&#8203;15177](https://redirect.github.com/astral-sh/uv/pull/15177))\n\n###
          [`v0.8.7`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#087)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.6...0.8.7)\n\n#####
          Python\n\n- On Mac/Linux, libtcl, libtk, and \\_tkinter are built as separate
          shared objects, which fixes matplotlib's `tkagg` backend (the default on
          Linux), Pillow's `PIL.ImageTk` library, and other extension modules that
          need to use libtcl/libtk directly.\n- Tix is no longer provided on Linux.
          This is a deprecated Tk extension that appears to have been previously broken.\n\nSee
          the [`python-build-standalone` release notes](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20250808)
          for details.\n\n##### Enhancements\n\n- Do not update `uv.lock` when using
          `--isolated` ([#&#8203;15154](https://redirect.github.com/astral-sh/uv/pull/15154))\n-
          Add support for `--prefix` and `--with` installations in `find_uv_bin` ([#&#8203;14184](https://redirect.github.com/astral-sh/uv/pull/14184))\n-
          Add support for discovering base prefix installations in `find_uv_bin` ([#&#8203;14181](https://redirect.github.com/astral-sh/uv/pull/14181))\n-
          Improve error messages in `find_uv_bin` ([#&#8203;14182](https://redirect.github.com/astral-sh/uv/pull/14182))\n-
          Warn when two packages write to the same module ([#&#8203;13437](https://redirect.github.com/astral-sh/uv/pull/13437))\n\n#####
          Preview features\n\n- Add support for `package`-level conflicts in workspaces
          ([#&#8203;14906](https://redirect.github.com/astral-sh/uv/pull/14906))\n\n#####
          Configuration\n\n- Add `UV_DEV` and `UV_NO_DEV` environment variables (for
          `--dev` and `--no-dev`) ([#&#8203;15010](https://redirect.github.com/astral-sh/uv/pull/15010))\n\n#####
          Bug fixes\n\n- Fix regression where `--require-hashes` applied to build
          dependencies in `uv pip install` ([#&#8203;15153](https://redirect.github.com/astral-sh/uv/pull/15153))\n-
          Ignore GraalPy devtags ([#&#8203;15013](https://redirect.github.com/astral-sh/uv/pull/15013))\n-
          Include all site packages directories in ephemeral environment overlays
          ([#&#8203;15121](https://redirect.github.com/astral-sh/uv/pull/15121))\n-
          Search in the user scheme scripts directory last in `find_uv_bin` ([#&#8203;14191](https://redirect.github.com/astral-sh/uv/pull/14191))\n\n#####
          Documentation\n\n- Add missing periods (`.`) to list elements in `Features`
          docs page ([#&#8203;15138](https://redirect.github.com/astral-sh/uv/pull/15138))\n\n###
          [`v0.8.6`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#086)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.5...0.8.6)\n\nThis
          release contains hardening measures to address differentials in behavior
          between uv and Python's built-in ZIP parser ([CVE-2025-54368](https://redirect.github.com/astral-sh/uv/security/advisories/GHSA-8qf3-x8v5-2pj8)).\n\nPrior
          to this release, attackers could construct ZIP files that would be extracted
          differently by pip, uv, and other tools. As a result, ZIPs could be constructed
          that would be considered harmless by (e.g.) scanners, but contain a malicious
          payload when extracted by uv. As of v0.8.6, uv now applies additional checks
          to reject such ZIPs.\n\nThanks to a triage effort with the [Python Security
          Response Team](https://devguide.python.org/developer-workflow/psrt/) and
          PyPI maintainers, we were able to determine that these differentials **were
          not exploited** via PyPI during the time they were present. The PyPI team
          has also implemented similar checks and now guards against these parsing
          differentials on upload.\n\nAlthough the practical risk of exploitation
          is low, we take the *hypothetical* risk of parser differentials very seriously.
          Out of an abundance of caution, we have assigned this advisory a CVE identifier
          and have given it a \"moderate\" severity suggestion.\n\nThese changes have
          been validated against the top 15,000 PyPI packages; however, it's plausible
          that a non-malicious ZIP could be falsely rejected with this additional
          hardening. As an escape hatch, users who do encounter breaking changes can
          enable `UV_INSECURE_NO_ZIP_VALIDATION` to restore the previous behavior.
          If you encounter such a rejection, please file an issue in uv and to the
          upstream package.\n\nFor additional information, please refer to the following
          blog posts:\n\n- [Astral: uv security advisory: ZIP payload obfuscation](https://astral.sh/blog/uv-security-advisory-cve-2025-54368)\n-
          [PyPI: Preventing ZIP parser confusion attacks on Python package installers](https://blog.pypi.org/posts/2025-08-07-wheel-archive-confusion-attacks/)\n\n#####
          Security\n\n- Harden ZIP streaming to reject repeated entries and other
          malformed ZIP files ([#&#8203;15136](https://redirect.github.com/astral-sh/uv/pull/15136))\n\n#####
          Python\n\n- Add CPython 3.13.6\n\n##### Configuration\n\n- Add support for
          per-project build-time environment variables ([#&#8203;15095](https://redirect.github.com/astral-sh/uv/pull/15095))\n\n#####
          Bug fixes\n\n- Avoid invalid simplification with conflict markers  ([#&#8203;15041](https://redirect.github.com/astral-sh/uv/pull/15041))\n-
          Respect `UV_HTTP_RETRIES` in `uv publish` ([#&#8203;15106](https://redirect.github.com/astral-sh/uv/pull/15106))\n-
          Support `UV_NO_EDITABLE` where `--no-editable` is supported ([#&#8203;15107](https://redirect.github.com/astral-sh/uv/pull/15107))\n-
          Upgrade `cargo-dist` to add `UV_INSTALLER_URL` to PowerShell installer ([#&#8203;15114](https://redirect.github.com/astral-sh/uv/pull/15114))\n-
          Upgrade `h2` again to avoid `too_many_internal_resets` errors ([#&#8203;15111](https://redirect.github.com/astral-sh/uv/pull/15111))\n-
          Consider `pythonw` when copying entry points in uv run ([#&#8203;15134](https://redirect.github.com/astral-sh/uv/pull/15134))\n\n#####
          Documentation\n\n- Ensure symlink warning is shown ([#&#8203;15126](https://redirect.github.com/astral-sh/uv/pull/15126))\n\n###
          [`v0.8.5`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#085)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.4...0.8.5)\n\n#####
          Enhancements\n\n- Enable `uv run` with a GitHub Gist ([#&#8203;15058](https://redirect.github.com/astral-sh/uv/pull/15058))\n-
          Improve HTTP response caching log messages ([#&#8203;15067](https://redirect.github.com/astral-sh/uv/pull/15067))\n-
          Show wheel tag hints in install plan ([#&#8203;15066](https://redirect.github.com/astral-sh/uv/pull/15066))\n-
          Support installing additional executables in `uv tool install` ([#&#8203;14014](https://redirect.github.com/astral-sh/uv/pull/14014))\n\n#####
          Preview features\n\n- Enable extra build dependencies to 'match runtime'
          versions ([#&#8203;15036](https://redirect.github.com/astral-sh/uv/pull/15036))\n-
          Remove duplicate `extra-build-dependencies` warnings for `uv pip` ([#&#8203;15088](https://redirect.github.com/astral-sh/uv/pull/15088))\n-
          Use \"option\" instead of \"setting\" in `pylock` warning ([#&#8203;15089](https://redirect.github.com/astral-sh/uv/pull/15089))\n-
          Respect extra build requires when reading from wheel cache ([#&#8203;15030](https://redirect.github.com/astral-sh/uv/pull/15030))\n-
          Preserve lowered extra build dependencies ([#&#8203;15038](https://redirect.github.com/astral-sh/uv/pull/15038))\n\n#####
          Bug fixes\n\n- Add Python versions to markers implied from wheels ([#&#8203;14913](https://redirect.github.com/astral-sh/uv/pull/14913))\n-
          Ensure consistent indentation when adding dependencies ([#&#8203;14991](https://redirect.github.com/astral-sh/uv/pull/14991))\n-
          Fix handling of `python-preference = system` when managed interpreters are
          on the PATH ([#&#8203;15059](https://redirect.github.com/astral-sh/uv/pull/15059))\n-
          Fix symlink preservation in virtual environment creation ([#&#8203;14933](https://redirect.github.com/astral-sh/uv/pull/14933))\n-
          Gracefully handle entrypoint permission errors ([#&#8203;15026](https://redirect.github.com/astral-sh/uv/pull/15026))\n-
          Include wheel hashes from local Simple indexes ([#&#8203;14993](https://redirect.github.com/astral-sh/uv/pull/14993))\n-
          Prefer system Python installations over managed ones when `--system` is
          used ([#&#8203;15061](https://redirect.github.com/astral-sh/uv/pull/15061))\n-
          Remove retry wrapper when matching on error kind ([#&#8203;14996](https://redirect.github.com/astral-sh/uv/pull/14996))\n-
          Revert `h2` upgrade ([#&#8203;15079](https://redirect.github.com/astral-sh/uv/pull/15079))\n\n#####
          Documentation\n\n- Improve visibility of copy and line separator in dark
          mode ([#&#8203;14987](https://redirect.github.com/astral-sh/uv/pull/14987))\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/python-osism).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
        change_url: https://github.com/osism/python-osism/pull/1613
        commit_id: e4cc43b6a5cd75bb2aa88ae8a589d020de1e7ba2
        patchset: e4cc43b6a5cd75bb2aa88ae8a589d020de1e7ba2
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
        src_dir: src/github.com/osism/python-osism
        topic: null
      buildset: df4be34df53f42f99527f9f6fbca57bf
      buildset_refs:
      - branch: main
        change: '1613'
        change_message: "chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.8.11\n\nThis
          PR contains the following updates:\n\n| Package | Type | Update | Change
          |\n|---|---|---|---|\n| [ghcr.io/astral-sh/uv](https://redirect.github.com/astral-sh/uv)
          | final | patch | `0.8.4` -> `0.8.11` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/uv
          (ghcr.io/astral-sh/uv)</summary>\n\n### [`v0.8.11`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0811)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.10...0.8.11)\n\n#####
          Python\n\n- Add Python 3.14.0rc2\n- Update Pyodide to 0.28.1\n\n##### Enhancements\n\n-
          Add Debian 13 trixie to published Docker images ([#&#8203;15269](https://redirect.github.com/astral-sh/uv/pull/15269))\n-
          Add `extra-build-dependencies` hint for any missing module on build failure
          ([#&#8203;15252](https://redirect.github.com/astral-sh/uv/pull/15252))\n-
          Make 'v' prefix cyan in overlap warnings ([#&#8203;15259](https://redirect.github.com/astral-sh/uv/pull/15259))\n\n#####
          Bug fixes\n\n- Fix missing uv version in extended Docker image tags ([#&#8203;15263](https://redirect.github.com/astral-sh/uv/pull/15263))\n-
          Persist cache info when re-installing cached wheels ([#&#8203;15274](https://redirect.github.com/astral-sh/uv/pull/15274))\n\n#####
          Rust API\n\n- Allow passing custom `reqwest` clients to `RegistryClient`
          ([#&#8203;15281](https://redirect.github.com/astral-sh/uv/pull/15281))\n\n###
          [`v0.8.10`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0810)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.9...0.8.10)\n\n#####
          Python\n\n- Add support for installing Pyodide versions ([#&#8203;14518](https://redirect.github.com/astral-sh/uv/pull/14518))\n\n#####
          Enhancements\n\n- Allow Python requests with missing segments, e.g., just
          `aarch64` ([#&#8203;14399](https://redirect.github.com/astral-sh/uv/pull/14399))\n\n#####
          Preview\n\n- Move warnings for conflicting modules into preview ([#&#8203;15253](https://redirect.github.com/astral-sh/uv/pull/15253))\n\n###
          [`v0.8.9`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#089)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.8...0.8.9)\n\n#####
          Enhancements\n\n- Add `--reinstall` flag to `uv python upgrade` ([#&#8203;15194](https://redirect.github.com/astral-sh/uv/pull/15194))\n\n#####
          Bug fixes\n\n- Include build settings in cache key for registry source distribution
          lookups ([#&#8203;15225](https://redirect.github.com/astral-sh/uv/pull/15225))\n-
          Avoid creating bin links on `uv python upgrade` if they don't already exist
          ([#&#8203;15192](https://redirect.github.com/astral-sh/uv/pull/15192))\n-
          Respect system proxies on macOS and Windows ([#&#8203;15221](https://redirect.github.com/astral-sh/uv/pull/15221))\n\n#####
          Documentation\n\n- Add the 3.14 classifier ([#&#8203;15187](https://redirect.github.com/astral-sh/uv/pull/15187))\n\n###
          [`v0.8.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#088)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.7...0.8.8)\n\n#####
          Bug fixes\n\n- Fix `find_uv_bin` compatibility with Python <3.10 ([#&#8203;15177](https://redirect.github.com/astral-sh/uv/pull/15177))\n\n###
          [`v0.8.7`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#087)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.6...0.8.7)\n\n#####
          Python\n\n- On Mac/Linux, libtcl, libtk, and \\_tkinter are built as separate
          shared objects, which fixes matplotlib's `tkagg` backend (the default on
          Linux), Pillow's `PIL.ImageTk` library, and other extension modules that
          need to use libtcl/libtk directly.\n- Tix is no longer provided on Linux.
          This is a deprecated Tk extension that appears to have been previously broken.\n\nSee
          the [`python-build-standalone` release notes](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20250808)
          for details.\n\n##### Enhancements\n\n- Do not update `uv.lock` when using
          `--isolated` ([#&#8203;15154](https://redirect.github.com/astral-sh/uv/pull/15154))\n-
          Add support for `--prefix` and `--with` installations in `find_uv_bin` ([#&#8203;14184](https://redirect.github.com/astral-sh/uv/pull/14184))\n-
          Add support for discovering base prefix installations in `find_uv_bin` ([#&#8203;14181](https://redirect.github.com/astral-sh/uv/pull/14181))\n-
          Improve error messages in `find_uv_bin` ([#&#8203;14182](https://redirect.github.com/astral-sh/uv/pull/14182))\n-
          Warn when two packages write to the same module ([#&#8203;13437](https://redirect.github.com/astral-sh/uv/pull/13437))\n\n#####
          Preview features\n\n- Add support for `package`-level conflicts in workspaces
          ([#&#8203;14906](https://redirect.github.com/astral-sh/uv/pull/14906))\n\n#####
          Configuration\n\n- Add `UV_DEV` and `UV_NO_DEV` environment variables (for
          `--dev` and `--no-dev`) ([#&#8203;15010](https://redirect.github.com/astral-sh/uv/pull/15010))\n\n#####
          Bug fixes\n\n- Fix regression where `--require-hashes` applied to build
          dependencies in `uv pip install` ([#&#8203;15153](https://redirect.github.com/astral-sh/uv/pull/15153))\n-
          Ignore GraalPy devtags ([#&#8203;15013](https://redirect.github.com/astral-sh/uv/pull/15013))\n-
          Include all site packages directories in ephemeral environment overlays
          ([#&#8203;15121](https://redirect.github.com/astral-sh/uv/pull/15121))\n-
          Search in the user scheme scripts directory last in `find_uv_bin` ([#&#8203;14191](https://redirect.github.com/astral-sh/uv/pull/14191))\n\n#####
          Documentation\n\n- Add missing periods (`.`) to list elements in `Features`
          docs page ([#&#8203;15138](https://redirect.github.com/astral-sh/uv/pull/15138))\n\n###
          [`v0.8.6`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#086)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.5...0.8.6)\n\nThis
          release contains hardening measures to address differentials in behavior
          between uv and Python's built-in ZIP parser ([CVE-2025-54368](https://redirect.github.com/astral-sh/uv/security/advisories/GHSA-8qf3-x8v5-2pj8)).\n\nPrior
          to this release, attackers could construct ZIP files that would be extracted
          differently by pip, uv, and other tools. As a result, ZIPs could be constructed
          that would be considered harmless by (e.g.) scanners, but contain a malicious
          payload when extracted by uv. As of v0.8.6, uv now applies additional checks
          to reject such ZIPs.\n\nThanks to a triage effort with the [Python Security
          Response Team](https://devguide.python.org/developer-workflow/psrt/) and
          PyPI maintainers, we were able to determine that these differentials **were
          not exploited** via PyPI during the time they were present. The PyPI team
          has also implemented similar checks and now guards against these parsing
          differentials on upload.\n\nAlthough the practical risk of exploitation
          is low, we take the *hypothetical* risk of parser differentials very seriously.
          Out of an abundance of caution, we have assigned this advisory a CVE identifier
          and have given it a \"moderate\" severity suggestion.\n\nThese changes have
          been validated against the top 15,000 PyPI packages; however, it's plausible
          that a non-malicious ZIP could be falsely rejected with this additional
          hardening. As an escape hatch, users who do encounter breaking changes can
          enable `UV_INSECURE_NO_ZIP_VALIDATION` to restore the previous behavior.
          If you encounter such a rejection, please file an issue in uv and to the
          upstream package.\n\nFor additional information, please refer to the following
          blog posts:\n\n- [Astral: uv security advisory: ZIP payload obfuscation](https://astral.sh/blog/uv-security-advisory-cve-2025-54368)\n-
          [PyPI: Preventing ZIP parser confusion attacks on Python package installers](https://blog.pypi.org/posts/2025-08-07-wheel-archive-confusion-attacks/)\n\n#####
          Security\n\n- Harden ZIP streaming to reject repeated entries and other
          malformed ZIP files ([#&#8203;15136](https://redirect.github.com/astral-sh/uv/pull/15136))\n\n#####
          Python\n\n- Add CPython 3.13.6\n\n##### Configuration\n\n- Add support for
          per-project build-time environment variables ([#&#8203;15095](https://redirect.github.com/astral-sh/uv/pull/15095))\n\n#####
          Bug fixes\n\n- Avoid invalid simplification with conflict markers  ([#&#8203;15041](https://redirect.github.com/astral-sh/uv/pull/15041))\n-
          Respect `UV_HTTP_RETRIES` in `uv publish` ([#&#8203;15106](https://redirect.github.com/astral-sh/uv/pull/15106))\n-
          Support `UV_NO_EDITABLE` where `--no-editable` is supported ([#&#8203;15107](https://redirect.github.com/astral-sh/uv/pull/15107))\n-
          Upgrade `cargo-dist` to add `UV_INSTALLER_URL` to PowerShell installer ([#&#8203;15114](https://redirect.github.com/astral-sh/uv/pull/15114))\n-
          Upgrade `h2` again to avoid `too_many_internal_resets` errors ([#&#8203;15111](https://redirect.github.com/astral-sh/uv/pull/15111))\n-
          Consider `pythonw` when copying entry points in uv run ([#&#8203;15134](https://redirect.github.com/astral-sh/uv/pull/15134))\n\n#####
          Documentation\n\n- Ensure symlink warning is shown ([#&#8203;15126](https://redirect.github.com/astral-sh/uv/pull/15126))\n\n###
          [`v0.8.5`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#085)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.4...0.8.5)\n\n#####
          Enhancements\n\n- Enable `uv run` with a GitHub Gist ([#&#8203;15058](https://redirect.github.com/astral-sh/uv/pull/15058))\n-
          Improve HTTP response caching log messages ([#&#8203;15067](https://redirect.github.com/astral-sh/uv/pull/15067))\n-
          Show wheel tag hints in install plan ([#&#8203;15066](https://redirect.github.com/astral-sh/uv/pull/15066))\n-
          Support installing additional executables in `uv tool install` ([#&#8203;14014](https://redirect.github.com/astral-sh/uv/pull/14014))\n\n#####
          Preview features\n\n- Enable extra build dependencies to 'match runtime'
          versions ([#&#8203;15036](https://redirect.github.com/astral-sh/uv/pull/15036))\n-
          Remove duplicate `extra-build-dependencies` warnings for `uv pip` ([#&#8203;15088](https://redirect.github.com/astral-sh/uv/pull/15088))\n-
          Use \"option\" instead of \"setting\" in `pylock` warning ([#&#8203;15089](https://redirect.github.com/astral-sh/uv/pull/15089))\n-
          Respect extra build requires when reading from wheel cache ([#&#8203;15030](https://redirect.github.com/astral-sh/uv/pull/15030))\n-
          Preserve lowered extra build dependencies ([#&#8203;15038](https://redirect.github.com/astral-sh/uv/pull/15038))\n\n#####
          Bug fixes\n\n- Add Python versions to markers implied from wheels ([#&#8203;14913](https://redirect.github.com/astral-sh/uv/pull/14913))\n-
          Ensure consistent indentation when adding dependencies ([#&#8203;14991](https://redirect.github.com/astral-sh/uv/pull/14991))\n-
          Fix handling of `python-preference = system` when managed interpreters are
          on the PATH ([#&#8203;15059](https://redirect.github.com/astral-sh/uv/pull/15059))\n-
          Fix symlink preservation in virtual environment creation ([#&#8203;14933](https://redirect.github.com/astral-sh/uv/pull/14933))\n-
          Gracefully handle entrypoint permission errors ([#&#8203;15026](https://redirect.github.com/astral-sh/uv/pull/15026))\n-
          Include wheel hashes from local Simple indexes ([#&#8203;14993](https://redirect.github.com/astral-sh/uv/pull/14993))\n-
          Prefer system Python installations over managed ones when `--system` is
          used ([#&#8203;15061](https://redirect.github.com/astral-sh/uv/pull/15061))\n-
          Remove retry wrapper when matching on error kind ([#&#8203;14996](https://redirect.github.com/astral-sh/uv/pull/14996))\n-
          Revert `h2` upgrade ([#&#8203;15079](https://redirect.github.com/astral-sh/uv/pull/15079))\n\n#####
          Documentation\n\n- Improve visibility of copy and line separator in dark
          mode ([#&#8203;14987](https://redirect.github.com/astral-sh/uv/pull/14987))\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/python-osism).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
        change_url: https://github.com/osism/python-osism/pull/1613
        commit_id: e4cc43b6a5cd75bb2aa88ae8a589d020de1e7ba2
        patchset: e4cc43b6a5cd75bb2aa88ae8a589d020de1e7ba2
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
        src_dir: src/github.com/osism/python-osism
        topic: null
      change: '1613'
      change_message: "chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.8.11\n\nThis
        PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|
        [ghcr.io/astral-sh/uv](https://redirect.github.com/astral-sh/uv) | final |
        patch | `0.8.4` -> `0.8.11` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/uv
        (ghcr.io/astral-sh/uv)</summary>\n\n### [`v0.8.11`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0811)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.8.10...0.8.11)\n\n#####
        Python\n\n- Add Python 3.14.0rc2\n- Update Pyodide to 0.28.1\n\n##### Enhancements\n\n-
        Add Debian 13 trixie to published Docker images ([#&#8203;15269](https://redirect.github.com/astral-sh/uv/pull/15269))\n-
        Add `extra-build-dependencies` hint for any missing module on build failure
        ([#&#8203;15252](https://redirect.github.com/astral-sh/uv/pull/15252))\n-
        Make 'v' prefix cyan in overlap warnings ([#&#8203;15259](https://redirect.github.com/astral-sh/uv/pull/15259))\n\n#####
        Bug fixes\n\n- Fix missing uv version in extended Docker image tags ([#&#8203;15263](https://redirect.github.com/astral-sh/uv/pull/15263))\n-
        Persist cache info when re-installing cached wheels ([#&#8203;15274](https://redirect.github.com/astral-sh/uv/pull/15274))\n\n#####
        Rust API\n\n- Allow passing custom `reqwest` clients to `RegistryClient` ([#&#8203;15281](https://redirect.github.com/astral-sh/uv/pull/15281))\n\n###
        [`v0.8.10`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0810)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.8.9...0.8.10)\n\n#####
        Python\n\n- Add support for installing Pyodide versions ([#&#8203;14518](https://redirect.github.com/astral-sh/uv/pull/14518))\n\n#####
        Enhancements\n\n- Allow Python requests with missing segments, e.g., just
        `aarch64` ([#&#8203;14399](https://redirect.github.com/astral-sh/uv/pull/14399))\n\n#####
        Preview\n\n- Move warnings for conflicting modules into preview ([#&#8203;15253](https://redirect.github.com/astral-sh/uv/pull/15253))\n\n###
        [`v0.8.9`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#089)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.8.8...0.8.9)\n\n#####
        Enhancements\n\n- Add `--reinstall` flag to `uv python upgrade` ([#&#8203;15194](https://redirect.github.com/astral-sh/uv/pull/15194))\n\n#####
        Bug fixes\n\n- Include build settings in cache key for registry source distribution
        lookups ([#&#8203;15225](https://redirect.github.com/astral-sh/uv/pull/15225))\n-
        Avoid creating bin links on `uv python upgrade` if they don't already exist
        ([#&#8203;15192](https://redirect.github.com/astral-sh/uv/pull/15192))\n-
        Respect system proxies on macOS and Windows ([#&#8203;15221](https://redirect.github.com/astral-sh/uv/pull/15221))\n\n#####
        Documentation\n\n- Add the 3.14 classifier ([#&#8203;15187](https://redirect.github.com/astral-sh/uv/pull/15187))\n\n###
        [`v0.8.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#088)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.8.7...0.8.8)\n\n#####
        Bug fixes\n\n- Fix `find_uv_bin` compatibility with Python <3.10 ([#&#8203;15177](https://redirect.github.com/astral-sh/uv/pull/15177))\n\n###
        [`v0.8.7`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#087)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.8.6...0.8.7)\n\n#####
        Python\n\n- On Mac/Linux, libtcl, libtk, and \\_tkinter are built as separate
        shared objects, which fixes matplotlib's `tkagg` backend (the default on Linux),
        Pillow's `PIL.ImageTk` library, and other extension modules that need to use
        libtcl/libtk directly.\n- Tix is no longer provided on Linux. This is a deprecated
        Tk extension that appears to have been previously broken.\n\nSee the [`python-build-standalone`
        release notes](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20250808)
        for details.\n\n##### Enhancements\n\n- Do not update `uv.lock` when using
        `--isolated` ([#&#8203;15154](https://redirect.github.com/astral-sh/uv/pull/15154))\n-
        Add support for `--prefix` and `--with` installations in `find_uv_bin` ([#&#8203;14184](https://redirect.github.com/astral-sh/uv/pull/14184))\n-
        Add support for discovering base prefix installations in `find_uv_bin` ([#&#8203;14181](https://redirect.github.com/astral-sh/uv/pull/14181))\n-
        Improve error messages in `find_uv_bin` ([#&#8203;14182](https://redirect.github.com/astral-sh/uv/pull/14182))\n-
        Warn when two packages write to the same module ([#&#8203;13437](https://redirect.github.com/astral-sh/uv/pull/13437))\n\n#####
        Preview features\n\n- Add support for `package`-level conflicts in workspaces
        ([#&#8203;14906](https://redirect.github.com/astral-sh/uv/pull/14906))\n\n#####
        Configuration\n\n- Add `UV_DEV` and `UV_NO_DEV` environment variables (for
        `--dev` and `--no-dev`) ([#&#8203;15010](https://redirect.github.com/astral-sh/uv/pull/15010))\n\n#####
        Bug fixes\n\n- Fix regression where `--require-hashes` applied to build dependencies
        in `uv pip install` ([#&#8203;15153](https://redirect.github.com/astral-sh/uv/pull/15153))\n-
        Ignore GraalPy devtags ([#&#8203;15013](https://redirect.github.com/astral-sh/uv/pull/15013))\n-
        Include all site packages directories in ephemeral environment overlays ([#&#8203;15121](https://redirect.github.com/astral-sh/uv/pull/15121))\n-
        Search in the user scheme scripts directory last in `find_uv_bin` ([#&#8203;14191](https://redirect.github.com/astral-sh/uv/pull/14191))\n\n#####
        Documentation\n\n- Add missing periods (`.`) to list elements in `Features`
        docs page ([#&#8203;15138](https://redirect.github.com/astral-sh/uv/pull/15138))\n\n###
        [`v0.8.6`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#086)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.8.5...0.8.6)\n\nThis
        release contains hardening measures to address differentials in behavior between
        uv and Python's built-in ZIP parser ([CVE-2025-54368](https://redirect.github.com/astral-sh/uv/security/advisories/GHSA-8qf3-x8v5-2pj8)).\n\nPrior
        to this release, attackers could construct ZIP files that would be extracted
        differently by pip, uv, and other tools. As a result, ZIPs could be constructed
        that would be considered harmless by (e.g.) scanners, but contain a malicious
        payload when extracted by uv. As of v0.8.6, uv now applies additional checks
        to reject such ZIPs.\n\nThanks to a triage effort with the [Python Security
        Response Team](https://devguide.python.org/developer-workflow/psrt/) and PyPI
        maintainers, we were able to determine that these differentials **were not
        exploited** via PyPI during the time they were present. The PyPI team has
        also implemented similar checks and now guards against these parsing differentials
        on upload.\n\nAlthough the practical risk of exploitation is low, we take
        the *hypothetical* risk of parser differentials very seriously. Out of an
        abundance of caution, we have assigned this advisory a CVE identifier and
        have given it a \"moderate\" severity suggestion.\n\nThese changes have been
        validated against the top 15,000 PyPI packages; however, it's plausible that
        a non-malicious ZIP could be falsely rejected with this additional hardening.
        As an escape hatch, users who do encounter breaking changes can enable `UV_INSECURE_NO_ZIP_VALIDATION`
        to restore the previous behavior. If you encounter such a rejection, please
        file an issue in uv and to the upstream package.\n\nFor additional information,
        please refer to the following blog posts:\n\n- [Astral: uv security advisory:
        ZIP payload obfuscation](https://astral.sh/blog/uv-security-advisory-cve-2025-54368)\n-
        [PyPI: Preventing ZIP parser confusion attacks on Python package installers](https://blog.pypi.org/posts/2025-08-07-wheel-archive-confusion-attacks/)\n\n#####
        Security\n\n- Harden ZIP streaming to reject repeated entries and other malformed
        ZIP files ([#&#8203;15136](https://redirect.github.com/astral-sh/uv/pull/15136))\n\n#####
        Python\n\n- Add CPython 3.13.6\n\n##### Configuration\n\n- Add support for
        per-project build-time environment variables ([#&#8203;15095](https://redirect.github.com/astral-sh/uv/pull/15095))\n\n#####
        Bug fixes\n\n- Avoid invalid simplification with conflict markers  ([#&#8203;15041](https://redirect.github.com/astral-sh/uv/pull/15041))\n-
        Respect `UV_HTTP_RETRIES` in `uv publish` ([#&#8203;15106](https://redirect.github.com/astral-sh/uv/pull/15106))\n-
        Support `UV_NO_EDITABLE` where `--no-editable` is supported ([#&#8203;15107](https://redirect.github.com/astral-sh/uv/pull/15107))\n-
        Upgrade `cargo-dist` to add `UV_INSTALLER_URL` to PowerShell installer ([#&#8203;15114](https://redirect.github.com/astral-sh/uv/pull/15114))\n-
        Upgrade `h2` again to avoid `too_many_internal_resets` errors ([#&#8203;15111](https://redirect.github.com/astral-sh/uv/pull/15111))\n-
        Consider `pythonw` when copying entry points in uv run ([#&#8203;15134](https://redirect.github.com/astral-sh/uv/pull/15134))\n\n#####
        Documentation\n\n- Ensure symlink warning is shown ([#&#8203;15126](https://redirect.github.com/astral-sh/uv/pull/15126))\n\n###
        [`v0.8.5`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#085)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.8.4...0.8.5)\n\n#####
        Enhancements\n\n- Enable `uv run` with a GitHub Gist ([#&#8203;15058](https://redirect.github.com/astral-sh/uv/pull/15058))\n-
        Improve HTTP response caching log messages ([#&#8203;15067](https://redirect.github.com/astral-sh/uv/pull/15067))\n-
        Show wheel tag hints in install plan ([#&#8203;15066](https://redirect.github.com/astral-sh/uv/pull/15066))\n-
        Support installing additional executables in `uv tool install` ([#&#8203;14014](https://redirect.github.com/astral-sh/uv/pull/14014))\n\n#####
        Preview features\n\n- Enable extra build dependencies to 'match runtime' versions
        ([#&#8203;15036](https://redirect.github.com/astral-sh/uv/pull/15036))\n-
        Remove duplicate `extra-build-dependencies` warnings for `uv pip` ([#&#8203;15088](https://redirect.github.com/astral-sh/uv/pull/15088))\n-
        Use \"option\" instead of \"setting\" in `pylock` warning ([#&#8203;15089](https://redirect.github.com/astral-sh/uv/pull/15089))\n-
        Respect extra build requires when reading from wheel cache ([#&#8203;15030](https://redirect.github.com/astral-sh/uv/pull/15030))\n-
        Preserve lowered extra build dependencies ([#&#8203;15038](https://redirect.github.com/astral-sh/uv/pull/15038))\n\n#####
        Bug fixes\n\n- Add Python versions to markers implied from wheels ([#&#8203;14913](https://redirect.github.com/astral-sh/uv/pull/14913))\n-
        Ensure consistent indentation when adding dependencies ([#&#8203;14991](https://redirect.github.com/astral-sh/uv/pull/14991))\n-
        Fix handling of `python-preference = system` when managed interpreters are
        on the PATH ([#&#8203;15059](https://redirect.github.com/astral-sh/uv/pull/15059))\n-
        Fix symlink preservation in virtual environment creation ([#&#8203;14933](https://redirect.github.com/astral-sh/uv/pull/14933))\n-
        Gracefully handle entrypoint permission errors ([#&#8203;15026](https://redirect.github.com/astral-sh/uv/pull/15026))\n-
        Include wheel hashes from local Simple indexes ([#&#8203;14993](https://redirect.github.com/astral-sh/uv/pull/14993))\n-
        Prefer system Python installations over managed ones when `--system` is used
        ([#&#8203;15061](https://redirect.github.com/astral-sh/uv/pull/15061))\n-
        Remove retry wrapper when matching on error kind ([#&#8203;14996](https://redirect.github.com/astral-sh/uv/pull/14996))\n-
        Revert `h2` upgrade ([#&#8203;15079](https://redirect.github.com/astral-sh/uv/pull/15079))\n\n#####
        Documentation\n\n- Improve visibility of copy and line separator in dark mode
        ([#&#8203;14987](https://redirect.github.com/astral-sh/uv/pull/14987))\n\n</details>\n\n---\n\n###
        Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time (no
        schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
        **Automerge**: Disabled by config. Please merge this manually once you are
        satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
        tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR and
        you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check
        -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR was
        generated by [Mend Renovate](https://mend.io/renovate/). View the [repository
        job log](https://developer.mend.io/github/osism/python-osism).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
      change_url: https://github.com/osism/python-osism/pull/1613
      child_jobs: []
      commit_id: e4cc43b6a5cd75bb2aa88ae8a589d020de1e7ba2
      event_id: b54179b0-795a-11f0-974d-7e408eabc913
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/9260ad7a04b04ee7bb57dff2e7336636/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/9260ad7a04b04ee7bb57dff2e7336636/work/logs
        result_data_file: /var/lib/zuul/builds/9260ad7a04b04ee7bb57dff2e7336636/work/results.json
        src_root: /var/lib/zuul/builds/9260ad7a04b04ee7bb57dff2e7336636/work/src
        work_root: /var/lib/zuul/builds/9260ad7a04b04ee7bb57dff2e7336636/work
      include_vars: []
      items:
      - branch: main
        change: '1613'
        change_message: "chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.8.11\n\nThis
          PR contains the following updates:\n\n| Package | Type | Update | Change
          |\n|---|---|---|---|\n| [ghcr.io/astral-sh/uv](https://redirect.github.com/astral-sh/uv)
          | final | patch | `0.8.4` -> `0.8.11` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/uv
          (ghcr.io/astral-sh/uv)</summary>\n\n### [`v0.8.11`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0811)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.10...0.8.11)\n\n#####
          Python\n\n- Add Python 3.14.0rc2\n- Update Pyodide to 0.28.1\n\n##### Enhancements\n\n-
          Add Debian 13 trixie to published Docker images ([#&#8203;15269](https://redirect.github.com/astral-sh/uv/pull/15269))\n-
          Add `extra-build-dependencies` hint for any missing module on build failure
          ([#&#8203;15252](https://redirect.github.com/astral-sh/uv/pull/15252))\n-
          Make 'v' prefix cyan in overlap warnings ([#&#8203;15259](https://redirect.github.com/astral-sh/uv/pull/15259))\n\n#####
          Bug fixes\n\n- Fix missing uv version in extended Docker image tags ([#&#8203;15263](https://redirect.github.com/astral-sh/uv/pull/15263))\n-
          Persist cache info when re-installing cached wheels ([#&#8203;15274](https://redirect.github.com/astral-sh/uv/pull/15274))\n\n#####
          Rust API\n\n- Allow passing custom `reqwest` clients to `RegistryClient`
          ([#&#8203;15281](https://redirect.github.com/astral-sh/uv/pull/15281))\n\n###
          [`v0.8.10`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0810)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.9...0.8.10)\n\n#####
          Python\n\n- Add support for installing Pyodide versions ([#&#8203;14518](https://redirect.github.com/astral-sh/uv/pull/14518))\n\n#####
          Enhancements\n\n- Allow Python requests with missing segments, e.g., just
          `aarch64` ([#&#8203;14399](https://redirect.github.com/astral-sh/uv/pull/14399))\n\n#####
          Preview\n\n- Move warnings for conflicting modules into preview ([#&#8203;15253](https://redirect.github.com/astral-sh/uv/pull/15253))\n\n###
          [`v0.8.9`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#089)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.8...0.8.9)\n\n#####
          Enhancements\n\n- Add `--reinstall` flag to `uv python upgrade` ([#&#8203;15194](https://redirect.github.com/astral-sh/uv/pull/15194))\n\n#####
          Bug fixes\n\n- Include build settings in cache key for registry source distribution
          lookups ([#&#8203;15225](https://redirect.github.com/astral-sh/uv/pull/15225))\n-
          Avoid creating bin links on `uv python upgrade` if they don't already exist
          ([#&#8203;15192](https://redirect.github.com/astral-sh/uv/pull/15192))\n-
          Respect system proxies on macOS and Windows ([#&#8203;15221](https://redirect.github.com/astral-sh/uv/pull/15221))\n\n#####
          Documentation\n\n- Add the 3.14 classifier ([#&#8203;15187](https://redirect.github.com/astral-sh/uv/pull/15187))\n\n###
          [`v0.8.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#088)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.7...0.8.8)\n\n#####
          Bug fixes\n\n- Fix `find_uv_bin` compatibility with Python <3.10 ([#&#8203;15177](https://redirect.github.com/astral-sh/uv/pull/15177))\n\n###
          [`v0.8.7`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#087)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.6...0.8.7)\n\n#####
          Python\n\n- On Mac/Linux, libtcl, libtk, and \\_tkinter are built as separate
          shared objects, which fixes matplotlib's `tkagg` backend (the default on
          Linux), Pillow's `PIL.ImageTk` library, and other extension modules that
          need to use libtcl/libtk directly.\n- Tix is no longer provided on Linux.
          This is a deprecated Tk extension that appears to have been previously broken.\n\nSee
          the [`python-build-standalone` release notes](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20250808)
          for details.\n\n##### Enhancements\n\n- Do not update `uv.lock` when using
          `--isolated` ([#&#8203;15154](https://redirect.github.com/astral-sh/uv/pull/15154))\n-
          Add support for `--prefix` and `--with` installations in `find_uv_bin` ([#&#8203;14184](https://redirect.github.com/astral-sh/uv/pull/14184))\n-
          Add support for discovering base prefix installations in `find_uv_bin` ([#&#8203;14181](https://redirect.github.com/astral-sh/uv/pull/14181))\n-
          Improve error messages in `find_uv_bin` ([#&#8203;14182](https://redirect.github.com/astral-sh/uv/pull/14182))\n-
          Warn when two packages write to the same module ([#&#8203;13437](https://redirect.github.com/astral-sh/uv/pull/13437))\n\n#####
          Preview features\n\n- Add support for `package`-level conflicts in workspaces
          ([#&#8203;14906](https://redirect.github.com/astral-sh/uv/pull/14906))\n\n#####
          Configuration\n\n- Add `UV_DEV` and `UV_NO_DEV` environment variables (for
          `--dev` and `--no-dev`) ([#&#8203;15010](https://redirect.github.com/astral-sh/uv/pull/15010))\n\n#####
          Bug fixes\n\n- Fix regression where `--require-hashes` applied to build
          dependencies in `uv pip install` ([#&#8203;15153](https://redirect.github.com/astral-sh/uv/pull/15153))\n-
          Ignore GraalPy devtags ([#&#8203;15013](https://redirect.github.com/astral-sh/uv/pull/15013))\n-
          Include all site packages directories in ephemeral environment overlays
          ([#&#8203;15121](https://redirect.github.com/astral-sh/uv/pull/15121))\n-
          Search in the user scheme scripts directory last in `find_uv_bin` ([#&#8203;14191](https://redirect.github.com/astral-sh/uv/pull/14191))\n\n#####
          Documentation\n\n- Add missing periods (`.`) to list elements in `Features`
          docs page ([#&#8203;15138](https://redirect.github.com/astral-sh/uv/pull/15138))\n\n###
          [`v0.8.6`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#086)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.5...0.8.6)\n\nThis
          release contains hardening measures to address differentials in behavior
          between uv and Python's built-in ZIP parser ([CVE-2025-54368](https://redirect.github.com/astral-sh/uv/security/advisories/GHSA-8qf3-x8v5-2pj8)).\n\nPrior
          to this release, attackers could construct ZIP files that would be extracted
          differently by pip, uv, and other tools. As a result, ZIPs could be constructed
          that would be considered harmless by (e.g.) scanners, but contain a malicious
          payload when extracted by uv. As of v0.8.6, uv now applies additional checks
          to reject such ZIPs.\n\nThanks to a triage effort with the [Python Security
          Response Team](https://devguide.python.org/developer-workflow/psrt/) and
          PyPI maintainers, we were able to determine that these differentials **were
          not exploited** via PyPI during the time they were present. The PyPI team
          has also implemented similar checks and now guards against these parsing
          differentials on upload.\n\nAlthough the practical risk of exploitation
          is low, we take the *hypothetical* risk of parser differentials very seriously.
          Out of an abundance of caution, we have assigned this advisory a CVE identifier
          and have given it a \"moderate\" severity suggestion.\n\nThese changes have
          been validated against the top 15,000 PyPI packages; however, it's plausible
          that a non-malicious ZIP could be falsely rejected with this additional
          hardening. As an escape hatch, users who do encounter breaking changes can
          enable `UV_INSECURE_NO_ZIP_VALIDATION` to restore the previous behavior.
          If you encounter such a rejection, please file an issue in uv and to the
          upstream package.\n\nFor additional information, please refer to the following
          blog posts:\n\n- [Astral: uv security advisory: ZIP payload obfuscation](https://astral.sh/blog/uv-security-advisory-cve-2025-54368)\n-
          [PyPI: Preventing ZIP parser confusion attacks on Python package installers](https://blog.pypi.org/posts/2025-08-07-wheel-archive-confusion-attacks/)\n\n#####
          Security\n\n- Harden ZIP streaming to reject repeated entries and other
          malformed ZIP files ([#&#8203;15136](https://redirect.github.com/astral-sh/uv/pull/15136))\n\n#####
          Python\n\n- Add CPython 3.13.6\n\n##### Configuration\n\n- Add support for
          per-project build-time environment variables ([#&#8203;15095](https://redirect.github.com/astral-sh/uv/pull/15095))\n\n#####
          Bug fixes\n\n- Avoid invalid simplification with conflict markers  ([#&#8203;15041](https://redirect.github.com/astral-sh/uv/pull/15041))\n-
          Respect `UV_HTTP_RETRIES` in `uv publish` ([#&#8203;15106](https://redirect.github.com/astral-sh/uv/pull/15106))\n-
          Support `UV_NO_EDITABLE` where `--no-editable` is supported ([#&#8203;15107](https://redirect.github.com/astral-sh/uv/pull/15107))\n-
          Upgrade `cargo-dist` to add `UV_INSTALLER_URL` to PowerShell installer ([#&#8203;15114](https://redirect.github.com/astral-sh/uv/pull/15114))\n-
          Upgrade `h2` again to avoid `too_many_internal_resets` errors ([#&#8203;15111](https://redirect.github.com/astral-sh/uv/pull/15111))\n-
          Consider `pythonw` when copying entry points in uv run ([#&#8203;15134](https://redirect.github.com/astral-sh/uv/pull/15134))\n\n#####
          Documentation\n\n- Ensure symlink warning is shown ([#&#8203;15126](https://redirect.github.com/astral-sh/uv/pull/15126))\n\n###
          [`v0.8.5`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#085)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.8.4...0.8.5)\n\n#####
          Enhancements\n\n- Enable `uv run` with a GitHub Gist ([#&#8203;15058](https://redirect.github.com/astral-sh/uv/pull/15058))\n-
          Improve HTTP response caching log messages ([#&#8203;15067](https://redirect.github.com/astral-sh/uv/pull/15067))\n-
          Show wheel tag hints in install plan ([#&#8203;15066](https://redirect.github.com/astral-sh/uv/pull/15066))\n-
          Support installing additional executables in `uv tool install` ([#&#8203;14014](https://redirect.github.com/astral-sh/uv/pull/14014))\n\n#####
          Preview features\n\n- Enable extra build dependencies to 'match runtime'
          versions ([#&#8203;15036](https://redirect.github.com/astral-sh/uv/pull/15036))\n-
          Remove duplicate `extra-build-dependencies` warnings for `uv pip` ([#&#8203;15088](https://redirect.github.com/astral-sh/uv/pull/15088))\n-
          Use \"option\" instead of \"setting\" in `pylock` warning ([#&#8203;15089](https://redirect.github.com/astral-sh/uv/pull/15089))\n-
          Respect extra build requires when reading from wheel cache ([#&#8203;15030](https://redirect.github.com/astral-sh/uv/pull/15030))\n-
          Preserve lowered extra build dependencies ([#&#8203;15038](https://redirect.github.com/astral-sh/uv/pull/15038))\n\n#####
          Bug fixes\n\n- Add Python versions to markers implied from wheels ([#&#8203;14913](https://redirect.github.com/astral-sh/uv/pull/14913))\n-
          Ensure consistent indentation when adding dependencies ([#&#8203;14991](https://redirect.github.com/astral-sh/uv/pull/14991))\n-
          Fix handling of `python-preference = system` when managed interpreters are
          on the PATH ([#&#8203;15059](https://redirect.github.com/astral-sh/uv/pull/15059))\n-
          Fix symlink preservation in virtual environment creation ([#&#8203;14933](https://redirect.github.com/astral-sh/uv/pull/14933))\n-
          Gracefully handle entrypoint permission errors ([#&#8203;15026](https://redirect.github.com/astral-sh/uv/pull/15026))\n-
          Include wheel hashes from local Simple indexes ([#&#8203;14993](https://redirect.github.com/astral-sh/uv/pull/14993))\n-
          Prefer system Python installations over managed ones when `--system` is
          used ([#&#8203;15061](https://redirect.github.com/astral-sh/uv/pull/15061))\n-
          Remove retry wrapper when matching on error kind ([#&#8203;14996](https://redirect.github.com/astral-sh/uv/pull/14996))\n-
          Revert `h2` upgrade ([#&#8203;15079](https://redirect.github.com/astral-sh/uv/pull/15079))\n\n#####
          Documentation\n\n- Improve visibility of copy and line separator in dark
          mode ([#&#8203;14987](https://redirect.github.com/astral-sh/uv/pull/14987))\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/python-osism).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
        change_url: https://github.com/osism/python-osism/pull/1613
        commit_id: e4cc43b6a5cd75bb2aa88ae8a589d020de1e7ba2
        patchset: e4cc43b6a5cd75bb2aa88ae8a589d020de1e7ba2
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
        topic: null
      job: flake8
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBnaGNyLmlvL2FzdHJhbC1zaC91diBkb2NrZXIgdGFnIHRvIHYwLjguMTEKClRoaXMgUFIgY29udGFpbnMgdGhlIGZvbGxvd2luZyB1cGRhdGVzOgoKfCBQYWNrYWdlIHwgVHlwZSB8IFVwZGF0ZSB8IENoYW5nZSB8CnwtLS18LS0tfC0tLXwtLS18CnwgW2doY3IuaW8vYXN0cmFsLXNoL3V2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2KSB8IGZpbmFsIHwgcGF0Y2ggfCBgMC44LjRgIC0+IGAwLjguMTFgIHwKCi0tLQoKIyMjIFJlbGVhc2UgTm90ZXMKCjxkZXRhaWxzPgo8c3VtbWFyeT5hc3RyYWwtc2gvdXYgKGdoY3IuaW8vYXN0cmFsLXNoL3V2KTwvc3VtbWFyeT4KCiMjIyBbYHYwLjguMTFgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjMDgxMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuOC4xMC4uLjAuOC4xMSkKCiMjIyMjIFB5dGhvbgoKLSBBZGQgUHl0aG9uIDMuMTQuMHJjMgotIFVwZGF0ZSBQeW9kaWRlIHRvIDAuMjguMQoKIyMjIyMgRW5oYW5jZW1lbnRzCgotIEFkZCBEZWJpYW4gMTMgdHJpeGllIHRvIHB1Ymxpc2hlZCBEb2NrZXIgaW1hZ2VzIChbIyYjODIwMzsxNTI2OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MjY5KSkKLSBBZGQgYGV4dHJhLWJ1aWxkLWRlcGVuZGVuY2llc2AgaGludCBmb3IgYW55IG1pc3NpbmcgbW9kdWxlIG9uIGJ1aWxkIGZhaWx1cmUgKFsjJiM4MjAzOzE1MjUyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUyNTIpKQotIE1ha2UgJ3YnIHByZWZpeCBjeWFuIGluIG92ZXJsYXAgd2FybmluZ3MgKFsjJiM4MjAzOzE1MjU5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUyNTkpKQoKIyMjIyMgQnVnIGZpeGVzCgotIEZpeCBtaXNzaW5nIHV2IHZlcnNpb24gaW4gZXh0ZW5kZWQgRG9ja2VyIGltYWdlIHRhZ3MgKFsjJiM4MjAzOzE1MjYzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUyNjMpKQotIFBlcnNpc3QgY2FjaGUgaW5mbyB3aGVuIHJlLWluc3RhbGxpbmcgY2FjaGVkIHdoZWVscyAoWyMmIzgyMDM7MTUyNzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTI3NCkpCgojIyMjIyBSdXN0IEFQSQoKLSBBbGxvdyBwYXNzaW5nIGN1c3RvbSBgcmVxd2VzdGAgY2xpZW50cyB0byBgUmVnaXN0cnlDbGllbnRgIChbIyYjODIwMzsxNTI4MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MjgxKSkKCiMjIyBbYHYwLjguMTBgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjMDgxMCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuOC45Li4uMC44LjEwKQoKIyMjIyMgUHl0aG9uCgotIEFkZCBzdXBwb3J0IGZvciBpbnN0YWxsaW5nIFB5b2RpZGUgdmVyc2lvbnMgKFsjJiM4MjAzOzE0NTE4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTQ1MTgpKQoKIyMjIyMgRW5oYW5jZW1lbnRzCgotIEFsbG93IFB5dGhvbiByZXF1ZXN0cyB3aXRoIG1pc3Npbmcgc2VnbWVudHMsIGUuZy4sIGp1c3QgYGFhcmNoNjRgIChbIyYjODIwMzsxNDM5OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE0Mzk5KSkKCiMjIyMjIFByZXZpZXcKCi0gTW92ZSB3YXJuaW5ncyBmb3IgY29uZmxpY3RpbmcgbW9kdWxlcyBpbnRvIHByZXZpZXcgKFsjJiM4MjAzOzE1MjUzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUyNTMpKQoKIyMjIFtgdjAuOC45YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzA4OSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuOC44Li4uMC44LjkpCgojIyMjIyBFbmhhbmNlbWVudHMKCi0gQWRkIGAtLXJlaW5zdGFsbGAgZmxhZyB0byBgdXYgcHl0aG9uIHVwZ3JhZGVgIChbIyYjODIwMzsxNTE5NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MTk0KSkKCiMjIyMjIEJ1ZyBmaXhlcwoKLSBJbmNsdWRlIGJ1aWxkIHNldHRpbmdzIGluIGNhY2hlIGtleSBmb3IgcmVnaXN0cnkgc291cmNlIGRpc3RyaWJ1dGlvbiBsb29rdXBzIChbIyYjODIwMzsxNTIyNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MjI1KSkKLSBBdm9pZCBjcmVhdGluZyBiaW4gbGlua3Mgb24gYHV2IHB5dGhvbiB1cGdyYWRlYCBpZiB0aGV5IGRvbid0IGFscmVhZHkgZXhpc3QgKFsjJiM4MjAzOzE1MTkyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUxOTIpKQotIFJlc3BlY3Qgc3lzdGVtIHByb3hpZXMgb24gbWFjT1MgYW5kIFdpbmRvd3MgKFsjJiM4MjAzOzE1MjIxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUyMjEpKQoKIyMjIyMgRG9jdW1lbnRhdGlvbgoKLSBBZGQgdGhlIDMuMTQgY2xhc3NpZmllciAoWyMmIzgyMDM7MTUxODddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTE4NykpCgojIyMgW2B2MC44LjhgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjMDg4KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2NvbXBhcmUvMC44LjcuLi4wLjguOCkKCiMjIyMjIEJ1ZyBmaXhlcwoKLSBGaXggYGZpbmRfdXZfYmluYCBjb21wYXRpYmlsaXR5IHdpdGggUHl0aG9uIDwzLjEwIChbIyYjODIwMzsxNTE3N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MTc3KSkKCiMjIyBbYHYwLjguN2BdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCMwODcpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvY29tcGFyZS8wLjguNi4uLjAuOC43KQoKIyMjIyMgUHl0aG9uCgotIE9uIE1hYy9MaW51eCwgbGlidGNsLCBsaWJ0aywgYW5kIFxfdGtpbnRlciBhcmUgYnVpbHQgYXMgc2VwYXJhdGUgc2hhcmVkIG9iamVjdHMsIHdoaWNoIGZpeGVzIG1hdHBsb3RsaWIncyBgdGthZ2dgIGJhY2tlbmQgKHRoZSBkZWZhdWx0IG9uIExpbnV4KSwgUGlsbG93J3MgYFBJTC5JbWFnZVRrYCBsaWJyYXJ5LCBhbmQgb3RoZXIgZXh0ZW5zaW9uIG1vZHVsZXMgdGhhdCBuZWVkIHRvIHVzZSBsaWJ0Y2wvbGlidGsgZGlyZWN0bHkuCi0gVGl4IGlzIG5vIGxvbmdlciBwcm92aWRlZCBvbiBMaW51eC4gVGhpcyBpcyBhIGRlcHJlY2F0ZWQgVGsgZXh0ZW5zaW9uIHRoYXQgYXBwZWFycyB0byBoYXZlIGJlZW4gcHJldmlvdXNseSBicm9rZW4uCgpTZWUgdGhlIFtgcHl0aG9uLWJ1aWxkLXN0YW5kYWxvbmVgIHJlbGVhc2Ugbm90ZXNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvcHl0aG9uLWJ1aWxkLXN0YW5kYWxvbmUvcmVsZWFzZXMvdGFnLzIwMjUwODA4KSBmb3IgZGV0YWlscy4KCiMjIyMjIEVuaGFuY2VtZW50cwoKLSBEbyBub3QgdXBkYXRlIGB1di5sb2NrYCB3aGVuIHVzaW5nIGAtLWlzb2xhdGVkYCAoWyMmIzgyMDM7MTUxNTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTE1NCkpCi0gQWRkIHN1cHBvcnQgZm9yIGAtLXByZWZpeGAgYW5kIGAtLXdpdGhgIGluc3RhbGxhdGlvbnMgaW4gYGZpbmRfdXZfYmluYCAoWyMmIzgyMDM7MTQxODRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNDE4NCkpCi0gQWRkIHN1cHBvcnQgZm9yIGRpc2NvdmVyaW5nIGJhc2UgcHJlZml4IGluc3RhbGxhdGlvbnMgaW4gYGZpbmRfdXZfYmluYCAoWyMmIzgyMDM7MTQxODFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNDE4MSkpCi0gSW1wcm92ZSBlcnJvciBtZXNzYWdlcyBpbiBgZmluZF91dl9iaW5gIChbIyYjODIwMzsxNDE4Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE0MTgyKSkKLSBXYXJuIHdoZW4gdHdvIHBhY2thZ2VzIHdyaXRlIHRvIHRoZSBzYW1lIG1vZHVsZSAoWyMmIzgyMDM7MTM0MzddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMzQzNykpCgojIyMjIyBQcmV2aWV3IGZlYXR1cmVzCgotIEFkZCBzdXBwb3J0IGZvciBgcGFja2FnZWAtbGV2ZWwgY29uZmxpY3RzIGluIHdvcmtzcGFjZXMgKFsjJiM4MjAzOzE0OTA2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTQ5MDYpKQoKIyMjIyMgQ29uZmlndXJhdGlvbgoKLSBBZGQgYFVWX0RFVmAgYW5kIGBVVl9OT19ERVZgIGVudmlyb25tZW50IHZhcmlhYmxlcyAoZm9yIGAtLWRldmAgYW5kIGAtLW5vLWRldmApIChbIyYjODIwMzsxNTAxMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MDEwKSkKCiMjIyMjIEJ1ZyBmaXhlcwoKLSBGaXggcmVncmVzc2lvbiB3aGVyZSBgLS1yZXF1aXJlLWhhc2hlc2AgYXBwbGllZCB0byBidWlsZCBkZXBlbmRlbmNpZXMgaW4gYHV2IHBpcCBpbnN0YWxsYCAoWyMmIzgyMDM7MTUxNTNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTE1MykpCi0gSWdub3JlIEdyYWFsUHkgZGV2dGFncyAoWyMmIzgyMDM7MTUwMTNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTAxMykpCi0gSW5jbHVkZSBhbGwgc2l0ZSBwYWNrYWdlcyBkaXJlY3RvcmllcyBpbiBlcGhlbWVyYWwgZW52aXJvbm1lbnQgb3ZlcmxheXMgKFsjJiM4MjAzOzE1MTIxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUxMjEpKQotIFNlYXJjaCBpbiB0aGUgdXNlciBzY2hlbWUgc2NyaXB0cyBkaXJlY3RvcnkgbGFzdCBpbiBgZmluZF91dl9iaW5gIChbIyYjODIwMzsxNDE5MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE0MTkxKSkKCiMjIyMjIERvY3VtZW50YXRpb24KCi0gQWRkIG1pc3NpbmcgcGVyaW9kcyAoYC5gKSB0byBsaXN0IGVsZW1lbnRzIGluIGBGZWF0dXJlc2AgZG9jcyBwYWdlIChbIyYjODIwMzsxNTEzOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MTM4KSkKCiMjIyBbYHYwLjguNmBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCMwODYpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvY29tcGFyZS8wLjguNS4uLjAuOC42KQoKVGhpcyByZWxlYXNlIGNvbnRhaW5zIGhhcmRlbmluZyBtZWFzdXJlcyB0byBhZGRyZXNzIGRpZmZlcmVudGlhbHMgaW4gYmVoYXZpb3IgYmV0d2VlbiB1diBhbmQgUHl0aG9uJ3MgYnVpbHQtaW4gWklQIHBhcnNlciAoW0NWRS0yMDI1LTU0MzY4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3NlY3VyaXR5L2Fkdmlzb3JpZXMvR0hTQS04cWYzLXg4djUtMnBqOCkpLgoKUHJpb3IgdG8gdGhpcyByZWxlYXNlLCBhdHRhY2tlcnMgY291bGQgY29uc3RydWN0IFpJUCBmaWxlcyB0aGF0IHdvdWxkIGJlIGV4dHJhY3RlZCBkaWZmZXJlbnRseSBieSBwaXAsIHV2LCBhbmQgb3RoZXIgdG9vbHMuIEFzIGEgcmVzdWx0LCBaSVBzIGNvdWxkIGJlIGNvbnN0cnVjdGVkIHRoYXQgd291bGQgYmUgY29uc2lkZXJlZCBoYXJtbGVzcyBieSAoZS5nLikgc2Nhbm5lcnMsIGJ1dCBjb250YWluIGEgbWFsaWNpb3VzIHBheWxvYWQgd2hlbiBleHRyYWN0ZWQgYnkgdXYuIEFzIG9mIHYwLjguNiwgdXYgbm93IGFwcGxpZXMgYWRkaXRpb25hbCBjaGVja3MgdG8gcmVqZWN0IHN1Y2ggWklQcy4KClRoYW5rcyB0byBhIHRyaWFnZSBlZmZvcnQgd2l0aCB0aGUgW1B5dGhvbiBTZWN1cml0eSBSZXNwb25zZSBUZWFtXShodHRwczovL2Rldmd1aWRlLnB5dGhvbi5vcmcvZGV2ZWxvcGVyLXdvcmtmbG93L3BzcnQvKSBhbmQgUHlQSSBtYWludGFpbmVycywgd2Ugd2VyZSBhYmxlIHRvIGRldGVybWluZSB0aGF0IHRoZXNlIGRpZmZlcmVudGlhbHMgKip3ZXJlIG5vdCBleHBsb2l0ZWQqKiB2aWEgUHlQSSBkdXJpbmcgdGhlIHRpbWUgdGhleSB3ZXJlIHByZXNlbnQuIFRoZSBQeVBJIHRlYW0gaGFzIGFsc28gaW1wbGVtZW50ZWQgc2ltaWxhciBjaGVja3MgYW5kIG5vdyBndWFyZHMgYWdhaW5zdCB0aGVzZSBwYXJzaW5nIGRpZmZlcmVudGlhbHMgb24gdXBsb2FkLgoKQWx0aG91Z2ggdGhlIHByYWN0aWNhbCByaXNrIG9mIGV4cGxvaXRhdGlvbiBpcyBsb3csIHdlIHRha2UgdGhlICpoeXBvdGhldGljYWwqIHJpc2sgb2YgcGFyc2VyIGRpZmZlcmVudGlhbHMgdmVyeSBzZXJpb3VzbHkuIE91dCBvZiBhbiBhYnVuZGFuY2Ugb2YgY2F1dGlvbiwgd2UgaGF2ZSBhc3NpZ25lZCB0aGlzIGFkdmlzb3J5IGEgQ1ZFIGlkZW50aWZpZXIgYW5kIGhhdmUgZ2l2ZW4gaXQgYSAibW9kZXJhdGUiIHNldmVyaXR5IHN1Z2dlc3Rpb24uCgpUaGVzZSBjaGFuZ2VzIGhhdmUgYmVlbiB2YWxpZGF0ZWQgYWdhaW5zdCB0aGUgdG9wIDE1LDAwMCBQeVBJIHBhY2thZ2VzOyBob3dldmVyLCBpdCdzIHBsYXVzaWJsZSB0aGF0IGEgbm9uLW1hbGljaW91cyBaSVAgY291bGQgYmUgZmFsc2VseSByZWplY3RlZCB3aXRoIHRoaXMgYWRkaXRpb25hbCBoYXJkZW5pbmcuIEFzIGFuIGVzY2FwZSBoYXRjaCwgdXNlcnMgd2hvIGRvIGVuY291bnRlciBicmVha2luZyBjaGFuZ2VzIGNhbiBlbmFibGUgYFVWX0lOU0VDVVJFX05PX1pJUF9WQUxJREFUSU9OYCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBiZWhhdmlvci4gSWYgeW91IGVuY291bnRlciBzdWNoIGEgcmVqZWN0aW9uLCBwbGVhc2UgZmlsZSBhbiBpc3N1ZSBpbiB1diBhbmQgdG8gdGhlIHVwc3RyZWFtIHBhY2thZ2UuCgpGb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiwgcGxlYXNlIHJlZmVyIHRvIHRoZSBmb2xsb3dpbmcgYmxvZyBwb3N0czoKCi0gW0FzdHJhbDogdXYgc2VjdXJpdHkgYWR2aXNvcnk6IFpJUCBwYXlsb2FkIG9iZnVzY2F0aW9uXShodHRwczovL2FzdHJhbC5zaC9ibG9nL3V2LXNlY3VyaXR5LWFkdmlzb3J5LWN2ZS0yMDI1LTU0MzY4KQotIFtQeVBJOiBQcmV2ZW50aW5nIFpJUCBwYXJzZXIgY29uZnVzaW9uIGF0dGFja3Mgb24gUHl0aG9uIHBhY2thZ2UgaW5zdGFsbGVyc10oaHR0cHM6Ly9ibG9nLnB5cGkub3JnL3Bvc3RzLzIwMjUtMDgtMDctd2hlZWwtYXJjaGl2ZS1jb25mdXNpb24tYXR0YWNrcy8pCgojIyMjIyBTZWN1cml0eQoKLSBIYXJkZW4gWklQIHN0cmVhbWluZyB0byByZWplY3QgcmVwZWF0ZWQgZW50cmllcyBhbmQgb3RoZXIgbWFsZm9ybWVkIFpJUCBmaWxlcyAoWyMmIzgyMDM7MTUxMzZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTEzNikpCgojIyMjIyBQeXRob24KCi0gQWRkIENQeXRob24gMy4xMy42CgojIyMjIyBDb25maWd1cmF0aW9uCgotIEFkZCBzdXBwb3J0IGZvciBwZXItcHJvamVjdCBidWlsZC10aW1lIGVudmlyb25tZW50IHZhcmlhYmxlcyAoWyMmIzgyMDM7MTUwOTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTA5NSkpCgojIyMjIyBCdWcgZml4ZXMKCi0gQXZvaWQgaW52YWxpZCBzaW1wbGlmaWNhdGlvbiB3aXRoIGNvbmZsaWN0IG1hcmtlcnMgIChbIyYjODIwMzsxNTA0MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MDQxKSkKLSBSZXNwZWN0IGBVVl9IVFRQX1JFVFJJRVNgIGluIGB1diBwdWJsaXNoYCAoWyMmIzgyMDM7MTUxMDZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTEwNikpCi0gU3VwcG9ydCBgVVZfTk9fRURJVEFCTEVgIHdoZXJlIGAtLW5vLWVkaXRhYmxlYCBpcyBzdXBwb3J0ZWQgKFsjJiM4MjAzOzE1MTA3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUxMDcpKQotIFVwZ3JhZGUgYGNhcmdvLWRpc3RgIHRvIGFkZCBgVVZfSU5TVEFMTEVSX1VSTGAgdG8gUG93ZXJTaGVsbCBpbnN0YWxsZXIgKFsjJiM4MjAzOzE1MTE0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUxMTQpKQotIFVwZ3JhZGUgYGgyYCBhZ2FpbiB0byBhdm9pZCBgdG9vX21hbnlfaW50ZXJuYWxfcmVzZXRzYCBlcnJvcnMgKFsjJiM4MjAzOzE1MTExXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUxMTEpKQotIENvbnNpZGVyIGBweXRob253YCB3aGVuIGNvcHlpbmcgZW50cnkgcG9pbnRzIGluIHV2IHJ1biAoWyMmIzgyMDM7MTUxMzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTEzNCkpCgojIyMjIyBEb2N1bWVudGF0aW9uCgotIEVuc3VyZSBzeW1saW5rIHdhcm5pbmcgaXMgc2hvd24gKFsjJiM4MjAzOzE1MTI2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUxMjYpKQoKIyMjIFtgdjAuOC41YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzA4NSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuOC40Li4uMC44LjUpCgojIyMjIyBFbmhhbmNlbWVudHMKCi0gRW5hYmxlIGB1diBydW5gIHdpdGggYSBHaXRIdWIgR2lzdCAoWyMmIzgyMDM7MTUwNThdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTA1OCkpCi0gSW1wcm92ZSBIVFRQIHJlc3BvbnNlIGNhY2hpbmcgbG9nIG1lc3NhZ2VzIChbIyYjODIwMzsxNTA2N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MDY3KSkKLSBTaG93IHdoZWVsIHRhZyBoaW50cyBpbiBpbnN0YWxsIHBsYW4gKFsjJiM4MjAzOzE1MDY2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUwNjYpKQotIFN1cHBvcnQgaW5zdGFsbGluZyBhZGRpdGlvbmFsIGV4ZWN1dGFibGVzIGluIGB1diB0b29sIGluc3RhbGxgIChbIyYjODIwMzsxNDAxNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE0MDE0KSkKCiMjIyMjIFByZXZpZXcgZmVhdHVyZXMKCi0gRW5hYmxlIGV4dHJhIGJ1aWxkIGRlcGVuZGVuY2llcyB0byAnbWF0Y2ggcnVudGltZScgdmVyc2lvbnMgKFsjJiM4MjAzOzE1MDM2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUwMzYpKQotIFJlbW92ZSBkdXBsaWNhdGUgYGV4dHJhLWJ1aWxkLWRlcGVuZGVuY2llc2Agd2FybmluZ3MgZm9yIGB1diBwaXBgIChbIyYjODIwMzsxNTA4OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MDg4KSkKLSBVc2UgIm9wdGlvbiIgaW5zdGVhZCBvZiAic2V0dGluZyIgaW4gYHB5bG9ja2Agd2FybmluZyAoWyMmIzgyMDM7MTUwODldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTA4OSkpCi0gUmVzcGVjdCBleHRyYSBidWlsZCByZXF1aXJlcyB3aGVuIHJlYWRpbmcgZnJvbSB3aGVlbCBjYWNoZSAoWyMmIzgyMDM7MTUwMzBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTAzMCkpCi0gUHJlc2VydmUgbG93ZXJlZCBleHRyYSBidWlsZCBkZXBlbmRlbmNpZXMgKFsjJiM4MjAzOzE1MDM4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTUwMzgpKQoKIyMjIyMgQnVnIGZpeGVzCgotIEFkZCBQeXRob24gdmVyc2lvbnMgdG8gbWFya2VycyBpbXBsaWVkIGZyb20gd2hlZWxzIChbIyYjODIwMzsxNDkxM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE0OTEzKSkKLSBFbnN1cmUgY29uc2lzdGVudCBpbmRlbnRhdGlvbiB3aGVuIGFkZGluZyBkZXBlbmRlbmNpZXMgKFsjJiM4MjAzOzE0OTkxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTQ5OTEpKQotIEZpeCBoYW5kbGluZyBvZiBgcHl0aG9uLXByZWZlcmVuY2UgPSBzeXN0ZW1gIHdoZW4gbWFuYWdlZCBpbnRlcnByZXRlcnMgYXJlIG9uIHRoZSBQQVRIIChbIyYjODIwMzsxNTA1OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MDU5KSkKLSBGaXggc3ltbGluayBwcmVzZXJ2YXRpb24gaW4gdmlydHVhbCBlbnZpcm9ubWVudCBjcmVhdGlvbiAoWyMmIzgyMDM7MTQ5MzNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNDkzMykpCi0gR3JhY2VmdWxseSBoYW5kbGUgZW50cnlwb2ludCBwZXJtaXNzaW9uIGVycm9ycyAoWyMmIzgyMDM7MTUwMjZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTAyNikpCi0gSW5jbHVkZSB3aGVlbCBoYXNoZXMgZnJvbSBsb2NhbCBTaW1wbGUgaW5kZXhlcyAoWyMmIzgyMDM7MTQ5OTNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNDk5MykpCi0gUHJlZmVyIHN5c3RlbSBQeXRob24gaW5zdGFsbGF0aW9ucyBvdmVyIG1hbmFnZWQgb25lcyB3aGVuIGAtLXN5c3RlbWAgaXMgdXNlZCAoWyMmIzgyMDM7MTUwNjFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNTA2MSkpCi0gUmVtb3ZlIHJldHJ5IHdyYXBwZXIgd2hlbiBtYXRjaGluZyBvbiBlcnJvciBraW5kIChbIyYjODIwMzsxNDk5Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE0OTk2KSkKLSBSZXZlcnQgYGgyYCB1cGdyYWRlIChbIyYjODIwMzsxNTA3OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE1MDc5KSkKCiMjIyMjIERvY3VtZW50YXRpb24KCi0gSW1wcm92ZSB2aXNpYmlsaXR5IG9mIGNvcHkgYW5kIGxpbmUgc2VwYXJhdG9yIGluIGRhcmsgbW9kZSAoWyMmIzgyMDM7MTQ5ODddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNDk4NykpCgo8L2RldGFpbHM+CgotLS0KCiMjIyBDb25maWd1cmF0aW9uCgrwn5OFICoqU2NoZWR1bGUqKjogQnJhbmNoIGNyZWF0aW9uIC0gQXQgYW55IHRpbWUgKG5vIHNjaGVkdWxlIGRlZmluZWQpLCBBdXRvbWVyZ2UgLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCkuCgrwn5qmICoqQXV0b21lcmdlKio6IERpc2FibGVkIGJ5IGNvbmZpZy4gUGxlYXNlIG1lcmdlIHRoaXMgbWFudWFsbHkgb25jZSB5b3UgYXJlIHNhdGlzZmllZC4KCuKZuyAqKlJlYmFzaW5nKio6IFdoZW5ldmVyIFBSIGJlY29tZXMgY29uZmxpY3RlZCwgb3IgeW91IHRpY2sgdGhlIHJlYmFzZS9yZXRyeSBjaGVja2JveC4KCvCflJUgKipJZ25vcmUqKjogQ2xvc2UgdGhpcyBQUiBhbmQgeW91IHdvbid0IGJlIHJlbWluZGVkIGFib3V0IHRoaXMgdXBkYXRlIGFnYWluLgoKLS0tCgogLSBbIF0gPCEtLSByZWJhc2UtY2hlY2sgLS0+SWYgeW91IHdhbnQgdG8gcmViYXNlL3JldHJ5IHRoaXMgUFIsIGNoZWNrIHRoaXMgYm94CgotLS0KClRoaXMgUFIgd2FzIGdlbmVyYXRlZCBieSBbTWVuZCBSZW5vdmF0ZV0oaHR0cHM6Ly9tZW5kLmlvL3Jlbm92YXRlLykuIFZpZXcgdGhlIFtyZXBvc2l0b3J5IGpvYiBsb2ddKGh0dHBzOi8vZGV2ZWxvcGVyLm1lbmQuaW8vZ2l0aHViL29zaXNtL3B5dGhvbi1vc2lzbSkuCjwhLS1yZW5vdmF0ZS1kZWJ1ZzpleUpqY21WaGRHVmtTVzVXWlhJaU9pSTBNUzQxTVM0eElpd2lkWEJrWVhSbFpFbHVWbVZ5SWpvaU5ERXVOekV1TVNJc0luUmhjbWRsZEVKeVlXNWphQ0k2SW0xaGFXNGlMQ0pzWVdKbGJITWlPbHNpY21WdWIzWmhkR1VpWFgwPS0tPgo=
      patchset: e4cc43b6a5cd75bb2aa88ae8a589d020de1e7ba2
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: caa0df55ed55158f32903d317317ac95db4da6ce
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 9b966b7c4a2bfb253652691d791f76f825145a9c
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: caa0df55ed55158f32903d317317ac95db4da6ce
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/flake8/run.yaml
          roles:
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_0/zuul-jobs
            link_target: untrusted/project_0/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_0/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_1/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_1/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_2/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_2/openinfra-zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/python-osism
        name: osism/python-osism
        short_name: python-osism
        src_dir: src/github.com/osism/python-osism
      projects:
        github.com/osism/python-osism:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          checkout: main
          checkout_description: zuul branch
          commit: 8abe21d9681e9edd619e6e6fcf0877b7e9e4092e
          name: osism/python-osism
          required: false
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
      ref: refs/pull/1613/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
