#!/usr/bin/env vpython3

# Copyright (c) 2022 The WebRTC Project Authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

import datetime
from datetime import date
import sys
from typing import FrozenSet, List, Set

import argparse
import dataclasses


@dataclasses.dataclass(frozen=True)
class FieldTrial:
    """Representation of all attributes associated with a field trial.

    Attributes:
      key: Field trial key.
      bug: Associated open bug containing more context.
      end_date: Date when the field trial expires and must be deleted.
    """
    key: str
    bug: str
    end_date: date


# As per the policy in `g3doc/field-trials.md`, all field trials should be
# registered in the container below.
ACTIVE_FIELD_TRIALS: FrozenSet[FieldTrial] = frozenset([
    # keep-sorted start
    FieldTrial('WebRTC-Aec3DelayEstimatorDetectPreEcho',
               'webrtc:14205',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3PenalyzeHighDelaysInitialPhase',
               'webrtc:14919',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3PreEchoConfiguration',
               'webrtc:14205',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-GainController2',
               'webrtc:7494',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-OpusSetSignalVoiceWithDtx',
               'webrtc:4559',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Av1-GetEncoderInfoOverride',
               'webrtc:14931',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-BurstyPacer',
               'chromium:1354491',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-SubtractAdditionalBackoffTerm',
               'webrtc:13402',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-DisableRtxRateLimiter',
               'webrtc:15184',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-EncoderDataDumpDirectory',
               'b/296242528',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-IPv6NetworkResolutionFixes',
               'webrtc:14334',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-IncomingTimestampOnMarkerBitOnly',
               'webrtc:14526',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-IncreaseIceCandidatePriorityHostSrflx',
               'webrtc:15020',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-JitterEstimatorConfig',
               'webrtc:14151',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-LibaomAv1Encoder-DisableFrameDropping',
               'webrtc:15225',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Pacer-FastRetransmissions',
               'chromium:1354491',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Pacer-KeyframeFlushing',
               'webrtc:11340',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-PaddingMode-RecentLargePacket',
               'webrtc:15201',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-PermuteTlsClientHello',
               'webrtc:15467',
               date(2024, 7, 1)),
    FieldTrial('WebRTC-PreventSsrcGroupsWithUnexpectedSize',
               'chromium:1459124',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-RtcEventLogEncodeDependencyDescriptor',
               'webrtc:14975',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-RtcEventLogEncodeNetEqSetMinimumDelayKillSwitch',
               'webrtc:14763',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SCM-Timestamp',
               'webrtc:5773',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SendPacketsOnWorkerThread',
               'webrtc:14502',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SrtpRemoveReceiveStream',
               'webrtc:15604',
               date(2024, 10, 1)),
    FieldTrial('WebRTC-Stats-RtxReceiveStats',
               'webrtc:15096',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-TaskQueue-ReplaceLibeventWithStdlib',
               'webrtc:14389',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Video-EnableRetransmitAllLayers',
               'webrtc:14959',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Video-EncoderFallbackSettings',
               'webrtc:6634',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Video-RequestedResolutionOverrideOutputFormatRequest',
               'webrtc:14451',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VideoEncoderSettings',
               'chromium:1406331',
               date(2024, 4, 1)),
    # keep-sorted end
])  # yapf: disable

INDEFINITE = date(datetime.MAXYEAR, 1, 1)

