/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP

// Prevent multiple inclusion
#pragma once

#include <app/util/privilege-storage.h>

// Prevent changing generated format
// clang-format off

////////////////////////////////////////////////////////////////////////////////

// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
    /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
    /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
    0x0000001F, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
    0x0000001F, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
    /* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
    /* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \
    /* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \
    /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \
    /* Cluster: Basic Information, Attribute: Location, Privilege: view */ \
    /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \
    /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
    0x00000031, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
    0x00000031, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
    /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
    0x00000031, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
    0x00000031, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
    0x00000031, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
    0x0000003E, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
    /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
    /* Cluster: User Label, Attribute: LabelList, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: Language, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: view */ \
    /* Cluster: Window Covering, Attribute: Mode, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: SystemMode, Privilege: view */ \
    /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: view */ \
    /* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: view */ \
    /* Cluster: Color Control, Attribute: WhitePointX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: WhitePointY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointRX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointRY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointGX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointGY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointBX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointBY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: view */ \
    /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \
}

// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
    /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
    /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
    0x00000000, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
    0x00000001, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
    /* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
    /* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \
    /* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \
    /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \
    /* Cluster: Basic Information, Attribute: Location, Privilege: view */ \
    /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \
    /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
    0x00000000, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
    0x00000001, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
    /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
    0x00000005, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
    0x00000006, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
    0x00000007, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
    0x00000000, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
    /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
    /* Cluster: User Label, Attribute: LabelList, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: Language, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: view */ \
    /* Cluster: Window Covering, Attribute: Mode, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: SystemMode, Privilege: view */ \
    /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: view */ \
    /* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: view */ \
    /* Cluster: Color Control, Attribute: WhitePointX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: WhitePointY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointRX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointRY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointGX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointGY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointBX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointBY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: view */ \
    /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \
}

// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
    /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
    /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
    /* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \
    /* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \
    /* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \
    /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \
    /* Cluster: Basic Information, Attribute: Location, Privilege: view */ \
    /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \
    /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
    /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
    /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
    /* Cluster: User Label, Attribute: LabelList, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: Language, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: view */ \
    /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: view */ \
    /* Cluster: Window Covering, Attribute: Mode, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: view */ \
    /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: view */ \
    /* Cluster: Thermostat, Attribute: SystemMode, Privilege: view */ \
    /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: view */ \
    /* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: view */ \
    /* Cluster: Color Control, Attribute: WhitePointX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: WhitePointY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointRX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointRY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointGX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointGY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointBX, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointBY, Privilege: view */ \
    /* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: view */ \
    /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \
}

////////////////////////////////////////////////////////////////////////////////

// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
    0x00000006, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
    0x00000008, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
    0x0000001F, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
    0x0000001F, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
    0x00000028, /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: manage */ \
    0x00000028, /* Cluster: Basic Information, Attribute: Location, Privilege: administer */ \
    0x00000028, /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: manage */ \
    0x00000030, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \
    0x00000031, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
    0x0000003F, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
    0x00000041, /* Cluster: User Label, Attribute: LabelList, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \
    0x00000101, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \
    0x00000102, /* Cluster: Window Covering, Attribute: Mode, Privilege: manage */ \
    0x00000200, /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: manage */ \
    0x00000200, /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: manage */ \
    0x00000200, /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: manage */ \
    0x00000200, /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: manage */ \
    0x00000201, /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: manage */ \
    0x00000201, /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: manage */ \
    0x00000201, /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: manage */ \
    0x00000201, /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: manage */ \
    0x00000201, /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: manage */ \
    0x00000201, /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: manage */ \
    0x00000201, /* Cluster: Thermostat, Attribute: SystemMode, Privilege: manage */ \
    0x00000204, /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: manage */ \
    0x00000204, /* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: WhitePointX, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: WhitePointY, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: ColorPointRX, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: ColorPointRY, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: ColorPointGX, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: ColorPointGY, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: ColorPointBX, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: ColorPointBY, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: manage */ \
    0x00000300, /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: manage */ \
}

// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
    0x00004003, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
    0x00004000, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
    0x00000000, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
    0x00000001, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
    0x00000005, /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: manage */ \
    0x00000006, /* Cluster: Basic Information, Attribute: Location, Privilege: administer */ \
    0x00000010, /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: manage */ \
    0x00000000, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \
    0x00000004, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
    0x00000000, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
    0x00000000, /* Cluster: User Label, Attribute: LabelList, Privilege: manage */ \
    0x00000004, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \
    0x00000005, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \
    0x00000006, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \
    0x00000021, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \
    0x00000023, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \
    0x00000024, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \
    0x00000025, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \
    0x00000029, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \
    0x0000002A, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \
    0x0000002B, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \
    0x00000030, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \
    0x00000031, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \
    0x00000033, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \
    0x00000017, /* Cluster: Window Covering, Attribute: Mode, Privilege: manage */ \
    0x00000015, /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: manage */ \
    0x00000017, /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: manage */ \
    0x00000020, /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: manage */ \
    0x00000021, /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: manage */ \
    0x00000015, /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: manage */ \
    0x00000016, /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: manage */ \
    0x00000017, /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: manage */ \
    0x00000018, /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: manage */ \
    0x00000019, /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: manage */ \
    0x0000001B, /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: manage */ \
    0x0000001C, /* Cluster: Thermostat, Attribute: SystemMode, Privilege: manage */ \
    0x00000001, /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: manage */ \
    0x00000002, /* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: manage */ \
    0x00000030, /* Cluster: Color Control, Attribute: WhitePointX, Privilege: manage */ \
    0x00000031, /* Cluster: Color Control, Attribute: WhitePointY, Privilege: manage */ \
    0x00000032, /* Cluster: Color Control, Attribute: ColorPointRX, Privilege: manage */ \
    0x00000033, /* Cluster: Color Control, Attribute: ColorPointRY, Privilege: manage */ \
    0x00000034, /* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: manage */ \
    0x00000036, /* Cluster: Color Control, Attribute: ColorPointGX, Privilege: manage */ \
    0x00000037, /* Cluster: Color Control, Attribute: ColorPointGY, Privilege: manage */ \
    0x00000038, /* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: manage */ \
    0x0000003A, /* Cluster: Color Control, Attribute: ColorPointBX, Privilege: manage */ \
    0x0000003B, /* Cluster: Color Control, Attribute: ColorPointBY, Privilege: manage */ \
    0x0000003C, /* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: manage */ \
    0x00004010, /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: manage */ \
}

// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
    kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
    kMatterAccessPrivilegeManage, /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: manage */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Basic Information, Attribute: Location, Privilege: administer */ \
    kMatterAccessPrivilegeManage, /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: manage */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
    kMatterAccessPrivilegeManage, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: User Label, Attribute: LabelList, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \
    kMatterAccessPrivilegeManage, /* Cluster: Window Covering, Attribute: Mode, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Thermostat, Attribute: SystemMode, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: WhitePointX, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: WhitePointY, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: ColorPointRX, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: ColorPointRY, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: ColorPointGX, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: ColorPointGY, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: ColorPointBX, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: ColorPointBY, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: manage */ \
}

////////////////////////////////////////////////////////////////////////////////

// Parallel array data (*cluster*, command, privilege) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__CLUSTER { \
    0x00000003, /* Cluster: Identify, Command: Identify, Privilege: manage */ \
    0x00000003, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \
    0x00000004, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \
    0x00000004, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
    0x00000004, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
    0x00000004, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
    0x00000005, /* Cluster: Scenes, Command: AddScene, Privilege: manage */ \
    0x00000005, /* Cluster: Scenes, Command: RemoveScene, Privilege: manage */ \
    0x00000005, /* Cluster: Scenes, Command: RemoveAllScenes, Privilege: manage */ \
    0x00000005, /* Cluster: Scenes, Command: StoreScene, Privilege: manage */ \
    0x00000030, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
    0x00000030, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
    0x00000030, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
    0x00000031, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
    0x00000031, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
    0x00000031, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
    0x00000031, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
    0x00000031, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
    0x00000031, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
    0x00000033, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \
    0x0000003C, /* Cluster: Administrator Commissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
    0x0000003C, /* Cluster: Administrator Commissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
    0x0000003C, /* Cluster: Administrator Commissioning, Command: RevokeCommissioning, Privilege: administer */ \
    0x0000003E, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \
    0x0000003E, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \
    0x0000003E, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \
    0x0000003E, /* Cluster: Operational Credentials, Command: AddNOC, Privilege: administer */ \
    0x0000003E, /* Cluster: Operational Credentials, Command: UpdateNOC, Privilege: administer */ \
    0x0000003E, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \
    0x0000003E, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \
    0x0000003E, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \
    0x0000003F, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
    0x0000003F, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
    0x0000003F, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
    0x0000003F, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: SetWeekDaySchedule, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: GetWeekDaySchedule, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: SetYearDaySchedule, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: GetYearDaySchedule, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: SetUser, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: GetUser, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: ClearUser, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: SetCredential, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: GetCredentialStatus, Privilege: administer */ \
    0x00000101, /* Cluster: Door Lock, Command: ClearCredential, Privilege: administer */ \
    0xFFF1FC06, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
    0xFFF1FC06, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
}

