Streamlit

Latest version: v1.42.1

Safety actively analyzes 707299 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 16

1.40.0

<!-- Release notes generated using configuration in .github/release.yml at 1.40.0 -->

What's Changed
New Features ๐ŸŽ‰
* Adding Safari Support for st.experimental_audio_input without need of ffmpeg library by sfc-gh-nbellante in https://github.com/streamlit/streamlit/pull/9571
* allow static serving to follow symlink by link89 in https://github.com/streamlit/streamlit/pull/9147
* [feat] Add `use_container_width` to `st.image` by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9547
* Change `st.text` font and overflow styles by sfc-gh-pchiu in https://github.com/streamlit/streamlit/pull/9572
* Expose the st.pills command again by raethlein in https://github.com/streamlit/streamlit/pull/9612
* adding download button to audio_input by sfc-gh-nbellante in https://github.com/streamlit/streamlit/pull/9637
* deexperiment audio_input widget by kajarenc in https://github.com/streamlit/streamlit/pull/9654
* Feature/button group: st.segmented_control by sfc-gh-pchiu in https://github.com/streamlit/streamlit/pull/9418
* Allow adding the Streamlit logo in markdown by jrieke in https://github.com/streamlit/streamlit/pull/9670
* Replace typographical symbols in markdown by jrieke in https://github.com/streamlit/streamlit/pull/9677
* For button group commands, rename 'multiple' to 'multi' for selection_mode by raethlein in https://github.com/streamlit/streamlit/pull/9701
* Add a delay before displaying the running man icon. by sfc-gh-lwilby in https://github.com/streamlit/streamlit/pull/9732
* [feat] Localize calendar week start date in st.date_input by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9706
Bug Fixes ๐Ÿ›
* [Fix] Tooltip code block styling by mayagbarnes in https://github.com/streamlit/streamlit/pull/9529
* [fix] st.pydeck_chart selection fixes by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9552
* [Fix] Message box title colors by mayagbarnes in https://github.com/streamlit/streamlit/pull/9555
* [Fix] Tooltip visibility in `st.sidebar` & `st.dialog` by mayagbarnes in https://github.com/streamlit/streamlit/pull/9554
* [Fix] Error on invalid `st.text_area` height by mayagbarnes in https://github.com/streamlit/streamlit/pull/9561
* Re-introduce "Allow array parameters in CLI" by kmcgrady in https://github.com/streamlit/streamlit/pull/9577
* [Fix] `st.navigation` reconciles `client.showSidebarNavigation` config by mayagbarnes in https://github.com/streamlit/streamlit/pull/9589
* [Fix] Show input instructions in form when allowed and focused by sfc-gh-pchiu in https://github.com/streamlit/streamlit/pull/9576
* [Fix] MPA page layout by sfc-gh-pchiu in https://github.com/streamlit/streamlit/pull/9479
* Fix page link margin regression by lukasmasuch in https://github.com/streamlit/streamlit/pull/9625
* [Fix] Clear fragment autoreruns when changing pages by raethlein in https://github.com/streamlit/streamlit/pull/9617
* Fix clear cached class method regression by lukasmasuch in https://github.com/streamlit/streamlit/pull/9642
* Eliminate symlink requirement in component request handler by kmcgrady in https://github.com/streamlit/streamlit/pull/9588
* FIx button cursor regression by lukasmasuch in https://github.com/streamlit/streamlit/pull/9733
* Fix issue with local storage in Android webview by lukasmasuch in https://github.com/streamlit/streamlit/pull/9744
* [fix] Revamp `preferredLayouts` state for `set_page_config` and layout in User Settings by sfc-gh-pchiu in https://github.com/streamlit/streamlit/pull/9723
Other Changes

1.39.0

<!-- Release notes generated using configuration in .github/release.yml at 1.39.0 -->