# These field trials precedes the policy in `g3doc/field-trials.md` and are
# therefore not required to follow it. Do not add any new field trials here.
POLICY_EXEMPT_FIELD_TRIALS: FrozenSet[FieldTrial] = frozenset([
    # keep-sorted start
    FieldTrial('UseTwccPlrForAna',
               'webrtc:7058',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-AddNetworkCostToVpn',
               'webrtc:13097',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-AddPacingToCongestionWindowPushback',
               'webrtc:10171',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-AdjustOpusBandwidth',
               'webrtc:8522',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3AecStateFullResetKillSwitch',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3AecStateSubtractorAnalyzerResetKillSwitch',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3AntiHowlingMinimizationKillSwitch',
               'b/150764764',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3ClampInstQualityToOneKillSwitch',
               'webrtc:10913',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3ClampInstQualityToZeroKillSwitch',
               'webrtc:10913',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3CoarseFilterResetHangoverKillSwitch',
               'webrtc:12265',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3ConservativeTailFreqResponse',
               'webrtc:13173',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3DeactivateInitialStateResetKillSwitch',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3DelayEstimateSmoothingDelayFoundOverride',
               'webrtc:12775',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3DelayEstimateSmoothingOverride',
               'webrtc:12775',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3EchoSaturationDetectionKillSwitch',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceCaptureDelayEstimationDownmixing',
               'webrtc:11153',
               INDEFINITE),
    FieldTrial(
        'WebRTC-Aec3EnforceCaptureDelayEstimationLeftRightPrioritization',
        'webrtc:11153',
        INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceConservativeHfSuppression',
               'webrtc:11985',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3EnforceLowActiveRenderLimit',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceMoreTransparentNearendSuppressorHfTuning',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceMoreTransparentNearendSuppressorTuning',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceMoreTransparentNormalSuppressorHfTuning',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceMoreTransparentNormalSuppressorTuning',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceRapidlyAdjustingNearendSuppressorTunings',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceRapidlyAdjustingNormalSuppressorTunings',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceRenderDelayEstimationDownmixing',
               'webrtc:11153',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceSlowlyAdjustingNearendSuppressorTunings',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceSlowlyAdjustingNormalSuppressorTunings',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceStationarityProperties',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceStationarityPropertiesAtInit',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3EnforceVeryLowActiveRenderLimit',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3HighPassFilterEchoReference',
               'webrtc:12265',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3MinErleDuringOnsetsKillSwitch',
               'webrtc:10341',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3NonlinearModeReverbKillSwitch',
               'webrtc:11985',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3OnsetDetectionKillSwitch',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial(
        'WebRTC-Aec3RenderDelayEstimationLeftRightPrioritizationKillSwitch',
        'webrtc:11153',
        date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3SensitiveDominantNearendActivation',
               'webrtc:11475',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SetupSpecificDefaultConfigDefaultsKillSwitch',
               'webrtc:11151',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3ShortHeadroomKillSwitch',
               'webrtc:10341',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3StereoContentDetectionKillSwitch',
               'webrtc:14900',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SuppressorAntiHowlingGainOverride',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SuppressorDominantNearendEnrExitThresholdOverride',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SuppressorDominantNearendEnrThresholdOverride',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SuppressorDominantNearendHoldDurationOverride',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SuppressorDominantNearendSnrThresholdOverride',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SuppressorDominantNearendTriggerThresholdOverride',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SuppressorNearendHfMaskSuppressOverride',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SuppressorNearendHfMaskTransparentOverride',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SuppressorNearendLfMaskSuppressOverride',
               'webrtc:11487',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3SuppressorNearendLfMaskTransparentOverride',
               'webrtc:11487',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3SuppressorNearendMaxDecFactorLfOverride',
               'webrtc:11487',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3SuppressorNearendMaxIncFactorOverride',
               'webrtc:11487',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3SuppressorNormalHfMaskSuppressOverride',
               'webrtc:11487',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3SuppressorNormalHfMaskTransparentOverride',
               'webrtc:11487',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3SuppressorNormalLfMaskSuppressOverride',
               'webrtc:11487',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3SuppressorNormalLfMaskTransparentOverride',
               'webrtc:11487',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3SuppressorNormalMaxDecFactorLfOverride',
               'webrtc:11487',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3SuppressorNormalMaxIncFactorOverride',
               'webrtc:11487',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3SuppressorTuningOverride',
               'webrtc:11487',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3TransparentAntiHowlingGain',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3TransparentModeHmm',
               'webrtc:12265',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3TransparentModeKillSwitch',
               'webrtc:9256',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3Use1Dot2SecondsInitialStateDuration',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3Use1Dot6SecondsInitialStateDuration',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3Use2Dot0SecondsInitialStateDuration',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3UseDot1SecondsInitialStateDuration',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3UseDot2SecondsInitialStateDuration',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3UseDot3SecondsInitialStateDuration',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3UseDot6SecondsInitialStateDuration',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3UseDot9SecondsInitialStateDuration',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3UseErleOnsetCompensationInDominantNearend',
               'webrtc:12686',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3UseLowEarlyReflectionsDefaultGain',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3UseLowLateReflectionsDefaultGain',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3UseNearendReverbLen',
               'webrtc:13143',
               INDEFINITE),
    FieldTrial('WebRTC-Aec3UseShortConfigChangeDuration',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3UseZeroInitialStateDuration',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Aec3VerySensitiveDominantNearendActivation',
               'webrtc:11475',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Agc2SimdAvx2KillSwitch',
               'webrtc:7494',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Agc2SimdNeonKillSwitch',
               'webrtc:7494',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Agc2SimdSse2KillSwitch',
               'webrtc:7494',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-AllowMACBasedIPv6',
               'webrtc:12268',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-AlrDetectorParameters',
               'webrtc:10542',
               INDEFINITE),
    FieldTrial('WebRTC-AndroidNetworkMonitor-IsAdapterAvailable',
               'webrtc:13741',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-ApmExperimentalMultiChannelCaptureKillSwitch',
               'webrtc:14901',
               INDEFINITE),
    FieldTrial('WebRTC-ApmExperimentalMultiChannelRenderKillSwitch',
               'webrtc:14902',
               INDEFINITE),
    FieldTrial('WebRTC-Audio-2ndAgcMinMicLevelExperiment',
               'chromium:1275566',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-ABWENoTWCC',
               'webrtc:8243',
               INDEFINITE),
    FieldTrial('WebRTC-Audio-AdaptivePtime',
               'chromium:1086942',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-Allocation',
               'webrtc:10286',
               INDEFINITE),
    FieldTrial('WebRTC-Audio-AlrProbing',
               'webrtc:10200',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-FecAdaptation',
               'webrtc:8127',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-LegacyOverhead',
               'webrtc:11001',
               INDEFINITE),
    FieldTrial('WebRTC-Audio-MinimizeResamplingOnMobile',
               'webrtc:6181',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-NetEqDecisionLogicConfig',
               'webrtc:13322',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-NetEqDelayManagerConfig',
               'webrtc:10333',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-NetEqNackTrackerConfig',
               'webrtc:10178',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-NetEqSmartFlushing',
               'webrtc:12201',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-OpusAvoidNoisePumpingDuringDtx',
               'webrtc:12380',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-OpusBitrateMultipliers',
               'webrtc:11055',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-OpusPlcUsePrevDecodedSamples',
               'b/143582588',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-Red-For-Opus',
               'webrtc:11640',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Audio-StableTargetAdaptation',
               'webrtc:10981',
               INDEFINITE),
    FieldTrial('WebRTC-Audio-iOS-Holding',
               'webrtc:8126',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-AudioDevicePlayoutBufferSizeFactor',
               'webrtc:10928',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-AutomaticAnimationDetectionScreenshare',
               'webrtc:11058',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Avx2SupportKillSwitch',
               'webrtc:11663',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-BindUsingInterfaceName',
               'webrtc:10707',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-BoostedScreenshareQp',
               'webrtc:9659',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-AllocationProbing',
               'webrtc:10394',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-AlrProbing',
               'webrtc:10394',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-EstimateBoundedIncrease',
               'webrtc:10498',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-ExponentialProbing',
               'webrtc:10394',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-IgnoreProbesLowerThanNetworkStateEstimate',
               'webrtc:10498',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-InitialProbing',
               'webrtc:10394',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-InjectedCongestionController',
               'webrtc:8415',
               INDEFINITE),
    FieldTrial('WebRTC-Bwe-LimitProbesLowerThanThroughputEstimate',
               'webrtc:11498',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-LinkCapacity',
               'webrtc:9718',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-LossBasedBweV2',
               'webrtc:12707',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-LossBasedControl',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-MaxRttLimit',
               'webrtc:9718',
               INDEFINITE),
    FieldTrial('WebRTC-Bwe-MinAllocAsLowerBound',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-NetworkRouteConstraints',
               'webrtc:11434',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-NoFeedbackReset',
               'webrtc:9718',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-PaceAtMaxOfBweAndLowerLinkCapacity',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-ProbingBehavior',
               'webrtc:10394',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-ProbingConfiguration',
               'webrtc:10394',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-ReceiveTimeFix',
               'webrtc:9054',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-ReceiverLimitCapsOnly',
               'webrtc:12306',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-RobustThroughputEstimatorSettings',
               'webrtc:10274',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-SafeResetOnRouteChange',
               'webrtc:9718',
               INDEFINITE),
    FieldTrial('WebRTC-Bwe-SeparateAudioPackets',
               'webrtc:10932',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Bwe-TrendlineEstimatorSettings',
               'webrtc:10932',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-BweBackOffFactor',
               'webrtc:8212',
               INDEFINITE),
    FieldTrial('WebRTC-BweLossExperiment',
               'webrtc:5839',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-BweRapidRecoveryExperiment',
               'webrtc:8015',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-BweThroughputWindowConfig',
               'webrtc:10274',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-BweWindowSizeInPackets',
               'webrtc:8212',
               INDEFINITE),
    FieldTrial('WebRTC-CongestionWindow',
               'webrtc:14898',
               INDEFINITE),
    FieldTrial('WebRTC-CpuLoadEstimator',
               'webrtc:8504',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Debugging-RtpDump',
               'webrtc:10675',
               INDEFINITE),
    FieldTrial('WebRTC-DecoderDataDumpDirectory',
               'webrtc:14236',
               INDEFINITE),
    FieldTrial('WebRTC-DefaultBitrateLimitsKillSwitch',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-DependencyDescriptorAdvertised',
               'webrtc:10342',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-DisablePacerEmergencyStop',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-DisableUlpFecExperiment',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-DontIncreaseDelayBasedBweInAlr',
               'webrtc:10542',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-DscpFieldTrial',
               'webrtc:13622',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-ExtraICEPing',
               'webrtc:10273',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-FakeNetworkReceiveConfig',
               'webrtc:14238',
               INDEFINITE),
    FieldTrial('WebRTC-FakeNetworkSendConfig',
               'webrtc:14238',
               INDEFINITE),
    FieldTrial('WebRTC-FilterAbsSendTimeExtension',
               'webrtc:10234',
               INDEFINITE),
    FieldTrial('WebRTC-FindNetworkHandleWithoutIpv6TemporaryPart',
               'webrtc:11067',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-FlexFEC-03',
               'webrtc:5654',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-FlexFEC-03-Advertised',
               'webrtc:5654',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-ForcePlayoutDelay',
               'webrtc:11896',
               INDEFINITE),
    FieldTrial('WebRTC-ForceSendPlayoutDelay',
               'webrtc:11896',
               INDEFINITE),
    FieldTrial('WebRTC-ForceSimulatedOveruseIntervalMs',
               'webrtc:14239',
               INDEFINITE),
    FieldTrial('WebRTC-FrameDropper',
               'webrtc:9711',
               INDEFINITE),
    FieldTrial('WebRTC-FullBandHpfKillSwitch',
               'webrtc:11193',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-GenericCodecDependencyDescriptor',
               'webrtc:14969',
               INDEFINITE),
    FieldTrial('WebRTC-GenericDescriptorAdvertised',
               'webrtc:9361',
               INDEFINITE),
    FieldTrial('WebRTC-GenericDescriptorAuth',
               'webrtc:10103',
               INDEFINITE),
    FieldTrial('WebRTC-GenericPictureId',
               'webrtc:9361',
               INDEFINITE),
    FieldTrial('WebRTC-GetEncoderInfoOverride',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-H264HighProfile',
               'webrtc:6337',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-IPv6Default',
               'chromium:413437',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-IceControllerFieldTrials',
               'chromium:1024965',
               INDEFINITE),
    FieldTrial('WebRTC-IceFieldTrials',
               'webrtc:11021',
               INDEFINITE),
    FieldTrial('WebRTC-KeyframeInterval',
               'webrtc:10427',
               INDEFINITE),
    FieldTrial('WebRTC-LegacyFrameIdJumpBehavior',
               'webrtc:13343',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-LegacySimulcastLayerLimit',
               'webrtc:8785',
               INDEFINITE),
    FieldTrial('WebRTC-LegacyTlsProtocols',
               'webrtc:10261',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-LowresSimulcastBitrateInterpolation',
               'webrtc:12415',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-MutedStateKillSwitch',
               'b/177830919',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Network-UseNWPathMonitor',
               'webrtc:10966',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-NetworkMonitorAutoDetect',
               'webrtc:13741',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-NormalizeSimulcastResolution',
               '',
               INDEFINITE),
    FieldTrial('WebRTC-Pacer-BlockAudio',
               'webrtc:8415',
               INDEFINITE),
    FieldTrial('WebRTC-Pacer-DrainQueue',
               'webrtc:8415',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Pacer-IgnoreTransportOverhead',
               'webrtc:9883',
               INDEFINITE),
    FieldTrial('WebRTC-Pacer-PadInSilence',
               'webrtc:8415',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-PacketBufferMaxSize',
               'webrtc:9851',
               INDEFINITE),
    FieldTrial('WebRTC-PcFactoryDefaultBitrates',
               'webrtc:10865',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-PiggybackIceCheckAcknowledgement',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-PixelLimitResource',
               'webrtc:12261',
               INDEFINITE),
    FieldTrial('WebRTC-ProbingScreenshareBwe',
               'webrtc:7694',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-ProtectionOverheadRateThreshold',
               'webrtc:14899',
               INDEFINITE),
    FieldTrial('WebRTC-QpParsingKillSwitch',
               'webrtc:12542',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-RtcEventLogKillSwitch',
               'webrtc:12084',
               INDEFINITE),
    FieldTrial('WebRTC-RtcEventLogNewFormat',
               'webrtc:8111',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-RtcpLossNotification',
               'webrtc:10336',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-RttMult',
               'webrtc:9670',
               INDEFINITE),
    FieldTrial('WebRTC-SendBufferSizeBytes',
               'webrtc:11905',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-ReceiveBufferSize',
               'webrtc:15585',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SendNackDelayMs',
               'webrtc:9953',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SetSocketReceiveBuffer',
               'webrtc:13753',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SignalNetworkPreferenceChange',
               'webrtc:11825',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SimulcastEncoderAdapter-GetEncoderInfoOverride',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SimulcastLayerLimitRoundUp',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SpsPpsIdrIsH264Keyframe',
               'webrtc:8423',
               INDEFINITE),
    FieldTrial('WebRTC-StableTargetRate',
               'webrtc:10126',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-StrictPacingAndProbing',
               'webrtc:8072',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-StunInterPacketDelay',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SurfaceCellularTypes',
               'webrtc:11473',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-SwitchEncoderOnInitializationFailures',
               'webrtc:13572',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Target-Bitrate-Rtcp',
               'webrtc:9969',
               INDEFINITE),
    FieldTrial('WebRTC-TransientSuppressorForcedOff',
               'chromium:1186705',
               INDEFINITE),
    FieldTrial('WebRTC-UseBaseHeavyVP8TL3RateAllocation',
               'webrtc:9477',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-UseDifferentiatedCellularCosts',
               'webrtc:11473',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-UseShortVP8TL2Pattern',
               'webrtc:9477',
               INDEFINITE),
    FieldTrial('WebRTC-UseShortVP8TL3Pattern',
               'webrtc:8162',
               INDEFINITE),
    FieldTrial('WebRTC-UseStandardBytesStats',
               'webrtc:10525',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-UseTurnServerAsStunServer',
               'webrtc:11059',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VP8-CpuSpeed-Arm',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VP8-ForcePartitionResilience',
               'webrtc:11832',
               INDEFINITE),
    FieldTrial('WebRTC-VP8-Forced-Fallback-Encoder-v2',
               'webrtc:6634',
               INDEFINITE),
    FieldTrial('WebRTC-VP8-GetEncoderInfoOverride',
               'webrtc:11832',
               INDEFINITE),
    FieldTrial('WebRTC-VP8-MaxFrameInterval',
               'webrtc:15530',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VP8-Postproc-Config',
               'webrtc:11551',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VP8-Postproc-Config-Arm',
               'webrtc:6634',
               INDEFINITE),
    FieldTrial('WebRTC-VP8ConferenceTemporalLayers',
               'webrtc:9260',
               INDEFINITE),
    FieldTrial('WebRTC-VP8IosMaxNumberOfThread',
               'webrtc:10005',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VP8VariableFramerateScreenshare',
               'webrtc:10310',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VP9-GetEncoderInfoOverride',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VP9-LowTierOptimizations',
               'webrtc:13888',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VP9-PerformanceFlags',
               'webrtc:11551',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VP9QualityScaler',
               'webrtc:11319',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VP9VariableFramerateScreenshare',
               'webrtc:10310',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Video-BalancedDegradation',
               'webrtc:7607',
               INDEFINITE),
    FieldTrial('WebRTC-Video-BalancedDegradationSettings',
               '',
               INDEFINITE),
    FieldTrial('WebRTC-Video-BandwidthQualityScalerSettings',
               'webrtc:12942',
               INDEFINITE),
    FieldTrial('WebRTC-Video-DisableAutomaticResize',
               'webrtc:11812',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Video-DiscardPacketsWithUnknownSsrc',
               'webrtc:9871',
               INDEFINITE),
    FieldTrial('WebRTC-Video-ForcedSwDecoderFallback',
               '',
               INDEFINITE),
    FieldTrial('WebRTC-Video-InitialDecoderResolution',
               'webrtc:11898',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Video-MinVideoBitrate',
               'webrtc:10915',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Video-Pacing',
               'webrtc:10038',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Video-PreferTemporalSupportOnBaseLayer',
               'webrtc:11324',
               INDEFINITE),
    FieldTrial('WebRTC-Video-QualityRampupSettings',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Video-QualityScalerSettings',
               '',
               INDEFINITE),
    FieldTrial('WebRTC-Video-QualityScaling',
               'webrtc:9169',
               INDEFINITE),
    FieldTrial('WebRTC-Video-UseFrameRateForOverhead',
               'b/166341943',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Video-VariableStartScaleFactor',
               '',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-VideoFrameTrackingIdAdvertised',
               'webrtc:12594',
               INDEFINITE),
    FieldTrial('WebRTC-VideoLayersAllocationAdvertised',
               'webrtc:1200',
               INDEFINITE),
    FieldTrial('WebRTC-VideoRateControl',
               'webrtc:10223',
               INDEFINITE),
    FieldTrial('WebRTC-VoIPChannelRemixingAdjustmentKillSwitch',
               'chromium:1027117',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Vp9ExternalRefCtrl',
               'webrtc:9585',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-Vp9InterLayerPred',
               'chromium:949536',
               INDEFINITE),
    FieldTrial('WebRTC-Vp9IssueKeyFrameOnLayerDeactivation',
               'chromium:889017',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-ZeroHertzScreenshare',
               'chromium:1255737',
               date(2024, 4, 1)),
    FieldTrial('WebRTC-ZeroPlayoutDelay',
               'chromium:1335323',
               date(2024, 4, 1)),
    # keep-sorted end
])  # yapf: disable