// Parallel array data (cluster, *command*, privilege) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__COMMAND { \
    0x00000000, /* Cluster: Identify, Command: Identify, Privilege: manage */ \
    0x00000040, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \
    0x00000000, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \
    0x00000003, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
    0x00000004, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
    0x00000005, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
    0x00000000, /* Cluster: Scenes, Command: AddScene, Privilege: manage */ \
    0x00000002, /* Cluster: Scenes, Command: RemoveScene, Privilege: manage */ \
    0x00000003, /* Cluster: Scenes, Command: RemoveAllScenes, Privilege: manage */ \
    0x00000004, /* Cluster: Scenes, Command: StoreScene, Privilege: manage */ \
    0x00000000, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
    0x00000002, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
    0x00000004, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
    0x00000000, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
    0x00000002, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
    0x00000003, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
    0x00000004, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
    0x00000006, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
    0x00000008, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
    0x00000000, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \
    0x00000000, /* Cluster: Administrator Commissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
    0x00000001, /* Cluster: Administrator Commissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
    0x00000002, /* Cluster: Administrator Commissioning, Command: RevokeCommissioning, Privilege: administer */ \
    0x00000000, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \
    0x00000002, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \
    0x00000004, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \
    0x00000006, /* Cluster: Operational Credentials, Command: AddNOC, Privilege: administer */ \
    0x00000007, /* Cluster: Operational Credentials, Command: UpdateNOC, Privilege: administer */ \
    0x00000009, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \
    0x0000000A, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \
    0x0000000B, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \
    0x00000000, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
    0x00000001, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
    0x00000003, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
    0x00000004, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
    0x0000000B, /* Cluster: Door Lock, Command: SetWeekDaySchedule, Privilege: administer */ \
    0x0000000C, /* Cluster: Door Lock, Command: GetWeekDaySchedule, Privilege: administer */ \
    0x0000000D, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
    0x0000000E, /* Cluster: Door Lock, Command: SetYearDaySchedule, Privilege: administer */ \
    0x0000000F, /* Cluster: Door Lock, Command: GetYearDaySchedule, Privilege: administer */ \
    0x0000001A, /* Cluster: Door Lock, Command: SetUser, Privilege: administer */ \
    0x0000001B, /* Cluster: Door Lock, Command: GetUser, Privilege: administer */ \
    0x0000001D, /* Cluster: Door Lock, Command: ClearUser, Privilege: administer */ \
    0x00000022, /* Cluster: Door Lock, Command: SetCredential, Privilege: administer */ \
    0x00000024, /* Cluster: Door Lock, Command: GetCredentialStatus, Privilege: administer */ \
    0x00000026, /* Cluster: Door Lock, Command: ClearCredential, Privilege: administer */ \
    0x00000000, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
    0x00000001, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
}

// Parallel array data (cluster, command, *privilege*) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__PRIVILEGE { \
    kMatterAccessPrivilegeManage, /* Cluster: Identify, Command: Identify, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Scenes, Command: AddScene, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Scenes, Command: RemoveScene, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Scenes, Command: RemoveAllScenes, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Scenes, Command: StoreScene, Privilege: manage */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
    kMatterAccessPrivilegeManage, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Administrator Commissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Administrator Commissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Administrator Commissioning, Command: RevokeCommissioning, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: AddNOC, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: UpdateNOC, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: SetWeekDaySchedule, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: GetWeekDaySchedule, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: SetYearDaySchedule, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: GetYearDaySchedule, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: SetUser, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: GetUser, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: ClearUser, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: SetCredential, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: GetCredentialStatus, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Door Lock, Command: ClearCredential, Privilege: administer */ \
    kMatterAccessPrivilegeManage, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
    kMatterAccessPrivilegeManage, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
}

////////////////////////////////////////////////////////////////////////////////

// Parallel array data (*cluster*, event, privilege) for read event
#define GENERATED_ACCESS_READ_EVENT__CLUSTER { \
    0x0000001F, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \
    0x0000001F, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \
}

// Parallel array data (cluster, *event*, privilege) for read event
#define GENERATED_ACCESS_READ_EVENT__EVENT { \
    0x00000000, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \
    0x00000001, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \
}

// Parallel array data (cluster, event, *privilege*) for read event
#define GENERATED_ACCESS_READ_EVENT__PRIVILEGE { \
    kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \
    kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \
}

////////////////////////////////////////////////////////////////////////////////

// clang-format on