What's Changed
New Features ๐ŸŽ‰
* Add icon to `st.button` by mayagbarnes in https://github.com/streamlit/streamlit/pull/9301
* Add icon to `st.download_button` by mayagbarnes in https://github.com/streamlit/streamlit/pull/9322
* Add icon to `st.form_submit_button` by mayagbarnes in https://github.com/streamlit/streamlit/pull/9327
* Add `st.logo` size options by mayagbarnes in https://github.com/streamlit/streamlit/pull/9177
* [feat] Add `icon` to `st.link_button` by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9350
* Add icon to `st.popover` by sfc-gh-pchiu in https://github.com/streamlit/streamlit/pull/9367
* Allow setting CSS class on elements via `key` by lukasmasuch in https://github.com/streamlit/streamlit/pull/9295
* Add config option to set TTL for disconnected sessions by vdonato in https://github.com/streamlit/streamlit/pull/9179
* Add .pdf to the list of safe static files by kajarenc in https://github.com/streamlit/streamlit/pull/9439
* Feature: Add `enter_to_submit` param to `st.form` by mayagbarnes in https://github.com/streamlit/streamlit/pull/9480
* Add expanded param to st.navigation by kmcgrady in https://github.com/streamlit/streamlit/pull/9484
* [feat] Add width and height to st.{map|pydeck_chart} by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9464
* [feat] Utilize new fullscreen Toolbar for st.{map|pydeck_chart} by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9501
* [feat] Selection on `st.pydeck_chart` by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9377
* st.experimental_audio_input by sfc-gh-nbellante in https://github.com/streamlit/streamlit/pull/9404
* Support hierarchical (multi-index) column headers in `st.dataframe` by lukasmasuch in https://github.com/streamlit/streamlit/pull/9483
* Prefer column config formatting over Pandas styler by lukasmasuch in https://github.com/streamlit/streamlit/pull/9538
Bug Fixes ๐Ÿ›
* [fix] Multiselect label truncation in narrow columns by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9334
* [fix] `st.{balloons|snow}` fixes when rendered in `st.dialog` by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9335
* Remove `st.logo` if stale by mayagbarnes in https://github.com/streamlit/streamlit/pull/9337
* Fix issue with re-adding deleted row in data editor with same index by lukasmasuch in https://github.com/streamlit/streamlit/pull/8864
* Fix: Margin on button icons by mayagbarnes in https://github.com/streamlit/streamlit/pull/9378
* Do not format title for MPAv2 in Sidebar nav by kmcgrady in https://github.com/streamlit/streamlit/pull/9375
* Fix dialogs not re-opening in some cases after dismiss by raethlein in https://github.com/streamlit/streamlit/pull/9333
* Fix edge case where title can be empty string by kmcgrady in https://github.com/streamlit/streamlit/pull/9374
* Update runtime.py: change testtest.com to testexample.com by wyattscarpenter in https://github.com/streamlit/streamlit/pull/9371
* Fix: Make `showSidebarNavigation` config work in MPAv2 by mayagbarnes in https://github.com/streamlit/streamlit/pull/9379
* Determine common mime types by extension by t0mdavid-m in https://github.com/streamlit/streamlit/pull/9390
* Fix bold font in header showing less weight by sfc-gh-pchiu in https://github.com/streamlit/streamlit/pull/9395
* Update page script hash on script start if necessary by kmcgrady in https://github.com/streamlit/streamlit/pull/9408
* Update overflowing pages to be more deterministic by kmcgrady in https://github.com/streamlit/streamlit/pull/9394
* Fix accidentally watching parent folder for changes by lukasmasuch in https://github.com/streamlit/streamlit/pull/9453
* Fix: Disable form submission & instructions by mayagbarnes in https://github.com/streamlit/streamlit/pull/9406
* Do not clear nodes for fragment-finished-via-rerun messages by raethlein in https://github.com/streamlit/streamlit/pull/9389
* Clear queue also for fragment-runs to prevent vanishing elements by raethlein in https://github.com/streamlit/streamlit/pull/9381
* Migrate Active Script hash to ScriptRunContext by kmcgrady in https://github.com/streamlit/streamlit/pull/9441
* Fix dataframe maximum update depth error by lukasmasuch in https://github.com/streamlit/streamlit/pull/9490
* Add warning for nested paths in url path by kmcgrady in https://github.com/streamlit/streamlit/pull/9499
* [fix] Remove unneeded margin on map components by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9506
* Redirect pages with removed trailing slashes by kmcgrady in https://github.com/streamlit/streamlit/pull/9500
* Fix `st.json` to keep container bounds by lukasmasuch in https://github.com/streamlit/streamlit/pull/9521
* [Fix] `st.multiselect` placeholder by mayagbarnes in https://github.com/streamlit/streamlit/pull/9523
* [Fix] Embedded app spacing by mayagbarnes in https://github.com/streamlit/streamlit/pull/9524
* [fix] DeckGl zoom button borders and styling by sfc-gh-bnisco in https://github.com/streamlit/streamlit/pull/9536
Other Changes
* Allow tenacity version 9.x by lukasmasuch in https://github.com/streamlit/streamlit/pull/9348
* [Fix] Logo maintains aspect ratio on width resize by mayagbarnes in https://github.com/streamlit/streamlit/pull/9368
* [Fix] Logo blink on MPA v1 page change by mayagbarnes in https://github.com/streamlit/streamlit/pull/9361
* Update watchdog so Streamlit can use version 5.X by RubenVanEldik in https://github.com/streamlit/streamlit/pull/9354
* Fix: Material icon color in buttons by mayagbarnes in https://github.com/streamlit/streamlit/pull/9393
* Adding more specific exceptions by sfc-gh-nbellante in https://github.com/streamlit/streamlit/pull/9318
* Add missing `in` operator to docstring example by pratapvardhan in https://github.com/streamlit/streamlit/pull/9413
* Update vega frontend dependencies to support new features by lukasmasuch in https://github.com/streamlit/streamlit/pull/9443
* Remove fullscreen button for `st.bokeh_chart` by lukasmasuch in https://github.com/streamlit/streamlit/pull/9528