REGISTERED_FIELD_TRIALS: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS.union(
    POLICY_EXEMPT_FIELD_TRIALS)


def todays_date() -> date:
    now = datetime.datetime.now(datetime.timezone.utc)
    return date(now.year, now.month, now.day)


def registry_header(
        field_trials: FrozenSet[FieldTrial] = REGISTERED_FIELD_TRIALS) -> str:
    """Generates a C++ header with all field trial keys.

    Args:
      field_trials: Field trials to include in the header.

    Returns:
      String representation of a C++ header file containing all field trial
      keys.

    >>> trials = {
    ...     FieldTrial('B', '', date(1, 1, 1)),
    ...     FieldTrial('A', '', date(1, 1, 1)),
    ...     FieldTrial('B', '', date(2, 2, 2)),
    ... }
    >>> print(registry_header(trials))
    // This file was automatically generated. Do not edit.
    <BLANKLINE>
    #ifndef GEN_REGISTERED_FIELD_TRIALS_H_
    #define GEN_REGISTERED_FIELD_TRIALS_H_
    <BLANKLINE>
    #include "absl/strings/string_view.h"
    <BLANKLINE>
    namespace webrtc {
    <BLANKLINE>
    inline constexpr absl::string_view kRegisteredFieldTrials[] = {
        "A",
        "B",
    };
    <BLANKLINE>
    }  // namespace webrtc
    <BLANKLINE>
    #endif  // GEN_REGISTERED_FIELD_TRIALS_H_
    <BLANKLINE>
    """
    registered_keys = {f.key for f in field_trials}
    keys = '\n'.join(f'    "{k}",' for k in sorted(registered_keys))
    return ('// This file was automatically generated. Do not edit.\n'
            '\n'
            '#ifndef GEN_REGISTERED_FIELD_TRIALS_H_\n'
            '#define GEN_REGISTERED_FIELD_TRIALS_H_\n'
            '\n'
            '#include "absl/strings/string_view.h"\n'
            '\n'
            'namespace webrtc {\n'
            '\n'
            'inline constexpr absl::string_view kRegisteredFieldTrials[] = {\n'
            f'{keys}\n'
            '};\n'
            '\n'
            '}  // namespace webrtc\n'
            '\n'
            '#endif  // GEN_REGISTERED_FIELD_TRIALS_H_\n')


