From nobody Tue Dec 31 16:00:22 2024 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4YMyNl02R0z5jdpF; Tue, 31 Dec 2024 16:00:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YMyNk6Mffz423r; Tue, 31 Dec 2024 16:00:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1735660822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5p3ZYs2o9BcCaGf99VM38zZzvWovAzapJkQj4lgKksE=; b=tCrrjRG/xTCzQGklwVrjFf11jWGGvxU/njzL8oYDYfslKfiRm00B3/+n5g2Ku5aeuDxD0j 9WXJAewfCYqf4W2Qss0ySBgiJRacknDvCiO7FihvL8Me12agQfGQf/7c7jQhTmAGFhPUMq 85DAdc++3ep6iPtg7g3R8Dsql6Ccp3L25VaDYOFv45PsJQVE5lPRZ1wadknA8czCgbYw5/ IFM8py4iynLE0iDPDB1WcNfDf1W9qFfXfhUry0c0QRBFcyvXw4EERgO5Mu6ovn5BTJCFEw 5g0KO4TraUwTckcSBTT4si+tFqmZETb4DWKOwBo8UPjdgoq4Kz2RoIh2fLkQeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1735660822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5p3ZYs2o9BcCaGf99VM38zZzvWovAzapJkQj4lgKksE=; b=Xdx2W0vOlOJc2HlMC3oWKgeaZ/cIC7g9EPbaNvNJ+51UzqY80wqsu+k543RuxtcxYgAZHk rqhGnPOGopguS7Ga4tNCjo8CCQ5gVkLGNcfbgZDefsFEv77yWlYY82gzkbRWXmcMg74Yng xVZOTU8adH/KjH+oSI3i5O33Vg5ErfGb+6R23CCmehMZkFCyNgAklj4Ax4egO0H8DTVWOf yGW5Jsr7828Ky7kzgXOWqvsl8LYG0jCNfch7nXS5hF8QBmVtRe6zXPmuH9pctGQ/jsLpfB hKhv4RmQyo3uG3ymTcrBxwxiObxhDOmJ8E4ikodrKHrPMJeelqKzqdUbOJpHTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1735660822; a=rsa-sha256; cv=none; b=U/C6oMLAKr5RJbaVHN9X0pUhMHatAm8ToIdlgxMPctSlW/XSXDb7gwmUuSAg5wdsjgFwnQ nsd1DM7s4eCGqzZ3PqFj53D8UygcCWL6gJnnrriOcI/1E82j41l3DbzN6zc+dHK1CVDacr 79ZqMXBcdA9JzmCe1oJLkmnnnPBudiXptjYAnHdT99HXVfccKbZuiEDu3zhkUuoJdPR2BY Ef9mD0cwGq6HCzQInNE9AMjbnZ50nlZXzI9DQUeAWxxhlUoKjFR23cro90g6072c9+agi6 Je8M/JRBBEbBiltnkaMtc9bW+/Bb2ntsdSLqg1D+zQEmGFYf2s6gQGjly6C9fw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4YMyNk3dsJzlq2; Tue, 31 Dec 2024 16:00:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4BVG0Mf2081360; Tue, 31 Dec 2024 16:00:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4BVG0MpK081357; Tue, 31 Dec 2024 16:00:22 GMT (envelope-from git) Date: Tue, 31 Dec 2024 16:00:22 GMT Message-Id: <202412311600.4BVG0MpK081357@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Po-Chuan Hsieh Subject: git: 56fecd5ae398 - main - security/py-wassima: Add py-wassima 1.1.6 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sunpoet X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 56fecd5ae3982c3f8b0b0e691fd77c577f832ffb Auto-Submitted: auto-generated The branch main has been updated by sunpoet: URL: https://cgit.FreeBSD.org/ports/commit/?id=56fecd5ae3982c3f8b0b0e691fd77c577f832ffb commit 56fecd5ae3982c3f8b0b0e691fd77c577f832ffb Author: Po-Chuan Hsieh AuthorDate: 2024-12-31 15:38:18 +0000 Commit: Po-Chuan Hsieh CommitDate: 2024-12-31 15:38:18 +0000 security/py-wassima: Add py-wassima 1.1.6 Wassima offers you a great alternative to certifi. It is a simple yet efficient wrapper around MIT licensed rustls-native-certs. This project allows you to access your original operating system trust store, thus helping you to verify the remote peer certificates. It works as-is out-of-the-box for MacOS, Windows, and Linux. Automatically fallback on Certifi otherwise. Available on PyPy and Python 3.7+ If your particular operating system is not supported, we will make this happen! Open an issue on the repository. For now, it is not supported to call your OS certificate verify native function. Use your Python native capabilities for it. --- security/Makefile | 1 + security/py-wassima/Makefile | 23 +++++++ security/py-wassima/Makefile.crates | 42 +++++++++++++ security/py-wassima/distinfo | 87 ++++++++++++++++++++++++++ security/py-wassima/files/patch-pyproject.toml | 10 +++ security/py-wassima/pkg-descr | 14 +++++ 6 files changed, 177 insertions(+) diff --git a/security/Makefile b/security/Makefile index 17651eb2c4e1..8185a914232c 100644 --- a/security/Makefile +++ b/security/Makefile @@ -1089,6 +1089,7 @@ SUBDIR += py-volatility3 SUBDIR += py-vpn-slice SUBDIR += py-vulndb + SUBDIR += py-wassima SUBDIR += py-webauthn SUBDIR += py-xkcdpass SUBDIR += py-xmlsec diff --git a/security/py-wassima/Makefile b/security/py-wassima/Makefile new file mode 100644 index 000000000000..cc0a68c3df92 --- /dev/null +++ b/security/py-wassima/Makefile @@ -0,0 +1,23 @@ +PORTNAME= wassima +PORTVERSION= 1.1.6 +CATEGORIES= security python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= Access your OS root certificates with utmost ease +WWW= https://github.com/jawah/wassima + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}maturin>=1.7<2:devel/py-maturin@${PY_FLAVOR} + +USES= cargo python +USE_PYTHON= autoplist concurrent pep517 + +CARGO_BUILD= no +CARGO_INSTALL= no + +.include diff --git a/security/py-wassima/Makefile.crates b/security/py-wassima/Makefile.crates new file mode 100644 index 000000000000..8731b2831941 --- /dev/null +++ b/security/py-wassima/Makefile.crates @@ -0,0 +1,42 @@ +CARGO_CRATES= autocfg-1.4.0 \ + bitflags-2.6.0 \ + cc-1.2.5 \ + cfg-if-1.0.0 \ + core-foundation-0.9.4 \ + core-foundation-sys-0.8.7 \ + heck-0.5.0 \ + indoc-2.0.5 \ + libc-0.2.169 \ + memoffset-0.9.1 \ + once_cell-1.20.2 \ + openssl-probe-0.1.5 \ + portable-atomic-1.10.0 \ + proc-macro2-1.0.92 \ + pyo3-0.23.3 \ + pyo3-build-config-0.23.3 \ + pyo3-ffi-0.23.3 \ + pyo3-macros-0.23.3 \ + pyo3-macros-backend-0.23.3 \ + python3-dll-a-0.2.12 \ + quote-1.0.38 \ + rustls-native-certs-0.7.3 \ + rustls-pemfile-2.2.0 \ + rustls-pki-types-1.10.1 \ + schannel-0.1.27 \ + security-framework-2.11.1 \ + security-framework-sys-2.13.0 \ + shlex-1.3.0 \ + syn-2.0.91 \ + target-lexicon-0.12.16 \ + unicode-ident-1.0.14 \ + unindent-0.2.3 \ + windows-sys-0.59.0 \ + windows-targets-0.52.6 \ + windows_aarch64_gnullvm-0.52.6 \ + windows_aarch64_msvc-0.52.6 \ + windows_i686_gnu-0.52.6 \ + windows_i686_gnullvm-0.52.6 \ + windows_i686_msvc-0.52.6 \ + windows_x86_64_gnu-0.52.6 \ + windows_x86_64_gnullvm-0.52.6 \ + windows_x86_64_msvc-0.52.6 diff --git a/security/py-wassima/distinfo b/security/py-wassima/distinfo new file mode 100644 index 000000000000..2f8827faa1c9 --- /dev/null +++ b/security/py-wassima/distinfo @@ -0,0 +1,87 @@ +TIMESTAMP = 1735227772 +SHA256 (wassima-1.1.6.tar.gz) = 4c9e88213a5cd8fc6db56117627fb8b89499478e63e75fe07c627bf55af6501c +SIZE (wassima-1.1.6.tar.gz) = 16678 +SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 +SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de +SIZE (rust/crates/bitflags-2.6.0.crate) = 45357 +SHA256 (rust/crates/cc-1.2.5.crate) = c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e +SIZE (rust/crates/cc-1.2.5.crate) = 99839 +SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd +SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 +SHA256 (rust/crates/core-foundation-0.9.4.crate) = 91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f +SIZE (rust/crates/core-foundation-0.9.4.crate) = 27743 +SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b +SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712 +SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea +SIZE (rust/crates/heck-0.5.0.crate) = 11517 +SHA256 (rust/crates/indoc-2.0.5.crate) = b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5 +SIZE (rust/crates/indoc-2.0.5.crate) = 14396 +SHA256 (rust/crates/libc-0.2.169.crate) = b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a +SIZE (rust/crates/libc-0.2.169.crate) = 757901 +SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a +SIZE (rust/crates/memoffset-0.9.1.crate) = 9032 +SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775 +SIZE (rust/crates/once_cell-1.20.2.crate) = 33394 +SHA256 (rust/crates/openssl-probe-0.1.5.crate) = ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf +SIZE (rust/crates/openssl-probe-0.1.5.crate) = 7227 +SHA256 (rust/crates/portable-atomic-1.10.0.crate) = 280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6 +SIZE (rust/crates/portable-atomic-1.10.0.crate) = 174760 +SHA256 (rust/crates/proc-macro2-1.0.92.crate) = 37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0 +SIZE (rust/crates/proc-macro2-1.0.92.crate) = 52353 +SHA256 (rust/crates/pyo3-0.23.3.crate) = e484fd2c8b4cb67ab05a318f1fd6fa8f199fcc30819f08f07d200809dba26c15 +SIZE (rust/crates/pyo3-0.23.3.crate) = 1073838 +SHA256 (rust/crates/pyo3-build-config-0.23.3.crate) = dc0e0469a84f208e20044b98965e1561028180219e35352a2afaf2b942beff3b +SIZE (rust/crates/pyo3-build-config-0.23.3.crate) = 32509 +SHA256 (rust/crates/pyo3-ffi-0.23.3.crate) = eb1547a7f9966f6f1a0f0227564a9945fe36b90da5a93b3933fc3dc03fae372d +SIZE (rust/crates/pyo3-ffi-0.23.3.crate) = 74064 +SHA256 (rust/crates/pyo3-macros-0.23.3.crate) = fdb6da8ec6fa5cedd1626c886fc8749bdcbb09424a86461eb8cdf096b7c33257 +SIZE (rust/crates/pyo3-macros-0.23.3.crate) = 8085 +SHA256 (rust/crates/pyo3-macros-backend-0.23.3.crate) = 38a385202ff5a92791168b1136afae5059d3ac118457bb7bc304c197c2d33e7d +SIZE (rust/crates/pyo3-macros-backend-0.23.3.crate) = 70098 +SHA256 (rust/crates/python3-dll-a-0.2.12.crate) = 9b66f9171950e674e64bad3456e11bb3cca108e5c34844383cfe277f45c8a7a8 +SIZE (rust/crates/python3-dll-a-0.2.12.crate) = 83731 +SHA256 (rust/crates/quote-1.0.38.crate) = 0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc +SIZE (rust/crates/quote-1.0.38.crate) = 31252 +SHA256 (rust/crates/rustls-native-certs-0.7.3.crate) = e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5 +SIZE (rust/crates/rustls-native-certs-0.7.3.crate) = 31564 +SHA256 (rust/crates/rustls-pemfile-2.2.0.crate) = dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50 +SIZE (rust/crates/rustls-pemfile-2.2.0.crate) = 25849 +SHA256 (rust/crates/rustls-pki-types-1.10.1.crate) = d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37 +SIZE (rust/crates/rustls-pki-types-1.10.1.crate) = 58944 +SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d +SIZE (rust/crates/schannel-0.1.27.crate) = 42772 +SHA256 (rust/crates/security-framework-2.11.1.crate) = 897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02 +SIZE (rust/crates/security-framework-2.11.1.crate) = 80188 +SHA256 (rust/crates/security-framework-sys-2.13.0.crate) = 1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5 +SIZE (rust/crates/security-framework-sys-2.13.0.crate) = 20496 +SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 +SIZE (rust/crates/shlex-1.3.0.crate) = 18713 +SHA256 (rust/crates/syn-2.0.91.crate) = d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035 +SIZE (rust/crates/syn-2.0.91.crate) = 291128 +SHA256 (rust/crates/target-lexicon-0.12.16.crate) = 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1 +SIZE (rust/crates/target-lexicon-0.12.16.crate) = 26488 +SHA256 (rust/crates/unicode-ident-1.0.14.crate) = adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83 +SIZE (rust/crates/unicode-ident-1.0.14.crate) = 47547 +SHA256 (rust/crates/unindent-0.2.3.crate) = c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce +SIZE (rust/crates/unindent-0.2.3.crate) = 7306 +SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b +SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 +SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 +SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 +SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 +SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 +SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 +SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b +SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 +SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 +SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 +SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 +SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 +SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 +SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d +SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 +SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec +SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 diff --git a/security/py-wassima/files/patch-pyproject.toml b/security/py-wassima/files/patch-pyproject.toml new file mode 100644 index 000000000000..baffff565620 --- /dev/null +++ b/security/py-wassima/files/patch-pyproject.toml @@ -0,0 +1,10 @@ +--- pyproject.toml.orig 2024-12-26 06:59:54 UTC ++++ pyproject.toml +@@ -36,7 +36,6 @@ dependencies = [ + "Development Status :: 5 - Production/Stable" + ] + dependencies = [ +- "certifi; (platform_python_implementation != 'CPython' or python_full_version < '3.7.10') or (platform_system != 'Darwin' and platform_system != 'Windows' and platform_system != 'Linux') or (platform_machine != 'x86_64' and platform_machine != 's390x' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'ppc64le' and platform_machine != 'ppc64' and platform_machine != 'AMD64' and platform_machine != 'arm64' and platform_machine != 'ARM64' and platform_machine != 'i686') or (platform_python_implementation == 'PyPy' and python_version >= '3.11')", + ] + dynamic = ["version"] + diff --git a/security/py-wassima/pkg-descr b/security/py-wassima/pkg-descr new file mode 100644 index 000000000000..24191e9b2982 --- /dev/null +++ b/security/py-wassima/pkg-descr @@ -0,0 +1,14 @@ +Wassima offers you a great alternative to certifi. It is a simple yet efficient +wrapper around MIT licensed rustls-native-certs. + +This project allows you to access your original operating system trust store, +thus helping you to verify the remote peer certificates. + +It works as-is out-of-the-box for MacOS, Windows, and Linux. Automatically +fallback on Certifi otherwise. Available on PyPy and Python 3.7+ + +If your particular operating system is not supported, we will make this happen! +Open an issue on the repository. + +For now, it is not supported to call your OS certificate verify native function. +Use your Python native capabilities for it.