New Contributors
* t0mdavid-m made their first contribution in https://github.com/streamlit/streamlit/pull/9390
* pratapvardhan made their first contribution in https://github.com/streamlit/streamlit/pull/9413

**Full Changelog**: https://github.com/streamlit/streamlit/compare/1.38.0...1.39.0

1.38.0

<!-- Release notes generated using configuration in .github/release.yml at 1.38.0 -->

What's Changed
Breaking Changes ๐Ÿ› 
* Remove pydantic fix in bootstrap by lukasmasuch in https://github.com/streamlit/streamlit/pull/9257
* Remove experimental cached widget replay logic by lukasmasuch in https://github.com/streamlit/streamlit/pull/9305
New Features ๐ŸŽ‰
* [RFC] Only rerun script on reconnect if a script run was interrupted by vdonato in https://github.com/streamlit/streamlit/pull/9083
* Add syntax highlighting for diff by raethlein in https://github.com/streamlit/streamlit/pull/9172
* Support `to_pandas` method to return a Pandas Series by lukasmasuch in https://github.com/streamlit/streamlit/pull/9175
* Add support for Kubernetes / directory with mounted file style secrets by sfc-gh-mochen in https://github.com/streamlit/streamlit/pull/9078
* Extend dataframe-handling support for collection-like types by lukasmasuch in https://github.com/streamlit/streamlit/pull/9205
* Add support for Snowpark Pandas Index by lukasmasuch in https://github.com/streamlit/streamlit/pull/9222
* Add data handling support for Polars by lukasmasuch in https://github.com/streamlit/streamlit/pull/9230
* Add data handling support for xarray by lukasmasuch in https://github.com/streamlit/streamlit/pull/9235
* Add data handling support for Dask by lukasmasuch in https://github.com/streamlit/streamlit/pull/9240
* Add data handling support for Ray by lukasmasuch in https://github.com/streamlit/streamlit/pull/9256
* Type-hint improvements for 8717 and 7801 by Asaurus1 in https://github.com/streamlit/streamlit/pull/9048
* Allow configurable expansion depth for `st.json` by lukasmasuch in https://github.com/streamlit/streamlit/pull/8984
* Add data handling support for DB API 2.0 by lukasmasuch in https://github.com/streamlit/streamlit/pull/9274
* Add data handling support for Pydantic instances by lukasmasuch in https://github.com/streamlit/streamlit/pull/9290
* Add support for dataframe interchange protocol by lukasmasuch in https://github.com/streamlit/streamlit/pull/9289
* Add line wrapping to st code by sfc-gh-tteixeira in https://github.com/streamlit/streamlit/pull/8558
Bug Fixes ๐Ÿ›
* Make the magic support for-else, while-else, try-else, try-except*, and match by whitphx in https://github.com/streamlit/streamlit/pull/9110
* Fix copy-buttons in dialogs by raethlein in https://github.com/streamlit/streamlit/pull/9130
* Support theming in embed better by kmcgrady in https://github.com/streamlit/streamlit/pull/9103
* Fix 8638 by kajarenc in https://github.com/streamlit/streamlit/pull/9101
* Bugfix: Multiple Stale Maps by sfc-gh-nbellante in https://github.com/streamlit/streamlit/pull/9092
* Bugfix: Upgrade plotly.js to resolve hover tooltip bug by sfc-gh-nbellante in https://github.com/streamlit/streamlit/pull/9144
* Make ScriptControlException inherit from BaseException again by raethlein in https://github.com/streamlit/streamlit/pull/9167
* Print deprecation warnings when dialog/fragment functions are called by vdonato in https://github.com/streamlit/streamlit/pull/9170
* Revert "Remove fragment_ids_this_run from script run context (8953)" and tweaks some types by vdonato in https://github.com/streamlit/streamlit/pull/9178
* Allow adding Plotly toolbar buttons by lukasmasuch in https://github.com/streamlit/streamlit/pull/9190
* Ignore all headings in markdown labels by lukasmasuch in https://github.com/streamlit/streamlit/pull/9189
* Don't raise FragmentStorageKeyError for auto_rerun fragments by raethlein in https://github.com/streamlit/streamlit/pull/9183
* Fix ghost tabs issue in fragments by raethlein in https://github.com/streamlit/streamlit/pull/9186
* Fix empty anchor scrolling by lukasmasuch in https://github.com/streamlit/streamlit/pull/9206
* Only clear up fragment-related stale widgets by raethlein in https://github.com/streamlit/streamlit/pull/9215
* Fix issue with empty Azure OpenAI chunk by lukasmasuch in https://github.com/streamlit/streamlit/pull/9234
* Fix grey-out for selectbox index columns by lukasmasuch in https://github.com/streamlit/streamlit/pull/9231
* Fix options support for `dict.items()` by lukasmasuch in https://github.com/streamlit/streamlit/pull/9241
* When clearing forward queue add a stopped for rerun message by dannyopts in https://github.com/streamlit/streamlit/pull/9187
* Do not preserve children of a block if the block type changes by kmcgrady in https://github.com/streamlit/streamlit/pull/9276
* Unstale just updated fragments by raethlein in https://github.com/streamlit/streamlit/pull/9285
* Fix logo + sidebar sizing interaction by mayagbarnes in https://github.com/streamlit/streamlit/pull/9298
Other Changes
* Print bottom container always at the end of the app content by raethlein in https://github.com/streamlit/streamlit/pull/9129
* Remove a type ignore by wyattscarpenter in https://github.com/streamlit/streamlit/pull/9149
* Use material icons in streamlit hello page nav and favicons by snehankekre in https://github.com/streamlit/streamlit/pull/9225
* Fix nested fragment stale elements by raethlein in https://github.com/streamlit/streamlit/pull/9246
* Use overloads to make the return types of st.feedback more precise. (with type tests) by wyattscarpenter in https://github.com/streamlit/streamlit/pull/9216