def expired_field_trials(
    threshold: date,
    field_trials: FrozenSet[FieldTrial] = REGISTERED_FIELD_TRIALS
) -> Set[FieldTrial]:
    """Obtains expired field trials.

    Args:
      threshold: Date from which to check end date.
      field_trials: Field trials to validate.

    Returns:
      All expired field trials.

    >>> trials = {
    ...     FieldTrial('Expired', '', date(1, 1, 1)),
    ...     FieldTrial('Not-Expired', '', date(1, 1, 2)),
    ... }
    >>> expired_field_trials(date(1, 1, 1), trials)
    {FieldTrial(key='Expired', bug='', end_date=datetime.date(1, 1, 1))}
    """
    return {f for f in field_trials if f.end_date <= threshold}


def validate_field_trials(
        field_trials: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS
) -> List[str]:
    """Validate that field trials conforms to the policy.

    Args:
      field_trials: Field trials to validate.

    Returns:
      A list of explanations for invalid field trials.
    """
    invalid = []
    for trial in field_trials:
        if not trial.key.startswith('WebRTC-'):
            invalid.append(f'{trial.key} does not start with "WebRTC-".')
        if len(trial.bug) <= 0:
            invalid.append(f'{trial.key} must have an associated bug.')
        if trial.end_date >= INDEFINITE:
            invalid.append(f'{trial.key} must have an end date.')
    return invalid


