--- apiVersion: v1 items: - apiVersion: v1 data: cnibincopy.sh: |- #!/bin/bash set -e function log() { echo "$(date --iso-8601=seconds) [cnibincopy] ${1}" } DESTINATION_DIRECTORY=/host/opt/cni/bin/ # Perform validation of usage if [ -z "$RHEL8_SOURCE_DIRECTORY" ] || [ -z "$RHEL9_SOURCE_DIRECTORY" ] || [ -z "$DEFAULT_SOURCE_DIRECTORY" ]; then log "FATAL ERROR: You must set env variables: RHEL8_SOURCE_DIRECTORY, RHEL9_SOURCE_DIRECTORY, DEFAULT_SOURCE_DIRECTORY" exit 1 fi if [ ! -d "$DESTINATION_DIRECTORY" ]; then log "FATAL ERROR: Destination directory ($DESTINATION_DIRECTORY) does not exist" exit 1 fi # Collect host OS information . /host/etc/os-release rhelmajor= # detect which version we're using in order to copy the proper binaries case "${ID}" in rhcos|scos) RHEL_VERSION=$(echo "${CPE_NAME}" | cut -f 5 -d :) rhelmajor=$(echo $RHEL_VERSION | sed -E 's/([0-9]+)\.{1}[0-9]+(\.[0-9]+)?/\1/') ;; rhel|centos) rhelmajor=$(echo "${VERSION_ID}" | cut -f 1 -d .) ;; fedora) if [ "${VARIANT_ID}" == "coreos" ]; then rhelmajor=8 else log "FATAL ERROR: Unsupported Fedora variant=${VARIANT_ID}" exit 1 fi ;; *) log "FATAL ERROR: Unsupported OS ID=${ID}"; exit 1 ;; esac # Set which directory we'll copy from, detect if it exists sourcedir= founddir=false case "${rhelmajor}" in 8) if [ -d "${RHEL8_SOURCE_DIRECTORY}" ]; then sourcedir=${RHEL8_SOURCE_DIRECTORY} founddir=true fi ;; 9) if [ -d "${RHEL9_SOURCE_DIRECTORY}" ]; then sourcedir=${RHEL9_SOURCE_DIRECTORY} founddir=true fi ;; *) log "ERROR: RHEL Major Version Unsupported, rhelmajor=${rhelmajor}" ;; esac # When it doesn't exist, fall back to the original directory. if [ "$founddir" == false ]; then log "Source directory unavailable for OS version: ${rhelmajor}" sourcedir=$DEFAULT_SOURCE_DIRECTORY fi # Use a subdirectory called "upgrade" so we can atomically move fully copied files. # We now use --remove-destination after running into an issue with -f not working over symlinks UPGRADE_DIRECTORY=${DESTINATION_DIRECTORY}upgrade_$(uuidgen) rm -Rf $UPGRADE_DIRECTORY mkdir -p $UPGRADE_DIRECTORY cp -r --remove-destination ${sourcedir}* $UPGRADE_DIRECTORY if [ $? -eq 0 ]; then log "Successfully copied files in ${sourcedir} to $UPGRADE_DIRECTORY" else log "Failed to copy files in ${sourcedir} to $UPGRADE_DIRECTORY" rm -Rf $UPGRADE_DIRECTORY exit 1 fi mv -f $UPGRADE_DIRECTORY/* ${DESTINATION_DIRECTORY}/ if [ $? -eq 0 ]; then log "Successfully moved files in $UPGRADE_DIRECTORY to ${DESTINATION_DIRECTORY}" else log "Failed to move files in $UPGRADE_DIRECTORY to ${DESTINATION_DIRECTORY}" rm -Rf $UPGRADE_DIRECTORY exit 1 fi rm -Rf $UPGRADE_DIRECTORY kind: ConfigMap metadata: annotations: kubernetes.io/description: | This is a script used to copy CNI binaries based on host OS release.openshift.io/version: 4.21.27 creationTimestamp: "2026-08-05T17:13:59Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:cnibincopy.sh: {} f:metadata: f:annotations: f:kubernetes.io/description: {} f:release.openshift.io/version: {} f:ownerReferences: k:{"uid":"58ad488f-544c-4f51-999c-ffd2efb372ee"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-05T17:13:59Z" name: cni-copy-resources namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 58ad488f-544c-4f51-999c-ffd2efb372ee resourceVersion: "2627" uid: ffa32cfd-389e-4d12-b72f-4610ea818926 - apiVersion: v1 data: allowlist.conf: |- ^net.ipv4.conf.IFNAME.accept_redirects$ ^net.ipv4.conf.IFNAME.accept_source_route$ ^net.ipv4.conf.IFNAME.arp_accept$ ^net.ipv4.conf.IFNAME.arp_notify$ ^net.ipv4.conf.IFNAME.disable_policy$ ^net.ipv4.conf.IFNAME.secure_redirects$ ^net.ipv4.conf.IFNAME.send_redirects$ ^net.ipv6.conf.IFNAME.accept_ra$ ^net.ipv6.conf.IFNAME.accept_redirects$ ^net.ipv6.conf.IFNAME.accept_source_route$ ^net.ipv6.conf.IFNAME.arp_accept$ ^net.ipv6.conf.IFNAME.arp_notify$ ^net.ipv6.neigh.IFNAME.base_reachable_time_ms$ ^net.ipv6.neigh.IFNAME.retrans_time_ms$ kind: ConfigMap metadata: annotations: kubernetes.io/description: | Sysctl allowlist for nodes. release.openshift.io/version: 4.21.27 creationTimestamp: "2026-08-05T17:13:59Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:allowlist.conf: {} f:metadata: f:annotations: .: {} f:kubernetes.io/description: {} f:release.openshift.io/version: {} manager: network-operator operation: Update time: "2026-08-05T17:13:59Z" name: cni-sysctl-allowlist namespace: openshift-multus resourceVersion: "2616" uid: 4f752b6e-af34-4178-9795-99d4c569e63d - apiVersion: v1 data: allowlist.conf: |- ^net.ipv4.conf.IFNAME.accept_redirects$ ^net.ipv4.conf.IFNAME.accept_source_route$ ^net.ipv4.conf.IFNAME.arp_accept$ ^net.ipv4.conf.IFNAME.arp_notify$ ^net.ipv4.conf.IFNAME.disable_policy$ ^net.ipv4.conf.IFNAME.secure_redirects$ ^net.ipv4.conf.IFNAME.send_redirects$ ^net.ipv6.conf.IFNAME.accept_ra$ ^net.ipv6.conf.IFNAME.accept_redirects$ ^net.ipv6.conf.IFNAME.accept_source_route$ ^net.ipv6.conf.IFNAME.arp_accept$ ^net.ipv6.conf.IFNAME.arp_notify$ ^net.ipv6.neigh.IFNAME.base_reachable_time_ms$ ^net.ipv6.neigh.IFNAME.retrans_time_ms$ kind: ConfigMap metadata: annotations: kubernetes.io/description: | Sysctl allowlist for nodes. release.openshift.io/version: 4.21.27 creationTimestamp: "2026-08-05T17:13:59Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:allowlist.conf: {} f:metadata: f:annotations: f:kubernetes.io/description: {} f:release.openshift.io/version: {} f:ownerReferences: k:{"uid":"58ad488f-544c-4f51-999c-ffd2efb372ee"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-05T17:13:59Z" name: default-cni-sysctl-allowlist namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 58ad488f-544c-4f51-999c-ffd2efb372ee resourceVersion: "2614" uid: 7721a420-8198-45ed-88e1-ee4018368793 - apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIIcCEZgKGLLMMwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDgwNTE3MTA1MVoX DTM2MDgwMjE3MTA1MVowJjESMBAGA1UECxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdy b290LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvddQTG8mrmD8 xY1alkNJUuEBi4uL+b55JGvdDfui8lRPyzMtR3IgTGir2FvEA+cEpNIsMeg5l51O CjIt/DApu8nG1WjXIGhA48POjuq6QPqEcg88JXWI8WzbkFM61WpwfAOWzXAMeCYG fSsWZIZL63mYralYBARgA67ZxdGlN0XY5QcAY8uXXGLYSBrHJEWX06RjowzY/iFf JC9tU83pSnT5ehZLShCzJTj66Gh9rY8tQMHhJYKj+7aWLFpNRq031osjnHSbWh5n +fmNM4jYy6bJLIxFF6OMpPZlxse/05rxDsyJBXW4+hfIJxcLVJHpJTj1TYYdQKBZ uu7y6xMdXQIDAQABo24wbDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUwAwEB /zBJBgNVHQ4EQgRAMvASQWiPCHHVu4JlnFAv08Q8esunoF0rdX7H3Xyv8ApUx57W bltPxD7tSmGBWWzKKvwaM1Aipfgng0WmWgaXPTANBgkqhkiG9w0BAQsFAAOCAQEA EY9y0ZuG4Q+R4a1ujRCFDeMBo8sQjjcuAzMO9WY7dCc9nQ4cDUfMMeU81bNxnfKV ubDzdqAWmGuMFSZ+5UJD+Bd+lwjDdBs149YkMnZ2jag2AD17zktym1/uIHKnKCAl KnCALPeElylPhJuDKvs6jHL3oJB85gm64bf9B61zLgRJCIi3oSBLhXyeb8HKtw89 8gKzymSNLxypaqXiHp6xMXo+zULWoSjQIahIKtBlassB9T6owLNl7Efc4O2ipAbc UsgwSGoqOb1x8GBPfgTCd64NcquUAvOn1ilIB16RrS0kKk4HwVijJ0eMX8wFqfMR A5G6NA3nMVcaZd3LuLowrw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEADCCAuigAwIBAgIIOhtA7wDYu9EwDQYJKoZIhvcNAQELBQAwJjESMBAGA1UE CxMJb3BlbnNoaWZ0MRAwDgYDVQQDEwdyb290LWNhMB4XDTI2MDgwNTE3MTE0MloX DTI3MDgwNTE3MTE0MlowMDESMBAGA1UEChMJb3BlbnNoaWZ0MRowGAYDVQQDExFv cGVuc2hpZnQtaW5ncmVzczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ALsJXH1ByropAdFgubMNHCqtN+8yr859P0Fp7oQ4W/aKdK9eYP6oikvpLe9yQ/0C fj0GpG58Bhaqzz0K2wv30sLr0NdJ1h/f+qy7na5ZPpW5ki5dWBfJtl7/6C8O2Egi CgLzl+cqLZqZnAMTiclSPhryCuvUgJ0wxgx2LXMkLkMCL8mHlj16dWDTFmselGb4 Dbv83aRLHX54J6N4h9/Cym/kPYjkYcbdhmICIYsFGJujSqhu89d2Qrhh7hzgQyDz lg8ow1UjYHK97cUD53wFRnrevc+0b1eFclbNFkdh4oNNKZRzVQ0nHGUdfvwqFaEn pVr0BkN6WI59rQgRYitgMdUCAwEAAaOCASYwggEiMA4GA1UdDwEB/wQEAwIFoDAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADBJBgNV HQ4EQgRAqKDclG8QW6dg4Zdxo4b5+wIHRN4BW03Rg8OmXCxeDxi80CVz0xJppIc0 qFft3BPoyrIpwofJmtr/hbOGeUw0mzBLBgNVHSMERDBCgEAy8BJBaI8IcdW7gmWc UC/TxDx6y6egXSt1fsfdfK/wClTHntZuW0/EPu1KYYFZbMoq/BozUCKl+CeDRaZa Bpc9MEsGA1UdEQREMEKCQCouYXBwcy4xOTk3Mzc1My1kYzE3LTQ5ZTMtODNiZC1m NDk3OGM1ZmJiYWEucHJvZC5rb25mbHV4ZWFhcy5jb20wDQYJKoZIhvcNAQELBQAD ggEBAGJD0GkvbxdUVX3py28lRN7b7vlQNENfl9ytJWHMLPN4wh8d70mmFJgWXi/D 3awb/LrIjBubd3iK4cp/Es/XFiZTI7cxuLWSP+KxGLv2G3K3k4UvbtGvDTF28gGC IbU9VzHWrt+OK8nMdBkNtGiJ7A1A5kFeU99MdFRlOYkf8lSyH6Gtz/e90yN3t19F R15caWhb1YBnk2i4kj/HfgRviqdPs2x39iwfA+Ac/Cxn/9lVa+9DOmnt13Z2jGLv 0HLCHeoCqaexjC8UdWyBnVNQTzbaqbF0H0Qu1puxpss0ptofc0XAud84mtHfdcG8 eF6Bz+lL4EoNRjNcSUB7om667uI= -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: kubernetes.io/description: Contains a CA bundle that can be used to verify the kube-apiserver when using internal endpoints such as the internal service IP or kubernetes.default.svc. No other usage is guaranteed across distributions of Kubernetes clusters. creationTimestamp: "2026-08-05T17:13:56Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:ca.crt: {} f:metadata: f:annotations: .: {} f:kubernetes.io/description: {} manager: kube-controller-manager operation: Update time: "2026-08-05T17:14:55Z" name: kube-root-ca.crt namespace: openshift-multus resourceVersion: "4486" uid: 7deddaa8-f461-4f8f-99e8-727007ee2b54 - apiVersion: v1 data: daemon-config.json: | { "cniVersion": "0.3.1", "chrootDir": "/hostroot", "logToStderr": true, "logLevel": "verbose", "binDir": "/var/lib/cni/bin", "perNodeCertificate": { "enabled": true, "bootstrapKubeconfig": "/var/lib/kubelet/kubeconfig", "certDir": "/etc/cni/multus/certs", "certDuration": "24h" }, "cniConfigDir": "/host/etc/cni/net.d", "multusConfigFile": "auto", "multusAutoconfigDir": "/host/run/multus/cni/net.d", "namespaceIsolation": true, "globalNamespaces": "default,openshift-multus,openshift-sriov-network-operator,openshift-cnv", "readinessindicatorfile": "/host/run/multus/cni/net.d/10-ovn-kubernetes.conf", "daemonSocketDir": "/run/multus/socket", "socketDir": "/host/run/multus/socket", "auxiliaryCNIChainName": "vendor-cni-chain" } kind: ConfigMap metadata: creationTimestamp: "2026-08-05T17:14:00Z" labels: app: multus tier: node managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:daemon-config.json: {} f:metadata: f:labels: f:app: {} f:tier: {} f:ownerReferences: k:{"uid":"58ad488f-544c-4f51-999c-ffd2efb372ee"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-05T17:14:00Z" name: multus-daemon-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 58ad488f-544c-4f51-999c-ffd2efb372ee resourceVersion: "2704" uid: 352d4488-3c19-4cbe-a09f-a2a7993040af - apiVersion: v1 data: cabundle.crt: |- -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIf+RBrIaWsmMwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NTk1MDQyNjAe Fw0yNjA4MDUxNzIwMjZaFw0yODEwMDMxNzIwMjdaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODU5NTA0MjYwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCY3CRDeq4Cn/nC3qAOtR3fUBl5o0P0LV3w Xi109X01TAhRV3QjgSr7LEjVTEAvu+1IDGbnWv3QRwfw5KnqqWA8HwASfrnQdF2H hAn388Bt4xoDbNmHsb3vwqn/+6OmhDrPE2vWP4n/aHjwoyuQnUHzzsQ7A/lxtznv z34qmMgoo9JoQLB7l4tJYYyFe4LBqfEfd1R317wuUVmmU/RJCg+b+FR2Cdt1yaLJ obaT7Z88jhBlC9BGOumpCQ7aatNPCIIc1EVcKLBLucGGDSoFwc56sJmayaj8DXL3 URt8yTbXaBDuKyHD/tkbRs0gwadmaU5dzNoWKhw3XzFTkHptSE/DAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRWFPiO k9/XzXHOfxWIEMmouGeAMTAfBgNVHSMEGDAWgBRWFPiOk9/XzXHOfxWIEMmouGeA MTANBgkqhkiG9w0BAQsFAAOCAQEAeQuQuQeEtlFXnQuocnOq3oeohLmGEhfVaSxe WMim2+doxsHqcb+D66DQVzMDr+PJSmP32a9e6e7u5q+6PHgOvtaRabJn1aumvJu7 BuKOTtPngeT8i/SA1kwfEHsp48W/FtE5RnA0F1i0U/XDWtf7cox9vUUHItsHpxLy mTsTYal41tUKYRTVinwMK8tyZRA3IVEJYQRJABFE2dRNYVmmcdYBPlqacO1ZGSeQ 3S7inggpUe/vlbw2HY8dj5MOGdIab3zRE5tRfAzAGtrRXBZG8Ag29/vk1K5z3RwW GjIe9OhrNtm9jMr5xeWeaP+CmwEz1F80UUzeMj5Q4LD1Ww+okQ== -----END CERTIFICATE----- kind: ConfigMap metadata: creationTimestamp: "2026-08-05T17:25:51Z" labels: opendatahub.io/managed: "true" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: .: {} f:cabundle.crt: {} f:metadata: f:labels: .: {} f:opendatahub.io/managed: {} manager: manager operation: Update time: "2026-08-05T17:25:51Z" name: odh-kserve-custom-ca-bundle namespace: openshift-multus resourceVersion: "15197" uid: 04dd3c2a-5c34-4fbe-a7a5-2ed8710fc0b9 - apiVersion: v1 data: service-ca.crt: | -----BEGIN CERTIFICATE----- MIIDUTCCAjmgAwIBAgIIf+RBrIaWsmMwDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UE Awwrb3BlbnNoaWZ0LXNlcnZpY2Utc2VydmluZy1zaWduZXJAMTc4NTk1MDQyNjAe Fw0yNjA4MDUxNzIwMjZaFw0yODEwMDMxNzIwMjdaMDYxNDAyBgNVBAMMK29wZW5z aGlmdC1zZXJ2aWNlLXNlcnZpbmctc2lnbmVyQDE3ODU5NTA0MjYwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCY3CRDeq4Cn/nC3qAOtR3fUBl5o0P0LV3w Xi109X01TAhRV3QjgSr7LEjVTEAvu+1IDGbnWv3QRwfw5KnqqWA8HwASfrnQdF2H hAn388Bt4xoDbNmHsb3vwqn/+6OmhDrPE2vWP4n/aHjwoyuQnUHzzsQ7A/lxtznv z34qmMgoo9JoQLB7l4tJYYyFe4LBqfEfd1R317wuUVmmU/RJCg+b+FR2Cdt1yaLJ obaT7Z88jhBlC9BGOumpCQ7aatNPCIIc1EVcKLBLucGGDSoFwc56sJmayaj8DXL3 URt8yTbXaBDuKyHD/tkbRs0gwadmaU5dzNoWKhw3XzFTkHptSE/DAgMBAAGjYzBh MA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRWFPiO k9/XzXHOfxWIEMmouGeAMTAfBgNVHSMEGDAWgBRWFPiOk9/XzXHOfxWIEMmouGeA MTANBgkqhkiG9w0BAQsFAAOCAQEAeQuQuQeEtlFXnQuocnOq3oeohLmGEhfVaSxe WMim2+doxsHqcb+D66DQVzMDr+PJSmP32a9e6e7u5q+6PHgOvtaRabJn1aumvJu7 BuKOTtPngeT8i/SA1kwfEHsp48W/FtE5RnA0F1i0U/XDWtf7cox9vUUHItsHpxLy mTsTYal41tUKYRTVinwMK8tyZRA3IVEJYQRJABFE2dRNYVmmcdYBPlqacO1ZGSeQ 3S7inggpUe/vlbw2HY8dj5MOGdIab3zRE5tRfAzAGtrRXBZG8Ag29/vk1K5z3RwW GjIe9OhrNtm9jMr5xeWeaP+CmwEz1F80UUzeMj5Q4LD1Ww+okQ== -----END CERTIFICATE----- kind: ConfigMap metadata: annotations: service.beta.openshift.io/inject-cabundle: "true" creationTimestamp: "2026-08-05T17:13:56Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: {} f:metadata: f:annotations: .: {} f:service.beta.openshift.io/inject-cabundle: {} manager: kube-controller-manager operation: Update time: "2026-08-05T17:13:56Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:service-ca.crt: {} manager: service-ca-operator operation: Update time: "2026-08-05T17:20:41Z" name: openshift-service-ca.crt namespace: openshift-multus resourceVersion: "8235" uid: 1c93b5d0-e0f2-4819-a7a1-82fcf92c1610 - apiVersion: v1 data: whereabouts.conf: | { "datastore": "kubernetes", "kubernetes": { "kubeconfig": "/etc/kubernetes/cni/net.d/whereabouts.d/whereabouts.kubeconfig" }, "reconciler_cron_expression": "30 4 * * *", "log_level": "verbose", "configuration_path": "/etc/kubernetes/cni/net.d/whereabouts.d" } kind: ConfigMap metadata: creationTimestamp: "2026-08-05T17:14:00Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:data: f:whereabouts.conf: {} f:metadata: f:ownerReferences: k:{"uid":"58ad488f-544c-4f51-999c-ffd2efb372ee"}: {} manager: cluster-network-operator/operconfig operation: Apply time: "2026-08-05T17:14:00Z" name: whereabouts-flatfile-config namespace: openshift-multus ownerReferences: - apiVersion: operator.openshift.io/v1 blockOwnerDeletion: true controller: true kind: Network name: cluster uid: 58ad488f-544c-4f51-999c-ffd2efb372ee resourceVersion: "2642" uid: 1569af01-89f9-417e-b96a-69b9a5249465 kind: ConfigMapList metadata: resourceVersion: "78783"