New Contributors
* wyattscarpenter made their first contribution in https://github.com/streamlit/streamlit/pull/9149
* sfc-gh-mochen made their first contribution in https://github.com/streamlit/streamlit/pull/9078
* dannyopts made their first contribution in https://github.com/streamlit/streamlit/pull/9187

**Full Changelog**: https://github.com/streamlit/streamlit/compare/1.37.1...1.38.0

1.37.1

<!-- Release notes generated using configuration in .github/release.yml at 1.37.1 -->



**Full Changelog**: https://github.com/streamlit/streamlit/compare/1.37.0...1.37.1

1.37.0

<!-- Release notes generated using configuration in .github/release.yml at 1.37.0 -->

What's Changed
New Features ๐ŸŽ‰
* Stacking options - `st.bar_chart` by mayagbarnes in https://github.com/streamlit/streamlit/pull/8945
* Support `graphviz.sources.Source` object for `st.graphviz_chart` by sfc-gh-kbregula in https://github.com/streamlit/streamlit/pull/8993
* Add support for material icons in markdown by LukasMasuch in https://github.com/streamlit/streamlit/pull/8889
* Fix lag when closing dialog by raethlein in https://github.com/streamlit/streamlit/pull/9023
* Stacking options - `st.area_chart` by mayagbarnes in https://github.com/streamlit/streamlit/pull/8992
* Add feedback widget by raethlein in https://github.com/streamlit/streamlit/pull/8915
* READ only headers and cookies by kajarenc in https://github.com/streamlit/streamlit/pull/8976
* De-experimentalize st.fragment by vdonato in https://github.com/streamlit/streamlit/pull/9019
* De-experimentalize st.dialog by raethlein in https://github.com/streamlit/streamlit/pull/9020
Bug Fixes ๐Ÿ›
* Show fragment errors in fragment-path for main app runs by raethlein in https://github.com/streamlit/streamlit/pull/8868
* Fix st.rerun fragment thread reuse issue by raethlein in https://github.com/streamlit/streamlit/pull/8798
* Support non-unix style paths for MPA loading by kmcgrady in https://github.com/streamlit/streamlit/pull/8988
* Set theme hash properly on load if a custom theme is active to start by kmcgrady in https://github.com/streamlit/streamlit/pull/8989
* Don't remove session refs on fragment runs by vdonato in https://github.com/streamlit/streamlit/pull/9010
* Improvements to NumberInput formatting by sfc-gh-nbellante in https://github.com/streamlit/streamlit/pull/9035
* Hide all Particles upon printing by sfc-gh-nbellante in https://github.com/streamlit/streamlit/pull/9053
* Fix: MPA support of custom themes by mayagbarnes in https://github.com/streamlit/streamlit/pull/8994
* `st.switch_page` clears non-embed query params by mayagbarnes in https://github.com/streamlit/streamlit/pull/9059
* Fix secrets.toml Windows Path Bug by sfc-gh-nbellante in https://github.com/streamlit/streamlit/pull/9061
* Bugfix: Fixes two st.map width bugs by sfc-gh-nbellante in https://github.com/streamlit/streamlit/pull/9070
* Validate the path using Tornado before performing checks by kmcgrady in https://github.com/streamlit/streamlit/pull/8990
* Reset ctx.current_fragment_id to last ID instead of None by vdonato in https://github.com/streamlit/streamlit/pull/9114
Other Changes
* Update emojis used for validation by LukasMasuch in https://github.com/streamlit/streamlit/pull/8923
* Add support for numpy 2.x by LukasMasuch in https://github.com/streamlit/streamlit/pull/8940
* Remove a bunch of deprecated experimental features by vdonato in https://github.com/streamlit/streamlit/pull/8943
* Migrate custom icons from material outlined to rounded by LukasMasuch in https://github.com/streamlit/streamlit/pull/8998
* Remove old config options - part 1 by mayagbarnes in https://github.com/streamlit/streamlit/pull/9005
* Remove old config options - part 2 by mayagbarnes in https://github.com/streamlit/streamlit/pull/9013
* Remove `deprecation.showPyplotGlobalUse` config option by LukasMasuch in https://github.com/streamlit/streamlit/pull/9018
* Fix broken `st.navigation` docstring by mahotd in https://github.com/streamlit/streamlit/pull/9027
* Update the feedback widget design by raethlein in https://github.com/streamlit/streamlit/pull/9094

