-
Notifications
You must be signed in to change notification settings - Fork 784
Add Mikrotik RouterOS interface wireless templates #2300
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,99 @@ | ||
| Value INDEX (\d+) | ||
| Value FLAGS (\S+) | ||
| Value NAME (\S+) | ||
| Value MTU (\d+) | ||
| Value L2MTU (\d+) | ||
| Value MAC_ADDRESS ([a-zA-Z0-9]{2}(:[a-zA-Z0-9]{2}){5}) | ||
| Value ARP (\S+) | ||
| Value DISABLE_RUNNING_CHECK (\S+) | ||
| Value INTERFACE_TYPE (\S+) | ||
| Value MASTER_INTERFACE (\S*) | ||
| Value RADIO_NAME (\S+) | ||
| Value MODE (\S+) | ||
| Value SSID (\S+) | ||
| Value AREA (\S*) | ||
| Value FREQUENCY_MODE (\S+) | ||
| Value COUNTRY (\S+) | ||
| Value INSTALLATION (\S+) | ||
| Value ANTENNA_GAIN (\S+) | ||
| Value FREQUENCY (\S+) | ||
| Value BAND (\S+) | ||
| Value CHANNEL_WIDTH (\S+) | ||
| Value SECONDARY_FREQUENCY (\S*) | ||
| Value SCAN_LIST (\S+) | ||
| Value WIRELESS_PROTOCOL (\S+) | ||
| Value RATE_SET (\S+) | ||
| Value SUPPORTED_RATES_B (\S*) | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Every entry of supported-rates-b in the test data has rates listed. Please provide test data to support this regex being zero or more non-white space characters. |
||
| Value SUPPORTED_RATES_A_G (\S+) | ||
| Value BASIC_RATES_B (\S*) | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Each basic-rates-b instance in the provided test data has values listed. |
||
| Value BASIC_RATES_A_G (\S+) | ||
| Value MAX_STATION_COUNT (\d+) | ||
| Value DISTANCE (\S+) | ||
| Value TX_POWER_MODE (\S+) | ||
| Value VLAN_MODE (\S+) | ||
| Value VLAN_ID (\d+) | ||
| Value WDS_MODE (\S+) | ||
| Value WDS_DEFAULT_BRIDGE (\S+) | ||
| Value WDS_DEFAULT_COST (\d+) | ||
| Value WDS_COST_RANGE (\S+) | ||
| Value WDS_IGNORE_SSID (\S+) | ||
| Value UPDATE_STATS_INTERVAL (\S+) | ||
| Value BRIDGE_MODE (\S+) | ||
| Value DEFAULT_AUTHENTICATION (\S+) | ||
| Value DEFAULT_FORWARDING (\S+) | ||
| Value DEFAULT_AP_TX_LIMIT (\d+) | ||
| Value DEFAULT_CLIENT_TX_LIMIT (\d+) | ||
| Value WMM_SUPPORT (\S+) | ||
| Value HIDE_SSID (\S+) | ||
| Value SECURITY_PROFILE (\S+) | ||
| Value WPS_MODE (\S+) | ||
| Value STATION_ROAMING (\S+) | ||
| Value DISCONNECT_TIMEOUT (\S+) | ||
| Value ON_FAIL_RETRY_TIME (\S+) | ||
| Value PREAMBLE_MODE (\S+) | ||
| Value COMPRESSION (\S+) | ||
| Value ALLOW_SHAREDKEY (\S+) | ||
| Value STATION_BRIDGE_CLONE_MAC ([a-zA-Z0-9]{2}(:[a-zA-Z0-9]{2}){5}) | ||
| Value AMPDU_PRIORITIES (\S+) | ||
| Value AMPDU_SUBFRAMES (\S+) | ||
| Value GUARD_INTERVAL (\S+) | ||
| Value HT_SUPPORTED_MCS ([^=]+) | ||
| Value HT_BASIC_MCS ([^=]+) | ||
| Value VHT_SUPPORTED_MCS (\S*) | ||
| Value VHT_BASIC_MCS (\S*) | ||
|
Comment on lines
+62
to
+63
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Test data shows entries for vht-supported-mcs and vht-basic-mcs that always have values. |
||
| Value TX_CHAINS (\S+) | ||
| Value RX_CHAINS (\S+) | ||
| Value AMSDU_LIMIT (\d+) | ||
| Value AMSDU_THRESHOLD (\d+) | ||
| Value TDMA_DEBUG (\d+) | ||
| Value TDMA_TEST_MODE (\d+) | ||
| Value TDMA_HW_TEST_MODE (\S*) | ||
| Value TDMA_OVERRIDE_RATE (\S+) | ||
| Value TDMA_OVERRIDE_SIZE (\d+) | ||
| Value TDMA_PERIOD_SIZE (\d+) | ||
| Value NV2_QUEUE_COUNT (\d+) | ||
| Value NV2_QOS (\S+) | ||
| Value NV2_CELL_RADIUS (\d+) | ||
| Value NV2_SECURITY (\S+) | ||
| Value NV2_PRESHARED_KEY (\S*) | ||
| Value NV2_MODE (\S+) | ||
| Value NV2_DOWNLINK_RATIO (\d+) | ||
| Value NV2_SYNC_SECRET (\S*) | ||
| Value HW_RETRIES (\d+) | ||
| Value FRAME_LIFETIME (\d+) | ||
| Value ADAPTIVE_NOISE_IMMUNITY (\S+) | ||
| Value HW_FRAGMENTATION_THRESHOLD (\S+) | ||
| Value HW_PROTECTION_MODE (\S+) | ||
| Value HW_PROTECTION_THRESHOLD (\d+) | ||
| Value FREQUENCY_OFFSET (\d+) | ||
| Value RATE_SELECTION (\S+) | ||
| Value MULTICAST_HELPER (\S+) | ||
| Value MULTICAST_BUFFERING (\S+) | ||
| Value KEEPALIVE_FRAMES (\S+) | ||
| Value SKIP_DFS_CHANNELS (\S+) | ||
|
|
||
| Start | ||
| ^\s*${INDEX}(?:\s+${FLAGS})?\s+name=${NAME}\s+mtu=${MTU}\s+l2mtu=${L2MTU}\s+mac-address=${MAC_ADDRESS}\s+arp=${ARP}\s+disable-running-check=${DISABLE_RUNNING_CHECK}\s+interface-type=${INTERFACE_TYPE}(?:\s+master-interface=${MASTER_INTERFACE})?\s+radio-name=${RADIO_NAME}\s+mode=${MODE}\s+ssid=${SSID}\s+area=${AREA}\s+frequency-mode=${FREQUENCY_MODE}\s+country=${COUNTRY}\s+installation=${INSTALLATION}\s+antenna-gain=${ANTENNA_GAIN}\s+frequency=${FREQUENCY}\s+band=${BAND}\s+channel-width=${CHANNEL_WIDTH}\s+secondary-frequency=${SECONDARY_FREQUENCY}\s+scan-list=${SCAN_LIST}\s+wireless-protocol=${WIRELESS_PROTOCOL}\s+rate-set=${RATE_SET}(\s+supported-rates-b=${SUPPORTED_RATES_B})?\s+supported-rates-a/g=${SUPPORTED_RATES_A_G}(\s+basic-rates-b=${BASIC_RATES_B})?\s+basic-rates-a/g=${BASIC_RATES_A_G}\s+max-station-count=${MAX_STATION_COUNT}\s+distance=${DISTANCE}\s+tx-power-mode=${TX_POWER_MODE}\s+vlan-mode=${VLAN_MODE}\s+vlan-id=${VLAN_ID}\s+wds-mode=${WDS_MODE}\s+wds-default-bridge=${WDS_DEFAULT_BRIDGE}\s+wds-default-cost=${WDS_DEFAULT_COST}\s+wds-cost-range=${WDS_COST_RANGE}\s+wds-ignore-ssid=${WDS_IGNORE_SSID}\s+update-stats-interval=${UPDATE_STATS_INTERVAL}\s+bridge-mode=${BRIDGE_MODE}\s+default-authentication=${DEFAULT_AUTHENTICATION}\s+default-forwarding=${DEFAULT_FORWARDING}\s+default-ap-tx-limit=${DEFAULT_AP_TX_LIMIT}\s+default-client-tx-limit=${DEFAULT_CLIENT_TX_LIMIT}\s+wmm-support=${WMM_SUPPORT}\s+hide-ssid=${HIDE_SSID}\s+security-profile=${SECURITY_PROFILE}\s+wps-mode=${WPS_MODE}\s+station-roaming=${STATION_ROAMING}\s+disconnect-timeout=${DISCONNECT_TIMEOUT}\s+on-fail-retry-time=${ON_FAIL_RETRY_TIME}\s+preamble-mode=${PREAMBLE_MODE}\s+compression=${COMPRESSION}\s+allow-sharedkey=${ALLOW_SHAREDKEY}\s+station-bridge-clone-mac=${STATION_BRIDGE_CLONE_MAC}\s+ampdu-priorities=${AMPDU_PRIORITIES}(\s+ampdu-subframes=${AMPDU_SUBFRAMES})?\s+guard-interval=${GUARD_INTERVAL}\s+ht-supported-mcs=${HT_SUPPORTED_MCS}\s+ht-basic-mcs=${HT_BASIC_MCS}(\s+vht-supported-mcs=${VHT_SUPPORTED_MCS})?(\s+vht-basic-mcs=${VHT_BASIC_MCS})?\s+tx-chains=${TX_CHAINS}\s+rx-chains=${RX_CHAINS}\s+amsdu-limit=${AMSDU_LIMIT}\s+amsdu-threshold=${AMSDU_THRESHOLD}(\s+tdma-debug=${TDMA_DEBUG})?(\s+tdma-test-mode=${TDMA_TEST_MODE})?(\s+tdma-hw-test-mode=${TDMA_HW_TEST_MODE})?(\s+tdma-override-rate=${TDMA_OVERRIDE_RATE})?(\s+tdma-override-size=${TDMA_OVERRIDE_SIZE})?\s+tdma-period-size=${TDMA_PERIOD_SIZE}\s+nv2-queue-count=${NV2_QUEUE_COUNT}\s+nv2-qos=${NV2_QOS}\s+nv2-cell-radius=${NV2_CELL_RADIUS}\s+nv2-security=${NV2_SECURITY}\s+nv2-preshared-key=${NV2_PRESHARED_KEY}\s+nv2-mode=${NV2_MODE}\s+nv2-downlink-ratio=${NV2_DOWNLINK_RATIO}\s+nv2-sync-secret=${NV2_SYNC_SECRET}\s+hw-retries=${HW_RETRIES}\s+frame-lifetime=${FRAME_LIFETIME}\s+adaptive-noise-immunity=${ADAPTIVE_NOISE_IMMUNITY}\s+hw-fragmentation-threshold=${HW_FRAGMENTATION_THRESHOLD}\s+hw-protection-mode=${HW_PROTECTION_MODE}\s+hw-protection-threshold=${HW_PROTECTION_THRESHOLD}\s+frequency-offset=${FREQUENCY_OFFSET}\s+rate-selection=${RATE_SELECTION}\s+multicast-helper=${MULTICAST_HELPER}\s+multicast-buffering=${MULTICAST_BUFFERING}\s+keepalive-frames=${KEEPALIVE_FRAMES}\s+skip-dfs-channels=${SKIP_DFS_CHANNELS}\s*$$ -> Record | ||
| ^\s*${INDEX}(?:\s+${FLAGS})?\s+name=${NAME}\s+mtu=${MTU}\s+l2mtu=${L2MTU}\s+mac-address=${MAC_ADDRESS}\s+arp=${ARP}\s+disable-running-check=${DISABLE_RUNNING_CHECK}\s+interface-type=${INTERFACE_TYPE}(?:\s+master-interface=${MASTER_INTERFACE})?\s+mode=${MODE}\s+ssid=${SSID}\s+area=${AREA}\s+max-station-count=${MAX_STATION_COUNT}\s+vlan-mode=${VLAN_MODE}\s+vlan-id=${VLAN_ID}\s+wds-mode=${WDS_MODE}\s+wds-default-bridge=${WDS_DEFAULT_BRIDGE}\s+wds-default-cost=${WDS_DEFAULT_COST}\s+wds-cost-range=${WDS_COST_RANGE}\s+wds-ignore-ssid=${WDS_IGNORE_SSID}\s+update-stats-interval=${UPDATE_STATS_INTERVAL}\s+bridge-mode=${BRIDGE_MODE}\s+default-authentication=${DEFAULT_AUTHENTICATION}\s+default-forwarding=${DEFAULT_FORWARDING}\s+default-ap-tx-limit=${DEFAULT_AP_TX_LIMIT}\s+default-client-tx-limit=${DEFAULT_CLIENT_TX_LIMIT}\s+wmm-support=${WMM_SUPPORT}\s+hide-ssid=${HIDE_SSID}\s+security-profile=${SECURITY_PROFILE}\s+wps-mode=${WPS_MODE}\s+station-roaming=${STATION_ROAMING}\s+station-bridge-clone-mac=${STATION_BRIDGE_CLONE_MAC}\s+multicast-helper=${MULTICAST_HELPER}\s+multicast-buffering=${MULTICAST_BUFFERING}\s+keepalive-frames=${KEEPALIVE_FRAMES}\s*$$ -> Record | ||
| ^\s*$$ | ||
| ^. -> Error | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| Value INDEX (\d+) | ||
| Value FLAGS (\*) | ||
| Value NAME (\S+) | ||
| Value MODE (\S+) | ||
| Value AUTHENTICATION_TYPES (\S*) | ||
| Value UNICAST_CIPHERS (\S+) | ||
| Value GROUP_CIPHERS (\S+) | ||
| Value WPA_PRE_SHARED_KEY (\S*) | ||
| Value WPA2_PRE_SHARED_KEY (\S*) | ||
| Value SUPPLICANT_IDENTITY (\S+) | ||
| Value EAP_METHODS (\S+) | ||
| Value TLS_MODE (\S+) | ||
| Value TLS_CERTIFICATE (\S+) | ||
| Value MSCHAPV2_USERNAME (\S*) | ||
| Value MSCHAPV2_PASSWORD (\S*) | ||
| Value DISABLE_PMKID (\S+) | ||
| Value STATIC_ALGO_0 (\S+) | ||
| Value STATIC_KEY_0 (\S*) | ||
| Value STATIC_ALGO_1 (\S+) | ||
| Value STATIC_KEY_1 (\S*) | ||
| Value STATIC_ALGO_2 (\S+) | ||
| Value STATIC_KEY_2 (\S*) | ||
| Value STATIC_ALGO_3 (\S+) | ||
| Value STATIC_KEY_3 (\S*) | ||
| Value STATIC_TRANSMIT_KEY (\S+) | ||
| Value STATIC_STA_PRIVATE_ALGO (\S+) | ||
| Value STATIC_STA_PRIVATE_KEY (\S*) | ||
| Value RADIUS_MAC_AUTHENTICATION (\S+) | ||
| Value RADIUS_MAC_ACCOUNTING (\S+) | ||
| Value RADIUS_EAP_ACCOUNTING (\S+) | ||
| Value INTERIM_UPDATE (\S+) | ||
| Value RADIUS_MAC_FORMAT ([A-Za-z:]+) | ||
| Value RADIUS_MAC_MODE (\S+) | ||
| Value RADIUS_CALLED_FORMAT (\S+) | ||
| Value RADIUS_MAC_CACHING (\S+) | ||
| Value GROUP_KEY_UPDATE (\S+) | ||
| Value MANAGEMENT_PROTECTION (\S+) | ||
| Value MANAGEMENT_PROTECTION_KEY (\S*) | ||
|
|
||
| Start | ||
| ^\s*${INDEX}(?:\s+${FLAGS})?\s+name=${NAME}\s+mode=${MODE}\s+authentication-types=${AUTHENTICATION_TYPES}\s+unicast-ciphers=${UNICAST_CIPHERS}\s+group-ciphers=${GROUP_CIPHERS}\s+wpa-pre-shared-key=${WPA_PRE_SHARED_KEY}\s+wpa2-pre-shared-key=${WPA2_PRE_SHARED_KEY}\s+supplicant-identity=${SUPPLICANT_IDENTITY}\s+eap-methods=${EAP_METHODS}\s+tls-mode=${TLS_MODE}\s+tls-certificate=${TLS_CERTIFICATE}\s+mschapv2-username=${MSCHAPV2_USERNAME}\s+mschapv2-password=${MSCHAPV2_PASSWORD}\s+disable-pmkid=${DISABLE_PMKID}\s+static-algo-0=${STATIC_ALGO_0}\s+static-key-0=${STATIC_KEY_0}\s+static-algo-1=${STATIC_ALGO_1}\s+static-key-1=${STATIC_KEY_1}\s+static-algo-2=${STATIC_ALGO_2}\s+static-key-2=${STATIC_KEY_2}\s+static-algo-3=${STATIC_ALGO_3}\s+static-key-3=${STATIC_KEY_3}\s+static-transmit-key=${STATIC_TRANSMIT_KEY}\s+static-sta-private-algo=${STATIC_STA_PRIVATE_ALGO}\s+static-sta-private-key=${STATIC_STA_PRIVATE_KEY}\s+radius-mac-authentication=${RADIUS_MAC_AUTHENTICATION}\s+radius-mac-accounting=${RADIUS_MAC_ACCOUNTING}\s+radius-eap-accounting=${RADIUS_EAP_ACCOUNTING}\s+interim-update=${INTERIM_UPDATE}\s+radius-mac-format=${RADIUS_MAC_FORMAT}\s+radius-mac-mode=${RADIUS_MAC_MODE}\s+radius-called-format=${RADIUS_CALLED_FORMAT}\s+radius-mac-caching=${RADIUS_MAC_CACHING}\s+group-key-update=${GROUP_KEY_UPDATE}\s+management-protection=${MANAGEMENT_PROTECTION}\s+management-protection-key=${MANAGEMENT_PROTECTION_KEY}\s*$$ -> Record | ||
| ^\s*$$ | ||
| ^. -> Error |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| 0 R name=wlan1 mtu=1500 l2mtu=1600 mac-address=00:11:22:33:44:65 arp=enabled disable-running-check=no interface-type=IPQ4019 radio-name=001122334465 mode=ap-bridge ssid=ExampleSSID area= frequency-mode=regulatory-domain country=etsi installation=any antenna-gain=3 frequency=auto band=2ghz-b/g/n channel-width=20/40mhz-XX secondary-frequency= scan-list=default wireless-protocol=any rate-set=default supported-rates-b=1Mbps,2Mbps,5.5Mbps,11Mbps supported-rates-a/g=6Mbps,9Mbps,12Mbps,18Mbps,24Mbps,36Mbps,48Mbps,54Mbps basic-rates-b=1Mbps basic-rates-a/g=6Mbps max-station-count=2007 distance=dynamic tx-power-mode=default vlan-mode=no-tag vlan-id=1 wds-mode=disabled wds-default-bridge=none wds-default-cost=100 wds-cost-range=50-150 wds-ignore-ssid=no update-stats-interval=disabled bridge-mode=enabled default-authentication=yes default-forwarding=yes default-ap-tx-limit=0 default-client-tx-limit=0 wmm-support=disabled hide-ssid=no security-profile=default wps-mode=disabled station-roaming=disabled disconnect-timeout=3s on-fail-retry-time=100ms preamble-mode=both compression=no allow-sharedkey=no station-bridge-clone-mac=00:00:00:00:00:00 ampdu-priorities=0 ampdu-subframes=default guard-interval=any ht-supported-mcs=mcs-0,mcs-1,mcs-2,mcs-3,mcs-4,mcs-5,mcs-6,mcs-7,mcs-8,mcs-9,mcs-10,mcs-11,mcs-12,mcs-13,mcs-14,mcs-15,mcs-16,mcs-17,mcs-18,mcs-19,mcs-20,mcs-21,mcs-22,mcs-23 ht-basic-mcs=mcs-0,mcs-1,mcs-2,mcs-3,mcs-4,mcs-5,mcs-6,mcs-7 tx-chains=0,1 rx-chains=0,1 amsdu-limit=8192 amsdu-threshold=8192 tdma-debug=0 tdma-test-mode=0 tdma-hw-test-mode= tdma-override-rate=disabled tdma-override-size=0 tdma-period-size=2 nv2-queue-count=2 nv2-qos=default nv2-cell-radius=30 nv2-security=disabled nv2-preshared-key= nv2-mode=dynamic-downlink nv2-downlink-ratio=50 nv2-sync-secret= hw-retries=7 frame-lifetime=0 adaptive-noise-immunity=none hw-fragmentation-threshold=disabled hw-protection-mode=none hw-protection-threshold=0 frequency-offset=0 rate-selection=advanced multicast-helper=default multicast-buffering=enabled keepalive-frames=enabled skip-dfs-channels=disabled | ||
| 1 name=wlan2 mtu=1500 l2mtu=1600 mac-address=00:11:22:33:44:66 arp=enabled disable-running-check=no interface-type=IPQ4019 radio-name=001122334466 mode=ap-bridge ssid=ExampleSSID area= frequency-mode=regulatory-domain country=etsi installation=any antenna-gain=6 frequency=auto band=5ghz-a/n/ac channel-width=20/40/80mhz-eCee secondary-frequency= scan-list=default wireless-protocol=any rate-set=default supported-rates-a/g=6Mbps,9Mbps,12Mbps,18Mbps,24Mbps,36Mbps,48Mbps,54Mbps basic-rates-a/g=6Mbps max-station-count=2007 distance=dynamic tx-power-mode=default vlan-mode=no-tag vlan-id=1 wds-mode=disabled wds-default-bridge=none wds-default-cost=100 wds-cost-range=50-150 wds-ignore-ssid=no update-stats-interval=disabled bridge-mode=enabled default-authentication=yes default-forwarding=yes default-ap-tx-limit=0 default-client-tx-limit=0 wmm-support=disabled hide-ssid=no security-profile=default wps-mode=disabled station-roaming=disabled disconnect-timeout=3s on-fail-retry-time=100ms preamble-mode=both compression=no allow-sharedkey=no station-bridge-clone-mac=00:00:00:00:00:00 ampdu-priorities=0 ampdu-subframes=default guard-interval=any ht-supported-mcs=mcs-0,mcs-1,mcs-2,mcs-3,mcs-4,mcs-5,mcs-6,mcs-7,mcs-8,mcs-9,mcs-10,mcs-11,mcs-12,mcs-13,mcs-14,mcs-15,mcs-16,mcs-17,mcs-18,mcs-19,mcs-20,mcs-21,mcs-22,mcs-23 ht-basic-mcs=mcs-0,mcs-1,mcs-2,mcs-3,mcs-4,mcs-5,mcs-6,mcs-7 vht-supported-mcs=mcs0-9,mcs0-9,mcs0-9 vht-basic-mcs=mcs0-7 tx-chains=0,1 rx-chains=0,1 amsdu-limit=8192 amsdu-threshold=8192 tdma-debug=0 tdma-test-mode=0 tdma-hw-test-mode= tdma-override-rate=disabled tdma-override-size=0 tdma-period-size=2 nv2-queue-count=2 nv2-qos=default nv2-cell-radius=30 nv2-security=disabled nv2-preshared-key= nv2-mode=dynamic-downlink nv2-downlink-ratio=50 nv2-sync-secret= hw-retries=7 frame-lifetime=0 adaptive-noise-immunity=none hw-fragmentation-threshold=disabled hw-protection-mode=none hw-protection-threshold=0 frequency-offset=0 rate-selection=advanced multicast-helper=default multicast-buffering=enabled keepalive-frames=enabled skip-dfs-channels=disabled |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The test data always has an interface name listed for master-interface.
(Please adjust this since your forked repo doesn't allow maintainer changes. Thank you!)