content: // coverage:ignore-file
  // GENERATED CODE - DO NOT MODIFY BY HAND
  // ignore_for_file: type=lint
  // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
  
  part of '../profile.dart';
  
  // **************************************************************************
  // FreezedGenerator
  // **************************************************************************
  
  T _$identity<T>(T value) => value;
  
  final _privateConstructorUsedError = UnsupportedError(
      'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
  
  SubscriptionInfo _$SubscriptionInfoFromJson(Map<String, dynamic> json) {
    return _SubscriptionInfo.fromJson(json);
  }
  
  /// @nodoc
  mixin _$SubscriptionInfo {
    int get upload => throw _privateConstructorUsedError;
    int get download => throw _privateConstructorUsedError;
    int get total => throw _privateConstructorUsedError;
    int get expire => throw _privateConstructorUsedError;
  
    /// Serializes this SubscriptionInfo to a JSON map.
    Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
  
    /// Create a copy of SubscriptionInfo
    /// with the given fields replaced by the non-null parameter values.
    @JsonKey(includeFromJson: false, includeToJson: false)
    $SubscriptionInfoCopyWith<SubscriptionInfo> get copyWith =>
        throw _privateConstructorUsedError;
  }
  
  /// @nodoc
  abstract class $SubscriptionInfoCopyWith<$Res> {
    factory $SubscriptionInfoCopyWith(
            SubscriptionInfo value, $Res Function(SubscriptionInfo) then) =
        _$SubscriptionInfoCopyWithImpl<$Res, SubscriptionInfo>;
    @useResult
    $Res call({int upload, int download, int total, int expire});
  }
  
  /// @nodoc
  class _$SubscriptionInfoCopyWithImpl<$Res, $Val extends SubscriptionInfo>
      implements $SubscriptionInfoCopyWith<$Res> {
    _$SubscriptionInfoCopyWithImpl(this._value, this._then);
  
    // ignore: unused_field
    final $Val _value;
    // ignore: unused_field
    final $Res Function($Val) _then;
  
    /// Create a copy of SubscriptionInfo
    /// with the given fields replaced by the non-null parameter values.
    @pragma('vm:prefer-inline')
    @override
    $Res call({
      Object? upload = null,
      Object? download = null,
      Object? total = null,
      Object? expire = null,
    }) {
      return _then(_value.copyWith(
        upload: null == upload
            ? _value.upload
            : upload // ignore: cast_nullable_to_non_nullable
                as int,
        download: null == download
            ? _value.download
            : download // ignore: cast_nullable_to_non_nullable
                as int,
        total: null == total
            ? _value.total
            : total // ignore: cast_nullable_to_non_nullable
                as int,
        expire: null == expire
            ? _value.expire
            : expire // ignore: cast_nullable_to_non_nullable
                as int,
      ) as $Val);
    }
  }
  
  /// @nodoc
  abstract class _$$SubscriptionInfoImplCopyWith<$Res>
      implements $SubscriptionInfoCopyWith<$Res> {
    factory _$$SubscriptionInfoImplCopyWith(_$SubscriptionInfoImpl value,
            $Res Function(_$SubscriptionInfoImpl) then) =
        __$$SubscriptionInfoImplCopyWithImpl<$Res>;
    @override
    @useResult
    $Res call({int upload, int download, int total, int expire});
  }
  
  /// @nodoc
  class __$$SubscriptionInfoImplCopyWithImpl<$Res>
      extends _$SubscriptionInfoCopyWithImpl<$Res, _$SubscriptionInfoImpl>
      implements _$$SubscriptionInfoImplCopyWith<$Res> {
    __$$SubscriptionInfoImplCopyWithImpl(_$SubscriptionInfoImpl _value,
        $Res Function(_$SubscriptionInfoImpl) _then)
        : super(_value, _then);
  
    /// Create a copy of SubscriptionInfo
    /// with the given fields replaced by the non-null parameter values.
    @pragma('vm:prefer-inline')
    @override
    $Res call({
      Object? upload = null,
      Object? download = null,
      Object? total = null,
      Object? expire = null,
    }) {
      return _then(_$SubscriptionInfoImpl(
        upload: null == upload
            ? _value.upload
            : upload // ignore: cast_nullable_to_non_nullable
                as int,
        download: null == download
            ? _value.download
            : download // ignore: cast_nullable_to_non_nullable
                as int,
        total: null == total
            ? _value.total
            : total // ignore: cast_nullable_to_non_nullable
                as int,
        expire: null == expire
            ? _value.expire
            : expire // ignore: cast_nullable_to_non_nullable
                as int,
      ));
    }
  }
  
  /// @nodoc
  @JsonSerializable()
  class _$SubscriptionInfoImpl implements _SubscriptionInfo {
    const _$SubscriptionInfoImpl(
        {this.upload = 0, this.download = 0, this.total = 0, this.expire = 0});
  
    factory _$SubscriptionInfoImpl.fromJson(Map<String, dynamic> json) =>
        _$$SubscriptionInfoImplFromJson(json);
  
    @override
    @JsonKey()
    final int upload;
    @override
    @JsonKey()
    final int download;
    @override
    @JsonKey()
    final int total;
    @override
    @JsonKey()
    final int expire;
  
    @override
    String toString() {
      return 'SubscriptionInfo(upload: $upload, download: $download, total: $total, expire: $expire)';
    }
  
    @override
    bool operator ==(Object other) {
      return identical(this, other) ||
          (other.runtimeType == runtimeType &&
              other is _$SubscriptionInfoImpl &&
              (identical(other.upload, upload) || other.upload == upload) &&
              (identical(other.download, download) ||
                  other.download == download) &&
              (identical(other.total, total) || other.total == total) &&
              (identical(other.expire, expire) || other.expire == expire));
    }
  
    @JsonKey(includeFromJson: false, includeToJson: false)
    @override
    int get hashCode => Object.hash(runtimeType, upload, download, total, expire);
  
    /// Create a copy of SubscriptionInfo
    /// with the given fields replaced by the non-null parameter values.
    @JsonKey(includeFromJson: false, includeToJson: false)
    @override
    @pragma('vm:prefer-inline')
    _$$SubscriptionInfoImplCopyWith<_$SubscriptionInfoImpl> get copyWith =>
        __$$SubscriptionInfoImplCopyWithImpl<_$SubscriptionInfoImpl>(
            this, _$identity);
  
    @override
    Map<String, dynamic> toJson() {
      return _$$SubscriptionInfoImplToJson(
        this,
      );
    }
  }
  
  abstract class _SubscriptionInfo implements SubscriptionInfo {
    const factory _SubscriptionInfo(
        {final int upload,
        final int download,
        final int total,
        final int expire}) = _$SubscriptionInfoImpl;
  
    factory _SubscriptionInfo.fromJson(Map<String, dynamic> json) =
        _$SubscriptionInfoImpl.fromJson;
  
    @override
    int get upload;
    @override
    int get download;
    @override
    int get total;
    @override
    int get expire;
  
    /// Create a copy of SubscriptionInfo
    /// with the given fields replaced by the non-null parameter values.
    @override
    @JsonKey(includeFromJson: false, includeToJson: false)
    _$$SubscriptionInfoImplCopyWith<_$SubscriptionInfoImpl> get copyWith =>
        throw _privateConstructorUsedError;
  }
  
  Profile _$ProfileFromJson(Map<String, dynamic> json) {
    return _Profile.fromJson(json);
  }
  
  /// @nodoc
  mixin _$Profile {
    String get id => throw _privateConstructorUsedError;
    String? get label => throw _privateConstructorUsedError;
    String? get currentGroupName => throw _privateConstructorUsedError;
    String get url => throw _privateConstructorUsedError;
    DateTime? get lastUpdateDate => throw _privateConstructorUsedError;
    Duration get autoUpdateDuration => throw _privateConstructorUsedError;
    SubscriptionInfo? get subscriptionInfo => throw _privateConstructorUsedError;
    bool get autoUpdate => throw _privateConstructorUsedError;
    Map<String, String> get selectedMap => throw _privateConstructorUsedError;
    Set<String> get unfoldSet => throw _privateConstructorUsedError;
    OverrideData get overrideData => throw _privateConstructorUsedError;
    @JsonKey(includeToJson: false, includeFromJson: false)
    bool get isUpdating => throw _privateConstructorUsedError;
  
    /// Serializes this Profile to a JSON map.
    Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
  
    /// Create a copy of Profile
    /// with the given fields replaced by the non-null parameter values.
    @JsonKey(includeFromJson: false, includeToJson: false)
    $ProfileCopyWith<Profile> get copyWith => throw _privateConstructorUsedError;
  }
  
  /// @nodoc
  abstract class $ProfileCopyWith<$Res> {
    factory $ProfileCopyWith(Profile value, $Res Function(Profile) then) =
        _$ProfileCopyWithImpl<$Res, Profile>;
    @useResult
    $Res call(
        {String id,
        String? label,
        String? currentGroupName,
        String url,
        DateTime? lastUpdateDate,
        Duration autoUpdateDuration,
        SubscriptionInfo? subscriptionInfo,
        bool autoUpdate,
        Map<String, String> selectedMap,
        Set<String> unfoldSet,
        OverrideData overrideData,
        @JsonKey(includeToJson: false, includeFromJson: false) bool isUpdating});
  
    $SubscriptionInfoCopyWith<$Res>? get subscriptionInfo;
    $OverrideDataCopyWith<$Res> get overrideData;
  }
  
  /// @nodoc
  class _$ProfileCopyWithImpl<$Res, $Val extends Profile>
      implements $ProfileCopyWith<$Res> {
    _$ProfileCopyWithImpl(this._value, this._then);
  
    // ignore: unused_field
    final $Val _value;
    // ignore: unused_field
    final $Res Function($Val) _then;
  
    /// Create a copy of Profile
    /// with the given fields replaced by the non-null parameter values.
    @pragma('vm:prefer-inline')
    @override
    $Res call({
      Object? id = null,
      Object? label = freezed,
      Object? currentGroupName = freezed,
      Object? url = null,
      Object? lastUpdateDate = freezed,
      Object? autoUpdateDuration = null,
      Object? subscriptionInfo = freezed,
      Object? autoUpdate = null,
      Object? selectedMap = null,
      Object? unfoldSet = null,
      Object? overrideData = null,
      Object? isUpdating = null,
    }) {
      return _then(_value.copyWith(
        id: null == id
            ? _value.id
            : id // ignore: cast_nullable_to_non_nullable
                as String,
        label: freezed == label
            ? _value.label
            : label // ignore: cast_nullable_to_non_nullable
                as String?,
        currentGroupName: freezed == currentGroupName
            ? _value.currentGroupName
            : currentGroupName // ignore: cast_nullable_to_non_nullable
                as String?,
        url: null == url
            ? _value.url
            : url // ignore: cast_nullable_to_non_nullable
                as String,
        lastUpdateDate: freezed == lastUpdateDate
            ? _value.lastUpdateDate
            : lastUpdateDate // ignore: cast_nullable_to_non_nullable
                as DateTime?,
        autoUpdateDuration: null == autoUpdateDuration
            ? _value.autoUpdateDuration
            : autoUpdateDuration // ignore: cast_nullable_to_non_nullable
                as Duration,
        subscriptionInfo: freezed == subscriptionInfo
            ? _value.subscriptionInfo
            : subscriptionInfo // ignore: cast_nullable_to_non_nullable
                as SubscriptionInfo?,
        autoUpdate: null == autoUpdate
            ? _value.autoUpdate
            : autoUpdate // ignore: cast_nullable_to_non_nullable
                as bool,
        selectedMap: null == selectedMap
            ? _value.selectedMap
            : selectedMap // ignore: cast_nullable_to_non_nullable
                as Map<String, String>,
        unfoldSet: null == unfoldSet
            ? _value.unfoldSet
            : unfoldSet // ignore: cast_nullable_to_non_nullable
                as Set<String>,
        overrideData: null == overrideData
            ? _value.overrideData
            : overrideData // ignore: cast_nullable_to_non_nullable
                as OverrideData,
        isUpdating: null == isUpdating
            ? _value.isUpdating
            : isUpdating // ignore: cast_nullable_to_non_nullable
                as bool,
      ) as $Val);
    }
  
    /// Create a copy of Profile
    /// with the given fields replaced by the non-null parameter values.
    @override
    @pragma('vm:prefer-inline')
    $SubscriptionInfoCopyWith<$Res>? get subscriptionInfo {
      if (_value.subscriptionInfo == null) {
        return null;
      }
  
      return $SubscriptionInfoCopyWith<$Res>(_value.subscriptionInfo!, (value) {
        return _then(_value.copyWith(subscriptionInfo: value) as $Val);
      });
    }
  
    /// Create a copy of Profile
    /// with the given fields replaced by the non-null parameter values.
    @override
    @pragma('vm:prefer-inline')
    $OverrideDataCopyWith<$Res> get overrideData {
      return $OverrideDataCopyWith<$Res>(_value.overrideData, (value) {
        return _then(_value.copyWith(overrideData: value) as $Val);
      });
    }
  }
  
  /// @nodoc
  abstract class _$$ProfileImplCopyWith<$Res> implements $ProfileCopyWith<$Res> {
    factory _$$ProfileImplCopyWith(
            _$ProfileImpl value, $Res Function(_$ProfileImpl) then) =
        __$$ProfileImplCopyWithImpl<$Res>;
    @override
    @useResult
    $Res call(
        {String id,
        String? label,
        String? currentGroupName,
        String url,
        DateTime? lastUpdateDate,
        Duration autoUpdateDuration,
        SubscriptionInfo? subscriptionInfo,
        bool autoUpdate,
        Map<String, String> selectedMap,
        Set<String> unfoldSet,
        OverrideData overrideData,
        @JsonKey(includeToJson: false, includeFromJson: false) bool isUpdating});
  
    @override
    $SubscriptionInfoCopyWith<$Res>? get subscriptionInfo;
    @override
    $OverrideDataCopyWith<$Res> get overrideData;
  }
  
  /// @nodoc
  class __$$ProfileImplCopyWithImpl<$Res>
      extends _$ProfileCopyWithImpl<$Res, _$ProfileImpl>
      implements _$$ProfileImplCopyWith<$Res> {
    __$$ProfileImplCopyWithImpl(
        _$ProfileImpl _value, $Res Function(_$ProfileImpl) _then)
        : super(_value, _then);
  
    /// Create a copy of Profile
    /// with the given fields replaced by the non-null parameter values.
    @pragma('vm:prefer-inline')
    @override
    $Res call({
      Object? id = null,
      Object? label = freezed,
      Object? currentGroupName = freezed,
      Object? url = null,
      Object? lastUpdateDate = freezed,
      Object? autoUpdateDuration = null,
      Object? subscriptionInfo = freezed,
      Object? autoUpdate = null,
      Object? selectedMap = null,
      Object? unfoldSet = null,
      Object? overrideData = null,
      Object? isUpdating = null,
    }) {
      return _then(_$ProfileImpl(
        id: null == id
            ? _value.id
            : id // ignore: cast_nullable_to_non_nullable
                as String,
        label: freezed == label
            ? _value.label
            : label // ignore: cast_nullable_to_non_nullable
                as String?,
        currentGroupName: freezed == currentGroupName
            ? _value.currentGroupName
            : currentGroupName // ignore: cast_nullable_to_non_nullable
                as String?,
        url: null == url
            ? _value.url
            : url // ignore: cast_nullable_to_non_nullable
                as String,
        lastUpdateDate: freezed == lastUpdateDate
            ? _value.lastUpdateDate
            : lastUpdateDate // ignore: cast_nullable_to_non_nullable
                as DateTime?,
        autoUpdateDuration: null == autoUpdateDuration
            ? _value.autoUpdateDuration
            : autoUpdateDuration // ignore: cast_nullable_to_non_nullable
                as Duration,
        subscriptionInfo: freezed == subscriptionInfo
            ? _value.subscriptionInfo
            : subscriptionInfo // ignore: cast_nullable_to_non_nullable
                as SubscriptionInfo?,
        autoUpdate: null == autoUpdate
            ? _value.autoUpdate
            : autoUpdate // ignore: cast_nullable_to_non_nullable
                as bool,
        selectedMap: null == selectedMap
            ? _value._selectedMap
            : selectedMap // ignore: cast_nullable_to_non_nullable
                as Map<String, String>,
        unfoldSet: null == unfoldSet
            ? _value._unfoldSet
            : unfoldSet // ignore: cast_nullable_to_non_nullable
                as Set<String>,
        overrideData: null == overrideData
            ? _value.overrideData
            : overrideData // ignore: cast_nullable_to_non_nullable
                as OverrideData,
        isUpdating: null == isUpdating
            ? _value.isUpdating
            : isUpdating // ignore: cast_nullable_to_non_nullable
                as bool,
      ));
    }
  }
  
  /// @nodoc
  @JsonSerializable()
  class _$ProfileImpl implements _Profile {
    const _$ProfileImpl(
        {required this.id,
        this.label,
        this.currentGroupName,
        this.url = "",
        this.lastUpdateDate,
        required this.autoUpdateDuration,
        this.subscriptionInfo,
        this.autoUpdate = true,
        final Map<String, String> selectedMap = const {},
        final Set<String> unfoldSet = const {},
        this.overrideData = const OverrideData(),
        @JsonKey(includeToJson: false, includeFromJson: false)
        this.isUpdating = false})
        : _selectedMap = selectedMap,
          _unfoldSet = unfoldSet;
  
    factory _$ProfileImpl.fromJson(Map<String, dynamic> json) =>
        _$$ProfileImplFromJson(json);
  
    @override
    final String id;
    @override
    final String? label;
    @override
    final String? currentGroupName;
    @override
    @JsonKey()
    final String url;
    @override
    final DateTime? lastUpdateDate;
    @override
    final Duration autoUpdateDuration;
    @override
    final SubscriptionInfo? subscriptionInfo;
    @override
    @JsonKey()
    final bool autoUpdate;
    final Map<String, String> _selectedMap;
    @override
    @JsonKey()
    Map<String, String> get selectedMap {
      if (_selectedMap is EqualUnmodifiableMapView) return _selectedMap;
      // ignore: implicit_dynamic_type
      return EqualUnmodifiableMapView(_selectedMap);
    }
  
    final Set<String> _unfoldSet;
    @override
    @JsonKey()
    Set<String> get unfoldSet {
      if (_unfoldSet is EqualUnmodifiableSetView) return _unfoldSet;
      // ignore: implicit_dynamic_type
      return EqualUnmodifiableSetView(_unfoldSet);
    }
  
    @override
    @JsonKey()
    final OverrideData overrideData;
    @override
    @JsonKey(includeToJson: false, includeFromJson: false)
    final bool isUpdating;
  
    @override
    String toString() {
      return 'Profile(id: $id, label: $label, currentGroupName: $currentGroupName, url: $url, lastUpdateDate: $lastUpdateDate, autoUpdateDuration: $autoUpdateDuration, subscriptionInfo: $subscriptionInfo, autoUpdate: $autoUpdate, selectedMap: $selectedMap, unfoldSet: $unfoldSet, overrideData: $overrideData, isUpdating: $isUpdating)';
    }
  
    @override
    bool operator ==(Object other) {
      return identical(this, other) ||
          (other.runtimeType == runtimeType &&
              other is _$ProfileImpl &&
              (identical(other.id, id) || other.id == id) &&
              (identical(other.label, label) || other.label == label) &&
              (identical(other.currentGroupName, currentGroupName) ||
                  other.currentGroupName == currentGroupName) &&
              (identical(other.url, url) || other.url == url) &&
              (identical(other.lastUpdateDate, lastUpdateDate) ||
                  other.lastUpdateDate == lastUpdateDate) &&
              (identical(other.autoUpdateDuration, autoUpdateDuration) ||
                  other.autoUpdateDuration == autoUpdateDuration) &&
              (identical(other.subscriptionInfo, subscriptionInfo) ||
                  other.subscriptionInfo == subscriptionInfo) &&
              (identical(other.autoUpdate, autoUpdate) ||
                  other.autoUpdate == autoUpdate) &&
              const DeepCollectionEquality()
                  .equals(other._selectedMap, _selectedMap) &&
              const DeepCollectionEquality()
                  .equals(other._unfoldSet, _unfoldSet) &&
              (identical(other.overrideData, overrideData) ||
                  other.overrideData == overrideData) &&
              (identical(other.isUpdating, isUpdating) ||
                  other.isUpdating == isUpdating));
    }
  
    @JsonKey(includeFromJson: false, includeToJson: false)
    @override
    int get hashCode => Object.hash(
        runtimeType,
        id,
        label,
        currentGroupName,
        url,
        lastUpdateDate,
        autoUpdateDuration,
        subscriptionInfo,
        autoUpdate,
        const DeepCollectionEquality().hash(_selectedMap),
        const DeepCollectionEquality().hash(_unfoldSet),
        overrideData,
        isUpdating);
  
    /// Create a copy of Profile
    /// with the given fields replaced by the non-null parameter values.
    @JsonKey(includeFromJson: false, includeToJson: false)
    @override
    @pragma('vm:prefer-inline')
    _$$ProfileImplCopyWith<_$ProfileImpl> get copyWith =>
        __$$ProfileImplCopyWithImpl<_$ProfileImpl>(this, _$identity);
  
    @override
    Map<String, dynamic> toJson() {
      return _$$ProfileImplToJson(
        this,
      );
    }
  }
  
  abstract class _Profile implements Profile {
    const factory _Profile(
        {required final String id,
        final String? label,
        final String? currentGroupName,
        final String url,
        final DateTime? lastUpdateDate,
        required final Duration autoUpdateDuration,
        final SubscriptionInfo? subscriptionInfo,
        final bool autoUpdate,
        final Map<String, String> selectedMap,
        final Set<String> unfoldSet,
        final OverrideData overrideData,
        @JsonKey(includeToJson: false, includeFromJson: false)
        final bool isUpdating}) = _$ProfileImpl;
  
    factory _Profile.fromJson(Map<String, dynamic> json) = _$ProfileImpl.fromJson;
  
    @override
    String get id;
    @override
    String? get label;
    @override
    String? get currentGroupName;
    @override
    String get url;
    @override
    DateTime? get lastUpdateDate;
    @override
    Duration get autoUpdateDuration;
    @override
    SubscriptionInfo? get subscriptionInfo;
    @override
    bool get autoUpdate;
    @override
    Map<String, String> get selectedMap;
    @override
    Set<String> get unfoldSet;
    @override
    OverrideData get overrideData;
    @override
    @JsonKey(includeToJson: false, includeFromJson: false)
    bool get isUpdating;
  
    /// Create a copy of Profile
    /// with the given fields replaced by the non-null parameter values.
    @override
    @JsonKey(includeFromJson: false, includeToJson: false)
    _$$ProfileImplCopyWith<_$ProfileImpl> get copyWith =>
        throw _privateConstructorUsedError;
  }
  
  OverrideData _$OverrideDataFromJson(Map<String, dynamic> json) {
    return _OverrideData.fromJson(json);
  }
  
  /// @nodoc
  mixin _$OverrideData {
    bool get enable => throw _privateConstructorUsedError;
    OverrideRule get rule => throw _privateConstructorUsedError;
  
    /// Serializes this OverrideData to a JSON map.
    Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
  
    /// Create a copy of OverrideData
    /// with the given fields replaced by the non-null parameter values.
    @JsonKey(includeFromJson: false, includeToJson: false)
    $OverrideDataCopyWith<OverrideData> get copyWith =>
        throw _privateConstructorUsedError;
  }
  
  /// @nodoc
  abstract class $OverrideDataCopyWith<$Res> {
    factory $OverrideDataCopyWith(
            OverrideData value, $Res Function(OverrideData) then) =
        _$OverrideDataCopyWithImpl<$Res, OverrideData>;
    @useResult
    $Res call({bool enable, OverrideRule rule});
  
    $OverrideRuleCopyWith<$Res> get rule;
  }
  
  /// @nodoc
  class _$OverrideDataCopyWithImpl<$Res, $Val extends OverrideData>
      implements $OverrideDataCopyWith<$Res> {
    _$OverrideDataCopyWithImpl(this._value, this._then);
  
    // ignore: unused_field
    final $Val _value;
    // ignore: unused_field
    final $Res Function($Val) _then;
  
    /// Create a copy of OverrideData
    /// with the given fields replaced by the non-null parameter values.
    @pragma('vm:prefer-inline')
    @override
    $Res call({
      Object? enable = null,
      Object? rule = null,
    }) {
      return _then(_value.copyWith(
        enable: null == enable
            ? _value.enable
            : enable // ignore: cast_nullable_to_non_nullable
                as bool,
        rule: null == rule
            ? _value.rule
            : rule // ignore: cast_nullable_to_non_nullable
                as OverrideRule,
      ) as $Val);
    }
  
    /// Create a copy of OverrideData
    /// with the given fields replaced by the non-null parameter values.
    @override
    @pragma('vm:prefer-inline')
    $OverrideRuleCopyWith<$Res> get rule {
      return $OverrideRuleCopyWith<$Res>(_value.rule, (value) {
        return _then(_value.copyWith(rule: value) as $Val);
      });
    }
  }
  
  /// @nodoc
  abstract class _$$OverrideDataImplCopyWith<$Res>
      implements $OverrideDataCopyWith<$Res> {
    factory _$$OverrideDataImplCopyWith(
            _$OverrideDataImpl value, $Res Function(_$OverrideDataImpl) then) =
        __$$OverrideDataImplCopyWithImpl<$Res>;
    @override
    @useResult
    $Res call({bool enable, OverrideRule rule});
  
    @override
    $OverrideRuleCopyWith<$Res> get rule;
  }
  
  /// @nodoc
  class __$$OverrideDataImplCopyWithImpl<$Res>
      extends _$OverrideDataCopyWithImpl<$Res, _$OverrideDataImpl>
      implements _$$OverrideDataImplCopyWith<$Res> {
    __$$OverrideDataImplCopyWithImpl(
        _$OverrideDataImpl _value, $Res Function(_$OverrideDataImpl) _then)
        : super(_value, _then);
  
    /// Create a copy of OverrideData
    /// with the given fields replaced by the non-null parameter values.
    @pragma('vm:prefer-inline')
    @override
    $Res call({
      Object? enable = null,
      Object? rule = null,
    }) {
      return _then(_$OverrideDataImpl(
        enable: null == enable
            ? _value.enable
            : enable // ignore: cast_nullable_to_non_nullable
                as bool,
        rule: null == rule
            ? _value.rule
            : rule // ignore: cast_nullable_to_non_nullable
                as OverrideRule,
      ));
    }
  }
  
  /// @nodoc
  @JsonSerializable()
  class _$OverrideDataImpl implements _OverrideData {
    const _$OverrideDataImpl(
        {this.enable = false, this.rule = const OverrideRule()});
  
    factory _$OverrideDataImpl.fromJson(Map<String, dynamic> json) =>
        _$$OverrideDataImplFromJson(json);
  
    @override
    @JsonKey()
    final bool enable;
    @override
    @JsonKey()
    final OverrideRule rule;
  
    @override
    String toString() {
      return 'OverrideData(enable: $enable, rule: $rule)';
    }
  
    @override
    bool operator ==(Object other) {
      return identical(this, other) ||
          (other.runtimeType == runtimeType &&
              other is _$OverrideDataImpl &&
              (identical(other.enable, enable) || other.enable == enable) &&
              (identical(other.rule, rule) || other.rule == rule));
    }
  
    @JsonKey(includeFromJson: false, includeToJson: false)
    @override
    int get hashCode => Object.hash(runtimeType, enable, rule);
  
    /// Create a copy of OverrideData
    /// with the given fields replaced by the non-null parameter values.
    @JsonKey(includeFromJson: false, includeToJson: false)
    @override
    @pragma('vm:prefer-inline')
    _$$OverrideDataImplCopyWith<_$OverrideDataImpl> get copyWith =>
        __$$OverrideDataImplCopyWithImpl<_$OverrideDataImpl>(this, _$identity);
  
    @override
    Map<String, dynamic> toJson() {
      return _$$OverrideDataImplToJson(
        this,
      );
    }
  }
  
  abstract class _OverrideData implements OverrideData {
    const factory _OverrideData({final bool enable, final OverrideRule rule}) =
        _$OverrideDataImpl;
  
    factory _OverrideData.fromJson(Map<String, dynamic> json) =
        _$OverrideDataImpl.fromJson;
  
    @override
    bool get enable;
    @override
    OverrideRule get rule;
  
    /// Create a copy of OverrideData
    /// with the given fields replaced by the non-null parameter values.
    @override
    @JsonKey(includeFromJson: false, includeToJson: false)
    _$$OverrideDataImplCopyWith<_$OverrideDataImpl> get copyWith =>
        throw _privateConstructorUsedError;
  }
  
  OverrideRule _$OverrideRuleFromJson(Map<String, dynamic> json) {
    return _OverrideRule.fromJson(json);
  }
  
  /// @nodoc
  mixin _$OverrideRule {
    OverrideRuleType get type => throw _privateConstructorUsedError;
    List<Rule> get overrideRules => throw _privateConstructorUsedError;
    List<Rule> get addedRules => throw _privateConstructorUsedError;
  
    /// Serializes this OverrideRule to a JSON map.
    Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
  
    /// Create a copy of OverrideRule
    /// with the given fields replaced by the non-null parameter values.
    @JsonKey(includeFromJson: false, includeToJson: false)
    $OverrideRuleCopyWith<OverrideRule> get copyWith =>
        throw _privateConstructorUsedError;
  }
  
  /// @nodoc
  abstract class $OverrideRuleCopyWith<$Res> {
    factory $OverrideRuleCopyWith(
            OverrideRule value, $Res Function(OverrideRule) then) =
        _$OverrideRuleCopyWithImpl<$Res, OverrideRule>;
    @useResult
    $Res call(
        {OverrideRuleType type, List<Rule> overrideRules, List<Rule> addedRules});
  }
  
  /// @nodoc
  class _$OverrideRuleCopyWithImpl<$Res, $Val extends OverrideRule>
      implements $OverrideRuleCopyWith<$Res> {
    _$OverrideRuleCopyWithImpl(this._value, this._then);
  
    // ignore: unused_field
    final $Val _value;
    // ignore: unused_field
    final $Res Function($Val) _then;
  
    /// Create a copy of OverrideRule
    /// with the given fields replaced by the non-null parameter values.
    @pragma('vm:prefer-inline')
    @override
    $Res call({
      Object? type = null,
      Object? overrideRules = null,
      Object? addedRules = null,
    }) {
      return _then(_value.copyWith(
        type: null == type
            ? _value.type
            : type // ignore: cast_nullable_to_non_nullable
                as OverrideRuleType,
        overrideRules: null == overrideRules
            ? _value.overrideRules
            : overrideRules // ignore: cast_nullable_to_non_nullable
                as List<Rule>,
        addedRules: null == addedRules
            ? _value.addedRules
            : addedRules // ignore: cast_nullable_to_non_nullable
                as List<Rule>,
      ) as $Val);
    }
  }
  
  /// @nodoc
  abstract class _$$OverrideRuleImplCopyWith<$Res>
      implements $OverrideRuleCopyWith<$Res> {
    factory _$$OverrideRuleImplCopyWith(
            _$OverrideRuleImpl value, $Res Function(_$OverrideRuleImpl) then) =
        __$$OverrideRuleImplCopyWithImpl<$Res>;
    @override
    @useResult
    $Res call(
        {OverrideRuleType type, List<Rule> overrideRules, List<Rule> addedRules});
  }
  
  /// @nodoc
  class __$$OverrideRuleImplCopyWithImpl<$Res>
      extends _$OverrideRuleCopyWithImpl<$Res, _$OverrideRuleImpl>
      implements _$$OverrideRuleImplCopyWith<$Res> {
    __$$OverrideRuleImplCopyWithImpl(
        _$OverrideRuleImpl _value, $Res Function(_$OverrideRuleImpl) _then)
        : super(_value, _then);
  
    /// Create a copy of OverrideRule
    /// with the given fields replaced by the non-null parameter values.
    @pragma('vm:prefer-inline')
    @override
    $Res call({
      Object? type = null,
      Object? overrideRules = null,
      Object? addedRules = null,
    }) {
      return _then(_$OverrideRuleImpl(
        type: null == type
            ? _value.type
            : type // ignore: cast_nullable_to_non_nullable
                as OverrideRuleType,
        overrideRules: null == overrideRules
            ? _value._overrideRules
            : overrideRules // ignore: cast_nullable_to_non_nullable
                as List<Rule>,
        addedRules: null == addedRules
            ? _value._addedRules
            : addedRules // ignore: cast_nullable_to_non_nullable
                as List<Rule>,
      ));
    }
  }
  
  /// @nodoc
  @JsonSerializable()
  class _$OverrideRuleImpl implements _OverrideRule {
    const _$OverrideRuleImpl(
        {this.type = OverrideRuleType.added,
        final List<Rule> overrideRules = const [],
        final List<Rule> addedRules = const []})
        : _overrideRules = overrideRules,
          _addedRules = addedRules;
  
    factory _$OverrideRuleImpl.fromJson(Map<String, dynamic> json) =>
        _$$OverrideRuleImplFromJson(json);
  
    @override
    @JsonKey()
    final OverrideRuleType type;
    final List<Rule> _overrideRules;
    @override
    @JsonKey()
    List<Rule> get overrideRules {
      if (_overrideRules is EqualUnmodifiableListView) return _overrideRules;
      // ignore: implicit_dynamic_type
      return EqualUnmodifiableListView(_overrideRules);
    }
  
    final List<Rule> _addedRules;
    @override
    @JsonKey()
    List<Rule> get addedRules {
      if (_addedRules is EqualUnmodifiableListView) return _addedRules;
      // ignore: implicit_dynamic_type
      return EqualUnmodifiableListView(_addedRules);
    }
  
    @override
    String toString() {
      return 'OverrideRule(type: $type, overrideRules: $overrideRules, addedRules: $addedRules)';
    }
  
    @override
    bool operator ==(Object other) {
      return identical(this, other) ||
          (other.runtimeType == runtimeType &&
              other is _$OverrideRuleImpl &&
              (identical(other.type, type) || other.type == type) &&
              const DeepCollectionEquality()
                  .equals(other._overrideRules, _overrideRules) &&
              const DeepCollectionEquality()
                  .equals(other._addedRules, _addedRules));
    }
  
    @JsonKey(includeFromJson: false, includeToJson: false)
    @override
    int get hashCode => Object.hash(
        runtimeType,
        type,
        const DeepCollectionEquality().hash(_overrideRules),
        const DeepCollectionEquality().hash(_addedRules));
  
    /// Create a copy of OverrideRule
    /// with the given fields replaced by the non-null parameter values.
    @JsonKey(includeFromJson: false, includeToJson: false)
    @override
    @pragma('vm:prefer-inline')
    _$$OverrideRuleImplCopyWith<_$OverrideRuleImpl> get copyWith =>
        __$$OverrideRuleImplCopyWithImpl<_$OverrideRuleImpl>(this, _$identity);
  
    @override
    Map<String, dynamic> toJson() {
      return _$$OverrideRuleImplToJson(
        this,
      );
    }
  }
  
  abstract class _OverrideRule implements OverrideRule {
    const factory _OverrideRule(
        {final OverrideRuleType type,
        final List<Rule> overrideRules,
        final List<Rule> addedRules}) = _$OverrideRuleImpl;
  
    factory _OverrideRule.fromJson(Map<String, dynamic> json) =
        _$OverrideRuleImpl.fromJson;
  
    @override
    OverrideRuleType get type;
    @override
    List<Rule> get overrideRules;
    @override
    List<Rule> get addedRules;
  
    /// Create a copy of OverrideRule
    /// with the given fields replaced by the non-null parameter values.
    @override
    @JsonKey(includeFromJson: false, includeToJson: false)
    _$$OverrideRuleImplCopyWith<_$OverrideRuleImpl> get copyWith =>
        throw _privateConstructorUsedError;
  }
  