New Contributors
* Dev-iL made their first contribution in https://github.com/streamlit/streamlit/pull/8947
* quant12345 made their first contribution in https://github.com/streamlit/streamlit/pull/8968
* mahotd made their first contribution in https://github.com/streamlit/streamlit/pull/9027

**Full Changelog**: https://github.com/streamlit/streamlit/compare/1.36.0...1.37.0

1.36.0

<!-- Release notes generated using configuration in .github/release.yml at 1.36.0 -->

What's Changed
Breaking Changes ๐Ÿ› 
* Remove legacy caching logic by LukasMasuch in https://github.com/streamlit/streamlit/pull/8737
* Deprecate the `experimental_allow_widgets` caching parameter by LukasMasuch in https://github.com/streamlit/streamlit/pull/8817
New Features ๐ŸŽ‰
* Allow passing on_change_callback for CustomComponents by raethlein in https://github.com/streamlit/streamlit/pull/8633
* Use raw number for number column overlay and copy by LukasMasuch in https://github.com/streamlit/streamlit/pull/8708
* Introduce st.navigation and st.Page by kmcgrady in https://github.com/streamlit/streamlit/pull/8744
* Make st.write call st.json to display Streamlit secrets object by snehankekre in https://github.com/streamlit/streamlit/pull/8659
* Streamlit Charts: Customizable Axis Labels by mayagbarnes in https://github.com/streamlit/streamlit/pull/8846
* Add vertical alignment parameter to `st.columns` by LukasMasuch in https://github.com/streamlit/streamlit/pull/8568
* Add `icon` parameter to st.expander by snehankekre in https://github.com/streamlit/streamlit/pull/8716
* Use the default widget height for non-stacked checkbox & toggle widgets by LukasMasuch in https://github.com/streamlit/streamlit/pull/8835
* Horizontal `st.bar_chart` by mayagbarnes in https://github.com/streamlit/streamlit/pull/8877
Bug Fixes ๐Ÿ›
* Remove non-existent kwargs in ast.Call() call by JelleZijlstra in https://github.com/streamlit/streamlit/pull/8711
* Don't instantiate the LocalSourcesWatcher if file watching is disabled by vdonato in https://github.com/streamlit/streamlit/pull/8741
* Make the session state writes disallowed message more generic by LukasMasuch in https://github.com/streamlit/streamlit/pull/8720
* Ensure SessionInfo is set before performing an action by kmcgrady in https://github.com/streamlit/streamlit/pull/8779
* Unify the minimum height of most element by LukasMasuch in https://github.com/streamlit/streamlit/pull/8797
* Don't allow writing widgets outside the fragment by raethlein in https://github.com/streamlit/streamlit/pull/8756
* Fix element replay regression for plotly charts by LukasMasuch in https://github.com/streamlit/streamlit/pull/8770
* Improve exception text when selectbox index larger than options by LukasMasuch in https://github.com/streamlit/streamlit/pull/8775
* Prevent images in markdown to go beyond the container width by LukasMasuch in https://github.com/streamlit/streamlit/pull/8794
* Ensure current page script hash and active script hash is correct at script start by kmcgrady in https://github.com/streamlit/streamlit/pull/8830
* Revert "Handle Altair resolve_scale (8497)" by kmcgrady in https://github.com/streamlit/streamlit/pull/8845
* Update custom-components import paths and tests by raethlein in https://github.com/streamlit/streamlit/pull/8666
* Raise exception if st.Page is given an invalid path by vdonato in https://github.com/streamlit/streamlit/pull/8878
Other Changes
* Explicitly export experimental_dialog by raethlein in https://github.com/streamlit/streamlit/pull/8728
* Remove default value for title of dialog_decorator by raethlein in https://github.com/streamlit/streamlit/pull/8729
* Docstrings for 1.35.0 (and type consistency for charts) by sfc-gh-dmatthews in https://github.com/streamlit/streamlit/pull/8740
* Migrate streamlit hello to MPAv2 by kmcgrady in https://github.com/streamlit/streamlit/pull/8806
* Fix `use_container_width` docstring when default is `True` by LukasMasuch in https://github.com/streamlit/streamlit/pull/8809
* Allow protobuf v5 as dependency by LukasMasuch in https://github.com/streamlit/streamlit/pull/8627
* Fix: Remove title appending ยท Streamlit by mayagbarnes in https://github.com/streamlit/streamlit/pull/8900

New Contributors
* JelleZijlstra made their first contribution in https://github.com/streamlit/streamlit/pull/8711

**Full Changelog**: https://github.com/streamlit/streamlit/compare/1.35.0...1.36.0

Page 2 of 16

ยฉ 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.