def cmd_header(args: argparse.Namespace) -> None:
    args.output.write(registry_header())


def cmd_expired(args: argparse.Namespace) -> None:
    today = todays_date()
    diff = datetime.timedelta(days=args.in_days)
    expired = expired_field_trials(today + diff)

    if len(expired) <= 0:
        return

    expired_by_date = sorted([(f.end_date, f.key) for f in expired])
    print('\n'.join(
        f'{key} {"expired" if date <= today else "expires"} on {date}'
        for date, key in expired_by_date))
    if any(date <= today for date, _ in expired_by_date):
        sys.exit(1)


def cmd_validate(args: argparse.Namespace) -> None:
    del args
    invalid = validate_field_trials()

    if len(invalid) <= 0:
        return

    print('\n'.join(sorted(invalid)))
    sys.exit(1)


def main() -> None:
    parser = argparse.ArgumentParser()
    subcommand = parser.add_subparsers(dest='cmd')

    parser_header = subcommand.add_parser(
        'header',
        help='generate C++ header file containing registered field trial keys')
    parser_header.add_argument('--output',
                               default=sys.stdout,
                               type=argparse.FileType('w'),
                               required=False,
                               help='output file')
    parser_header.set_defaults(cmd=cmd_header)

    parser_expired = subcommand.add_parser(
        'expired',
        help='lists all expired field trials',
        description='''
        Lists all expired field trials. Exits with a non-zero exit status if
        any field trials has expired, ignoring the --in-days argument.
        ''')
    parser_expired.add_argument(
        '--in-days',
        default=0,
        type=int,
        required=False,
        help='number of days relative to today to check')
    parser_expired.set_defaults(cmd=cmd_expired)

    parser_validate = subcommand.add_parser(
        'validate',
        help='validates that all field trials conforms to the policy.',
        description='''
        Validates that all field trials conforms to the policy. Exits with a
        non-zero exit status if any field trials does not.
        ''')
    parser_validate.set_defaults(cmd=cmd_validate)

    args = parser.parse_args()

    if not args.cmd:
        parser.print_help(sys.stderr)
        sys.exit(1)

    args.cmd(args)


if __name__ == '__main__':
    main()
