DynamicProto.java

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: dynamic.proto

package androidx.wear.protolayout.expression.proto;

public final class DynamicProto {
  private DynamicProto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * <pre>
   * The type of data to provide to a PlatformInt32Source.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.expression.proto.PlatformInt32SourceType}
   */
  public enum PlatformInt32SourceType
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Undefined source.
     * </pre>
     *
     * <code>PLATFORM_INT32_SOURCE_TYPE_UNDEFINED = 0;</code>
     */
    PLATFORM_INT32_SOURCE_TYPE_UNDEFINED(0),
    /**
     * <pre>
     * The user's current heart rate.
     * Note that to use this data source, your app must already have the
     * "BODY_SENSORS" permission granted to it. If this permission is not present,
     * this source type will never yield any data.
     * </pre>
     *
     * <code>PLATFORM_INT32_SOURCE_TYPE_CURRENT_HEART_RATE = 1;</code>
     */
    PLATFORM_INT32_SOURCE_TYPE_CURRENT_HEART_RATE(1),
    /**
     * <pre>
     * The user's current daily steps. This is the number of steps they have taken
     * since midnight, and will reset to zero at midnight.
     * Note that to use this data source, your app must already have the
     * "ACTIVITY_RECOGNITION" permission granted to it. If this permission is not
     * present, this source type will never yield any data.
     * </pre>
     *
     * <code>PLATFORM_INT32_SOURCE_TYPE_DAILY_STEP_COUNT = 2;</code>
     */
    PLATFORM_INT32_SOURCE_TYPE_DAILY_STEP_COUNT(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Undefined source.
     * </pre>
     *
     * <code>PLATFORM_INT32_SOURCE_TYPE_UNDEFINED = 0;</code>
     */
    public static final int PLATFORM_INT32_SOURCE_TYPE_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * The user's current heart rate.
     * Note that to use this data source, your app must already have the
     * "BODY_SENSORS" permission granted to it. If this permission is not present,
     * this source type will never yield any data.
     * </pre>
     *
     * <code>PLATFORM_INT32_SOURCE_TYPE_CURRENT_HEART_RATE = 1;</code>
     */
    public static final int PLATFORM_INT32_SOURCE_TYPE_CURRENT_HEART_RATE_VALUE = 1;
    /**
     * <pre>
     * The user's current daily steps. This is the number of steps they have taken
     * since midnight, and will reset to zero at midnight.
     * Note that to use this data source, your app must already have the
     * "ACTIVITY_RECOGNITION" permission granted to it. If this permission is not
     * present, this source type will never yield any data.
     * </pre>
     *
     * <code>PLATFORM_INT32_SOURCE_TYPE_DAILY_STEP_COUNT = 2;</code>
     */
    public static final int PLATFORM_INT32_SOURCE_TYPE_DAILY_STEP_COUNT_VALUE = 2;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static PlatformInt32SourceType valueOf(int value) {
      return forNumber(value);
    }

    public static PlatformInt32SourceType forNumber(int value) {
      switch (value) {
        case 0: return PLATFORM_INT32_SOURCE_TYPE_UNDEFINED;
        case 1: return PLATFORM_INT32_SOURCE_TYPE_CURRENT_HEART_RATE;
        case 2: return PLATFORM_INT32_SOURCE_TYPE_DAILY_STEP_COUNT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PlatformInt32SourceType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        PlatformInt32SourceType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PlatformInt32SourceType>() {
            @java.lang.Override
            public PlatformInt32SourceType findValueByNumber(int number) {
              return PlatformInt32SourceType.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return PlatformInt32SourceTypeVerifier.INSTANCE;
    }

    private static final class PlatformInt32SourceTypeVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new PlatformInt32SourceTypeVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return PlatformInt32SourceType.forNumber(number) != null;
            }
          };

    private final int value;

    private PlatformInt32SourceType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.expression.proto.PlatformInt32SourceType)
  }

  /**
   * <pre>
   * The type of arithmetic operation used in ArithmeticInt32Op and
   * ArithmeticFloatOp.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.expression.proto.ArithmeticOpType}
   */
  public enum ArithmeticOpType
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Undefined operation type.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_UNDEFINED = 0;</code>
     */
    ARITHMETIC_OP_TYPE_UNDEFINED(0),
    /**
     * <pre>
     * Addition.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_ADD = 1;</code>
     */
    ARITHMETIC_OP_TYPE_ADD(1),
    /**
     * <pre>
     * Subtraction.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_SUBTRACT = 2;</code>
     */
    ARITHMETIC_OP_TYPE_SUBTRACT(2),
    /**
     * <pre>
     * Multiplication.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_MULTIPLY = 3;</code>
     */
    ARITHMETIC_OP_TYPE_MULTIPLY(3),
    /**
     * <pre>
     * Division.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_DIVIDE = 4;</code>
     */
    ARITHMETIC_OP_TYPE_DIVIDE(4),
    /**
     * <pre>
     * Modulus.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_MODULO = 5;</code>
     */
    ARITHMETIC_OP_TYPE_MODULO(5),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Undefined operation type.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_UNDEFINED = 0;</code>
     */
    public static final int ARITHMETIC_OP_TYPE_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Addition.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_ADD = 1;</code>
     */
    public static final int ARITHMETIC_OP_TYPE_ADD_VALUE = 1;
    /**
     * <pre>
     * Subtraction.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_SUBTRACT = 2;</code>
     */
    public static final int ARITHMETIC_OP_TYPE_SUBTRACT_VALUE = 2;
    /**
     * <pre>
     * Multiplication.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_MULTIPLY = 3;</code>
     */
    public static final int ARITHMETIC_OP_TYPE_MULTIPLY_VALUE = 3;
    /**
     * <pre>
     * Division.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_DIVIDE = 4;</code>
     */
    public static final int ARITHMETIC_OP_TYPE_DIVIDE_VALUE = 4;
    /**
     * <pre>
     * Modulus.
     * </pre>
     *
     * <code>ARITHMETIC_OP_TYPE_MODULO = 5;</code>
     */
    public static final int ARITHMETIC_OP_TYPE_MODULO_VALUE = 5;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ArithmeticOpType valueOf(int value) {
      return forNumber(value);
    }

    public static ArithmeticOpType forNumber(int value) {
      switch (value) {
        case 0: return ARITHMETIC_OP_TYPE_UNDEFINED;
        case 1: return ARITHMETIC_OP_TYPE_ADD;
        case 2: return ARITHMETIC_OP_TYPE_SUBTRACT;
        case 3: return ARITHMETIC_OP_TYPE_MULTIPLY;
        case 4: return ARITHMETIC_OP_TYPE_DIVIDE;
        case 5: return ARITHMETIC_OP_TYPE_MODULO;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ArithmeticOpType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ArithmeticOpType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ArithmeticOpType>() {
            @java.lang.Override
            public ArithmeticOpType findValueByNumber(int number) {
              return ArithmeticOpType.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return ArithmeticOpTypeVerifier.INSTANCE;
    }

    private static final class ArithmeticOpTypeVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new ArithmeticOpTypeVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return ArithmeticOpType.forNumber(number) != null;
            }
          };

    private final int value;

    private ArithmeticOpType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.expression.proto.ArithmeticOpType)
  }

  /**
   * <pre>
   * Rounding mode to use when converting a float to an int32.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode}
   */
  public enum FloatToInt32RoundMode
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * An undefined rounding mode.
     * </pre>
     *
     * <code>ROUND_MODE_UNDEFINED = 0;</code>
     */
    ROUND_MODE_UNDEFINED(0),
    /**
     * <pre>
     * Use floor(x) when rounding.
     * </pre>
     *
     * <code>ROUND_MODE_FLOOR = 1;</code>
     */
    ROUND_MODE_FLOOR(1),
    /**
     * <pre>
     * Use round(x) when rounding (i.e. rounds to the closest int).
     * </pre>
     *
     * <code>ROUND_MODE_ROUND = 2;</code>
     */
    ROUND_MODE_ROUND(2),
    /**
     * <pre>
     * Use ceil(x) when rounding.
     * </pre>
     *
     * <code>ROUND_MODE_CEILING = 3;</code>
     */
    ROUND_MODE_CEILING(3),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * An undefined rounding mode.
     * </pre>
     *
     * <code>ROUND_MODE_UNDEFINED = 0;</code>
     */
    public static final int ROUND_MODE_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Use floor(x) when rounding.
     * </pre>
     *
     * <code>ROUND_MODE_FLOOR = 1;</code>
     */
    public static final int ROUND_MODE_FLOOR_VALUE = 1;
    /**
     * <pre>
     * Use round(x) when rounding (i.e. rounds to the closest int).
     * </pre>
     *
     * <code>ROUND_MODE_ROUND = 2;</code>
     */
    public static final int ROUND_MODE_ROUND_VALUE = 2;
    /**
     * <pre>
     * Use ceil(x) when rounding.
     * </pre>
     *
     * <code>ROUND_MODE_CEILING = 3;</code>
     */
    public static final int ROUND_MODE_CEILING_VALUE = 3;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static FloatToInt32RoundMode valueOf(int value) {
      return forNumber(value);
    }

    public static FloatToInt32RoundMode forNumber(int value) {
      switch (value) {
        case 0: return ROUND_MODE_UNDEFINED;
        case 1: return ROUND_MODE_FLOOR;
        case 2: return ROUND_MODE_ROUND;
        case 3: return ROUND_MODE_CEILING;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<FloatToInt32RoundMode>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        FloatToInt32RoundMode> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<FloatToInt32RoundMode>() {
            @java.lang.Override
            public FloatToInt32RoundMode findValueByNumber(int number) {
              return FloatToInt32RoundMode.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return FloatToInt32RoundModeVerifier.INSTANCE;
    }

    private static final class FloatToInt32RoundModeVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new FloatToInt32RoundModeVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return FloatToInt32RoundMode.forNumber(number) != null;
            }
          };

    private final int value;

    private FloatToInt32RoundMode(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode)
  }

  /**
   * <pre>
   * The type of comparison used in ComparisonInt32Op and ComparisonFloatOp.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.expression.proto.ComparisonOpType}
   */
  public enum ComparisonOpType
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Undefined operation type.
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_UNDEFINED = 0;</code>
     */
    COMPARISON_OP_TYPE_UNDEFINED(0),
    /**
     * <pre>
     * Equality check (result = LHS == RHS).
     * For floats, for equality check, small epsilon is used, i.e.:
     * (result = abs(LHS - RHS) &lt; epsilon).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_EQUALS = 1;</code>
     */
    COMPARISON_OP_TYPE_EQUALS(1),
    /**
     * <pre>
     * Not equal check (result = LHS != RHS).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_NOT_EQUALS = 2;</code>
     */
    COMPARISON_OP_TYPE_NOT_EQUALS(2),
    /**
     * <pre>
     * Strictly less than (result = LHS &lt; RHS).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_LESS_THAN = 3;</code>
     */
    COMPARISON_OP_TYPE_LESS_THAN(3),
    /**
     * <pre>
     * Less than or equal to (result = LHS &lt;= RHS).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_LESS_THAN_OR_EQUAL_TO = 4;</code>
     */
    COMPARISON_OP_TYPE_LESS_THAN_OR_EQUAL_TO(4),
    /**
     * <pre>
     * Strictly greater than (result = LHS &gt; RHS).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_GREATER_THAN = 5;</code>
     */
    COMPARISON_OP_TYPE_GREATER_THAN(5),
    /**
     * <pre>
     * Greater than or equal to (result = LHS &gt;= RHS).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_GREATER_THAN_OR_EQUAL_TO = 6;</code>
     */
    COMPARISON_OP_TYPE_GREATER_THAN_OR_EQUAL_TO(6),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Undefined operation type.
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_UNDEFINED = 0;</code>
     */
    public static final int COMPARISON_OP_TYPE_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Equality check (result = LHS == RHS).
     * For floats, for equality check, small epsilon is used, i.e.:
     * (result = abs(LHS - RHS) &lt; epsilon).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_EQUALS = 1;</code>
     */
    public static final int COMPARISON_OP_TYPE_EQUALS_VALUE = 1;
    /**
     * <pre>
     * Not equal check (result = LHS != RHS).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_NOT_EQUALS = 2;</code>
     */
    public static final int COMPARISON_OP_TYPE_NOT_EQUALS_VALUE = 2;
    /**
     * <pre>
     * Strictly less than (result = LHS &lt; RHS).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_LESS_THAN = 3;</code>
     */
    public static final int COMPARISON_OP_TYPE_LESS_THAN_VALUE = 3;
    /**
     * <pre>
     * Less than or equal to (result = LHS &lt;= RHS).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_LESS_THAN_OR_EQUAL_TO = 4;</code>
     */
    public static final int COMPARISON_OP_TYPE_LESS_THAN_OR_EQUAL_TO_VALUE = 4;
    /**
     * <pre>
     * Strictly greater than (result = LHS &gt; RHS).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_GREATER_THAN = 5;</code>
     */
    public static final int COMPARISON_OP_TYPE_GREATER_THAN_VALUE = 5;
    /**
     * <pre>
     * Greater than or equal to (result = LHS &gt;= RHS).
     * </pre>
     *
     * <code>COMPARISON_OP_TYPE_GREATER_THAN_OR_EQUAL_TO = 6;</code>
     */
    public static final int COMPARISON_OP_TYPE_GREATER_THAN_OR_EQUAL_TO_VALUE = 6;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ComparisonOpType valueOf(int value) {
      return forNumber(value);
    }

    public static ComparisonOpType forNumber(int value) {
      switch (value) {
        case 0: return COMPARISON_OP_TYPE_UNDEFINED;
        case 1: return COMPARISON_OP_TYPE_EQUALS;
        case 2: return COMPARISON_OP_TYPE_NOT_EQUALS;
        case 3: return COMPARISON_OP_TYPE_LESS_THAN;
        case 4: return COMPARISON_OP_TYPE_LESS_THAN_OR_EQUAL_TO;
        case 5: return COMPARISON_OP_TYPE_GREATER_THAN;
        case 6: return COMPARISON_OP_TYPE_GREATER_THAN_OR_EQUAL_TO;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<ComparisonOpType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ComparisonOpType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<ComparisonOpType>() {
            @java.lang.Override
            public ComparisonOpType findValueByNumber(int number) {
              return ComparisonOpType.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return ComparisonOpTypeVerifier.INSTANCE;
    }

    private static final class ComparisonOpTypeVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new ComparisonOpTypeVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return ComparisonOpType.forNumber(number) != null;
            }
          };

    private final int value;

    private ComparisonOpType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.expression.proto.ComparisonOpType)
  }

  /**
   * <pre>
   * The type of logical operation to carry out in a LogicalBoolOp operation.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.expression.proto.LogicalOpType}
   */
  public enum LogicalOpType
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Undefined operation type.
     * </pre>
     *
     * <code>LOGICAL_OP_TYPE_UNDEFINED = 0;</code>
     */
    LOGICAL_OP_TYPE_UNDEFINED(0),
    /**
     * <pre>
     * Logical AND.
     * </pre>
     *
     * <code>LOGICAL_OP_TYPE_AND = 1;</code>
     */
    LOGICAL_OP_TYPE_AND(1),
    /**
     * <pre>
     * Logical OR.
     * </pre>
     *
     * <code>LOGICAL_OP_TYPE_OR = 2;</code>
     */
    LOGICAL_OP_TYPE_OR(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Undefined operation type.
     * </pre>
     *
     * <code>LOGICAL_OP_TYPE_UNDEFINED = 0;</code>
     */
    public static final int LOGICAL_OP_TYPE_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Logical AND.
     * </pre>
     *
     * <code>LOGICAL_OP_TYPE_AND = 1;</code>
     */
    public static final int LOGICAL_OP_TYPE_AND_VALUE = 1;
    /**
     * <pre>
     * Logical OR.
     * </pre>
     *
     * <code>LOGICAL_OP_TYPE_OR = 2;</code>
     */
    public static final int LOGICAL_OP_TYPE_OR_VALUE = 2;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static LogicalOpType valueOf(int value) {
      return forNumber(value);
    }

    public static LogicalOpType forNumber(int value) {
      switch (value) {
        case 0: return LOGICAL_OP_TYPE_UNDEFINED;
        case 1: return LOGICAL_OP_TYPE_AND;
        case 2: return LOGICAL_OP_TYPE_OR;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<LogicalOpType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        LogicalOpType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<LogicalOpType>() {
            @java.lang.Override
            public LogicalOpType findValueByNumber(int number) {
              return LogicalOpType.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return LogicalOpTypeVerifier.INSTANCE;
    }

    private static final class LogicalOpTypeVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new LogicalOpTypeVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return LogicalOpType.forNumber(number) != null;
            }
          };

    private final int value;

    private LogicalOpType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.expression.proto.LogicalOpType)
  }

  /**
   * <pre>
   * The duration part to retrieve using GetDurationPartOp.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.expression.proto.DurationPartType}
   */
  public enum DurationPartType
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Undefined duration part type.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_UNDEFINED = 0;</code>
     */
    DURATION_PART_TYPE_UNDEFINED(0),
    /**
     * <pre>
     * Total number of days in a duration. The fraction part of the result will be
     * truncated. This is based on the standard definition of a day as 24 hours.
     * Notice that the duration can be negative, in which case total number of
     * days will be also negative.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_TOTAL_DAYS = 1;</code>
     */
    DURATION_PART_TYPE_TOTAL_DAYS(1),
    /**
     * <pre>
     * Total number of hours in a duration. The fraction part of the result will
     * be truncated. Notice that the duration can be negative, in which case total
     * number of hours will be also negative.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_TOTAL_HOURS = 2;</code>
     */
    DURATION_PART_TYPE_TOTAL_HOURS(2),
    /**
     * <pre>
     * Total number of minutes in a duration. The fraction part of the result will
     * be truncated. Notice that the duration can be negative, in which case total
     * number of minutes will be also negative.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_TOTAL_MINUTES = 3;</code>
     */
    DURATION_PART_TYPE_TOTAL_MINUTES(3),
    /**
     * <pre>
     * Total number of seconds in a duration. Notice that the duration can be
     * negative, in which case total number of seconds will be also negative.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_TOTAL_SECONDS = 4;</code>
     */
    DURATION_PART_TYPE_TOTAL_SECONDS(4),
    /**
     * <pre>
     * Number of days part in the duration. This represents the absolute value of
     * the total number of days in the duration based on the 24 hours day
     * definition. The fraction part of the result will be truncated.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_DAYS = 5;</code>
     */
    DURATION_PART_TYPE_DAYS(5),
    /**
     * <pre>
     * Number of hours part in the duration. This represents the absolute value of
     * remaining hours when dividing total hours by hours in a day (24 hours).
     * </pre>
     *
     * <code>DURATION_PART_TYPE_HOURS = 6;</code>
     */
    DURATION_PART_TYPE_HOURS(6),
    /**
     * <pre>
     * Number of minutes part in the duration. This represents the absolute value
     * of remaining minutes when dividing total minutes by minutes in an hour (60
     * minutes).
     * </pre>
     *
     * <code>DURATION_PART_TYPE_MINUTES = 7;</code>
     */
    DURATION_PART_TYPE_MINUTES(7),
    /**
     * <pre>
     * Number of seconds part in the duration. This represents the absolute value
     * of remaining seconds when dividing total seconds by seconds in a minute (60
     * seconds).
     * </pre>
     *
     * <code>DURATION_PART_TYPE_SECONDS = 8;</code>
     */
    DURATION_PART_TYPE_SECONDS(8),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Undefined duration part type.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_UNDEFINED = 0;</code>
     */
    public static final int DURATION_PART_TYPE_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Total number of days in a duration. The fraction part of the result will be
     * truncated. This is based on the standard definition of a day as 24 hours.
     * Notice that the duration can be negative, in which case total number of
     * days will be also negative.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_TOTAL_DAYS = 1;</code>
     */
    public static final int DURATION_PART_TYPE_TOTAL_DAYS_VALUE = 1;
    /**
     * <pre>
     * Total number of hours in a duration. The fraction part of the result will
     * be truncated. Notice that the duration can be negative, in which case total
     * number of hours will be also negative.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_TOTAL_HOURS = 2;</code>
     */
    public static final int DURATION_PART_TYPE_TOTAL_HOURS_VALUE = 2;
    /**
     * <pre>
     * Total number of minutes in a duration. The fraction part of the result will
     * be truncated. Notice that the duration can be negative, in which case total
     * number of minutes will be also negative.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_TOTAL_MINUTES = 3;</code>
     */
    public static final int DURATION_PART_TYPE_TOTAL_MINUTES_VALUE = 3;
    /**
     * <pre>
     * Total number of seconds in a duration. Notice that the duration can be
     * negative, in which case total number of seconds will be also negative.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_TOTAL_SECONDS = 4;</code>
     */
    public static final int DURATION_PART_TYPE_TOTAL_SECONDS_VALUE = 4;
    /**
     * <pre>
     * Number of days part in the duration. This represents the absolute value of
     * the total number of days in the duration based on the 24 hours day
     * definition. The fraction part of the result will be truncated.
     * </pre>
     *
     * <code>DURATION_PART_TYPE_DAYS = 5;</code>
     */
    public static final int DURATION_PART_TYPE_DAYS_VALUE = 5;
    /**
     * <pre>
     * Number of hours part in the duration. This represents the absolute value of
     * remaining hours when dividing total hours by hours in a day (24 hours).
     * </pre>
     *
     * <code>DURATION_PART_TYPE_HOURS = 6;</code>
     */
    public static final int DURATION_PART_TYPE_HOURS_VALUE = 6;
    /**
     * <pre>
     * Number of minutes part in the duration. This represents the absolute value
     * of remaining minutes when dividing total minutes by minutes in an hour (60
     * minutes).
     * </pre>
     *
     * <code>DURATION_PART_TYPE_MINUTES = 7;</code>
     */
    public static final int DURATION_PART_TYPE_MINUTES_VALUE = 7;
    /**
     * <pre>
     * Number of seconds part in the duration. This represents the absolute value
     * of remaining seconds when dividing total seconds by seconds in a minute (60
     * seconds).
     * </pre>
     *
     * <code>DURATION_PART_TYPE_SECONDS = 8;</code>
     */
    public static final int DURATION_PART_TYPE_SECONDS_VALUE = 8;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static DurationPartType valueOf(int value) {
      return forNumber(value);
    }

    public static DurationPartType forNumber(int value) {
      switch (value) {
        case 0: return DURATION_PART_TYPE_UNDEFINED;
        case 1: return DURATION_PART_TYPE_TOTAL_DAYS;
        case 2: return DURATION_PART_TYPE_TOTAL_HOURS;
        case 3: return DURATION_PART_TYPE_TOTAL_MINUTES;
        case 4: return DURATION_PART_TYPE_TOTAL_SECONDS;
        case 5: return DURATION_PART_TYPE_DAYS;
        case 6: return DURATION_PART_TYPE_HOURS;
        case 7: return DURATION_PART_TYPE_MINUTES;
        case 8: return DURATION_PART_TYPE_SECONDS;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<DurationPartType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        DurationPartType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<DurationPartType>() {
            @java.lang.Override
            public DurationPartType findValueByNumber(int number) {
              return DurationPartType.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return DurationPartTypeVerifier.INSTANCE;
    }

    private static final class DurationPartTypeVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new DurationPartTypeVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return DurationPartType.forNumber(number) != null;
            }
          };

    private final int value;

    private DurationPartType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.expression.proto.DurationPartType)
  }

  public interface PlatformInt32SourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.PlatformInt32Source)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The source to load data from.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
     * @return The enum numeric value on the wire for sourceType.
     */
    int getSourceTypeValue();
    /**
     * <pre>
     * The source to load data from.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
     * @return The sourceType.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32SourceType getSourceType();
  }
  /**
   * <pre>
   * A dynamic Int32 which sources its data from some platform data source, e.g.
   * from sensors, or the current time.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.PlatformInt32Source}
   */
  public  static final class PlatformInt32Source extends
      com.google.protobuf.GeneratedMessageLite<
          PlatformInt32Source, PlatformInt32Source.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.PlatformInt32Source)
      PlatformInt32SourceOrBuilder {
    private PlatformInt32Source() {
    }
    public static final int SOURCE_TYPE_FIELD_NUMBER = 1;
    private int sourceType_;
    /**
     * <pre>
     * The source to load data from.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
     * @return The enum numeric value on the wire for sourceType.
     */
    @java.lang.Override
    public int getSourceTypeValue() {
      return sourceType_;
    }
    /**
     * <pre>
     * The source to load data from.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
     * @return The sourceType.
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32SourceType getSourceType() {
      androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32SourceType result = androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32SourceType.forNumber(sourceType_);
      return result == null ? androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32SourceType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The source to load data from.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
     * @param value The enum numeric value on the wire for sourceType to set.
     */
    private void setSourceTypeValue(int value) {
        sourceType_ = value;
    }
    /**
     * <pre>
     * The source to load data from.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
     * @param value The sourceType to set.
     */
    private void setSourceType(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32SourceType value) {
      sourceType_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The source to load data from.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
     */
    private void clearSourceType() {
      
      sourceType_ = 0;
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic Int32 which sources its data from some platform data source, e.g.
     * from sensors, or the current time.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.PlatformInt32Source}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.PlatformInt32Source)
        androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32SourceOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The source to load data from.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
       * @return The enum numeric value on the wire for sourceType.
       */
      @java.lang.Override
      public int getSourceTypeValue() {
        return instance.getSourceTypeValue();
      }
      /**
       * <pre>
       * The source to load data from.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
       * @param value The sourceType to set.
       * @return This builder for chaining.
       */
      public Builder setSourceTypeValue(int value) {
        copyOnWrite();
        instance.setSourceTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * The source to load data from.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
       * @return The sourceType.
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32SourceType getSourceType() {
        return instance.getSourceType();
      }
      /**
       * <pre>
       * The source to load data from.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
       * @param value The enum numeric value on the wire for sourceType to set.
       * @return This builder for chaining.
       */
      public Builder setSourceType(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32SourceType value) {
        copyOnWrite();
        instance.setSourceType(value);
        return this;
      }
      /**
       * <pre>
       * The source to load data from.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32SourceType source_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceType() {
        copyOnWrite();
        instance.clearSourceType();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.PlatformInt32Source)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "sourceType_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.PlatformInt32Source)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source DEFAULT_INSTANCE;
    static {
      PlatformInt32Source defaultInstance = new PlatformInt32Source();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PlatformInt32Source.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<PlatformInt32Source> PARSER;

    public static com.google.protobuf.Parser<PlatformInt32Source> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ArithmeticInt32OpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.ArithmeticInt32Op)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     * @return Whether the inputLhs field is set.
     */
    boolean hasInputLhs();
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     * @return The inputLhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputLhs();

    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     * @return Whether the inputRhs field is set.
     */
    boolean hasInputRhs();
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     * @return The inputRhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputRhs();

    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @return The enum numeric value on the wire for operationType.
     */
    int getOperationTypeValue();
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @return The operationType.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType getOperationType();
  }
  /**
   * <pre>
   * An arithmetic operation, operating on two Int32 instances. This implements
   * simple binary operations of the form "result = LHS &lt;op&gt; RHS", where the
   * available operation types are described in ArithmeticOpType.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.ArithmeticInt32Op}
   */
  public  static final class ArithmeticInt32Op extends
      com.google.protobuf.GeneratedMessageLite<
          ArithmeticInt32Op, ArithmeticInt32Op.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.ArithmeticInt32Op)
      ArithmeticInt32OpOrBuilder {
    private ArithmeticInt32Op() {
    }
    public static final int INPUT_LHS_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 inputLhs_;
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     */
    @java.lang.Override
    public boolean hasInputLhs() {
      return inputLhs_ != null;
    }
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputLhs() {
      return inputLhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance() : inputLhs_;
    }
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     */
    private void setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  inputLhs_ = value;
      
      }
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  if (inputLhs_ != null &&
          inputLhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance()) {
        inputLhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder(inputLhs_).mergeFrom(value).buildPartial();
      } else {
        inputLhs_ = value;
      }
      
    }
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     */
    private void clearInputLhs() {  inputLhs_ = null;
      
    }

    public static final int INPUT_RHS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 inputRhs_;
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     */
    @java.lang.Override
    public boolean hasInputRhs() {
      return inputRhs_ != null;
    }
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputRhs() {
      return inputRhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance() : inputRhs_;
    }
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     */
    private void setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  inputRhs_ = value;
      
      }
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  if (inputRhs_ != null &&
          inputRhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance()) {
        inputRhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder(inputRhs_).mergeFrom(value).buildPartial();
      } else {
        inputRhs_ = value;
      }
      
    }
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     */
    private void clearInputRhs() {  inputRhs_ = null;
      
    }

    public static final int OPERATION_TYPE_FIELD_NUMBER = 3;
    private int operationType_;
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @return The enum numeric value on the wire for operationType.
     */
    @java.lang.Override
    public int getOperationTypeValue() {
      return operationType_;
    }
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @return The operationType.
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType getOperationType() {
      androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType result = androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType.forNumber(operationType_);
      return result == null ? androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @param value The enum numeric value on the wire for operationType to set.
     */
    private void setOperationTypeValue(int value) {
        operationType_ = value;
    }
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @param value The operationType to set.
     */
    private void setOperationType(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType value) {
      operationType_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     */
    private void clearOperationType() {
      
      operationType_ = 0;
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An arithmetic operation, operating on two Int32 instances. This implements
     * simple binary operations of the form "result = LHS &lt;op&gt; RHS", where the
     * available operation types are described in ArithmeticOpType.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.ArithmeticInt32Op}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.ArithmeticInt32Op)
        androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32OpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      @java.lang.Override
      public boolean hasInputLhs() {
        return instance.hasInputLhs();
      }
      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputLhs() {
        return instance.getInputLhs();
      }
      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      public Builder setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.setInputLhs(value);
        return this;
        }
      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      public Builder setInputLhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setInputLhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      public Builder mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.mergeInputLhs(value);
        return this;
      }
      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      public Builder clearInputLhs() {  copyOnWrite();
        instance.clearInputLhs();
        return this;
      }

      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      @java.lang.Override
      public boolean hasInputRhs() {
        return instance.hasInputRhs();
      }
      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputRhs() {
        return instance.getInputRhs();
      }
      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      public Builder setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.setInputRhs(value);
        return this;
        }
      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      public Builder setInputRhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setInputRhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      public Builder mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.mergeInputRhs(value);
        return this;
      }
      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      public Builder clearInputRhs() {  copyOnWrite();
        instance.clearInputRhs();
        return this;
      }

      /**
       * <pre>
       * The type of operation to carry out.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
       * @return The enum numeric value on the wire for operationType.
       */
      @java.lang.Override
      public int getOperationTypeValue() {
        return instance.getOperationTypeValue();
      }
      /**
       * <pre>
       * The type of operation to carry out.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
       * @param value The operationType to set.
       * @return This builder for chaining.
       */
      public Builder setOperationTypeValue(int value) {
        copyOnWrite();
        instance.setOperationTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * The type of operation to carry out.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
       * @return The operationType.
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType getOperationType() {
        return instance.getOperationType();
      }
      /**
       * <pre>
       * The type of operation to carry out.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
       * @param value The enum numeric value on the wire for operationType to set.
       * @return This builder for chaining.
       */
      public Builder setOperationType(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType value) {
        copyOnWrite();
        instance.setOperationType(value);
        return this;
      }
      /**
       * <pre>
       * The type of operation to carry out.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperationType() {
        copyOnWrite();
        instance.clearOperationType();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.ArithmeticInt32Op)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inputLhs_",
              "inputRhs_",
              "operationType_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.ArithmeticInt32Op)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op DEFAULT_INSTANCE;
    static {
      ArithmeticInt32Op defaultInstance = new ArithmeticInt32Op();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ArithmeticInt32Op.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ArithmeticInt32Op> PARSER;

    public static com.google.protobuf.Parser<ArithmeticInt32Op> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface StateInt32SourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.StateInt32Source)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The sourceKey.
     */
    java.lang.String getSourceKey();
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The bytes for sourceKey.
     */
    com.google.protobuf.ByteString
        getSourceKeyBytes();
  }
  /**
   * <pre>
   * A dynamic Int32 which sources its data from the tile's state.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.StateInt32Source}
   */
  public  static final class StateInt32Source extends
      com.google.protobuf.GeneratedMessageLite<
          StateInt32Source, StateInt32Source.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.StateInt32Source)
      StateInt32SourceOrBuilder {
    private StateInt32Source() {
      sourceKey_ = "";
    }
    public static final int SOURCE_KEY_FIELD_NUMBER = 1;
    private java.lang.String sourceKey_;
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The sourceKey.
     */
    @java.lang.Override
    public java.lang.String getSourceKey() {
      return sourceKey_;
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The bytes for sourceKey.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceKeyBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(sourceKey_);
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @param value The sourceKey to set.
     */
    private void setSourceKey(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      sourceKey_ = value;
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     */
    private void clearSourceKey() {
      
      sourceKey_ = getDefaultInstance().getSourceKey();
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @param value The bytes for sourceKey to set.
     */
    private void setSourceKeyBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      sourceKey_ = value.toStringUtf8();
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic Int32 which sources its data from the tile's state.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.StateInt32Source}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.StateInt32Source)
        androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32SourceOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return The sourceKey.
       */
      @java.lang.Override
      public java.lang.String getSourceKey() {
        return instance.getSourceKey();
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return The bytes for sourceKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSourceKeyBytes() {
        return instance.getSourceKeyBytes();
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @param value The sourceKey to set.
       * @return This builder for chaining.
       */
      public Builder setSourceKey(
          java.lang.String value) {
        copyOnWrite();
        instance.setSourceKey(value);
        return this;
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceKey() {
        copyOnWrite();
        instance.clearSourceKey();
        return this;
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @param value The bytes for sourceKey to set.
       * @return This builder for chaining.
       */
      public Builder setSourceKeyBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSourceKeyBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.StateInt32Source)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "sourceKey_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0208";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.StateInt32Source)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source DEFAULT_INSTANCE;
    static {
      StateInt32Source defaultInstance = new StateInt32Source();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        StateInt32Source.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<StateInt32Source> PARSER;

    public static com.google.protobuf.Parser<StateInt32Source> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ConditionalInt32OpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.ConditionalInt32Op)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     * @return Whether the condition field is set.
     */
    boolean hasCondition();
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     * @return The condition.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getCondition();

    /**
     * <pre>
     * The integer to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
     * @return Whether the valueIfTrue field is set.
     */
    boolean hasValueIfTrue();
    /**
     * <pre>
     * The integer to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
     * @return The valueIfTrue.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getValueIfTrue();

    /**
     * <pre>
     * The integer to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
     * @return Whether the valueIfFalse field is set.
     */
    boolean hasValueIfFalse();
    /**
     * <pre>
     * The integer to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
     * @return The valueIfFalse.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getValueIfFalse();
  }
  /**
   * <pre>
   * A conditional operator which yields an integer depending on the boolean
   * operand. This implements "int result = condition ? value_if_true :
   * value_if_false".
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.ConditionalInt32Op}
   */
  public  static final class ConditionalInt32Op extends
      com.google.protobuf.GeneratedMessageLite<
          ConditionalInt32Op, ConditionalInt32Op.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.ConditionalInt32Op)
      ConditionalInt32OpOrBuilder {
    private ConditionalInt32Op() {
    }
    public static final int CONDITION_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool condition_;
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    @java.lang.Override
    public boolean hasCondition() {
      return condition_ != null;
    }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getCondition() {
      return condition_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance() : condition_;
    }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    private void setCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  condition_ = value;
      
      }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  if (condition_ != null &&
          condition_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance()) {
        condition_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.newBuilder(condition_).mergeFrom(value).buildPartial();
      } else {
        condition_ = value;
      }
      
    }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    private void clearCondition() {  condition_ = null;
      
    }

    public static final int VALUE_IF_TRUE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 valueIfTrue_;
    /**
     * <pre>
     * The integer to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
     */
    @java.lang.Override
    public boolean hasValueIfTrue() {
      return valueIfTrue_ != null;
    }
    /**
     * <pre>
     * The integer to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getValueIfTrue() {
      return valueIfTrue_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance() : valueIfTrue_;
    }
    /**
     * <pre>
     * The integer to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
     */
    private void setValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  valueIfTrue_ = value;
      
      }
    /**
     * <pre>
     * The integer to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  if (valueIfTrue_ != null &&
          valueIfTrue_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance()) {
        valueIfTrue_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder(valueIfTrue_).mergeFrom(value).buildPartial();
      } else {
        valueIfTrue_ = value;
      }
      
    }
    /**
     * <pre>
     * The integer to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
     */
    private void clearValueIfTrue() {  valueIfTrue_ = null;
      
    }

    public static final int VALUE_IF_FALSE_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 valueIfFalse_;
    /**
     * <pre>
     * The integer to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
     */
    @java.lang.Override
    public boolean hasValueIfFalse() {
      return valueIfFalse_ != null;
    }
    /**
     * <pre>
     * The integer to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getValueIfFalse() {
      return valueIfFalse_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance() : valueIfFalse_;
    }
    /**
     * <pre>
     * The integer to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
     */
    private void setValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  valueIfFalse_ = value;
      
      }
    /**
     * <pre>
     * The integer to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  if (valueIfFalse_ != null &&
          valueIfFalse_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance()) {
        valueIfFalse_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder(valueIfFalse_).mergeFrom(value).buildPartial();
      } else {
        valueIfFalse_ = value;
      }
      
    }
    /**
     * <pre>
     * The integer to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
     */
    private void clearValueIfFalse() {  valueIfFalse_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A conditional operator which yields an integer depending on the boolean
     * operand. This implements "int result = condition ? value_if_true :
     * value_if_false".
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.ConditionalInt32Op}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.ConditionalInt32Op)
        androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32OpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      @java.lang.Override
      public boolean hasCondition() {
        return instance.hasCondition();
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getCondition() {
        return instance.getCondition();
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder setCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.setCondition(value);
        return this;
        }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder setCondition(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.Builder builderForValue) {
        copyOnWrite();
        instance.setCondition(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder mergeCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.mergeCondition(value);
        return this;
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder clearCondition() {  copyOnWrite();
        instance.clearCondition();
        return this;
      }

      /**
       * <pre>
       * The integer to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
       */
      @java.lang.Override
      public boolean hasValueIfTrue() {
        return instance.hasValueIfTrue();
      }
      /**
       * <pre>
       * The integer to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getValueIfTrue() {
        return instance.getValueIfTrue();
      }
      /**
       * <pre>
       * The integer to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
       */
      public Builder setValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.setValueIfTrue(value);
        return this;
        }
      /**
       * <pre>
       * The integer to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
       */
      public Builder setValueIfTrue(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setValueIfTrue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The integer to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
       */
      public Builder mergeValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.mergeValueIfTrue(value);
        return this;
      }
      /**
       * <pre>
       * The integer to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_true = 2;</code>
       */
      public Builder clearValueIfTrue() {  copyOnWrite();
        instance.clearValueIfTrue();
        return this;
      }

      /**
       * <pre>
       * The integer to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
       */
      @java.lang.Override
      public boolean hasValueIfFalse() {
        return instance.hasValueIfFalse();
      }
      /**
       * <pre>
       * The integer to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getValueIfFalse() {
        return instance.getValueIfFalse();
      }
      /**
       * <pre>
       * The integer to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
       */
      public Builder setValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.setValueIfFalse(value);
        return this;
        }
      /**
       * <pre>
       * The integer to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
       */
      public Builder setValueIfFalse(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setValueIfFalse(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The integer to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
       */
      public Builder mergeValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.mergeValueIfFalse(value);
        return this;
      }
      /**
       * <pre>
       * The integer to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 value_if_false = 3;</code>
       */
      public Builder clearValueIfFalse() {  copyOnWrite();
        instance.clearValueIfFalse();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.ConditionalInt32Op)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "condition_",
              "valueIfTrue_",
              "valueIfFalse_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.ConditionalInt32Op)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op DEFAULT_INSTANCE;
    static {
      ConditionalInt32Op defaultInstance = new ConditionalInt32Op();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ConditionalInt32Op.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ConditionalInt32Op> PARSER;

    public static com.google.protobuf.Parser<ConditionalInt32Op> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ConditionalFloatOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.ConditionalFloatOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     * @return Whether the condition field is set.
     */
    boolean hasCondition();
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     * @return The condition.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getCondition();

    /**
     * <pre>
     * The float to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
     * @return Whether the valueIfTrue field is set.
     */
    boolean hasValueIfTrue();
    /**
     * <pre>
     * The float to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
     * @return The valueIfTrue.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getValueIfTrue();

    /**
     * <pre>
     * The float to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
     * @return Whether the valueIfFalse field is set.
     */
    boolean hasValueIfFalse();
    /**
     * <pre>
     * The float to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
     * @return The valueIfFalse.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getValueIfFalse();
  }
  /**
   * <pre>
   * A conditional operator which yields a float depending on the boolean
   * operand. This implements
   * "float result = condition ? value_if_true : value_if_false".
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.ConditionalFloatOp}
   */
  public  static final class ConditionalFloatOp extends
      com.google.protobuf.GeneratedMessageLite<
          ConditionalFloatOp, ConditionalFloatOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.ConditionalFloatOp)
      ConditionalFloatOpOrBuilder {
    private ConditionalFloatOp() {
    }
    public static final int CONDITION_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool condition_;
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    @java.lang.Override
    public boolean hasCondition() {
      return condition_ != null;
    }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getCondition() {
      return condition_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance() : condition_;
    }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    private void setCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  condition_ = value;
      
      }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  if (condition_ != null &&
          condition_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance()) {
        condition_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.newBuilder(condition_).mergeFrom(value).buildPartial();
      } else {
        condition_ = value;
      }
      
    }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    private void clearCondition() {  condition_ = null;
      
    }

    public static final int VALUE_IF_TRUE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat valueIfTrue_;
    /**
     * <pre>
     * The float to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
     */
    @java.lang.Override
    public boolean hasValueIfTrue() {
      return valueIfTrue_ != null;
    }
    /**
     * <pre>
     * The float to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getValueIfTrue() {
      return valueIfTrue_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : valueIfTrue_;
    }
    /**
     * <pre>
     * The float to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
     */
    private void setValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  valueIfTrue_ = value;
      
      }
    /**
     * <pre>
     * The float to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (valueIfTrue_ != null &&
          valueIfTrue_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        valueIfTrue_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(valueIfTrue_).mergeFrom(value).buildPartial();
      } else {
        valueIfTrue_ = value;
      }
      
    }
    /**
     * <pre>
     * The float to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
     */
    private void clearValueIfTrue() {  valueIfTrue_ = null;
      
    }

    public static final int VALUE_IF_FALSE_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat valueIfFalse_;
    /**
     * <pre>
     * The float to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
     */
    @java.lang.Override
    public boolean hasValueIfFalse() {
      return valueIfFalse_ != null;
    }
    /**
     * <pre>
     * The float to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getValueIfFalse() {
      return valueIfFalse_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : valueIfFalse_;
    }
    /**
     * <pre>
     * The float to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
     */
    private void setValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  valueIfFalse_ = value;
      
      }
    /**
     * <pre>
     * The float to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (valueIfFalse_ != null &&
          valueIfFalse_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        valueIfFalse_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(valueIfFalse_).mergeFrom(value).buildPartial();
      } else {
        valueIfFalse_ = value;
      }
      
    }
    /**
     * <pre>
     * The float to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
     */
    private void clearValueIfFalse() {  valueIfFalse_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A conditional operator which yields a float depending on the boolean
     * operand. This implements
     * "float result = condition ? value_if_true : value_if_false".
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.ConditionalFloatOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.ConditionalFloatOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      @java.lang.Override
      public boolean hasCondition() {
        return instance.hasCondition();
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getCondition() {
        return instance.getCondition();
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder setCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.setCondition(value);
        return this;
        }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder setCondition(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.Builder builderForValue) {
        copyOnWrite();
        instance.setCondition(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder mergeCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.mergeCondition(value);
        return this;
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder clearCondition() {  copyOnWrite();
        instance.clearCondition();
        return this;
      }

      /**
       * <pre>
       * The float to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
       */
      @java.lang.Override
      public boolean hasValueIfTrue() {
        return instance.hasValueIfTrue();
      }
      /**
       * <pre>
       * The float to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getValueIfTrue() {
        return instance.getValueIfTrue();
      }
      /**
       * <pre>
       * The float to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
       */
      public Builder setValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setValueIfTrue(value);
        return this;
        }
      /**
       * <pre>
       * The float to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
       */
      public Builder setValueIfTrue(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setValueIfTrue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The float to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
       */
      public Builder mergeValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeValueIfTrue(value);
        return this;
      }
      /**
       * <pre>
       * The float to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_true = 2;</code>
       */
      public Builder clearValueIfTrue() {  copyOnWrite();
        instance.clearValueIfTrue();
        return this;
      }

      /**
       * <pre>
       * The float to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
       */
      @java.lang.Override
      public boolean hasValueIfFalse() {
        return instance.hasValueIfFalse();
      }
      /**
       * <pre>
       * The float to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getValueIfFalse() {
        return instance.getValueIfFalse();
      }
      /**
       * <pre>
       * The float to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
       */
      public Builder setValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setValueIfFalse(value);
        return this;
        }
      /**
       * <pre>
       * The float to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
       */
      public Builder setValueIfFalse(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setValueIfFalse(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The float to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
       */
      public Builder mergeValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeValueIfFalse(value);
        return this;
      }
      /**
       * <pre>
       * The float to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat value_if_false = 3;</code>
       */
      public Builder clearValueIfFalse() {  copyOnWrite();
        instance.clearValueIfFalse();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.ConditionalFloatOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "condition_",
              "valueIfTrue_",
              "valueIfFalse_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.ConditionalFloatOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp DEFAULT_INSTANCE;
    static {
      ConditionalFloatOp defaultInstance = new ConditionalFloatOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ConditionalFloatOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ConditionalFloatOp> PARSER;

    public static com.google.protobuf.Parser<ConditionalFloatOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface FloatToInt32OpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.FloatToInt32Op)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The float to round.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     * @return Whether the input field is set.
     */
    boolean hasInput();
    /**
     * <pre>
     * The float to round.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     * @return The input.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInput();

    /**
     * <pre>
     * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
     * @return The enum numeric value on the wire for roundMode.
     */
    int getRoundModeValue();
    /**
     * <pre>
     * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
     * @return The roundMode.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32RoundMode getRoundMode();
  }
  /**
   * <pre>
   * Converts a Float to an Int32, with a customizable rounding mode.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.FloatToInt32Op}
   */
  public  static final class FloatToInt32Op extends
      com.google.protobuf.GeneratedMessageLite<
          FloatToInt32Op, FloatToInt32Op.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.FloatToInt32Op)
      FloatToInt32OpOrBuilder {
    private FloatToInt32Op() {
    }
    public static final int INPUT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat input_;
    /**
     * <pre>
     * The float to round.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    @java.lang.Override
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * <pre>
     * The float to round.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInput() {
      return input_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : input_;
    }
    /**
     * <pre>
     * The float to round.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    private void setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  input_ = value;
      
      }
    /**
     * <pre>
     * The float to round.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (input_ != null &&
          input_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        input_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(input_).mergeFrom(value).buildPartial();
      } else {
        input_ = value;
      }
      
    }
    /**
     * <pre>
     * The float to round.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    private void clearInput() {  input_ = null;
      
    }

    public static final int ROUND_MODE_FIELD_NUMBER = 2;
    private int roundMode_;
    /**
     * <pre>
     * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
     * @return The enum numeric value on the wire for roundMode.
     */
    @java.lang.Override
    public int getRoundModeValue() {
      return roundMode_;
    }
    /**
     * <pre>
     * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
     * @return The roundMode.
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32RoundMode getRoundMode() {
      androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32RoundMode result = androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32RoundMode.forNumber(roundMode_);
      return result == null ? androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32RoundMode.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
     * @param value The enum numeric value on the wire for roundMode to set.
     */
    private void setRoundModeValue(int value) {
        roundMode_ = value;
    }
    /**
     * <pre>
     * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
     * @param value The roundMode to set.
     */
    private void setRoundMode(androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32RoundMode value) {
      roundMode_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
     */
    private void clearRoundMode() {
      
      roundMode_ = 0;
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Converts a Float to an Int32, with a customizable rounding mode.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.FloatToInt32Op}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.FloatToInt32Op)
        androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32OpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The float to round.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      @java.lang.Override
      public boolean hasInput() {
        return instance.hasInput();
      }
      /**
       * <pre>
       * The float to round.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInput() {
        return instance.getInput();
      }
      /**
       * <pre>
       * The float to round.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setInput(value);
        return this;
        }
      /**
       * <pre>
       * The float to round.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder setInput(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setInput(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The float to round.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeInput(value);
        return this;
      }
      /**
       * <pre>
       * The float to round.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder clearInput() {  copyOnWrite();
        instance.clearInput();
        return this;
      }

      /**
       * <pre>
       * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
       * @return The enum numeric value on the wire for roundMode.
       */
      @java.lang.Override
      public int getRoundModeValue() {
        return instance.getRoundModeValue();
      }
      /**
       * <pre>
       * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
       * @param value The roundMode to set.
       * @return This builder for chaining.
       */
      public Builder setRoundModeValue(int value) {
        copyOnWrite();
        instance.setRoundModeValue(value);
        return this;
      }
      /**
       * <pre>
       * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
       * @return The roundMode.
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32RoundMode getRoundMode() {
        return instance.getRoundMode();
      }
      /**
       * <pre>
       * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
       * @param value The enum numeric value on the wire for roundMode to set.
       * @return This builder for chaining.
       */
      public Builder setRoundMode(androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32RoundMode value) {
        copyOnWrite();
        instance.setRoundMode(value);
        return this;
      }
      /**
       * <pre>
       * The rounding mode to use. Defaults to ROUND_MODE_FLOOR if not specified.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32RoundMode round_mode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRoundMode() {
        copyOnWrite();
        instance.clearRoundMode();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.FloatToInt32Op)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "input_",
              "roundMode_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.FloatToInt32Op)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op DEFAULT_INSTANCE;
    static {
      FloatToInt32Op defaultInstance = new FloatToInt32Op();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        FloatToInt32Op.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<FloatToInt32Op> PARSER;

    public static com.google.protobuf.Parser<FloatToInt32Op> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface AnimatableFixedInt32OrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.AnimatableFixedInt32)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value to start animating from.
     * </pre>
     *
     * <code>int32 from_value = 1;</code>
     * @return The fromValue.
     */
    int getFromValue();

    /**
     * <pre>
     * The value to animate to.
     * </pre>
     *
     * <code>int32 to_value = 2;</code>
     * @return The toValue.
     */
    int getToValue();

    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return Whether the animationSpec field is set.
     */
    boolean hasAnimationSpec();
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return The animationSpec.
     */
    androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec();
  }
  /**
   * <pre>
   * A static interpolation node, between two fixed int32 values.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableFixedInt32}
   */
  public  static final class AnimatableFixedInt32 extends
      com.google.protobuf.GeneratedMessageLite<
          AnimatableFixedInt32, AnimatableFixedInt32.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.AnimatableFixedInt32)
      AnimatableFixedInt32OrBuilder {
    private AnimatableFixedInt32() {
    }
    public static final int FROM_VALUE_FIELD_NUMBER = 1;
    private int fromValue_;
    /**
     * <pre>
     * The value to start animating from.
     * </pre>
     *
     * <code>int32 from_value = 1;</code>
     * @return The fromValue.
     */
    @java.lang.Override
    public int getFromValue() {
      return fromValue_;
    }
    /**
     * <pre>
     * The value to start animating from.
     * </pre>
     *
     * <code>int32 from_value = 1;</code>
     * @param value The fromValue to set.
     */
    private void setFromValue(int value) {
      
      fromValue_ = value;
    }
    /**
     * <pre>
     * The value to start animating from.
     * </pre>
     *
     * <code>int32 from_value = 1;</code>
     */
    private void clearFromValue() {
      
      fromValue_ = 0;
    }

    public static final int TO_VALUE_FIELD_NUMBER = 2;
    private int toValue_;
    /**
     * <pre>
     * The value to animate to.
     * </pre>
     *
     * <code>int32 to_value = 2;</code>
     * @return The toValue.
     */
    @java.lang.Override
    public int getToValue() {
      return toValue_;
    }
    /**
     * <pre>
     * The value to animate to.
     * </pre>
     *
     * <code>int32 to_value = 2;</code>
     * @param value The toValue to set.
     */
    private void setToValue(int value) {
      
      toValue_ = value;
    }
    /**
     * <pre>
     * The value to animate to.
     * </pre>
     *
     * <code>int32 to_value = 2;</code>
     */
    private void clearToValue() {
      
      toValue_ = 0;
    }

    public static final int ANIMATION_SPEC_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec animationSpec_;
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public boolean hasAnimationSpec() {
      return animationSpec_ != null;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
      return animationSpec_ == null ? androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance() : animationSpec_;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  animationSpec_ = value;
      
      }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  if (animationSpec_ != null &&
          animationSpec_ != androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance()) {
        animationSpec_ =
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.newBuilder(animationSpec_).mergeFrom(value).buildPartial();
      } else {
        animationSpec_ = value;
      }
      
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void clearAnimationSpec() {  animationSpec_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A static interpolation node, between two fixed int32 values.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableFixedInt32}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.AnimatableFixedInt32)
        androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32OrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value to start animating from.
       * </pre>
       *
       * <code>int32 from_value = 1;</code>
       * @return The fromValue.
       */
      @java.lang.Override
      public int getFromValue() {
        return instance.getFromValue();
      }
      /**
       * <pre>
       * The value to start animating from.
       * </pre>
       *
       * <code>int32 from_value = 1;</code>
       * @param value The fromValue to set.
       * @return This builder for chaining.
       */
      public Builder setFromValue(int value) {
        copyOnWrite();
        instance.setFromValue(value);
        return this;
      }
      /**
       * <pre>
       * The value to start animating from.
       * </pre>
       *
       * <code>int32 from_value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearFromValue() {
        copyOnWrite();
        instance.clearFromValue();
        return this;
      }

      /**
       * <pre>
       * The value to animate to.
       * </pre>
       *
       * <code>int32 to_value = 2;</code>
       * @return The toValue.
       */
      @java.lang.Override
      public int getToValue() {
        return instance.getToValue();
      }
      /**
       * <pre>
       * The value to animate to.
       * </pre>
       *
       * <code>int32 to_value = 2;</code>
       * @param value The toValue to set.
       * @return This builder for chaining.
       */
      public Builder setToValue(int value) {
        copyOnWrite();
        instance.setToValue(value);
        return this;
      }
      /**
       * <pre>
       * The value to animate to.
       * </pre>
       *
       * <code>int32 to_value = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearToValue() {
        copyOnWrite();
        instance.clearToValue();
        return this;
      }

      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public boolean hasAnimationSpec() {
        return instance.hasAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
        return instance.getAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.setAnimationSpec(value);
        return this;
        }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimationSpec(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.mergeAnimationSpec(value);
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder clearAnimationSpec() {  copyOnWrite();
        instance.clearAnimationSpec();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.AnimatableFixedInt32)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "fromValue_",
              "toValue_",
              "animationSpec_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0004\u0002\u0004" +
                "\u0003\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.AnimatableFixedInt32)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 DEFAULT_INSTANCE;
    static {
      AnimatableFixedInt32 defaultInstance = new AnimatableFixedInt32();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AnimatableFixedInt32.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<AnimatableFixedInt32> PARSER;

    public static com.google.protobuf.Parser<AnimatableFixedInt32> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface AnimatableDynamicInt32OrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     * @return Whether the input field is set.
     */
    boolean hasInput();
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     * @return The input.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInput();

    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     * @return Whether the animationSpec field is set.
     */
    boolean hasAnimationSpec();
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     * @return The animationSpec.
     */
    androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec();
  }
  /**
   * <pre>
   * A dynamic interpolation node. This will watch the value of its input and,
   * when the first update arrives, immediately emit that value. On subsequent
   * updates, it will animate between the old and new values.
   * If this node receives an invalid value (e.g. as a result of an upstream node
   * having no value), then it will emit a single invalid value, and forget its
   * "stored" value. The next valid value that arrives is then used as the
   * "first" value again.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32}
   */
  public  static final class AnimatableDynamicInt32 extends
      com.google.protobuf.GeneratedMessageLite<
          AnimatableDynamicInt32, AnimatableDynamicInt32.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32)
      AnimatableDynamicInt32OrBuilder {
    private AnimatableDynamicInt32() {
    }
    public static final int INPUT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 input_;
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    @java.lang.Override
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInput() {
      return input_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance() : input_;
    }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    private void setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  input_ = value;
      
      }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  if (input_ != null &&
          input_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance()) {
        input_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder(input_).mergeFrom(value).buildPartial();
      } else {
        input_ = value;
      }
      
    }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    private void clearInput() {  input_ = null;
      
    }

    public static final int ANIMATION_SPEC_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec animationSpec_;
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    @java.lang.Override
    public boolean hasAnimationSpec() {
      return animationSpec_ != null;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
      return animationSpec_ == null ? androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance() : animationSpec_;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    private void setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  animationSpec_ = value;
      
      }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  if (animationSpec_ != null &&
          animationSpec_ != androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance()) {
        animationSpec_ =
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.newBuilder(animationSpec_).mergeFrom(value).buildPartial();
      } else {
        animationSpec_ = value;
      }
      
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    private void clearAnimationSpec() {  animationSpec_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic interpolation node. This will watch the value of its input and,
     * when the first update arrives, immediately emit that value. On subsequent
     * updates, it will animate between the old and new values.
     * If this node receives an invalid value (e.g. as a result of an upstream node
     * having no value), then it will emit a single invalid value, and forget its
     * "stored" value. The next valid value that arrives is then used as the
     * "first" value again.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32)
        androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32OrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      @java.lang.Override
      public boolean hasInput() {
        return instance.hasInput();
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInput() {
        return instance.getInput();
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.setInput(value);
        return this;
        }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder setInput(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setInput(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.mergeInput(value);
        return this;
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder clearInput() {  copyOnWrite();
        instance.clearInput();
        return this;
      }

      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      @java.lang.Override
      public boolean hasAnimationSpec() {
        return instance.hasAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
        return instance.getAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.setAnimationSpec(value);
        return this;
        }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder setAnimationSpec(
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimationSpec(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.mergeAnimationSpec(value);
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder clearAnimationSpec() {  copyOnWrite();
        instance.clearAnimationSpec();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "input_",
              "animationSpec_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 DEFAULT_INSTANCE;
    static {
      AnimatableDynamicInt32 defaultInstance = new AnimatableDynamicInt32();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AnimatableDynamicInt32.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<AnimatableDynamicInt32> PARSER;

    public static com.google.protobuf.Parser<AnimatableDynamicInt32> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DynamicInt32OrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.DynamicInt32)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
     * @return Whether the fixed field is set.
     */
    boolean hasFixed();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
     * @return The fixed.
     */
    androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32 getFixed();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
     * @return Whether the platformSource field is set.
     */
    boolean hasPlatformSource();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
     * @return The platformSource.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source getPlatformSource();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
     * @return Whether the arithmeticOperation field is set.
     */
    boolean hasArithmeticOperation();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
     * @return The arithmeticOperation.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op getArithmeticOperation();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
     * @return Whether the stateSource field is set.
     */
    boolean hasStateSource();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
     * @return The stateSource.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source getStateSource();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
     * @return Whether the conditionalOp field is set.
     */
    boolean hasConditionalOp();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
     * @return The conditionalOp.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op getConditionalOp();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
     * @return Whether the floatToInt field is set.
     */
    boolean hasFloatToInt();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
     * @return The floatToInt.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op getFloatToInt();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
     * @return Whether the durationPart field is set.
     */
    boolean hasDurationPart();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
     * @return The durationPart.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp getDurationPart();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
     * @return Whether the animatableFixed field is set.
     */
    boolean hasAnimatableFixed();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
     * @return The animatableFixed.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 getAnimatableFixed();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
     * @return Whether the animatableDynamic field is set.
     */
    boolean hasAnimatableDynamic();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
     * @return The animatableDynamic.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 getAnimatableDynamic();

    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dynamic int32 type.
   * It offers a set of helper methods for creating arithmetic and logical
   * expressions, e.g. {&#64;link #plus(int)}, {&#64;link #times(int)}, {&#64;link #eq(int)},
   * etc. These helper methods produce expression trees based on the order in
   * which they were called in an expression. Thus, no operator precedence rules
   * are applied.
   * &lt;p&gt;For example the following expression is equivalent to {&#64;code result = ((a
   * + b)*c)/d }:
   * ```
   *    a.plus(b).times(c).div(d);
   * ```
   * More complex expressions can be created by nesting expressions. For example
   * the following expression is equivalent to {&#64;code result = (a + b)*(c - d) }:
   * ```
   *    (a.plus(b)).times(c.minus(d));
   * ```
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicInt32}
   */
  public  static final class DynamicInt32 extends
      com.google.protobuf.GeneratedMessageLite<
          DynamicInt32, DynamicInt32.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.DynamicInt32)
      DynamicInt32OrBuilder {
    private DynamicInt32() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      FIXED(1),
      PLATFORM_SOURCE(2),
      ARITHMETIC_OPERATION(3),
      STATE_SOURCE(4),
      CONDITIONAL_OP(5),
      FLOAT_TO_INT(6),
      DURATION_PART(7),
      ANIMATABLE_FIXED(8),
      ANIMATABLE_DYNAMIC(9),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return FIXED;
          case 2: return PLATFORM_SOURCE;
          case 3: return ARITHMETIC_OPERATION;
          case 4: return STATE_SOURCE;
          case 5: return CONDITIONAL_OP;
          case 6: return FLOAT_TO_INT;
          case 7: return DURATION_PART;
          case 8: return ANIMATABLE_FIXED;
          case 9: return ANIMATABLE_DYNAMIC;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int FIXED_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
     */
    @java.lang.Override
    public boolean hasFixed() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32 getFixed() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32) inner_;
      }
      return androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
     */
    private void setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32 value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
     */
    private void mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32 value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32.newBuilder((androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
     */
    private void clearFixed() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int PLATFORM_SOURCE_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
     */
    @java.lang.Override
    public boolean hasPlatformSource() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source getPlatformSource() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
     */
    private void setPlatformSource(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
     */
    private void mergePlatformSource(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
     */
    private void clearPlatformSource() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ARITHMETIC_OPERATION_FIELD_NUMBER = 3;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
     */
    @java.lang.Override
    public boolean hasArithmeticOperation() {
      return innerCase_ == 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op getArithmeticOperation() {
      if (innerCase_ == 3) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
     */
    private void setArithmeticOperation(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
     */
    private void mergeArithmeticOperation(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op value) {
      value.getClass();
  if (innerCase_ == 3 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
     */
    private void clearArithmeticOperation() {
      if (innerCase_ == 3) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int STATE_SOURCE_FIELD_NUMBER = 4;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
     */
    @java.lang.Override
    public boolean hasStateSource() {
      return innerCase_ == 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source getStateSource() {
      if (innerCase_ == 4) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
     */
    private void setStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
     */
    private void mergeStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source value) {
      value.getClass();
  if (innerCase_ == 4 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
     */
    private void clearStateSource() {
      if (innerCase_ == 4) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int CONDITIONAL_OP_FIELD_NUMBER = 5;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
     */
    @java.lang.Override
    public boolean hasConditionalOp() {
      return innerCase_ == 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op getConditionalOp() {
      if (innerCase_ == 5) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
     */
    private void setConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
     */
    private void mergeConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op value) {
      value.getClass();
  if (innerCase_ == 5 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
     */
    private void clearConditionalOp() {
      if (innerCase_ == 5) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int FLOAT_TO_INT_FIELD_NUMBER = 6;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
     */
    @java.lang.Override
    public boolean hasFloatToInt() {
      return innerCase_ == 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op getFloatToInt() {
      if (innerCase_ == 6) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
     */
    private void setFloatToInt(androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
     */
    private void mergeFloatToInt(androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op value) {
      value.getClass();
  if (innerCase_ == 6 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
     */
    private void clearFloatToInt() {
      if (innerCase_ == 6) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int DURATION_PART_FIELD_NUMBER = 7;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
     */
    @java.lang.Override
    public boolean hasDurationPart() {
      return innerCase_ == 7;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp getDurationPart() {
      if (innerCase_ == 7) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
     */
    private void setDurationPart(androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 7;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
     */
    private void mergeDurationPart(androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp value) {
      value.getClass();
  if (innerCase_ == 7 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 7;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
     */
    private void clearDurationPart() {
      if (innerCase_ == 7) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ANIMATABLE_FIXED_FIELD_NUMBER = 8;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
     */
    @java.lang.Override
    public boolean hasAnimatableFixed() {
      return innerCase_ == 8;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 getAnimatableFixed() {
      if (innerCase_ == 8) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
     */
    private void setAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 8;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
     */
    private void mergeAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 value) {
      value.getClass();
  if (innerCase_ == 8 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 8;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
     */
    private void clearAnimatableFixed() {
      if (innerCase_ == 8) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ANIMATABLE_DYNAMIC_FIELD_NUMBER = 9;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
     */
    @java.lang.Override
    public boolean hasAnimatableDynamic() {
      return innerCase_ == 9;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 getAnimatableDynamic() {
      if (innerCase_ == 9) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
     */
    private void setAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 9;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
     */
    private void mergeAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 value) {
      value.getClass();
  if (innerCase_ == 9 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 9;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
     */
    private void clearAnimatableDynamic() {
      if (innerCase_ == 9) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic int32 type.
     * It offers a set of helper methods for creating arithmetic and logical
     * expressions, e.g. {&#64;link #plus(int)}, {&#64;link #times(int)}, {&#64;link #eq(int)},
     * etc. These helper methods produce expression trees based on the order in
     * which they were called in an expression. Thus, no operator precedence rules
     * are applied.
     * &lt;p&gt;For example the following expression is equivalent to {&#64;code result = ((a
     * + b)*c)/d }:
     * ```
     *    a.plus(b).times(c).div(d);
     * ```
     * More complex expressions can be created by nesting expressions. For example
     * the following expression is equivalent to {&#64;code result = (a + b)*(c - d) }:
     * ```
     *    (a.plus(b)).times(c.minus(d));
     * ```
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicInt32}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.DynamicInt32)
        androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32OrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
       */
      @java.lang.Override
      public boolean hasFixed() {
        return instance.hasFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32 getFixed() {
        return instance.getFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
       */
      public Builder setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32 value) {
        copyOnWrite();
        instance.setFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
       */
      public Builder setFixed(
          androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setFixed(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
       */
      public Builder mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32 value) {
        copyOnWrite();
        instance.mergeFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInt32 fixed = 1;</code>
       */
      public Builder clearFixed() {
        copyOnWrite();
        instance.clearFixed();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
       */
      @java.lang.Override
      public boolean hasPlatformSource() {
        return instance.hasPlatformSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source getPlatformSource() {
        return instance.getPlatformSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
       */
      public Builder setPlatformSource(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source value) {
        copyOnWrite();
        instance.setPlatformSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
       */
      public Builder setPlatformSource(
          androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source.Builder builderForValue) {
        copyOnWrite();
        instance.setPlatformSource(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
       */
      public Builder mergePlatformSource(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source value) {
        copyOnWrite();
        instance.mergePlatformSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformInt32Source platform_source = 2;</code>
       */
      public Builder clearPlatformSource() {
        copyOnWrite();
        instance.clearPlatformSource();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
       */
      @java.lang.Override
      public boolean hasArithmeticOperation() {
        return instance.hasArithmeticOperation();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op getArithmeticOperation() {
        return instance.getArithmeticOperation();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
       */
      public Builder setArithmeticOperation(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op value) {
        copyOnWrite();
        instance.setArithmeticOperation(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
       */
      public Builder setArithmeticOperation(
          androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op.Builder builderForValue) {
        copyOnWrite();
        instance.setArithmeticOperation(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
       */
      public Builder mergeArithmeticOperation(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op value) {
        copyOnWrite();
        instance.mergeArithmeticOperation(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticInt32Op arithmetic_operation = 3;</code>
       */
      public Builder clearArithmeticOperation() {
        copyOnWrite();
        instance.clearArithmeticOperation();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
       */
      @java.lang.Override
      public boolean hasStateSource() {
        return instance.hasStateSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source getStateSource() {
        return instance.getStateSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
       */
      public Builder setStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source value) {
        copyOnWrite();
        instance.setStateSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
       */
      public Builder setStateSource(
          androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source.Builder builderForValue) {
        copyOnWrite();
        instance.setStateSource(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
       */
      public Builder mergeStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source value) {
        copyOnWrite();
        instance.mergeStateSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateInt32Source state_source = 4;</code>
       */
      public Builder clearStateSource() {
        copyOnWrite();
        instance.clearStateSource();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
       */
      @java.lang.Override
      public boolean hasConditionalOp() {
        return instance.hasConditionalOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op getConditionalOp() {
        return instance.getConditionalOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
       */
      public Builder setConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op value) {
        copyOnWrite();
        instance.setConditionalOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
       */
      public Builder setConditionalOp(
          androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op.Builder builderForValue) {
        copyOnWrite();
        instance.setConditionalOp(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
       */
      public Builder mergeConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op value) {
        copyOnWrite();
        instance.mergeConditionalOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalInt32Op conditional_op = 5;</code>
       */
      public Builder clearConditionalOp() {
        copyOnWrite();
        instance.clearConditionalOp();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
       */
      @java.lang.Override
      public boolean hasFloatToInt() {
        return instance.hasFloatToInt();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op getFloatToInt() {
        return instance.getFloatToInt();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
       */
      public Builder setFloatToInt(androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op value) {
        copyOnWrite();
        instance.setFloatToInt(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
       */
      public Builder setFloatToInt(
          androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op.Builder builderForValue) {
        copyOnWrite();
        instance.setFloatToInt(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
       */
      public Builder mergeFloatToInt(androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op value) {
        copyOnWrite();
        instance.mergeFloatToInt(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatToInt32Op float_to_int = 6;</code>
       */
      public Builder clearFloatToInt() {
        copyOnWrite();
        instance.clearFloatToInt();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
       */
      @java.lang.Override
      public boolean hasDurationPart() {
        return instance.hasDurationPart();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp getDurationPart() {
        return instance.getDurationPart();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
       */
      public Builder setDurationPart(androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp value) {
        copyOnWrite();
        instance.setDurationPart(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
       */
      public Builder setDurationPart(
          androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp.Builder builderForValue) {
        copyOnWrite();
        instance.setDurationPart(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
       */
      public Builder mergeDurationPart(androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp value) {
        copyOnWrite();
        instance.mergeDurationPart(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.GetDurationPartOp duration_part = 7;</code>
       */
      public Builder clearDurationPart() {
        copyOnWrite();
        instance.clearDurationPart();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
       */
      @java.lang.Override
      public boolean hasAnimatableFixed() {
        return instance.hasAnimatableFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 getAnimatableFixed() {
        return instance.getAnimatableFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
       */
      public Builder setAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 value) {
        copyOnWrite();
        instance.setAnimatableFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
       */
      public Builder setAnimatableFixed(
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimatableFixed(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
       */
      public Builder mergeAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32 value) {
        copyOnWrite();
        instance.mergeAnimatableFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedInt32 animatable_fixed = 8;</code>
       */
      public Builder clearAnimatableFixed() {
        copyOnWrite();
        instance.clearAnimatableFixed();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
       */
      @java.lang.Override
      public boolean hasAnimatableDynamic() {
        return instance.hasAnimatableDynamic();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 getAnimatableDynamic() {
        return instance.getAnimatableDynamic();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
       */
      public Builder setAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 value) {
        copyOnWrite();
        instance.setAnimatableDynamic(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
       */
      public Builder setAnimatableDynamic(
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimatableDynamic(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
       */
      public Builder mergeAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32 value) {
        copyOnWrite();
        instance.mergeAnimatableDynamic(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicInt32 animatable_dynamic = 9;</code>
       */
      public Builder clearAnimatableDynamic() {
        copyOnWrite();
        instance.clearAnimatableDynamic();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.DynamicInt32)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.expression.proto.FixedProto.FixedInt32.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.PlatformInt32Source.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticInt32Op.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.StateInt32Source.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalInt32Op.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.FloatToInt32Op.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedInt32.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicInt32.class,
            };
            java.lang.String info =
                "\u0000\t\u0001\u0000\u0001\t\t\u0000\u0000\u0000\u0001<\u0000\u0002<\u0000\u0003" +
                "<\u0000\u0004<\u0000\u0005<\u0000\u0006<\u0000\u0007<\u0000\b<\u0000\t<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.DynamicInt32)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 DEFAULT_INSTANCE;
    static {
      DynamicInt32 defaultInstance = new DynamicInt32();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DynamicInt32.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DynamicInt32> PARSER;

    public static com.google.protobuf.Parser<DynamicInt32> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface Int32FormatOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.Int32FormatOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The source of Int32 data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     * @return Whether the input field is set.
     */
    boolean hasInput();
    /**
     * <pre>
     * The source of Int32 data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     * @return The input.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInput();

    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example,in the English locale, applying minIntegerDigit=4 to 12 would
     * yield "0012".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     * @return Whether the minIntegerDigits field is set.
     */
    boolean hasMinIntegerDigits();
    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example,in the English locale, applying minIntegerDigit=4 to 12 would
     * yield "0012".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     * @return The minIntegerDigits.
     */
    int getMinIntegerDigits();

    /**
     * <pre>
     * Digit grouping used. Grouping size and grouping character depend on the
     * current locale. If not defined, defaults to false.
     * For example, in the English locale, using grouping with 1234 would yield
     * "1,234".
     * </pre>
     *
     * <code>bool grouping_used = 5;</code>
     * @return The groupingUsed.
     */
    boolean getGroupingUsed();
  }
  /**
   * <pre>
   * Simple formatting for dynamic int32.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.Int32FormatOp}
   */
  public  static final class Int32FormatOp extends
      com.google.protobuf.GeneratedMessageLite<
          Int32FormatOp, Int32FormatOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.Int32FormatOp)
      Int32FormatOpOrBuilder {
    private Int32FormatOp() {
    }
    private int bitField0_;
    public static final int INPUT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 input_;
    /**
     * <pre>
     * The source of Int32 data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    @java.lang.Override
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * <pre>
     * The source of Int32 data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInput() {
      return input_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance() : input_;
    }
    /**
     * <pre>
     * The source of Int32 data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    private void setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  input_ = value;
      
      }
    /**
     * <pre>
     * The source of Int32 data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  if (input_ != null &&
          input_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance()) {
        input_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder(input_).mergeFrom(value).buildPartial();
      } else {
        input_ = value;
      }
      
    }
    /**
     * <pre>
     * The source of Int32 data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    private void clearInput() {  input_ = null;
      
    }

    public static final int MIN_INTEGER_DIGITS_FIELD_NUMBER = 4;
    private int minIntegerDigits_;
    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example,in the English locale, applying minIntegerDigit=4 to 12 would
     * yield "0012".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     * @return Whether the minIntegerDigits field is set.
     */
    @java.lang.Override
    public boolean hasMinIntegerDigits() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example,in the English locale, applying minIntegerDigit=4 to 12 would
     * yield "0012".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     * @return The minIntegerDigits.
     */
    @java.lang.Override
    public int getMinIntegerDigits() {
      return minIntegerDigits_;
    }
    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example,in the English locale, applying minIntegerDigit=4 to 12 would
     * yield "0012".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     * @param value The minIntegerDigits to set.
     */
    private void setMinIntegerDigits(int value) {
      bitField0_ |= 0x00000001;
      minIntegerDigits_ = value;
    }
    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example,in the English locale, applying minIntegerDigit=4 to 12 would
     * yield "0012".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     */
    private void clearMinIntegerDigits() {
      bitField0_ = (bitField0_ & ~0x00000001);
      minIntegerDigits_ = 0;
    }

    public static final int GROUPING_USED_FIELD_NUMBER = 5;
    private boolean groupingUsed_;
    /**
     * <pre>
     * Digit grouping used. Grouping size and grouping character depend on the
     * current locale. If not defined, defaults to false.
     * For example, in the English locale, using grouping with 1234 would yield
     * "1,234".
     * </pre>
     *
     * <code>bool grouping_used = 5;</code>
     * @return The groupingUsed.
     */
    @java.lang.Override
    public boolean getGroupingUsed() {
      return groupingUsed_;
    }
    /**
     * <pre>
     * Digit grouping used. Grouping size and grouping character depend on the
     * current locale. If not defined, defaults to false.
     * For example, in the English locale, using grouping with 1234 would yield
     * "1,234".
     * </pre>
     *
     * <code>bool grouping_used = 5;</code>
     * @param value The groupingUsed to set.
     */
    private void setGroupingUsed(boolean value) {
      
      groupingUsed_ = value;
    }
    /**
     * <pre>
     * Digit grouping used. Grouping size and grouping character depend on the
     * current locale. If not defined, defaults to false.
     * For example, in the English locale, using grouping with 1234 would yield
     * "1,234".
     * </pre>
     *
     * <code>bool grouping_used = 5;</code>
     */
    private void clearGroupingUsed() {
      
      groupingUsed_ = false;
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Simple formatting for dynamic int32.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.Int32FormatOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.Int32FormatOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The source of Int32 data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      @java.lang.Override
      public boolean hasInput() {
        return instance.hasInput();
      }
      /**
       * <pre>
       * The source of Int32 data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInput() {
        return instance.getInput();
      }
      /**
       * <pre>
       * The source of Int32 data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.setInput(value);
        return this;
        }
      /**
       * <pre>
       * The source of Int32 data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder setInput(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setInput(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The source of Int32 data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.mergeInput(value);
        return this;
      }
      /**
       * <pre>
       * The source of Int32 data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder clearInput() {  copyOnWrite();
        instance.clearInput();
        return this;
      }

      /**
       * <pre>
       * Minimum integer digits. Sign and grouping characters are not considered
       * when applying minIntegerDigits constraint. If not defined, defaults to one.
       * For example,in the English locale, applying minIntegerDigit=4 to 12 would
       * yield "0012".
       * </pre>
       *
       * <code>optional int32 min_integer_digits = 4;</code>
       * @return Whether the minIntegerDigits field is set.
       */
      @java.lang.Override
      public boolean hasMinIntegerDigits() {
        return instance.hasMinIntegerDigits();
      }
      /**
       * <pre>
       * Minimum integer digits. Sign and grouping characters are not considered
       * when applying minIntegerDigits constraint. If not defined, defaults to one.
       * For example,in the English locale, applying minIntegerDigit=4 to 12 would
       * yield "0012".
       * </pre>
       *
       * <code>optional int32 min_integer_digits = 4;</code>
       * @return The minIntegerDigits.
       */
      @java.lang.Override
      public int getMinIntegerDigits() {
        return instance.getMinIntegerDigits();
      }
      /**
       * <pre>
       * Minimum integer digits. Sign and grouping characters are not considered
       * when applying minIntegerDigits constraint. If not defined, defaults to one.
       * For example,in the English locale, applying minIntegerDigit=4 to 12 would
       * yield "0012".
       * </pre>
       *
       * <code>optional int32 min_integer_digits = 4;</code>
       * @param value The minIntegerDigits to set.
       * @return This builder for chaining.
       */
      public Builder setMinIntegerDigits(int value) {
        copyOnWrite();
        instance.setMinIntegerDigits(value);
        return this;
      }
      /**
       * <pre>
       * Minimum integer digits. Sign and grouping characters are not considered
       * when applying minIntegerDigits constraint. If not defined, defaults to one.
       * For example,in the English locale, applying minIntegerDigit=4 to 12 would
       * yield "0012".
       * </pre>
       *
       * <code>optional int32 min_integer_digits = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinIntegerDigits() {
        copyOnWrite();
        instance.clearMinIntegerDigits();
        return this;
      }

      /**
       * <pre>
       * Digit grouping used. Grouping size and grouping character depend on the
       * current locale. If not defined, defaults to false.
       * For example, in the English locale, using grouping with 1234 would yield
       * "1,234".
       * </pre>
       *
       * <code>bool grouping_used = 5;</code>
       * @return The groupingUsed.
       */
      @java.lang.Override
      public boolean getGroupingUsed() {
        return instance.getGroupingUsed();
      }
      /**
       * <pre>
       * Digit grouping used. Grouping size and grouping character depend on the
       * current locale. If not defined, defaults to false.
       * For example, in the English locale, using grouping with 1234 would yield
       * "1,234".
       * </pre>
       *
       * <code>bool grouping_used = 5;</code>
       * @param value The groupingUsed to set.
       * @return This builder for chaining.
       */
      public Builder setGroupingUsed(boolean value) {
        copyOnWrite();
        instance.setGroupingUsed(value);
        return this;
      }
      /**
       * <pre>
       * Digit grouping used. Grouping size and grouping character depend on the
       * current locale. If not defined, defaults to false.
       * For example, in the English locale, using grouping with 1234 would yield
       * "1,234".
       * </pre>
       *
       * <code>bool grouping_used = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearGroupingUsed() {
        copyOnWrite();
        instance.clearGroupingUsed();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.Int32FormatOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "input_",
              "minIntegerDigits_",
              "groupingUsed_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0001\u0001\u0005\u0003\u0000\u0000\u0000\u0001\t\u0004\u1004" +
                "\u0000\u0005\u0007";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.Int32FormatOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp DEFAULT_INSTANCE;
    static {
      Int32FormatOp defaultInstance = new Int32FormatOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Int32FormatOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Int32FormatOp> PARSER;

    public static com.google.protobuf.Parser<Int32FormatOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface StateStringSourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.StateStringSource)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The sourceKey.
     */
    java.lang.String getSourceKey();
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The bytes for sourceKey.
     */
    com.google.protobuf.ByteString
        getSourceKeyBytes();
  }
  /**
   * <pre>
   * A dynamic String which sources its data from the tile's state.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.StateStringSource}
   */
  public  static final class StateStringSource extends
      com.google.protobuf.GeneratedMessageLite<
          StateStringSource, StateStringSource.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.StateStringSource)
      StateStringSourceOrBuilder {
    private StateStringSource() {
      sourceKey_ = "";
    }
    public static final int SOURCE_KEY_FIELD_NUMBER = 1;
    private java.lang.String sourceKey_;
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The sourceKey.
     */
    @java.lang.Override
    public java.lang.String getSourceKey() {
      return sourceKey_;
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The bytes for sourceKey.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceKeyBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(sourceKey_);
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @param value The sourceKey to set.
     */
    private void setSourceKey(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      sourceKey_ = value;
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     */
    private void clearSourceKey() {
      
      sourceKey_ = getDefaultInstance().getSourceKey();
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @param value The bytes for sourceKey to set.
     */
    private void setSourceKeyBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      sourceKey_ = value.toStringUtf8();
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic String which sources its data from the tile's state.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.StateStringSource}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.StateStringSource)
        androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSourceOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return The sourceKey.
       */
      @java.lang.Override
      public java.lang.String getSourceKey() {
        return instance.getSourceKey();
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return The bytes for sourceKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSourceKeyBytes() {
        return instance.getSourceKeyBytes();
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @param value The sourceKey to set.
       * @return This builder for chaining.
       */
      public Builder setSourceKey(
          java.lang.String value) {
        copyOnWrite();
        instance.setSourceKey(value);
        return this;
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceKey() {
        copyOnWrite();
        instance.clearSourceKey();
        return this;
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @param value The bytes for sourceKey to set.
       * @return This builder for chaining.
       */
      public Builder setSourceKeyBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSourceKeyBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.StateStringSource)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "sourceKey_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0208";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.StateStringSource)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource DEFAULT_INSTANCE;
    static {
      StateStringSource defaultInstance = new StateStringSource();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        StateStringSource.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<StateStringSource> PARSER;

    public static com.google.protobuf.Parser<StateStringSource> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ConditionalStringOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.ConditionalStringOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     * @return Whether the condition field is set.
     */
    boolean hasCondition();
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     * @return The condition.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getCondition();

    /**
     * <pre>
     * The string to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
     * @return Whether the valueIfTrue field is set.
     */
    boolean hasValueIfTrue();
    /**
     * <pre>
     * The string to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
     * @return The valueIfTrue.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getValueIfTrue();

    /**
     * <pre>
     * The string to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
     * @return Whether the valueIfFalse field is set.
     */
    boolean hasValueIfFalse();
    /**
     * <pre>
     * The string to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
     * @return The valueIfFalse.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getValueIfFalse();
  }
  /**
   * <pre>
   * A conditional operator which yields an string depending on the boolean
   * operand. This implements "string result = condition ? value_if_true :
   * value_if_false".
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.ConditionalStringOp}
   */
  public  static final class ConditionalStringOp extends
      com.google.protobuf.GeneratedMessageLite<
          ConditionalStringOp, ConditionalStringOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.ConditionalStringOp)
      ConditionalStringOpOrBuilder {
    private ConditionalStringOp() {
    }
    public static final int CONDITION_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool condition_;
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    @java.lang.Override
    public boolean hasCondition() {
      return condition_ != null;
    }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getCondition() {
      return condition_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance() : condition_;
    }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    private void setCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  condition_ = value;
      
      }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  if (condition_ != null &&
          condition_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance()) {
        condition_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.newBuilder(condition_).mergeFrom(value).buildPartial();
      } else {
        condition_ = value;
      }
      
    }
    /**
     * <pre>
     * The condition to use.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
     */
    private void clearCondition() {  condition_ = null;
      
    }

    public static final int VALUE_IF_TRUE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString valueIfTrue_;
    /**
     * <pre>
     * The string to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
     */
    @java.lang.Override
    public boolean hasValueIfTrue() {
      return valueIfTrue_ != null;
    }
    /**
     * <pre>
     * The string to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getValueIfTrue() {
      return valueIfTrue_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.getDefaultInstance() : valueIfTrue_;
    }
    /**
     * <pre>
     * The string to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
     */
    private void setValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
      value.getClass();
  valueIfTrue_ = value;
      
      }
    /**
     * <pre>
     * The string to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
      value.getClass();
  if (valueIfTrue_ != null &&
          valueIfTrue_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.getDefaultInstance()) {
        valueIfTrue_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.newBuilder(valueIfTrue_).mergeFrom(value).buildPartial();
      } else {
        valueIfTrue_ = value;
      }
      
    }
    /**
     * <pre>
     * The string to yield if condition is true.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
     */
    private void clearValueIfTrue() {  valueIfTrue_ = null;
      
    }

    public static final int VALUE_IF_FALSE_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString valueIfFalse_;
    /**
     * <pre>
     * The string to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
     */
    @java.lang.Override
    public boolean hasValueIfFalse() {
      return valueIfFalse_ != null;
    }
    /**
     * <pre>
     * The string to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getValueIfFalse() {
      return valueIfFalse_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.getDefaultInstance() : valueIfFalse_;
    }
    /**
     * <pre>
     * The string to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
     */
    private void setValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
      value.getClass();
  valueIfFalse_ = value;
      
      }
    /**
     * <pre>
     * The string to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
      value.getClass();
  if (valueIfFalse_ != null &&
          valueIfFalse_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.getDefaultInstance()) {
        valueIfFalse_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.newBuilder(valueIfFalse_).mergeFrom(value).buildPartial();
      } else {
        valueIfFalse_ = value;
      }
      
    }
    /**
     * <pre>
     * The string to yield if condition is false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
     */
    private void clearValueIfFalse() {  valueIfFalse_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A conditional operator which yields an string depending on the boolean
     * operand. This implements "string result = condition ? value_if_true :
     * value_if_false".
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.ConditionalStringOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.ConditionalStringOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      @java.lang.Override
      public boolean hasCondition() {
        return instance.hasCondition();
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getCondition() {
        return instance.getCondition();
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder setCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.setCondition(value);
        return this;
        }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder setCondition(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.Builder builderForValue) {
        copyOnWrite();
        instance.setCondition(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder mergeCondition(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.mergeCondition(value);
        return this;
      }
      /**
       * <pre>
       * The condition to use.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool condition = 1;</code>
       */
      public Builder clearCondition() {  copyOnWrite();
        instance.clearCondition();
        return this;
      }

      /**
       * <pre>
       * The string to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
       */
      @java.lang.Override
      public boolean hasValueIfTrue() {
        return instance.hasValueIfTrue();
      }
      /**
       * <pre>
       * The string to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getValueIfTrue() {
        return instance.getValueIfTrue();
      }
      /**
       * <pre>
       * The string to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
       */
      public Builder setValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
        copyOnWrite();
        instance.setValueIfTrue(value);
        return this;
        }
      /**
       * <pre>
       * The string to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
       */
      public Builder setValueIfTrue(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.Builder builderForValue) {
        copyOnWrite();
        instance.setValueIfTrue(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The string to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
       */
      public Builder mergeValueIfTrue(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
        copyOnWrite();
        instance.mergeValueIfTrue(value);
        return this;
      }
      /**
       * <pre>
       * The string to yield if condition is true.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_true = 2;</code>
       */
      public Builder clearValueIfTrue() {  copyOnWrite();
        instance.clearValueIfTrue();
        return this;
      }

      /**
       * <pre>
       * The string to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
       */
      @java.lang.Override
      public boolean hasValueIfFalse() {
        return instance.hasValueIfFalse();
      }
      /**
       * <pre>
       * The string to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getValueIfFalse() {
        return instance.getValueIfFalse();
      }
      /**
       * <pre>
       * The string to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
       */
      public Builder setValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
        copyOnWrite();
        instance.setValueIfFalse(value);
        return this;
        }
      /**
       * <pre>
       * The string to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
       */
      public Builder setValueIfFalse(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.Builder builderForValue) {
        copyOnWrite();
        instance.setValueIfFalse(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The string to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
       */
      public Builder mergeValueIfFalse(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
        copyOnWrite();
        instance.mergeValueIfFalse(value);
        return this;
      }
      /**
       * <pre>
       * The string to yield if condition is false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString value_if_false = 3;</code>
       */
      public Builder clearValueIfFalse() {  copyOnWrite();
        instance.clearValueIfFalse();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.ConditionalStringOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "condition_",
              "valueIfTrue_",
              "valueIfFalse_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.ConditionalStringOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp DEFAULT_INSTANCE;
    static {
      ConditionalStringOp defaultInstance = new ConditionalStringOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ConditionalStringOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ConditionalStringOp> PARSER;

    public static com.google.protobuf.Parser<ConditionalStringOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ConcatStringOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.ConcatStringOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Left hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
     * @return Whether the inputLhs field is set.
     */
    boolean hasInputLhs();
    /**
     * <pre>
     * Left hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
     * @return The inputLhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getInputLhs();

    /**
     * <pre>
     * Right hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
     * @return Whether the inputRhs field is set.
     */
    boolean hasInputRhs();
    /**
     * <pre>
     * Right hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
     * @return The inputRhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getInputRhs();
  }
  /**
   * <pre>
   * This implements simple string concatenation "result = LHS+RHS"
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.ConcatStringOp}
   */
  public  static final class ConcatStringOp extends
      com.google.protobuf.GeneratedMessageLite<
          ConcatStringOp, ConcatStringOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.ConcatStringOp)
      ConcatStringOpOrBuilder {
    private ConcatStringOp() {
    }
    public static final int INPUT_LHS_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString inputLhs_;
    /**
     * <pre>
     * Left hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
     */
    @java.lang.Override
    public boolean hasInputLhs() {
      return inputLhs_ != null;
    }
    /**
     * <pre>
     * Left hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getInputLhs() {
      return inputLhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.getDefaultInstance() : inputLhs_;
    }
    /**
     * <pre>
     * Left hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
     */
    private void setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
      value.getClass();
  inputLhs_ = value;
      
      }
    /**
     * <pre>
     * Left hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
      value.getClass();
  if (inputLhs_ != null &&
          inputLhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.getDefaultInstance()) {
        inputLhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.newBuilder(inputLhs_).mergeFrom(value).buildPartial();
      } else {
        inputLhs_ = value;
      }
      
    }
    /**
     * <pre>
     * Left hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
     */
    private void clearInputLhs() {  inputLhs_ = null;
      
    }

    public static final int INPUT_RHS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString inputRhs_;
    /**
     * <pre>
     * Right hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
     */
    @java.lang.Override
    public boolean hasInputRhs() {
      return inputRhs_ != null;
    }
    /**
     * <pre>
     * Right hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getInputRhs() {
      return inputRhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.getDefaultInstance() : inputRhs_;
    }
    /**
     * <pre>
     * Right hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
     */
    private void setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
      value.getClass();
  inputRhs_ = value;
      
      }
    /**
     * <pre>
     * Right hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
      value.getClass();
  if (inputRhs_ != null &&
          inputRhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.getDefaultInstance()) {
        inputRhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.newBuilder(inputRhs_).mergeFrom(value).buildPartial();
      } else {
        inputRhs_ = value;
      }
      
    }
    /**
     * <pre>
     * Right hand side of the concatenation operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
     */
    private void clearInputRhs() {  inputRhs_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * This implements simple string concatenation "result = LHS+RHS"
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.ConcatStringOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.ConcatStringOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Left hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
       */
      @java.lang.Override
      public boolean hasInputLhs() {
        return instance.hasInputLhs();
      }
      /**
       * <pre>
       * Left hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getInputLhs() {
        return instance.getInputLhs();
      }
      /**
       * <pre>
       * Left hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
       */
      public Builder setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
        copyOnWrite();
        instance.setInputLhs(value);
        return this;
        }
      /**
       * <pre>
       * Left hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
       */
      public Builder setInputLhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.Builder builderForValue) {
        copyOnWrite();
        instance.setInputLhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Left hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
       */
      public Builder mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
        copyOnWrite();
        instance.mergeInputLhs(value);
        return this;
      }
      /**
       * <pre>
       * Left hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_lhs = 1;</code>
       */
      public Builder clearInputLhs() {  copyOnWrite();
        instance.clearInputLhs();
        return this;
      }

      /**
       * <pre>
       * Right hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
       */
      @java.lang.Override
      public boolean hasInputRhs() {
        return instance.hasInputRhs();
      }
      /**
       * <pre>
       * Right hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getInputRhs() {
        return instance.getInputRhs();
      }
      /**
       * <pre>
       * Right hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
       */
      public Builder setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
        copyOnWrite();
        instance.setInputRhs(value);
        return this;
        }
      /**
       * <pre>
       * Right hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
       */
      public Builder setInputRhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.Builder builderForValue) {
        copyOnWrite();
        instance.setInputRhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Right hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
       */
      public Builder mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString value) {
        copyOnWrite();
        instance.mergeInputRhs(value);
        return this;
      }
      /**
       * <pre>
       * Right hand side of the concatenation operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicString input_rhs = 2;</code>
       */
      public Builder clearInputRhs() {  copyOnWrite();
        instance.clearInputRhs();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.ConcatStringOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inputLhs_",
              "inputRhs_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.ConcatStringOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp DEFAULT_INSTANCE;
    static {
      ConcatStringOp defaultInstance = new ConcatStringOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ConcatStringOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ConcatStringOp> PARSER;

    public static com.google.protobuf.Parser<ConcatStringOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface FloatFormatOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.FloatFormatOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The source of Float data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     * @return Whether the input field is set.
     */
    boolean hasInput();
    /**
     * <pre>
     * The source of Float data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     * @return The input.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInput();

    /**
     * <pre>
     * Maximum fraction digits. Rounding will be applied if maxFractionDigits is
     * smaller than number of fraction digits. If not defined, defaults to three.
     * minimumFractionDigits must be &lt;= maximumFractionDigits. If the condition is
     * not satisfied, then minimumFractionDigits will be used for both fields.
     * </pre>
     *
     * <code>optional int32 max_fraction_digits = 2;</code>
     * @return Whether the maxFractionDigits field is set.
     */
    boolean hasMaxFractionDigits();
    /**
     * <pre>
     * Maximum fraction digits. Rounding will be applied if maxFractionDigits is
     * smaller than number of fraction digits. If not defined, defaults to three.
     * minimumFractionDigits must be &lt;= maximumFractionDigits. If the condition is
     * not satisfied, then minimumFractionDigits will be used for both fields.
     * </pre>
     *
     * <code>optional int32 max_fraction_digits = 2;</code>
     * @return The maxFractionDigits.
     */
    int getMaxFractionDigits();

    /**
     * <pre>
     * Minimum fraction digits. Zeros will be appended to the end to satisfy this
     * constraint. If not defined, defaults to zero. minimumFractionDigits must be
     * &lt;= maximumFractionDigits. If the condition is not satisfied, then
     * minimumFractionDigits will be used for both fields.
     * </pre>
     *
     * <code>int32 min_fraction_digits = 3;</code>
     * @return The minFractionDigits.
     */
    int getMinFractionDigits();

    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example, in the English locale, applying minIntegerDigit=4 to 12.34
     * would yield "0012.34".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     * @return Whether the minIntegerDigits field is set.
     */
    boolean hasMinIntegerDigits();
    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example, in the English locale, applying minIntegerDigit=4 to 12.34
     * would yield "0012.34".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     * @return The minIntegerDigits.
     */
    int getMinIntegerDigits();

    /**
     * <pre>
     * Digit grouping used. Grouping size and grouping character depend on the
     * current locale. If not defined, defaults to false.
     * For example, in the English locale, using grouping with 1234.56 would yield
     * "1,234.56".
     * </pre>
     *
     * <code>bool grouping_used = 5;</code>
     * @return The groupingUsed.
     */
    boolean getGroupingUsed();
  }
  /**
   * <pre>
   * Simple formatting for dynamic floats.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.FloatFormatOp}
   */
  public  static final class FloatFormatOp extends
      com.google.protobuf.GeneratedMessageLite<
          FloatFormatOp, FloatFormatOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.FloatFormatOp)
      FloatFormatOpOrBuilder {
    private FloatFormatOp() {
    }
    private int bitField0_;
    public static final int INPUT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat input_;
    /**
     * <pre>
     * The source of Float data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    @java.lang.Override
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * <pre>
     * The source of Float data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInput() {
      return input_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : input_;
    }
    /**
     * <pre>
     * The source of Float data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    private void setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  input_ = value;
      
      }
    /**
     * <pre>
     * The source of Float data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (input_ != null &&
          input_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        input_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(input_).mergeFrom(value).buildPartial();
      } else {
        input_ = value;
      }
      
    }
    /**
     * <pre>
     * The source of Float data to convert to a string.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    private void clearInput() {  input_ = null;
      
    }

    public static final int MAX_FRACTION_DIGITS_FIELD_NUMBER = 2;
    private int maxFractionDigits_;
    /**
     * <pre>
     * Maximum fraction digits. Rounding will be applied if maxFractionDigits is
     * smaller than number of fraction digits. If not defined, defaults to three.
     * minimumFractionDigits must be &lt;= maximumFractionDigits. If the condition is
     * not satisfied, then minimumFractionDigits will be used for both fields.
     * </pre>
     *
     * <code>optional int32 max_fraction_digits = 2;</code>
     * @return Whether the maxFractionDigits field is set.
     */
    @java.lang.Override
    public boolean hasMaxFractionDigits() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Maximum fraction digits. Rounding will be applied if maxFractionDigits is
     * smaller than number of fraction digits. If not defined, defaults to three.
     * minimumFractionDigits must be &lt;= maximumFractionDigits. If the condition is
     * not satisfied, then minimumFractionDigits will be used for both fields.
     * </pre>
     *
     * <code>optional int32 max_fraction_digits = 2;</code>
     * @return The maxFractionDigits.
     */
    @java.lang.Override
    public int getMaxFractionDigits() {
      return maxFractionDigits_;
    }
    /**
     * <pre>
     * Maximum fraction digits. Rounding will be applied if maxFractionDigits is
     * smaller than number of fraction digits. If not defined, defaults to three.
     * minimumFractionDigits must be &lt;= maximumFractionDigits. If the condition is
     * not satisfied, then minimumFractionDigits will be used for both fields.
     * </pre>
     *
     * <code>optional int32 max_fraction_digits = 2;</code>
     * @param value The maxFractionDigits to set.
     */
    private void setMaxFractionDigits(int value) {
      bitField0_ |= 0x00000001;
      maxFractionDigits_ = value;
    }
    /**
     * <pre>
     * Maximum fraction digits. Rounding will be applied if maxFractionDigits is
     * smaller than number of fraction digits. If not defined, defaults to three.
     * minimumFractionDigits must be &lt;= maximumFractionDigits. If the condition is
     * not satisfied, then minimumFractionDigits will be used for both fields.
     * </pre>
     *
     * <code>optional int32 max_fraction_digits = 2;</code>
     */
    private void clearMaxFractionDigits() {
      bitField0_ = (bitField0_ & ~0x00000001);
      maxFractionDigits_ = 0;
    }

    public static final int MIN_FRACTION_DIGITS_FIELD_NUMBER = 3;
    private int minFractionDigits_;
    /**
     * <pre>
     * Minimum fraction digits. Zeros will be appended to the end to satisfy this
     * constraint. If not defined, defaults to zero. minimumFractionDigits must be
     * &lt;= maximumFractionDigits. If the condition is not satisfied, then
     * minimumFractionDigits will be used for both fields.
     * </pre>
     *
     * <code>int32 min_fraction_digits = 3;</code>
     * @return The minFractionDigits.
     */
    @java.lang.Override
    public int getMinFractionDigits() {
      return minFractionDigits_;
    }
    /**
     * <pre>
     * Minimum fraction digits. Zeros will be appended to the end to satisfy this
     * constraint. If not defined, defaults to zero. minimumFractionDigits must be
     * &lt;= maximumFractionDigits. If the condition is not satisfied, then
     * minimumFractionDigits will be used for both fields.
     * </pre>
     *
     * <code>int32 min_fraction_digits = 3;</code>
     * @param value The minFractionDigits to set.
     */
    private void setMinFractionDigits(int value) {
      
      minFractionDigits_ = value;
    }
    /**
     * <pre>
     * Minimum fraction digits. Zeros will be appended to the end to satisfy this
     * constraint. If not defined, defaults to zero. minimumFractionDigits must be
     * &lt;= maximumFractionDigits. If the condition is not satisfied, then
     * minimumFractionDigits will be used for both fields.
     * </pre>
     *
     * <code>int32 min_fraction_digits = 3;</code>
     */
    private void clearMinFractionDigits() {
      
      minFractionDigits_ = 0;
    }

    public static final int MIN_INTEGER_DIGITS_FIELD_NUMBER = 4;
    private int minIntegerDigits_;
    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example, in the English locale, applying minIntegerDigit=4 to 12.34
     * would yield "0012.34".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     * @return Whether the minIntegerDigits field is set.
     */
    @java.lang.Override
    public boolean hasMinIntegerDigits() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example, in the English locale, applying minIntegerDigit=4 to 12.34
     * would yield "0012.34".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     * @return The minIntegerDigits.
     */
    @java.lang.Override
    public int getMinIntegerDigits() {
      return minIntegerDigits_;
    }
    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example, in the English locale, applying minIntegerDigit=4 to 12.34
     * would yield "0012.34".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     * @param value The minIntegerDigits to set.
     */
    private void setMinIntegerDigits(int value) {
      bitField0_ |= 0x00000002;
      minIntegerDigits_ = value;
    }
    /**
     * <pre>
     * Minimum integer digits. Sign and grouping characters are not considered
     * when applying minIntegerDigits constraint. If not defined, defaults to one.
     * For example, in the English locale, applying minIntegerDigit=4 to 12.34
     * would yield "0012.34".
     * </pre>
     *
     * <code>optional int32 min_integer_digits = 4;</code>
     */
    private void clearMinIntegerDigits() {
      bitField0_ = (bitField0_ & ~0x00000002);
      minIntegerDigits_ = 0;
    }

    public static final int GROUPING_USED_FIELD_NUMBER = 5;
    private boolean groupingUsed_;
    /**
     * <pre>
     * Digit grouping used. Grouping size and grouping character depend on the
     * current locale. If not defined, defaults to false.
     * For example, in the English locale, using grouping with 1234.56 would yield
     * "1,234.56".
     * </pre>
     *
     * <code>bool grouping_used = 5;</code>
     * @return The groupingUsed.
     */
    @java.lang.Override
    public boolean getGroupingUsed() {
      return groupingUsed_;
    }
    /**
     * <pre>
     * Digit grouping used. Grouping size and grouping character depend on the
     * current locale. If not defined, defaults to false.
     * For example, in the English locale, using grouping with 1234.56 would yield
     * "1,234.56".
     * </pre>
     *
     * <code>bool grouping_used = 5;</code>
     * @param value The groupingUsed to set.
     */
    private void setGroupingUsed(boolean value) {
      
      groupingUsed_ = value;
    }
    /**
     * <pre>
     * Digit grouping used. Grouping size and grouping character depend on the
     * current locale. If not defined, defaults to false.
     * For example, in the English locale, using grouping with 1234.56 would yield
     * "1,234.56".
     * </pre>
     *
     * <code>bool grouping_used = 5;</code>
     */
    private void clearGroupingUsed() {
      
      groupingUsed_ = false;
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Simple formatting for dynamic floats.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.FloatFormatOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.FloatFormatOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The source of Float data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      @java.lang.Override
      public boolean hasInput() {
        return instance.hasInput();
      }
      /**
       * <pre>
       * The source of Float data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInput() {
        return instance.getInput();
      }
      /**
       * <pre>
       * The source of Float data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setInput(value);
        return this;
        }
      /**
       * <pre>
       * The source of Float data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder setInput(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setInput(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The source of Float data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeInput(value);
        return this;
      }
      /**
       * <pre>
       * The source of Float data to convert to a string.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder clearInput() {  copyOnWrite();
        instance.clearInput();
        return this;
      }

      /**
       * <pre>
       * Maximum fraction digits. Rounding will be applied if maxFractionDigits is
       * smaller than number of fraction digits. If not defined, defaults to three.
       * minimumFractionDigits must be &lt;= maximumFractionDigits. If the condition is
       * not satisfied, then minimumFractionDigits will be used for both fields.
       * </pre>
       *
       * <code>optional int32 max_fraction_digits = 2;</code>
       * @return Whether the maxFractionDigits field is set.
       */
      @java.lang.Override
      public boolean hasMaxFractionDigits() {
        return instance.hasMaxFractionDigits();
      }
      /**
       * <pre>
       * Maximum fraction digits. Rounding will be applied if maxFractionDigits is
       * smaller than number of fraction digits. If not defined, defaults to three.
       * minimumFractionDigits must be &lt;= maximumFractionDigits. If the condition is
       * not satisfied, then minimumFractionDigits will be used for both fields.
       * </pre>
       *
       * <code>optional int32 max_fraction_digits = 2;</code>
       * @return The maxFractionDigits.
       */
      @java.lang.Override
      public int getMaxFractionDigits() {
        return instance.getMaxFractionDigits();
      }
      /**
       * <pre>
       * Maximum fraction digits. Rounding will be applied if maxFractionDigits is
       * smaller than number of fraction digits. If not defined, defaults to three.
       * minimumFractionDigits must be &lt;= maximumFractionDigits. If the condition is
       * not satisfied, then minimumFractionDigits will be used for both fields.
       * </pre>
       *
       * <code>optional int32 max_fraction_digits = 2;</code>
       * @param value The maxFractionDigits to set.
       * @return This builder for chaining.
       */
      public Builder setMaxFractionDigits(int value) {
        copyOnWrite();
        instance.setMaxFractionDigits(value);
        return this;
      }
      /**
       * <pre>
       * Maximum fraction digits. Rounding will be applied if maxFractionDigits is
       * smaller than number of fraction digits. If not defined, defaults to three.
       * minimumFractionDigits must be &lt;= maximumFractionDigits. If the condition is
       * not satisfied, then minimumFractionDigits will be used for both fields.
       * </pre>
       *
       * <code>optional int32 max_fraction_digits = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxFractionDigits() {
        copyOnWrite();
        instance.clearMaxFractionDigits();
        return this;
      }

      /**
       * <pre>
       * Minimum fraction digits. Zeros will be appended to the end to satisfy this
       * constraint. If not defined, defaults to zero. minimumFractionDigits must be
       * &lt;= maximumFractionDigits. If the condition is not satisfied, then
       * minimumFractionDigits will be used for both fields.
       * </pre>
       *
       * <code>int32 min_fraction_digits = 3;</code>
       * @return The minFractionDigits.
       */
      @java.lang.Override
      public int getMinFractionDigits() {
        return instance.getMinFractionDigits();
      }
      /**
       * <pre>
       * Minimum fraction digits. Zeros will be appended to the end to satisfy this
       * constraint. If not defined, defaults to zero. minimumFractionDigits must be
       * &lt;= maximumFractionDigits. If the condition is not satisfied, then
       * minimumFractionDigits will be used for both fields.
       * </pre>
       *
       * <code>int32 min_fraction_digits = 3;</code>
       * @param value The minFractionDigits to set.
       * @return This builder for chaining.
       */
      public Builder setMinFractionDigits(int value) {
        copyOnWrite();
        instance.setMinFractionDigits(value);
        return this;
      }
      /**
       * <pre>
       * Minimum fraction digits. Zeros will be appended to the end to satisfy this
       * constraint. If not defined, defaults to zero. minimumFractionDigits must be
       * &lt;= maximumFractionDigits. If the condition is not satisfied, then
       * minimumFractionDigits will be used for both fields.
       * </pre>
       *
       * <code>int32 min_fraction_digits = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinFractionDigits() {
        copyOnWrite();
        instance.clearMinFractionDigits();
        return this;
      }

      /**
       * <pre>
       * Minimum integer digits. Sign and grouping characters are not considered
       * when applying minIntegerDigits constraint. If not defined, defaults to one.
       * For example, in the English locale, applying minIntegerDigit=4 to 12.34
       * would yield "0012.34".
       * </pre>
       *
       * <code>optional int32 min_integer_digits = 4;</code>
       * @return Whether the minIntegerDigits field is set.
       */
      @java.lang.Override
      public boolean hasMinIntegerDigits() {
        return instance.hasMinIntegerDigits();
      }
      /**
       * <pre>
       * Minimum integer digits. Sign and grouping characters are not considered
       * when applying minIntegerDigits constraint. If not defined, defaults to one.
       * For example, in the English locale, applying minIntegerDigit=4 to 12.34
       * would yield "0012.34".
       * </pre>
       *
       * <code>optional int32 min_integer_digits = 4;</code>
       * @return The minIntegerDigits.
       */
      @java.lang.Override
      public int getMinIntegerDigits() {
        return instance.getMinIntegerDigits();
      }
      /**
       * <pre>
       * Minimum integer digits. Sign and grouping characters are not considered
       * when applying minIntegerDigits constraint. If not defined, defaults to one.
       * For example, in the English locale, applying minIntegerDigit=4 to 12.34
       * would yield "0012.34".
       * </pre>
       *
       * <code>optional int32 min_integer_digits = 4;</code>
       * @param value The minIntegerDigits to set.
       * @return This builder for chaining.
       */
      public Builder setMinIntegerDigits(int value) {
        copyOnWrite();
        instance.setMinIntegerDigits(value);
        return this;
      }
      /**
       * <pre>
       * Minimum integer digits. Sign and grouping characters are not considered
       * when applying minIntegerDigits constraint. If not defined, defaults to one.
       * For example, in the English locale, applying minIntegerDigit=4 to 12.34
       * would yield "0012.34".
       * </pre>
       *
       * <code>optional int32 min_integer_digits = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinIntegerDigits() {
        copyOnWrite();
        instance.clearMinIntegerDigits();
        return this;
      }

      /**
       * <pre>
       * Digit grouping used. Grouping size and grouping character depend on the
       * current locale. If not defined, defaults to false.
       * For example, in the English locale, using grouping with 1234.56 would yield
       * "1,234.56".
       * </pre>
       *
       * <code>bool grouping_used = 5;</code>
       * @return The groupingUsed.
       */
      @java.lang.Override
      public boolean getGroupingUsed() {
        return instance.getGroupingUsed();
      }
      /**
       * <pre>
       * Digit grouping used. Grouping size and grouping character depend on the
       * current locale. If not defined, defaults to false.
       * For example, in the English locale, using grouping with 1234.56 would yield
       * "1,234.56".
       * </pre>
       *
       * <code>bool grouping_used = 5;</code>
       * @param value The groupingUsed to set.
       * @return This builder for chaining.
       */
      public Builder setGroupingUsed(boolean value) {
        copyOnWrite();
        instance.setGroupingUsed(value);
        return this;
      }
      /**
       * <pre>
       * Digit grouping used. Grouping size and grouping character depend on the
       * current locale. If not defined, defaults to false.
       * For example, in the English locale, using grouping with 1234.56 would yield
       * "1,234.56".
       * </pre>
       *
       * <code>bool grouping_used = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearGroupingUsed() {
        copyOnWrite();
        instance.clearGroupingUsed();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.FloatFormatOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "input_",
              "maxFractionDigits_",
              "minFractionDigits_",
              "minIntegerDigits_",
              "groupingUsed_",
            };
            java.lang.String info =
                "\u0000\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0000\u0000\u0001\t\u0002\u1004" +
                "\u0000\u0003\u0004\u0004\u1004\u0001\u0005\u0007";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.FloatFormatOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp DEFAULT_INSTANCE;
    static {
      FloatFormatOp defaultInstance = new FloatFormatOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        FloatFormatOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<FloatFormatOp> PARSER;

    public static com.google.protobuf.Parser<FloatFormatOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DynamicStringOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.DynamicString)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
     * @return Whether the fixed field is set.
     */
    boolean hasFixed();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
     * @return The fixed.
     */
    androidx.wear.protolayout.expression.proto.FixedProto.FixedString getFixed();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
     * @return Whether the int32FormatOp field is set.
     */
    boolean hasInt32FormatOp();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
     * @return The int32FormatOp.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp getInt32FormatOp();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
     * @return Whether the stateSource field is set.
     */
    boolean hasStateSource();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
     * @return The stateSource.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource getStateSource();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
     * @return Whether the conditionalOp field is set.
     */
    boolean hasConditionalOp();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
     * @return The conditionalOp.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp getConditionalOp();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
     * @return Whether the concatOp field is set.
     */
    boolean hasConcatOp();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
     * @return The concatOp.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp getConcatOp();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
     * @return Whether the floatFormatOp field is set.
     */
    boolean hasFloatFormatOp();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
     * @return The floatFormatOp.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp getFloatFormatOp();

    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dynamic string type.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicString}
   */
  public  static final class DynamicString extends
      com.google.protobuf.GeneratedMessageLite<
          DynamicString, DynamicString.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.DynamicString)
      DynamicStringOrBuilder {
    private DynamicString() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      FIXED(1),
      INT32_FORMAT_OP(2),
      STATE_SOURCE(3),
      CONDITIONAL_OP(4),
      CONCAT_OP(5),
      FLOAT_FORMAT_OP(6),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return FIXED;
          case 2: return INT32_FORMAT_OP;
          case 3: return STATE_SOURCE;
          case 4: return CONDITIONAL_OP;
          case 5: return CONCAT_OP;
          case 6: return FLOAT_FORMAT_OP;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int FIXED_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
     */
    @java.lang.Override
    public boolean hasFixed() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.FixedProto.FixedString getFixed() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.expression.proto.FixedProto.FixedString) inner_;
      }
      return androidx.wear.protolayout.expression.proto.FixedProto.FixedString.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
     */
    private void setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedString value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
     */
    private void mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedString value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.expression.proto.FixedProto.FixedString.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.FixedProto.FixedString.newBuilder((androidx.wear.protolayout.expression.proto.FixedProto.FixedString) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
     */
    private void clearFixed() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int INT32_FORMAT_OP_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
     */
    @java.lang.Override
    public boolean hasInt32FormatOp() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp getInt32FormatOp() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
     */
    private void setInt32FormatOp(androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
     */
    private void mergeInt32FormatOp(androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
     */
    private void clearInt32FormatOp() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int STATE_SOURCE_FIELD_NUMBER = 3;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
     */
    @java.lang.Override
    public boolean hasStateSource() {
      return innerCase_ == 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource getStateSource() {
      if (innerCase_ == 3) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
     */
    private void setStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
     */
    private void mergeStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource value) {
      value.getClass();
  if (innerCase_ == 3 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
     */
    private void clearStateSource() {
      if (innerCase_ == 3) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int CONDITIONAL_OP_FIELD_NUMBER = 4;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
     */
    @java.lang.Override
    public boolean hasConditionalOp() {
      return innerCase_ == 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp getConditionalOp() {
      if (innerCase_ == 4) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
     */
    private void setConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
     */
    private void mergeConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp value) {
      value.getClass();
  if (innerCase_ == 4 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
     */
    private void clearConditionalOp() {
      if (innerCase_ == 4) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int CONCAT_OP_FIELD_NUMBER = 5;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
     */
    @java.lang.Override
    public boolean hasConcatOp() {
      return innerCase_ == 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp getConcatOp() {
      if (innerCase_ == 5) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
     */
    private void setConcatOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
     */
    private void mergeConcatOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp value) {
      value.getClass();
  if (innerCase_ == 5 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
     */
    private void clearConcatOp() {
      if (innerCase_ == 5) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int FLOAT_FORMAT_OP_FIELD_NUMBER = 6;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
     */
    @java.lang.Override
    public boolean hasFloatFormatOp() {
      return innerCase_ == 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp getFloatFormatOp() {
      if (innerCase_ == 6) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
     */
    private void setFloatFormatOp(androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
     */
    private void mergeFloatFormatOp(androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp value) {
      value.getClass();
  if (innerCase_ == 6 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
     */
    private void clearFloatFormatOp() {
      if (innerCase_ == 6) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic string type.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicString}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.DynamicString)
        androidx.wear.protolayout.expression.proto.DynamicProto.DynamicStringOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
       */
      @java.lang.Override
      public boolean hasFixed() {
        return instance.hasFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.FixedProto.FixedString getFixed() {
        return instance.getFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
       */
      public Builder setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedString value) {
        copyOnWrite();
        instance.setFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
       */
      public Builder setFixed(
          androidx.wear.protolayout.expression.proto.FixedProto.FixedString.Builder builderForValue) {
        copyOnWrite();
        instance.setFixed(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
       */
      public Builder mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedString value) {
        copyOnWrite();
        instance.mergeFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedString fixed = 1;</code>
       */
      public Builder clearFixed() {
        copyOnWrite();
        instance.clearFixed();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
       */
      @java.lang.Override
      public boolean hasInt32FormatOp() {
        return instance.hasInt32FormatOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp getInt32FormatOp() {
        return instance.getInt32FormatOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
       */
      public Builder setInt32FormatOp(androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp value) {
        copyOnWrite();
        instance.setInt32FormatOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
       */
      public Builder setInt32FormatOp(
          androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp.Builder builderForValue) {
        copyOnWrite();
        instance.setInt32FormatOp(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
       */
      public Builder mergeInt32FormatOp(androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp value) {
        copyOnWrite();
        instance.mergeInt32FormatOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32FormatOp int32_format_op = 2;</code>
       */
      public Builder clearInt32FormatOp() {
        copyOnWrite();
        instance.clearInt32FormatOp();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
       */
      @java.lang.Override
      public boolean hasStateSource() {
        return instance.hasStateSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource getStateSource() {
        return instance.getStateSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
       */
      public Builder setStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource value) {
        copyOnWrite();
        instance.setStateSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
       */
      public Builder setStateSource(
          androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource.Builder builderForValue) {
        copyOnWrite();
        instance.setStateSource(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
       */
      public Builder mergeStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource value) {
        copyOnWrite();
        instance.mergeStateSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateStringSource state_source = 3;</code>
       */
      public Builder clearStateSource() {
        copyOnWrite();
        instance.clearStateSource();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
       */
      @java.lang.Override
      public boolean hasConditionalOp() {
        return instance.hasConditionalOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp getConditionalOp() {
        return instance.getConditionalOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
       */
      public Builder setConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp value) {
        copyOnWrite();
        instance.setConditionalOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
       */
      public Builder setConditionalOp(
          androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp.Builder builderForValue) {
        copyOnWrite();
        instance.setConditionalOp(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
       */
      public Builder mergeConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp value) {
        copyOnWrite();
        instance.mergeConditionalOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalStringOp conditional_op = 4;</code>
       */
      public Builder clearConditionalOp() {
        copyOnWrite();
        instance.clearConditionalOp();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
       */
      @java.lang.Override
      public boolean hasConcatOp() {
        return instance.hasConcatOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp getConcatOp() {
        return instance.getConcatOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
       */
      public Builder setConcatOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp value) {
        copyOnWrite();
        instance.setConcatOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
       */
      public Builder setConcatOp(
          androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp.Builder builderForValue) {
        copyOnWrite();
        instance.setConcatOp(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
       */
      public Builder mergeConcatOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp value) {
        copyOnWrite();
        instance.mergeConcatOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConcatStringOp concat_op = 5;</code>
       */
      public Builder clearConcatOp() {
        copyOnWrite();
        instance.clearConcatOp();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
       */
      @java.lang.Override
      public boolean hasFloatFormatOp() {
        return instance.hasFloatFormatOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp getFloatFormatOp() {
        return instance.getFloatFormatOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
       */
      public Builder setFloatFormatOp(androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp value) {
        copyOnWrite();
        instance.setFloatFormatOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
       */
      public Builder setFloatFormatOp(
          androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp.Builder builderForValue) {
        copyOnWrite();
        instance.setFloatFormatOp(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
       */
      public Builder mergeFloatFormatOp(androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp value) {
        copyOnWrite();
        instance.mergeFloatFormatOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FloatFormatOp float_format_op = 6;</code>
       */
      public Builder clearFloatFormatOp() {
        copyOnWrite();
        instance.clearFloatFormatOp();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.DynamicString)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.expression.proto.FixedProto.FixedString.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.Int32FormatOp.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.StateStringSource.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalStringOp.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.ConcatStringOp.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.FloatFormatOp.class,
            };
            java.lang.String info =
                "\u0000\u0006\u0001\u0000\u0001\u0006\u0006\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000\u0003<\u0000\u0004<\u0000\u0005<\u0000\u0006<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.DynamicString)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString DEFAULT_INSTANCE;
    static {
      DynamicString defaultInstance = new DynamicString();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DynamicString.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicString getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DynamicString> PARSER;

    public static com.google.protobuf.Parser<DynamicString> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ArithmeticFloatOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.ArithmeticFloatOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     * @return Whether the inputLhs field is set.
     */
    boolean hasInputLhs();
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     * @return The inputLhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputLhs();

    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     * @return Whether the inputRhs field is set.
     */
    boolean hasInputRhs();
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     * @return The inputRhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputRhs();

    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @return The enum numeric value on the wire for operationType.
     */
    int getOperationTypeValue();
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @return The operationType.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType getOperationType();
  }
  /**
   * <pre>
   * An arithmetic operation, operating on two Float instances. This implements
   * simple binary operations of the form "result = LHS &lt;op&gt; RHS", where the
   * available operation types are described in ArithmeticOpType.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.ArithmeticFloatOp}
   */
  public  static final class ArithmeticFloatOp extends
      com.google.protobuf.GeneratedMessageLite<
          ArithmeticFloatOp, ArithmeticFloatOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.ArithmeticFloatOp)
      ArithmeticFloatOpOrBuilder {
    private ArithmeticFloatOp() {
    }
    public static final int INPUT_LHS_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat inputLhs_;
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     */
    @java.lang.Override
    public boolean hasInputLhs() {
      return inputLhs_ != null;
    }
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputLhs() {
      return inputLhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : inputLhs_;
    }
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     */
    private void setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  inputLhs_ = value;
      
      }
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (inputLhs_ != null &&
          inputLhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        inputLhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(inputLhs_).mergeFrom(value).buildPartial();
      } else {
        inputLhs_ = value;
      }
      
    }
    /**
     * <pre>
     * Left hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     */
    private void clearInputLhs() {  inputLhs_ = null;
      
    }

    public static final int INPUT_RHS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat inputRhs_;
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     */
    @java.lang.Override
    public boolean hasInputRhs() {
      return inputRhs_ != null;
    }
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputRhs() {
      return inputRhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : inputRhs_;
    }
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     */
    private void setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  inputRhs_ = value;
      
      }
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (inputRhs_ != null &&
          inputRhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        inputRhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(inputRhs_).mergeFrom(value).buildPartial();
      } else {
        inputRhs_ = value;
      }
      
    }
    /**
     * <pre>
     * Right hand side of the arithmetic operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     */
    private void clearInputRhs() {  inputRhs_ = null;
      
    }

    public static final int OPERATION_TYPE_FIELD_NUMBER = 3;
    private int operationType_;
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @return The enum numeric value on the wire for operationType.
     */
    @java.lang.Override
    public int getOperationTypeValue() {
      return operationType_;
    }
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @return The operationType.
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType getOperationType() {
      androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType result = androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType.forNumber(operationType_);
      return result == null ? androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @param value The enum numeric value on the wire for operationType to set.
     */
    private void setOperationTypeValue(int value) {
        operationType_ = value;
    }
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     * @param value The operationType to set.
     */
    private void setOperationType(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType value) {
      operationType_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The type of operation to carry out.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
     */
    private void clearOperationType() {
      
      operationType_ = 0;
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An arithmetic operation, operating on two Float instances. This implements
     * simple binary operations of the form "result = LHS &lt;op&gt; RHS", where the
     * available operation types are described in ArithmeticOpType.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.ArithmeticFloatOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.ArithmeticFloatOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      @java.lang.Override
      public boolean hasInputLhs() {
        return instance.hasInputLhs();
      }
      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputLhs() {
        return instance.getInputLhs();
      }
      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      public Builder setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setInputLhs(value);
        return this;
        }
      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      public Builder setInputLhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setInputLhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      public Builder mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeInputLhs(value);
        return this;
      }
      /**
       * <pre>
       * Left hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      public Builder clearInputLhs() {  copyOnWrite();
        instance.clearInputLhs();
        return this;
      }

      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      @java.lang.Override
      public boolean hasInputRhs() {
        return instance.hasInputRhs();
      }
      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputRhs() {
        return instance.getInputRhs();
      }
      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      public Builder setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setInputRhs(value);
        return this;
        }
      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      public Builder setInputRhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setInputRhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      public Builder mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeInputRhs(value);
        return this;
      }
      /**
       * <pre>
       * Right hand side of the arithmetic operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      public Builder clearInputRhs() {  copyOnWrite();
        instance.clearInputRhs();
        return this;
      }

      /**
       * <pre>
       * The type of operation to carry out.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
       * @return The enum numeric value on the wire for operationType.
       */
      @java.lang.Override
      public int getOperationTypeValue() {
        return instance.getOperationTypeValue();
      }
      /**
       * <pre>
       * The type of operation to carry out.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
       * @param value The operationType to set.
       * @return This builder for chaining.
       */
      public Builder setOperationTypeValue(int value) {
        copyOnWrite();
        instance.setOperationTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * The type of operation to carry out.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
       * @return The operationType.
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType getOperationType() {
        return instance.getOperationType();
      }
      /**
       * <pre>
       * The type of operation to carry out.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
       * @param value The enum numeric value on the wire for operationType to set.
       * @return This builder for chaining.
       */
      public Builder setOperationType(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticOpType value) {
        copyOnWrite();
        instance.setOperationType(value);
        return this;
      }
      /**
       * <pre>
       * The type of operation to carry out.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticOpType operation_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperationType() {
        copyOnWrite();
        instance.clearOperationType();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.ArithmeticFloatOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inputLhs_",
              "inputRhs_",
              "operationType_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.ArithmeticFloatOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp DEFAULT_INSTANCE;
    static {
      ArithmeticFloatOp defaultInstance = new ArithmeticFloatOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ArithmeticFloatOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ArithmeticFloatOp> PARSER;

    public static com.google.protobuf.Parser<ArithmeticFloatOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface StateFloatSourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.StateFloatSource)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The sourceKey.
     */
    java.lang.String getSourceKey();
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The bytes for sourceKey.
     */
    com.google.protobuf.ByteString
        getSourceKeyBytes();
  }
  /**
   * <pre>
   * A dynamic Float which sources its data from the tile's state.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.StateFloatSource}
   */
  public  static final class StateFloatSource extends
      com.google.protobuf.GeneratedMessageLite<
          StateFloatSource, StateFloatSource.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.StateFloatSource)
      StateFloatSourceOrBuilder {
    private StateFloatSource() {
      sourceKey_ = "";
    }
    public static final int SOURCE_KEY_FIELD_NUMBER = 1;
    private java.lang.String sourceKey_;
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The sourceKey.
     */
    @java.lang.Override
    public java.lang.String getSourceKey() {
      return sourceKey_;
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The bytes for sourceKey.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceKeyBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(sourceKey_);
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @param value The sourceKey to set.
     */
    private void setSourceKey(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      sourceKey_ = value;
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     */
    private void clearSourceKey() {
      
      sourceKey_ = getDefaultInstance().getSourceKey();
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @param value The bytes for sourceKey to set.
     */
    private void setSourceKeyBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      sourceKey_ = value.toStringUtf8();
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic Float which sources its data from the tile's state.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.StateFloatSource}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.StateFloatSource)
        androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSourceOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return The sourceKey.
       */
      @java.lang.Override
      public java.lang.String getSourceKey() {
        return instance.getSourceKey();
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return The bytes for sourceKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSourceKeyBytes() {
        return instance.getSourceKeyBytes();
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @param value The sourceKey to set.
       * @return This builder for chaining.
       */
      public Builder setSourceKey(
          java.lang.String value) {
        copyOnWrite();
        instance.setSourceKey(value);
        return this;
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceKey() {
        copyOnWrite();
        instance.clearSourceKey();
        return this;
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @param value The bytes for sourceKey to set.
       * @return This builder for chaining.
       */
      public Builder setSourceKeyBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSourceKeyBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.StateFloatSource)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "sourceKey_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0208";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.StateFloatSource)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource DEFAULT_INSTANCE;
    static {
      StateFloatSource defaultInstance = new StateFloatSource();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        StateFloatSource.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<StateFloatSource> PARSER;

    public static com.google.protobuf.Parser<StateFloatSource> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface Int32ToFloatOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.Int32ToFloatOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The input Int32 to convert to a Float.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     * @return Whether the input field is set.
     */
    boolean hasInput();
    /**
     * <pre>
     * The input Int32 to convert to a Float.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     * @return The input.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInput();
  }
  /**
   * <pre>
   * An operation to convert a Int32 value in the dynamic data pipeline to a Float
   * value.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.Int32ToFloatOp}
   */
  public  static final class Int32ToFloatOp extends
      com.google.protobuf.GeneratedMessageLite<
          Int32ToFloatOp, Int32ToFloatOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.Int32ToFloatOp)
      Int32ToFloatOpOrBuilder {
    private Int32ToFloatOp() {
    }
    public static final int INPUT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 input_;
    /**
     * <pre>
     * The input Int32 to convert to a Float.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    @java.lang.Override
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * <pre>
     * The input Int32 to convert to a Float.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInput() {
      return input_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance() : input_;
    }
    /**
     * <pre>
     * The input Int32 to convert to a Float.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    private void setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  input_ = value;
      
      }
    /**
     * <pre>
     * The input Int32 to convert to a Float.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  if (input_ != null &&
          input_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance()) {
        input_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder(input_).mergeFrom(value).buildPartial();
      } else {
        input_ = value;
      }
      
    }
    /**
     * <pre>
     * The input Int32 to convert to a Float.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
     */
    private void clearInput() {  input_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An operation to convert a Int32 value in the dynamic data pipeline to a Float
     * value.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.Int32ToFloatOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.Int32ToFloatOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The input Int32 to convert to a Float.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      @java.lang.Override
      public boolean hasInput() {
        return instance.hasInput();
      }
      /**
       * <pre>
       * The input Int32 to convert to a Float.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInput() {
        return instance.getInput();
      }
      /**
       * <pre>
       * The input Int32 to convert to a Float.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.setInput(value);
        return this;
        }
      /**
       * <pre>
       * The input Int32 to convert to a Float.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder setInput(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setInput(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The input Int32 to convert to a Float.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.mergeInput(value);
        return this;
      }
      /**
       * <pre>
       * The input Int32 to convert to a Float.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input = 1;</code>
       */
      public Builder clearInput() {  copyOnWrite();
        instance.clearInput();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.Int32ToFloatOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "input_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.Int32ToFloatOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp DEFAULT_INSTANCE;
    static {
      Int32ToFloatOp defaultInstance = new Int32ToFloatOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Int32ToFloatOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Int32ToFloatOp> PARSER;

    public static com.google.protobuf.Parser<Int32ToFloatOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface AnimatableFixedFloatOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.AnimatableFixedFloat)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The number to start animating from.
     * </pre>
     *
     * <code>float from_value = 1;</code>
     * @return The fromValue.
     */
    float getFromValue();

    /**
     * <pre>
     * The number to animate to.
     * </pre>
     *
     * <code>float to_value = 2;</code>
     * @return The toValue.
     */
    float getToValue();

    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return Whether the animationSpec field is set.
     */
    boolean hasAnimationSpec();
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return The animationSpec.
     */
    androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec();
  }
  /**
   * <pre>
   * A static interpolation node, between two fixed floating point values.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableFixedFloat}
   */
  public  static final class AnimatableFixedFloat extends
      com.google.protobuf.GeneratedMessageLite<
          AnimatableFixedFloat, AnimatableFixedFloat.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.AnimatableFixedFloat)
      AnimatableFixedFloatOrBuilder {
    private AnimatableFixedFloat() {
    }
    public static final int FROM_VALUE_FIELD_NUMBER = 1;
    private float fromValue_;
    /**
     * <pre>
     * The number to start animating from.
     * </pre>
     *
     * <code>float from_value = 1;</code>
     * @return The fromValue.
     */
    @java.lang.Override
    public float getFromValue() {
      return fromValue_;
    }
    /**
     * <pre>
     * The number to start animating from.
     * </pre>
     *
     * <code>float from_value = 1;</code>
     * @param value The fromValue to set.
     */
    private void setFromValue(float value) {
      
      fromValue_ = value;
    }
    /**
     * <pre>
     * The number to start animating from.
     * </pre>
     *
     * <code>float from_value = 1;</code>
     */
    private void clearFromValue() {
      
      fromValue_ = 0F;
    }

    public static final int TO_VALUE_FIELD_NUMBER = 2;
    private float toValue_;
    /**
     * <pre>
     * The number to animate to.
     * </pre>
     *
     * <code>float to_value = 2;</code>
     * @return The toValue.
     */
    @java.lang.Override
    public float getToValue() {
      return toValue_;
    }
    /**
     * <pre>
     * The number to animate to.
     * </pre>
     *
     * <code>float to_value = 2;</code>
     * @param value The toValue to set.
     */
    private void setToValue(float value) {
      
      toValue_ = value;
    }
    /**
     * <pre>
     * The number to animate to.
     * </pre>
     *
     * <code>float to_value = 2;</code>
     */
    private void clearToValue() {
      
      toValue_ = 0F;
    }

    public static final int ANIMATION_SPEC_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec animationSpec_;
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public boolean hasAnimationSpec() {
      return animationSpec_ != null;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
      return animationSpec_ == null ? androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance() : animationSpec_;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  animationSpec_ = value;
      
      }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  if (animationSpec_ != null &&
          animationSpec_ != androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance()) {
        animationSpec_ =
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.newBuilder(animationSpec_).mergeFrom(value).buildPartial();
      } else {
        animationSpec_ = value;
      }
      
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void clearAnimationSpec() {  animationSpec_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A static interpolation node, between two fixed floating point values.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableFixedFloat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.AnimatableFixedFloat)
        androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloatOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The number to start animating from.
       * </pre>
       *
       * <code>float from_value = 1;</code>
       * @return The fromValue.
       */
      @java.lang.Override
      public float getFromValue() {
        return instance.getFromValue();
      }
      /**
       * <pre>
       * The number to start animating from.
       * </pre>
       *
       * <code>float from_value = 1;</code>
       * @param value The fromValue to set.
       * @return This builder for chaining.
       */
      public Builder setFromValue(float value) {
        copyOnWrite();
        instance.setFromValue(value);
        return this;
      }
      /**
       * <pre>
       * The number to start animating from.
       * </pre>
       *
       * <code>float from_value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearFromValue() {
        copyOnWrite();
        instance.clearFromValue();
        return this;
      }

      /**
       * <pre>
       * The number to animate to.
       * </pre>
       *
       * <code>float to_value = 2;</code>
       * @return The toValue.
       */
      @java.lang.Override
      public float getToValue() {
        return instance.getToValue();
      }
      /**
       * <pre>
       * The number to animate to.
       * </pre>
       *
       * <code>float to_value = 2;</code>
       * @param value The toValue to set.
       * @return This builder for chaining.
       */
      public Builder setToValue(float value) {
        copyOnWrite();
        instance.setToValue(value);
        return this;
      }
      /**
       * <pre>
       * The number to animate to.
       * </pre>
       *
       * <code>float to_value = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearToValue() {
        copyOnWrite();
        instance.clearToValue();
        return this;
      }

      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public boolean hasAnimationSpec() {
        return instance.hasAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
        return instance.getAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.setAnimationSpec(value);
        return this;
        }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimationSpec(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.mergeAnimationSpec(value);
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder clearAnimationSpec() {  copyOnWrite();
        instance.clearAnimationSpec();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.AnimatableFixedFloat)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "fromValue_",
              "toValue_",
              "animationSpec_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0001\u0002\u0001" +
                "\u0003\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.AnimatableFixedFloat)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat DEFAULT_INSTANCE;
    static {
      AnimatableFixedFloat defaultInstance = new AnimatableFixedFloat();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AnimatableFixedFloat.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<AnimatableFixedFloat> PARSER;

    public static com.google.protobuf.Parser<AnimatableFixedFloat> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface AnimatableDynamicFloatOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     * @return Whether the input field is set.
     */
    boolean hasInput();
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     * @return The input.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInput();

    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return Whether the animationSpec field is set.
     */
    boolean hasAnimationSpec();
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return The animationSpec.
     */
    androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec();
  }
  /**
   * <pre>
   * A dynamic interpolation node. This will watch the value of its input and,
   * when the first update arrives, immediately emit that value. On subsequent
   * updates, it will animate between the old and new values.
   * If this node receives an invalid value (e.g. as a result of an upstream node
   * having no value), then it will emit a single invalid value, and forget its
   * "stored" value. The next valid value that arrives is then used as the
   * "first" value again.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat}
   */
  public  static final class AnimatableDynamicFloat extends
      com.google.protobuf.GeneratedMessageLite<
          AnimatableDynamicFloat, AnimatableDynamicFloat.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat)
      AnimatableDynamicFloatOrBuilder {
    private AnimatableDynamicFloat() {
    }
    public static final int INPUT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat input_;
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    @java.lang.Override
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInput() {
      return input_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : input_;
    }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    private void setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  input_ = value;
      
      }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (input_ != null &&
          input_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        input_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(input_).mergeFrom(value).buildPartial();
      } else {
        input_ = value;
      }
      
    }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
     */
    private void clearInput() {  input_ = null;
      
    }

    public static final int ANIMATION_SPEC_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec animationSpec_;
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public boolean hasAnimationSpec() {
      return animationSpec_ != null;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
      return animationSpec_ == null ? androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance() : animationSpec_;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  animationSpec_ = value;
      
      }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  if (animationSpec_ != null &&
          animationSpec_ != androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance()) {
        animationSpec_ =
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.newBuilder(animationSpec_).mergeFrom(value).buildPartial();
      } else {
        animationSpec_ = value;
      }
      
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void clearAnimationSpec() {  animationSpec_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic interpolation node. This will watch the value of its input and,
     * when the first update arrives, immediately emit that value. On subsequent
     * updates, it will animate between the old and new values.
     * If this node receives an invalid value (e.g. as a result of an upstream node
     * having no value), then it will emit a single invalid value, and forget its
     * "stored" value. The next valid value that arrives is then used as the
     * "first" value again.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat)
        androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloatOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      @java.lang.Override
      public boolean hasInput() {
        return instance.hasInput();
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInput() {
        return instance.getInput();
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setInput(value);
        return this;
        }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder setInput(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setInput(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeInput(value);
        return this;
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input = 1;</code>
       */
      public Builder clearInput() {  copyOnWrite();
        instance.clearInput();
        return this;
      }

      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public boolean hasAnimationSpec() {
        return instance.hasAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
        return instance.getAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.setAnimationSpec(value);
        return this;
        }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimationSpec(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.mergeAnimationSpec(value);
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder clearAnimationSpec() {  copyOnWrite();
        instance.clearAnimationSpec();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "input_",
              "animationSpec_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0003\u0002\u0000\u0000\u0000\u0001\t\u0003\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat DEFAULT_INSTANCE;
    static {
      AnimatableDynamicFloat defaultInstance = new AnimatableDynamicFloat();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AnimatableDynamicFloat.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<AnimatableDynamicFloat> PARSER;

    public static com.google.protobuf.Parser<AnimatableDynamicFloat> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DynamicFloatOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.DynamicFloat)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
     * @return Whether the fixed field is set.
     */
    boolean hasFixed();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
     * @return The fixed.
     */
    androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat getFixed();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
     * @return Whether the arithmeticOperation field is set.
     */
    boolean hasArithmeticOperation();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
     * @return The arithmeticOperation.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp getArithmeticOperation();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
     * @return Whether the int32ToFloatOperation field is set.
     */
    boolean hasInt32ToFloatOperation();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
     * @return The int32ToFloatOperation.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp getInt32ToFloatOperation();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
     * @return Whether the stateSource field is set.
     */
    boolean hasStateSource();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
     * @return The stateSource.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource getStateSource();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
     * @return Whether the conditionalOp field is set.
     */
    boolean hasConditionalOp();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
     * @return The conditionalOp.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp getConditionalOp();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
     * @return Whether the animatableFixed field is set.
     */
    boolean hasAnimatableFixed();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
     * @return The animatableFixed.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat getAnimatableFixed();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
     * @return Whether the animatableDynamic field is set.
     */
    boolean hasAnimatableDynamic();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
     * @return The animatableDynamic.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat getAnimatableDynamic();

    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dynamic float type.
   * It offers a set of helper methods for creating arithmetic and logical
   * expressions, e.g. {&#64;link #plus(float)}, {&#64;link #times(float)}, {&#64;link
   * #eq(float)}, etc. These helper methods produce expression trees based on the
   * order in which they were called in an expression. Thus, no operator
   * precedence rules are applied.
   * &lt;p&gt;For example the following expression is equivalent to {&#64;code result = ((a
   * + b)*c)/d }:
   * ```
   *    a.plus(b).times(c).div(d);
   * ```
   * More complex expressions can be created by nesting expressions. For example
   * the following expression is equivalent to {&#64;code result = (a + b)*(c - d) }:
   * ```
   *    (a.plus(b)).times(c.minus(d));
   * ```
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicFloat}
   */
  public  static final class DynamicFloat extends
      com.google.protobuf.GeneratedMessageLite<
          DynamicFloat, DynamicFloat.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.DynamicFloat)
      DynamicFloatOrBuilder {
    private DynamicFloat() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      FIXED(1),
      ARITHMETIC_OPERATION(2),
      INT32_TO_FLOAT_OPERATION(3),
      STATE_SOURCE(4),
      CONDITIONAL_OP(5),
      ANIMATABLE_FIXED(6),
      ANIMATABLE_DYNAMIC(7),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return FIXED;
          case 2: return ARITHMETIC_OPERATION;
          case 3: return INT32_TO_FLOAT_OPERATION;
          case 4: return STATE_SOURCE;
          case 5: return CONDITIONAL_OP;
          case 6: return ANIMATABLE_FIXED;
          case 7: return ANIMATABLE_DYNAMIC;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int FIXED_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
     */
    @java.lang.Override
    public boolean hasFixed() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat getFixed() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat) inner_;
      }
      return androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
     */
    private void setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
     */
    private void mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat.newBuilder((androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
     */
    private void clearFixed() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ARITHMETIC_OPERATION_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
     */
    @java.lang.Override
    public boolean hasArithmeticOperation() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp getArithmeticOperation() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
     */
    private void setArithmeticOperation(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
     */
    private void mergeArithmeticOperation(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
     */
    private void clearArithmeticOperation() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int INT32_TO_FLOAT_OPERATION_FIELD_NUMBER = 3;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
     */
    @java.lang.Override
    public boolean hasInt32ToFloatOperation() {
      return innerCase_ == 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp getInt32ToFloatOperation() {
      if (innerCase_ == 3) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
     */
    private void setInt32ToFloatOperation(androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
     */
    private void mergeInt32ToFloatOperation(androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp value) {
      value.getClass();
  if (innerCase_ == 3 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
     */
    private void clearInt32ToFloatOperation() {
      if (innerCase_ == 3) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int STATE_SOURCE_FIELD_NUMBER = 4;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
     */
    @java.lang.Override
    public boolean hasStateSource() {
      return innerCase_ == 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource getStateSource() {
      if (innerCase_ == 4) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
     */
    private void setStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
     */
    private void mergeStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource value) {
      value.getClass();
  if (innerCase_ == 4 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
     */
    private void clearStateSource() {
      if (innerCase_ == 4) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int CONDITIONAL_OP_FIELD_NUMBER = 5;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
     */
    @java.lang.Override
    public boolean hasConditionalOp() {
      return innerCase_ == 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp getConditionalOp() {
      if (innerCase_ == 5) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
     */
    private void setConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
     */
    private void mergeConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp value) {
      value.getClass();
  if (innerCase_ == 5 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
     */
    private void clearConditionalOp() {
      if (innerCase_ == 5) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ANIMATABLE_FIXED_FIELD_NUMBER = 6;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
     */
    @java.lang.Override
    public boolean hasAnimatableFixed() {
      return innerCase_ == 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat getAnimatableFixed() {
      if (innerCase_ == 6) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
     */
    private void setAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
     */
    private void mergeAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat value) {
      value.getClass();
  if (innerCase_ == 6 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
     */
    private void clearAnimatableFixed() {
      if (innerCase_ == 6) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ANIMATABLE_DYNAMIC_FIELD_NUMBER = 7;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
     */
    @java.lang.Override
    public boolean hasAnimatableDynamic() {
      return innerCase_ == 7;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat getAnimatableDynamic() {
      if (innerCase_ == 7) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
     */
    private void setAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 7;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
     */
    private void mergeAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat value) {
      value.getClass();
  if (innerCase_ == 7 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 7;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
     */
    private void clearAnimatableDynamic() {
      if (innerCase_ == 7) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic float type.
     * It offers a set of helper methods for creating arithmetic and logical
     * expressions, e.g. {&#64;link #plus(float)}, {&#64;link #times(float)}, {&#64;link
     * #eq(float)}, etc. These helper methods produce expression trees based on the
     * order in which they were called in an expression. Thus, no operator
     * precedence rules are applied.
     * &lt;p&gt;For example the following expression is equivalent to {&#64;code result = ((a
     * + b)*c)/d }:
     * ```
     *    a.plus(b).times(c).div(d);
     * ```
     * More complex expressions can be created by nesting expressions. For example
     * the following expression is equivalent to {&#64;code result = (a + b)*(c - d) }:
     * ```
     *    (a.plus(b)).times(c.minus(d));
     * ```
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicFloat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.DynamicFloat)
        androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloatOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
       */
      @java.lang.Override
      public boolean hasFixed() {
        return instance.hasFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat getFixed() {
        return instance.getFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
       */
      public Builder setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat value) {
        copyOnWrite();
        instance.setFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
       */
      public Builder setFixed(
          androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setFixed(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
       */
      public Builder mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat value) {
        copyOnWrite();
        instance.mergeFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedFloat fixed = 1;</code>
       */
      public Builder clearFixed() {
        copyOnWrite();
        instance.clearFixed();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
       */
      @java.lang.Override
      public boolean hasArithmeticOperation() {
        return instance.hasArithmeticOperation();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp getArithmeticOperation() {
        return instance.getArithmeticOperation();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
       */
      public Builder setArithmeticOperation(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp value) {
        copyOnWrite();
        instance.setArithmeticOperation(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
       */
      public Builder setArithmeticOperation(
          androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp.Builder builderForValue) {
        copyOnWrite();
        instance.setArithmeticOperation(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
       */
      public Builder mergeArithmeticOperation(androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp value) {
        copyOnWrite();
        instance.mergeArithmeticOperation(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ArithmeticFloatOp arithmetic_operation = 2;</code>
       */
      public Builder clearArithmeticOperation() {
        copyOnWrite();
        instance.clearArithmeticOperation();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
       */
      @java.lang.Override
      public boolean hasInt32ToFloatOperation() {
        return instance.hasInt32ToFloatOperation();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp getInt32ToFloatOperation() {
        return instance.getInt32ToFloatOperation();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
       */
      public Builder setInt32ToFloatOperation(androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp value) {
        copyOnWrite();
        instance.setInt32ToFloatOperation(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
       */
      public Builder setInt32ToFloatOperation(
          androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp.Builder builderForValue) {
        copyOnWrite();
        instance.setInt32ToFloatOperation(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
       */
      public Builder mergeInt32ToFloatOperation(androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp value) {
        copyOnWrite();
        instance.mergeInt32ToFloatOperation(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.Int32ToFloatOp int32_to_float_operation = 3;</code>
       */
      public Builder clearInt32ToFloatOperation() {
        copyOnWrite();
        instance.clearInt32ToFloatOperation();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
       */
      @java.lang.Override
      public boolean hasStateSource() {
        return instance.hasStateSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource getStateSource() {
        return instance.getStateSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
       */
      public Builder setStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource value) {
        copyOnWrite();
        instance.setStateSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
       */
      public Builder setStateSource(
          androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource.Builder builderForValue) {
        copyOnWrite();
        instance.setStateSource(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
       */
      public Builder mergeStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource value) {
        copyOnWrite();
        instance.mergeStateSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateFloatSource state_source = 4;</code>
       */
      public Builder clearStateSource() {
        copyOnWrite();
        instance.clearStateSource();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
       */
      @java.lang.Override
      public boolean hasConditionalOp() {
        return instance.hasConditionalOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp getConditionalOp() {
        return instance.getConditionalOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
       */
      public Builder setConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp value) {
        copyOnWrite();
        instance.setConditionalOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
       */
      public Builder setConditionalOp(
          androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp.Builder builderForValue) {
        copyOnWrite();
        instance.setConditionalOp(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
       */
      public Builder mergeConditionalOp(androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp value) {
        copyOnWrite();
        instance.mergeConditionalOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ConditionalFloatOp conditional_op = 5;</code>
       */
      public Builder clearConditionalOp() {
        copyOnWrite();
        instance.clearConditionalOp();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
       */
      @java.lang.Override
      public boolean hasAnimatableFixed() {
        return instance.hasAnimatableFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat getAnimatableFixed() {
        return instance.getAnimatableFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
       */
      public Builder setAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat value) {
        copyOnWrite();
        instance.setAnimatableFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
       */
      public Builder setAnimatableFixed(
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimatableFixed(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
       */
      public Builder mergeAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat value) {
        copyOnWrite();
        instance.mergeAnimatableFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedFloat animatable_fixed = 6;</code>
       */
      public Builder clearAnimatableFixed() {
        copyOnWrite();
        instance.clearAnimatableFixed();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
       */
      @java.lang.Override
      public boolean hasAnimatableDynamic() {
        return instance.hasAnimatableDynamic();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat getAnimatableDynamic() {
        return instance.getAnimatableDynamic();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
       */
      public Builder setAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat value) {
        copyOnWrite();
        instance.setAnimatableDynamic(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
       */
      public Builder setAnimatableDynamic(
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimatableDynamic(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
       */
      public Builder mergeAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat value) {
        copyOnWrite();
        instance.mergeAnimatableDynamic(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicFloat animatable_dynamic = 7;</code>
       */
      public Builder clearAnimatableDynamic() {
        copyOnWrite();
        instance.clearAnimatableDynamic();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.DynamicFloat)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.expression.proto.FixedProto.FixedFloat.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.ArithmeticFloatOp.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.Int32ToFloatOp.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.StateFloatSource.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.ConditionalFloatOp.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedFloat.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicFloat.class,
            };
            java.lang.String info =
                "\u0000\u0007\u0001\u0000\u0001\u0007\u0007\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000\u0003<\u0000\u0004<\u0000\u0005<\u0000\u0006<\u0000\u0007<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.DynamicFloat)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat DEFAULT_INSTANCE;
    static {
      DynamicFloat defaultInstance = new DynamicFloat();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DynamicFloat.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DynamicFloat> PARSER;

    public static com.google.protobuf.Parser<DynamicFloat> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface StateBoolSourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.StateBoolSource)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The sourceKey.
     */
    java.lang.String getSourceKey();
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The bytes for sourceKey.
     */
    com.google.protobuf.ByteString
        getSourceKeyBytes();
  }
  /**
   * <pre>
   * A dynamic boolean type which sources its data from the tile's state.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.StateBoolSource}
   */
  public  static final class StateBoolSource extends
      com.google.protobuf.GeneratedMessageLite<
          StateBoolSource, StateBoolSource.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.StateBoolSource)
      StateBoolSourceOrBuilder {
    private StateBoolSource() {
      sourceKey_ = "";
    }
    public static final int SOURCE_KEY_FIELD_NUMBER = 1;
    private java.lang.String sourceKey_;
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The sourceKey.
     */
    @java.lang.Override
    public java.lang.String getSourceKey() {
      return sourceKey_;
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The bytes for sourceKey.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceKeyBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(sourceKey_);
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @param value The sourceKey to set.
     */
    private void setSourceKey(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      sourceKey_ = value;
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     */
    private void clearSourceKey() {
      
      sourceKey_ = getDefaultInstance().getSourceKey();
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @param value The bytes for sourceKey to set.
     */
    private void setSourceKeyBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      sourceKey_ = value.toStringUtf8();
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic boolean type which sources its data from the tile's state.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.StateBoolSource}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.StateBoolSource)
        androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSourceOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return The sourceKey.
       */
      @java.lang.Override
      public java.lang.String getSourceKey() {
        return instance.getSourceKey();
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return The bytes for sourceKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSourceKeyBytes() {
        return instance.getSourceKeyBytes();
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @param value The sourceKey to set.
       * @return This builder for chaining.
       */
      public Builder setSourceKey(
          java.lang.String value) {
        copyOnWrite();
        instance.setSourceKey(value);
        return this;
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceKey() {
        copyOnWrite();
        instance.clearSourceKey();
        return this;
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @param value The bytes for sourceKey to set.
       * @return This builder for chaining.
       */
      public Builder setSourceKeyBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSourceKeyBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.StateBoolSource)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "sourceKey_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0208";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.StateBoolSource)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource DEFAULT_INSTANCE;
    static {
      StateBoolSource defaultInstance = new StateBoolSource();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        StateBoolSource.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<StateBoolSource> PARSER;

    public static com.google.protobuf.Parser<StateBoolSource> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ComparisonInt32OpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.ComparisonInt32Op)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     * @return Whether the inputLhs field is set.
     */
    boolean hasInputLhs();
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     * @return The inputLhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputLhs();

    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     * @return Whether the inputRhs field is set.
     */
    boolean hasInputRhs();
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     * @return The inputRhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputRhs();

    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @return The enum numeric value on the wire for operationType.
     */
    int getOperationTypeValue();
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @return The operationType.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType getOperationType();
  }
  /**
   * <pre>
   * A comparison operation, operating on two Int32 instances. This implements
   * various comparison operations of the form "boolean result = LHS &lt;op&gt; RHS",
   * where the available operation types are described in ComparisonOpType.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.ComparisonInt32Op}
   */
  public  static final class ComparisonInt32Op extends
      com.google.protobuf.GeneratedMessageLite<
          ComparisonInt32Op, ComparisonInt32Op.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.ComparisonInt32Op)
      ComparisonInt32OpOrBuilder {
    private ComparisonInt32Op() {
    }
    public static final int INPUT_LHS_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 inputLhs_;
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     */
    @java.lang.Override
    public boolean hasInputLhs() {
      return inputLhs_ != null;
    }
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputLhs() {
      return inputLhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance() : inputLhs_;
    }
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     */
    private void setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  inputLhs_ = value;
      
      }
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  if (inputLhs_ != null &&
          inputLhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance()) {
        inputLhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder(inputLhs_).mergeFrom(value).buildPartial();
      } else {
        inputLhs_ = value;
      }
      
    }
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
     */
    private void clearInputLhs() {  inputLhs_ = null;
      
    }

    public static final int INPUT_RHS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 inputRhs_;
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     */
    @java.lang.Override
    public boolean hasInputRhs() {
      return inputRhs_ != null;
    }
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputRhs() {
      return inputRhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance() : inputRhs_;
    }
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     */
    private void setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  inputRhs_ = value;
      
      }
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
      value.getClass();
  if (inputRhs_ != null &&
          inputRhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.getDefaultInstance()) {
        inputRhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.newBuilder(inputRhs_).mergeFrom(value).buildPartial();
      } else {
        inputRhs_ = value;
      }
      
    }
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
     */
    private void clearInputRhs() {  inputRhs_ = null;
      
    }

    public static final int OPERATION_TYPE_FIELD_NUMBER = 3;
    private int operationType_;
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @return The enum numeric value on the wire for operationType.
     */
    @java.lang.Override
    public int getOperationTypeValue() {
      return operationType_;
    }
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @return The operationType.
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType getOperationType() {
      androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType result = androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType.forNumber(operationType_);
      return result == null ? androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @param value The enum numeric value on the wire for operationType to set.
     */
    private void setOperationTypeValue(int value) {
        operationType_ = value;
    }
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @param value The operationType to set.
     */
    private void setOperationType(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType value) {
      operationType_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     */
    private void clearOperationType() {
      
      operationType_ = 0;
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A comparison operation, operating on two Int32 instances. This implements
     * various comparison operations of the form "boolean result = LHS &lt;op&gt; RHS",
     * where the available operation types are described in ComparisonOpType.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.ComparisonInt32Op}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.ComparisonInt32Op)
        androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32OpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      @java.lang.Override
      public boolean hasInputLhs() {
        return instance.hasInputLhs();
      }
      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputLhs() {
        return instance.getInputLhs();
      }
      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      public Builder setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.setInputLhs(value);
        return this;
        }
      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      public Builder setInputLhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setInputLhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      public Builder mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.mergeInputLhs(value);
        return this;
      }
      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_lhs = 1;</code>
       */
      public Builder clearInputLhs() {  copyOnWrite();
        instance.clearInputLhs();
        return this;
      }

      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      @java.lang.Override
      public boolean hasInputRhs() {
        return instance.hasInputRhs();
      }
      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 getInputRhs() {
        return instance.getInputRhs();
      }
      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      public Builder setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.setInputRhs(value);
        return this;
        }
      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      public Builder setInputRhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32.Builder builderForValue) {
        copyOnWrite();
        instance.setInputRhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      public Builder mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInt32 value) {
        copyOnWrite();
        instance.mergeInputRhs(value);
        return this;
      }
      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInt32 input_rhs = 2;</code>
       */
      public Builder clearInputRhs() {  copyOnWrite();
        instance.clearInputRhs();
        return this;
      }

      /**
       * <pre>
       * The type of the operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
       * @return The enum numeric value on the wire for operationType.
       */
      @java.lang.Override
      public int getOperationTypeValue() {
        return instance.getOperationTypeValue();
      }
      /**
       * <pre>
       * The type of the operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
       * @param value The operationType to set.
       * @return This builder for chaining.
       */
      public Builder setOperationTypeValue(int value) {
        copyOnWrite();
        instance.setOperationTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * The type of the operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
       * @return The operationType.
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType getOperationType() {
        return instance.getOperationType();
      }
      /**
       * <pre>
       * The type of the operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
       * @param value The enum numeric value on the wire for operationType to set.
       * @return This builder for chaining.
       */
      public Builder setOperationType(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType value) {
        copyOnWrite();
        instance.setOperationType(value);
        return this;
      }
      /**
       * <pre>
       * The type of the operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperationType() {
        copyOnWrite();
        instance.clearOperationType();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.ComparisonInt32Op)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inputLhs_",
              "inputRhs_",
              "operationType_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.ComparisonInt32Op)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op DEFAULT_INSTANCE;
    static {
      ComparisonInt32Op defaultInstance = new ComparisonInt32Op();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ComparisonInt32Op.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ComparisonInt32Op> PARSER;

    public static com.google.protobuf.Parser<ComparisonInt32Op> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ComparisonFloatOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.ComparisonFloatOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     * @return Whether the inputLhs field is set.
     */
    boolean hasInputLhs();
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     * @return The inputLhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputLhs();

    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     * @return Whether the inputRhs field is set.
     */
    boolean hasInputRhs();
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     * @return The inputRhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputRhs();

    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @return The enum numeric value on the wire for operationType.
     */
    int getOperationTypeValue();
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @return The operationType.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType getOperationType();
  }
  /**
   * <pre>
   * A comparison operation, operating on two Float instances. This implements
   * various comparison operations of the form "boolean result = LHS &lt;op&gt; RHS",
   * where the available operation types are described in ComparisonOpType.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.ComparisonFloatOp}
   */
  public  static final class ComparisonFloatOp extends
      com.google.protobuf.GeneratedMessageLite<
          ComparisonFloatOp, ComparisonFloatOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.ComparisonFloatOp)
      ComparisonFloatOpOrBuilder {
    private ComparisonFloatOp() {
    }
    public static final int INPUT_LHS_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat inputLhs_;
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     */
    @java.lang.Override
    public boolean hasInputLhs() {
      return inputLhs_ != null;
    }
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputLhs() {
      return inputLhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : inputLhs_;
    }
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     */
    private void setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  inputLhs_ = value;
      
      }
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (inputLhs_ != null &&
          inputLhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        inputLhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(inputLhs_).mergeFrom(value).buildPartial();
      } else {
        inputLhs_ = value;
      }
      
    }
    /**
     * <pre>
     * The left hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
     */
    private void clearInputLhs() {  inputLhs_ = null;
      
    }

    public static final int INPUT_RHS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat inputRhs_;
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     */
    @java.lang.Override
    public boolean hasInputRhs() {
      return inputRhs_ != null;
    }
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputRhs() {
      return inputRhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance() : inputRhs_;
    }
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     */
    private void setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  inputRhs_ = value;
      
      }
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
      value.getClass();
  if (inputRhs_ != null &&
          inputRhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.getDefaultInstance()) {
        inputRhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.newBuilder(inputRhs_).mergeFrom(value).buildPartial();
      } else {
        inputRhs_ = value;
      }
      
    }
    /**
     * <pre>
     * The right hand side of the comparison operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
     */
    private void clearInputRhs() {  inputRhs_ = null;
      
    }

    public static final int OPERATION_TYPE_FIELD_NUMBER = 3;
    private int operationType_;
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @return The enum numeric value on the wire for operationType.
     */
    @java.lang.Override
    public int getOperationTypeValue() {
      return operationType_;
    }
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @return The operationType.
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType getOperationType() {
      androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType result = androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType.forNumber(operationType_);
      return result == null ? androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @param value The enum numeric value on the wire for operationType to set.
     */
    private void setOperationTypeValue(int value) {
        operationType_ = value;
    }
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     * @param value The operationType to set.
     */
    private void setOperationType(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType value) {
      operationType_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The type of the operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
     */
    private void clearOperationType() {
      
      operationType_ = 0;
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A comparison operation, operating on two Float instances. This implements
     * various comparison operations of the form "boolean result = LHS &lt;op&gt; RHS",
     * where the available operation types are described in ComparisonOpType.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.ComparisonFloatOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.ComparisonFloatOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      @java.lang.Override
      public boolean hasInputLhs() {
        return instance.hasInputLhs();
      }
      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputLhs() {
        return instance.getInputLhs();
      }
      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      public Builder setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setInputLhs(value);
        return this;
        }
      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      public Builder setInputLhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setInputLhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      public Builder mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeInputLhs(value);
        return this;
      }
      /**
       * <pre>
       * The left hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_lhs = 1;</code>
       */
      public Builder clearInputLhs() {  copyOnWrite();
        instance.clearInputLhs();
        return this;
      }

      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      @java.lang.Override
      public boolean hasInputRhs() {
        return instance.hasInputRhs();
      }
      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat getInputRhs() {
        return instance.getInputRhs();
      }
      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      public Builder setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.setInputRhs(value);
        return this;
        }
      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      public Builder setInputRhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat.Builder builderForValue) {
        copyOnWrite();
        instance.setInputRhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      public Builder mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicFloat value) {
        copyOnWrite();
        instance.mergeInputRhs(value);
        return this;
      }
      /**
       * <pre>
       * The right hand side of the comparison operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicFloat input_rhs = 2;</code>
       */
      public Builder clearInputRhs() {  copyOnWrite();
        instance.clearInputRhs();
        return this;
      }

      /**
       * <pre>
       * The type of the operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
       * @return The enum numeric value on the wire for operationType.
       */
      @java.lang.Override
      public int getOperationTypeValue() {
        return instance.getOperationTypeValue();
      }
      /**
       * <pre>
       * The type of the operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
       * @param value The operationType to set.
       * @return This builder for chaining.
       */
      public Builder setOperationTypeValue(int value) {
        copyOnWrite();
        instance.setOperationTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * The type of the operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
       * @return The operationType.
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType getOperationType() {
        return instance.getOperationType();
      }
      /**
       * <pre>
       * The type of the operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
       * @param value The enum numeric value on the wire for operationType to set.
       * @return This builder for chaining.
       */
      public Builder setOperationType(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonOpType value) {
        copyOnWrite();
        instance.setOperationType(value);
        return this;
      }
      /**
       * <pre>
       * The type of the operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonOpType operation_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperationType() {
        copyOnWrite();
        instance.clearOperationType();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.ComparisonFloatOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inputLhs_",
              "inputRhs_",
              "operationType_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.ComparisonFloatOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp DEFAULT_INSTANCE;
    static {
      ComparisonFloatOp defaultInstance = new ComparisonFloatOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ComparisonFloatOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ComparisonFloatOp> PARSER;

    public static com.google.protobuf.Parser<ComparisonFloatOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface NotBoolOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.NotBoolOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The input, whose value to negate.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
     * @return Whether the input field is set.
     */
    boolean hasInput();
    /**
     * <pre>
     * The input, whose value to negate.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
     * @return The input.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getInput();
  }
  /**
   * <pre>
   * A boolean operation which implements a "NOT" operator, i.e.
   * "boolean result = !input".
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.NotBoolOp}
   */
  public  static final class NotBoolOp extends
      com.google.protobuf.GeneratedMessageLite<
          NotBoolOp, NotBoolOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.NotBoolOp)
      NotBoolOpOrBuilder {
    private NotBoolOp() {
    }
    public static final int INPUT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool input_;
    /**
     * <pre>
     * The input, whose value to negate.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
     */
    @java.lang.Override
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * <pre>
     * The input, whose value to negate.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getInput() {
      return input_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance() : input_;
    }
    /**
     * <pre>
     * The input, whose value to negate.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
     */
    private void setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  input_ = value;
      
      }
    /**
     * <pre>
     * The input, whose value to negate.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  if (input_ != null &&
          input_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance()) {
        input_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.newBuilder(input_).mergeFrom(value).buildPartial();
      } else {
        input_ = value;
      }
      
    }
    /**
     * <pre>
     * The input, whose value to negate.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
     */
    private void clearInput() {  input_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A boolean operation which implements a "NOT" operator, i.e.
     * "boolean result = !input".
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.NotBoolOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.NotBoolOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The input, whose value to negate.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
       */
      @java.lang.Override
      public boolean hasInput() {
        return instance.hasInput();
      }
      /**
       * <pre>
       * The input, whose value to negate.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getInput() {
        return instance.getInput();
      }
      /**
       * <pre>
       * The input, whose value to negate.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
       */
      public Builder setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.setInput(value);
        return this;
        }
      /**
       * <pre>
       * The input, whose value to negate.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
       */
      public Builder setInput(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.Builder builderForValue) {
        copyOnWrite();
        instance.setInput(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The input, whose value to negate.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
       */
      public Builder mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.mergeInput(value);
        return this;
      }
      /**
       * <pre>
       * The input, whose value to negate.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input = 1;</code>
       */
      public Builder clearInput() {  copyOnWrite();
        instance.clearInput();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.NotBoolOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "input_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.NotBoolOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp DEFAULT_INSTANCE;
    static {
      NotBoolOp defaultInstance = new NotBoolOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        NotBoolOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<NotBoolOp> PARSER;

    public static com.google.protobuf.Parser<NotBoolOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface LogicalBoolOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.LogicalBoolOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The left hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
     * @return Whether the inputLhs field is set.
     */
    boolean hasInputLhs();
    /**
     * <pre>
     * The left hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
     * @return The inputLhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getInputLhs();

    /**
     * <pre>
     * The right hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
     * @return Whether the inputRhs field is set.
     */
    boolean hasInputRhs();
    /**
     * <pre>
     * The right hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
     * @return The inputRhs.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getInputRhs();

    /**
     * <pre>
     * The operation type to apply to LHS/RHS.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
     * @return The enum numeric value on the wire for operationType.
     */
    int getOperationTypeValue();
    /**
     * <pre>
     * The operation type to apply to LHS/RHS.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
     * @return The operationType.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType getOperationType();
  }
  /**
   * <pre>
   * A logical boolean operator, implementing "boolean result = LHS &lt;op&gt; RHS",
   * for various boolean operators (i.e. AND/OR).
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.LogicalBoolOp}
   */
  public  static final class LogicalBoolOp extends
      com.google.protobuf.GeneratedMessageLite<
          LogicalBoolOp, LogicalBoolOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.LogicalBoolOp)
      LogicalBoolOpOrBuilder {
    private LogicalBoolOp() {
    }
    public static final int INPUT_LHS_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool inputLhs_;
    /**
     * <pre>
     * The left hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
     */
    @java.lang.Override
    public boolean hasInputLhs() {
      return inputLhs_ != null;
    }
    /**
     * <pre>
     * The left hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getInputLhs() {
      return inputLhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance() : inputLhs_;
    }
    /**
     * <pre>
     * The left hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
     */
    private void setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  inputLhs_ = value;
      
      }
    /**
     * <pre>
     * The left hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  if (inputLhs_ != null &&
          inputLhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance()) {
        inputLhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.newBuilder(inputLhs_).mergeFrom(value).buildPartial();
      } else {
        inputLhs_ = value;
      }
      
    }
    /**
     * <pre>
     * The left hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
     */
    private void clearInputLhs() {  inputLhs_ = null;
      
    }

    public static final int INPUT_RHS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool inputRhs_;
    /**
     * <pre>
     * The right hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
     */
    @java.lang.Override
    public boolean hasInputRhs() {
      return inputRhs_ != null;
    }
    /**
     * <pre>
     * The right hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getInputRhs() {
      return inputRhs_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance() : inputRhs_;
    }
    /**
     * <pre>
     * The right hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
     */
    private void setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  inputRhs_ = value;
      
      }
    /**
     * <pre>
     * The right hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
      value.getClass();
  if (inputRhs_ != null &&
          inputRhs_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.getDefaultInstance()) {
        inputRhs_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.newBuilder(inputRhs_).mergeFrom(value).buildPartial();
      } else {
        inputRhs_ = value;
      }
      
    }
    /**
     * <pre>
     * The right hand side of the logical operation.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
     */
    private void clearInputRhs() {  inputRhs_ = null;
      
    }

    public static final int OPERATION_TYPE_FIELD_NUMBER = 3;
    private int operationType_;
    /**
     * <pre>
     * The operation type to apply to LHS/RHS.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
     * @return The enum numeric value on the wire for operationType.
     */
    @java.lang.Override
    public int getOperationTypeValue() {
      return operationType_;
    }
    /**
     * <pre>
     * The operation type to apply to LHS/RHS.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
     * @return The operationType.
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType getOperationType() {
      androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType result = androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType.forNumber(operationType_);
      return result == null ? androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The operation type to apply to LHS/RHS.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
     * @param value The enum numeric value on the wire for operationType to set.
     */
    private void setOperationTypeValue(int value) {
        operationType_ = value;
    }
    /**
     * <pre>
     * The operation type to apply to LHS/RHS.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
     * @param value The operationType to set.
     */
    private void setOperationType(androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType value) {
      operationType_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The operation type to apply to LHS/RHS.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
     */
    private void clearOperationType() {
      
      operationType_ = 0;
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A logical boolean operator, implementing "boolean result = LHS &lt;op&gt; RHS",
     * for various boolean operators (i.e. AND/OR).
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.LogicalBoolOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.LogicalBoolOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The left hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
       */
      @java.lang.Override
      public boolean hasInputLhs() {
        return instance.hasInputLhs();
      }
      /**
       * <pre>
       * The left hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getInputLhs() {
        return instance.getInputLhs();
      }
      /**
       * <pre>
       * The left hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
       */
      public Builder setInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.setInputLhs(value);
        return this;
        }
      /**
       * <pre>
       * The left hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
       */
      public Builder setInputLhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.Builder builderForValue) {
        copyOnWrite();
        instance.setInputLhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The left hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
       */
      public Builder mergeInputLhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.mergeInputLhs(value);
        return this;
      }
      /**
       * <pre>
       * The left hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_lhs = 1;</code>
       */
      public Builder clearInputLhs() {  copyOnWrite();
        instance.clearInputLhs();
        return this;
      }

      /**
       * <pre>
       * The right hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
       */
      @java.lang.Override
      public boolean hasInputRhs() {
        return instance.hasInputRhs();
      }
      /**
       * <pre>
       * The right hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getInputRhs() {
        return instance.getInputRhs();
      }
      /**
       * <pre>
       * The right hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
       */
      public Builder setInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.setInputRhs(value);
        return this;
        }
      /**
       * <pre>
       * The right hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
       */
      public Builder setInputRhs(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.Builder builderForValue) {
        copyOnWrite();
        instance.setInputRhs(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The right hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
       */
      public Builder mergeInputRhs(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool value) {
        copyOnWrite();
        instance.mergeInputRhs(value);
        return this;
      }
      /**
       * <pre>
       * The right hand side of the logical operation.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicBool input_rhs = 2;</code>
       */
      public Builder clearInputRhs() {  copyOnWrite();
        instance.clearInputRhs();
        return this;
      }

      /**
       * <pre>
       * The operation type to apply to LHS/RHS.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
       * @return The enum numeric value on the wire for operationType.
       */
      @java.lang.Override
      public int getOperationTypeValue() {
        return instance.getOperationTypeValue();
      }
      /**
       * <pre>
       * The operation type to apply to LHS/RHS.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
       * @param value The operationType to set.
       * @return This builder for chaining.
       */
      public Builder setOperationTypeValue(int value) {
        copyOnWrite();
        instance.setOperationTypeValue(value);
        return this;
      }
      /**
       * <pre>
       * The operation type to apply to LHS/RHS.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
       * @return The operationType.
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType getOperationType() {
        return instance.getOperationType();
      }
      /**
       * <pre>
       * The operation type to apply to LHS/RHS.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
       * @param value The enum numeric value on the wire for operationType to set.
       * @return This builder for chaining.
       */
      public Builder setOperationType(androidx.wear.protolayout.expression.proto.DynamicProto.LogicalOpType value) {
        copyOnWrite();
        instance.setOperationType(value);
        return this;
      }
      /**
       * <pre>
       * The operation type to apply to LHS/RHS.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.LogicalOpType operation_type = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperationType() {
        copyOnWrite();
        instance.clearOperationType();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.LogicalBoolOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inputLhs_",
              "inputRhs_",
              "operationType_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.LogicalBoolOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp DEFAULT_INSTANCE;
    static {
      LogicalBoolOp defaultInstance = new LogicalBoolOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        LogicalBoolOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<LogicalBoolOp> PARSER;

    public static com.google.protobuf.Parser<LogicalBoolOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DynamicBoolOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.DynamicBool)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
     * @return Whether the fixed field is set.
     */
    boolean hasFixed();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
     * @return The fixed.
     */
    androidx.wear.protolayout.expression.proto.FixedProto.FixedBool getFixed();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
     * @return Whether the stateSource field is set.
     */
    boolean hasStateSource();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
     * @return The stateSource.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource getStateSource();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
     * @return Whether the int32Comparison field is set.
     */
    boolean hasInt32Comparison();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
     * @return The int32Comparison.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op getInt32Comparison();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
     * @return Whether the notOp field is set.
     */
    boolean hasNotOp();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
     * @return The notOp.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp getNotOp();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
     * @return Whether the logicalOp field is set.
     */
    boolean hasLogicalOp();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
     * @return The logicalOp.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp getLogicalOp();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
     * @return Whether the floatComparison field is set.
     */
    boolean hasFloatComparison();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
     * @return The floatComparison.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp getFloatComparison();

    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dynamic boolean type.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicBool}
   */
  public  static final class DynamicBool extends
      com.google.protobuf.GeneratedMessageLite<
          DynamicBool, DynamicBool.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.DynamicBool)
      DynamicBoolOrBuilder {
    private DynamicBool() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      FIXED(1),
      STATE_SOURCE(2),
      INT32_COMPARISON(3),
      NOT_OP(4),
      LOGICAL_OP(5),
      FLOAT_COMPARISON(6),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return FIXED;
          case 2: return STATE_SOURCE;
          case 3: return INT32_COMPARISON;
          case 4: return NOT_OP;
          case 5: return LOGICAL_OP;
          case 6: return FLOAT_COMPARISON;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int FIXED_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
     */
    @java.lang.Override
    public boolean hasFixed() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.FixedProto.FixedBool getFixed() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.expression.proto.FixedProto.FixedBool) inner_;
      }
      return androidx.wear.protolayout.expression.proto.FixedProto.FixedBool.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
     */
    private void setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedBool value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
     */
    private void mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedBool value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.expression.proto.FixedProto.FixedBool.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.FixedProto.FixedBool.newBuilder((androidx.wear.protolayout.expression.proto.FixedProto.FixedBool) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
     */
    private void clearFixed() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int STATE_SOURCE_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
     */
    @java.lang.Override
    public boolean hasStateSource() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource getStateSource() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
     */
    private void setStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
     */
    private void mergeStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
     */
    private void clearStateSource() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int INT32_COMPARISON_FIELD_NUMBER = 3;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
     */
    @java.lang.Override
    public boolean hasInt32Comparison() {
      return innerCase_ == 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op getInt32Comparison() {
      if (innerCase_ == 3) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
     */
    private void setInt32Comparison(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
     */
    private void mergeInt32Comparison(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op value) {
      value.getClass();
  if (innerCase_ == 3 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
     */
    private void clearInt32Comparison() {
      if (innerCase_ == 3) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int NOT_OP_FIELD_NUMBER = 4;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
     */
    @java.lang.Override
    public boolean hasNotOp() {
      return innerCase_ == 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp getNotOp() {
      if (innerCase_ == 4) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
     */
    private void setNotOp(androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
     */
    private void mergeNotOp(androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp value) {
      value.getClass();
  if (innerCase_ == 4 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
     */
    private void clearNotOp() {
      if (innerCase_ == 4) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int LOGICAL_OP_FIELD_NUMBER = 5;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
     */
    @java.lang.Override
    public boolean hasLogicalOp() {
      return innerCase_ == 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp getLogicalOp() {
      if (innerCase_ == 5) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
     */
    private void setLogicalOp(androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
     */
    private void mergeLogicalOp(androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp value) {
      value.getClass();
  if (innerCase_ == 5 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 5;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
     */
    private void clearLogicalOp() {
      if (innerCase_ == 5) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int FLOAT_COMPARISON_FIELD_NUMBER = 6;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
     */
    @java.lang.Override
    public boolean hasFloatComparison() {
      return innerCase_ == 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp getFloatComparison() {
      if (innerCase_ == 6) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
     */
    private void setFloatComparison(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
     */
    private void mergeFloatComparison(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp value) {
      value.getClass();
  if (innerCase_ == 6 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 6;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
     */
    private void clearFloatComparison() {
      if (innerCase_ == 6) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic boolean type.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicBool}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.DynamicBool)
        androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBoolOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
       */
      @java.lang.Override
      public boolean hasFixed() {
        return instance.hasFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.FixedProto.FixedBool getFixed() {
        return instance.getFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
       */
      public Builder setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedBool value) {
        copyOnWrite();
        instance.setFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
       */
      public Builder setFixed(
          androidx.wear.protolayout.expression.proto.FixedProto.FixedBool.Builder builderForValue) {
        copyOnWrite();
        instance.setFixed(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
       */
      public Builder mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedBool value) {
        copyOnWrite();
        instance.mergeFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedBool fixed = 1;</code>
       */
      public Builder clearFixed() {
        copyOnWrite();
        instance.clearFixed();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
       */
      @java.lang.Override
      public boolean hasStateSource() {
        return instance.hasStateSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource getStateSource() {
        return instance.getStateSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
       */
      public Builder setStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource value) {
        copyOnWrite();
        instance.setStateSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
       */
      public Builder setStateSource(
          androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource.Builder builderForValue) {
        copyOnWrite();
        instance.setStateSource(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
       */
      public Builder mergeStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource value) {
        copyOnWrite();
        instance.mergeStateSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateBoolSource state_source = 2;</code>
       */
      public Builder clearStateSource() {
        copyOnWrite();
        instance.clearStateSource();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
       */
      @java.lang.Override
      public boolean hasInt32Comparison() {
        return instance.hasInt32Comparison();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op getInt32Comparison() {
        return instance.getInt32Comparison();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
       */
      public Builder setInt32Comparison(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op value) {
        copyOnWrite();
        instance.setInt32Comparison(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
       */
      public Builder setInt32Comparison(
          androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op.Builder builderForValue) {
        copyOnWrite();
        instance.setInt32Comparison(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
       */
      public Builder mergeInt32Comparison(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op value) {
        copyOnWrite();
        instance.mergeInt32Comparison(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonInt32Op int32_comparison = 3;</code>
       */
      public Builder clearInt32Comparison() {
        copyOnWrite();
        instance.clearInt32Comparison();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
       */
      @java.lang.Override
      public boolean hasNotOp() {
        return instance.hasNotOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp getNotOp() {
        return instance.getNotOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
       */
      public Builder setNotOp(androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp value) {
        copyOnWrite();
        instance.setNotOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
       */
      public Builder setNotOp(
          androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp.Builder builderForValue) {
        copyOnWrite();
        instance.setNotOp(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
       */
      public Builder mergeNotOp(androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp value) {
        copyOnWrite();
        instance.mergeNotOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.NotBoolOp not_op = 4;</code>
       */
      public Builder clearNotOp() {
        copyOnWrite();
        instance.clearNotOp();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
       */
      @java.lang.Override
      public boolean hasLogicalOp() {
        return instance.hasLogicalOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp getLogicalOp() {
        return instance.getLogicalOp();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
       */
      public Builder setLogicalOp(androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp value) {
        copyOnWrite();
        instance.setLogicalOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
       */
      public Builder setLogicalOp(
          androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp.Builder builderForValue) {
        copyOnWrite();
        instance.setLogicalOp(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
       */
      public Builder mergeLogicalOp(androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp value) {
        copyOnWrite();
        instance.mergeLogicalOp(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.LogicalBoolOp logical_op = 5;</code>
       */
      public Builder clearLogicalOp() {
        copyOnWrite();
        instance.clearLogicalOp();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
       */
      @java.lang.Override
      public boolean hasFloatComparison() {
        return instance.hasFloatComparison();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp getFloatComparison() {
        return instance.getFloatComparison();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
       */
      public Builder setFloatComparison(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp value) {
        copyOnWrite();
        instance.setFloatComparison(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
       */
      public Builder setFloatComparison(
          androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp.Builder builderForValue) {
        copyOnWrite();
        instance.setFloatComparison(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
       */
      public Builder mergeFloatComparison(androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp value) {
        copyOnWrite();
        instance.mergeFloatComparison(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.ComparisonFloatOp float_comparison = 6;</code>
       */
      public Builder clearFloatComparison() {
        copyOnWrite();
        instance.clearFloatComparison();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.DynamicBool)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.expression.proto.FixedProto.FixedBool.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.StateBoolSource.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonInt32Op.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.NotBoolOp.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.LogicalBoolOp.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.ComparisonFloatOp.class,
            };
            java.lang.String info =
                "\u0000\u0006\u0001\u0000\u0001\u0006\u0006\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000\u0003<\u0000\u0004<\u0000\u0005<\u0000\u0006<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.DynamicBool)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool DEFAULT_INSTANCE;
    static {
      DynamicBool defaultInstance = new DynamicBool();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DynamicBool.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicBool getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DynamicBool> PARSER;

    public static com.google.protobuf.Parser<DynamicBool> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface StateColorSourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.StateColorSource)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The sourceKey.
     */
    java.lang.String getSourceKey();
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The bytes for sourceKey.
     */
    com.google.protobuf.ByteString
        getSourceKeyBytes();
  }
  /**
   * <pre>
   * A dynamic Color which sources its data from the tile's state.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.StateColorSource}
   */
  public  static final class StateColorSource extends
      com.google.protobuf.GeneratedMessageLite<
          StateColorSource, StateColorSource.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.StateColorSource)
      StateColorSourceOrBuilder {
    private StateColorSource() {
      sourceKey_ = "";
    }
    public static final int SOURCE_KEY_FIELD_NUMBER = 1;
    private java.lang.String sourceKey_;
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The sourceKey.
     */
    @java.lang.Override
    public java.lang.String getSourceKey() {
      return sourceKey_;
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @return The bytes for sourceKey.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceKeyBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(sourceKey_);
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @param value The sourceKey to set.
     */
    private void setSourceKey(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      sourceKey_ = value;
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     */
    private void clearSourceKey() {
      
      sourceKey_ = getDefaultInstance().getSourceKey();
    }
    /**
     * <pre>
     * The key in the state to bind to.
     * </pre>
     *
     * <code>string source_key = 1;</code>
     * @param value The bytes for sourceKey to set.
     */
    private void setSourceKeyBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      sourceKey_ = value.toStringUtf8();
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic Color which sources its data from the tile's state.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.StateColorSource}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.StateColorSource)
        androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSourceOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return The sourceKey.
       */
      @java.lang.Override
      public java.lang.String getSourceKey() {
        return instance.getSourceKey();
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return The bytes for sourceKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSourceKeyBytes() {
        return instance.getSourceKeyBytes();
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @param value The sourceKey to set.
       * @return This builder for chaining.
       */
      public Builder setSourceKey(
          java.lang.String value) {
        copyOnWrite();
        instance.setSourceKey(value);
        return this;
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceKey() {
        copyOnWrite();
        instance.clearSourceKey();
        return this;
      }
      /**
       * <pre>
       * The key in the state to bind to.
       * </pre>
       *
       * <code>string source_key = 1;</code>
       * @param value The bytes for sourceKey to set.
       * @return This builder for chaining.
       */
      public Builder setSourceKeyBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSourceKeyBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.StateColorSource)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "sourceKey_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0208";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.StateColorSource)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource DEFAULT_INSTANCE;
    static {
      StateColorSource defaultInstance = new StateColorSource();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        StateColorSource.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<StateColorSource> PARSER;

    public static com.google.protobuf.Parser<StateColorSource> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface AnimatableFixedColorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.AnimatableFixedColor)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The color value (in ARGB format) to start animating from.
     * </pre>
     *
     * <code>uint32 from_argb = 1;</code>
     * @return The fromArgb.
     */
    int getFromArgb();

    /**
     * <pre>
     * The color value (in ARGB format) to animate to.
     * </pre>
     *
     * <code>uint32 to_argb = 2;</code>
     * @return The toArgb.
     */
    int getToArgb();

    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return Whether the animationSpec field is set.
     */
    boolean hasAnimationSpec();
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return The animationSpec.
     */
    androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec();
  }
  /**
   * <pre>
   * A static interpolation node, between two fixed color values.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableFixedColor}
   */
  public  static final class AnimatableFixedColor extends
      com.google.protobuf.GeneratedMessageLite<
          AnimatableFixedColor, AnimatableFixedColor.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.AnimatableFixedColor)
      AnimatableFixedColorOrBuilder {
    private AnimatableFixedColor() {
    }
    public static final int FROM_ARGB_FIELD_NUMBER = 1;
    private int fromArgb_;
    /**
     * <pre>
     * The color value (in ARGB format) to start animating from.
     * </pre>
     *
     * <code>uint32 from_argb = 1;</code>
     * @return The fromArgb.
     */
    @java.lang.Override
    public int getFromArgb() {
      return fromArgb_;
    }
    /**
     * <pre>
     * The color value (in ARGB format) to start animating from.
     * </pre>
     *
     * <code>uint32 from_argb = 1;</code>
     * @param value The fromArgb to set.
     */
    private void setFromArgb(int value) {
      
      fromArgb_ = value;
    }
    /**
     * <pre>
     * The color value (in ARGB format) to start animating from.
     * </pre>
     *
     * <code>uint32 from_argb = 1;</code>
     */
    private void clearFromArgb() {
      
      fromArgb_ = 0;
    }

    public static final int TO_ARGB_FIELD_NUMBER = 2;
    private int toArgb_;
    /**
     * <pre>
     * The color value (in ARGB format) to animate to.
     * </pre>
     *
     * <code>uint32 to_argb = 2;</code>
     * @return The toArgb.
     */
    @java.lang.Override
    public int getToArgb() {
      return toArgb_;
    }
    /**
     * <pre>
     * The color value (in ARGB format) to animate to.
     * </pre>
     *
     * <code>uint32 to_argb = 2;</code>
     * @param value The toArgb to set.
     */
    private void setToArgb(int value) {
      
      toArgb_ = value;
    }
    /**
     * <pre>
     * The color value (in ARGB format) to animate to.
     * </pre>
     *
     * <code>uint32 to_argb = 2;</code>
     */
    private void clearToArgb() {
      
      toArgb_ = 0;
    }

    public static final int ANIMATION_SPEC_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec animationSpec_;
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public boolean hasAnimationSpec() {
      return animationSpec_ != null;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
      return animationSpec_ == null ? androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance() : animationSpec_;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  animationSpec_ = value;
      
      }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  if (animationSpec_ != null &&
          animationSpec_ != androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance()) {
        animationSpec_ =
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.newBuilder(animationSpec_).mergeFrom(value).buildPartial();
      } else {
        animationSpec_ = value;
      }
      
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void clearAnimationSpec() {  animationSpec_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A static interpolation node, between two fixed color values.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableFixedColor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.AnimatableFixedColor)
        androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColorOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The color value (in ARGB format) to start animating from.
       * </pre>
       *
       * <code>uint32 from_argb = 1;</code>
       * @return The fromArgb.
       */
      @java.lang.Override
      public int getFromArgb() {
        return instance.getFromArgb();
      }
      /**
       * <pre>
       * The color value (in ARGB format) to start animating from.
       * </pre>
       *
       * <code>uint32 from_argb = 1;</code>
       * @param value The fromArgb to set.
       * @return This builder for chaining.
       */
      public Builder setFromArgb(int value) {
        copyOnWrite();
        instance.setFromArgb(value);
        return this;
      }
      /**
       * <pre>
       * The color value (in ARGB format) to start animating from.
       * </pre>
       *
       * <code>uint32 from_argb = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearFromArgb() {
        copyOnWrite();
        instance.clearFromArgb();
        return this;
      }

      /**
       * <pre>
       * The color value (in ARGB format) to animate to.
       * </pre>
       *
       * <code>uint32 to_argb = 2;</code>
       * @return The toArgb.
       */
      @java.lang.Override
      public int getToArgb() {
        return instance.getToArgb();
      }
      /**
       * <pre>
       * The color value (in ARGB format) to animate to.
       * </pre>
       *
       * <code>uint32 to_argb = 2;</code>
       * @param value The toArgb to set.
       * @return This builder for chaining.
       */
      public Builder setToArgb(int value) {
        copyOnWrite();
        instance.setToArgb(value);
        return this;
      }
      /**
       * <pre>
       * The color value (in ARGB format) to animate to.
       * </pre>
       *
       * <code>uint32 to_argb = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearToArgb() {
        copyOnWrite();
        instance.clearToArgb();
        return this;
      }

      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public boolean hasAnimationSpec() {
        return instance.hasAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
        return instance.getAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.setAnimationSpec(value);
        return this;
        }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimationSpec(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.mergeAnimationSpec(value);
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder clearAnimationSpec() {  copyOnWrite();
        instance.clearAnimationSpec();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.AnimatableFixedColor)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "fromArgb_",
              "toArgb_",
              "animationSpec_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u000b\u0002\u000b" +
                "\u0003\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.AnimatableFixedColor)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor DEFAULT_INSTANCE;
    static {
      AnimatableFixedColor defaultInstance = new AnimatableFixedColor();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AnimatableFixedColor.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<AnimatableFixedColor> PARSER;

    public static com.google.protobuf.Parser<AnimatableFixedColor> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface AnimatableDynamicColorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.AnimatableDynamicColor)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
     * @return Whether the input field is set.
     */
    boolean hasInput();
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
     * @return The input.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor getInput();

    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return Whether the animationSpec field is set.
     */
    boolean hasAnimationSpec();
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return The animationSpec.
     */
    androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec();
  }
  /**
   * <pre>
   * A dynamic interpolation node. This will watch the value of its input and,
   * when the first update arrives, immediately emit that value. On subsequent
   * updates, it will animate between the old and new values.
   * If this node receives an invalid value (e.g. as a result of an upstream node
   * having no value), then it will emit a single invalid value, and forget its
   * "stored" value. The next valid value that arrives is then used as the
   * "first" value again.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableDynamicColor}
   */
  public  static final class AnimatableDynamicColor extends
      com.google.protobuf.GeneratedMessageLite<
          AnimatableDynamicColor, AnimatableDynamicColor.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.AnimatableDynamicColor)
      AnimatableDynamicColorOrBuilder {
    private AnimatableDynamicColor() {
    }
    public static final int INPUT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor input_;
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
     */
    @java.lang.Override
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor getInput() {
      return input_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor.getDefaultInstance() : input_;
    }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
     */
    private void setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor value) {
      value.getClass();
  input_ = value;
      
      }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor value) {
      value.getClass();
  if (input_ != null &&
          input_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor.getDefaultInstance()) {
        input_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor.newBuilder(input_).mergeFrom(value).buildPartial();
      } else {
        input_ = value;
      }
      
    }
    /**
     * <pre>
     * The value to watch, and animate when it changes.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
     */
    private void clearInput() {  input_ = null;
      
    }

    public static final int ANIMATION_SPEC_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec animationSpec_;
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public boolean hasAnimationSpec() {
      return animationSpec_ != null;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
      return animationSpec_ == null ? androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance() : animationSpec_;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  animationSpec_ = value;
      
      }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  if (animationSpec_ != null &&
          animationSpec_ != androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance()) {
        animationSpec_ =
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.newBuilder(animationSpec_).mergeFrom(value).buildPartial();
      } else {
        animationSpec_ = value;
      }
      
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void clearAnimationSpec() {  animationSpec_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic interpolation node. This will watch the value of its input and,
     * when the first update arrives, immediately emit that value. On subsequent
     * updates, it will animate between the old and new values.
     * If this node receives an invalid value (e.g. as a result of an upstream node
     * having no value), then it will emit a single invalid value, and forget its
     * "stored" value. The next valid value that arrives is then used as the
     * "first" value again.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.AnimatableDynamicColor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.AnimatableDynamicColor)
        androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColorOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
       */
      @java.lang.Override
      public boolean hasInput() {
        return instance.hasInput();
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor getInput() {
        return instance.getInput();
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
       */
      public Builder setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor value) {
        copyOnWrite();
        instance.setInput(value);
        return this;
        }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
       */
      public Builder setInput(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor.Builder builderForValue) {
        copyOnWrite();
        instance.setInput(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
       */
      public Builder mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor value) {
        copyOnWrite();
        instance.mergeInput(value);
        return this;
      }
      /**
       * <pre>
       * The value to watch, and animate when it changes.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicColor input = 1;</code>
       */
      public Builder clearInput() {  copyOnWrite();
        instance.clearInput();
        return this;
      }

      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public boolean hasAnimationSpec() {
        return instance.hasAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
        return instance.getAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.setAnimationSpec(value);
        return this;
        }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimationSpec(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.mergeAnimationSpec(value);
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder clearAnimationSpec() {  copyOnWrite();
        instance.clearAnimationSpec();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.AnimatableDynamicColor)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "input_",
              "animationSpec_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0003\u0002\u0000\u0000\u0000\u0001\t\u0003\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.AnimatableDynamicColor)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor DEFAULT_INSTANCE;
    static {
      AnimatableDynamicColor defaultInstance = new AnimatableDynamicColor();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AnimatableDynamicColor.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<AnimatableDynamicColor> PARSER;

    public static com.google.protobuf.Parser<AnimatableDynamicColor> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DynamicColorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.DynamicColor)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
     * @return Whether the fixed field is set.
     */
    boolean hasFixed();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
     * @return The fixed.
     */
    androidx.wear.protolayout.expression.proto.FixedProto.FixedColor getFixed();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
     * @return Whether the stateSource field is set.
     */
    boolean hasStateSource();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
     * @return The stateSource.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource getStateSource();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
     * @return Whether the animatableFixed field is set.
     */
    boolean hasAnimatableFixed();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
     * @return The animatableFixed.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor getAnimatableFixed();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
     * @return Whether the animatableDynamic field is set.
     */
    boolean hasAnimatableDynamic();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
     * @return The animatableDynamic.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor getAnimatableDynamic();

    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dynamic color type.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicColor}
   */
  public  static final class DynamicColor extends
      com.google.protobuf.GeneratedMessageLite<
          DynamicColor, DynamicColor.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.DynamicColor)
      DynamicColorOrBuilder {
    private DynamicColor() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      FIXED(1),
      STATE_SOURCE(2),
      ANIMATABLE_FIXED(3),
      ANIMATABLE_DYNAMIC(4),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return FIXED;
          case 2: return STATE_SOURCE;
          case 3: return ANIMATABLE_FIXED;
          case 4: return ANIMATABLE_DYNAMIC;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int FIXED_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
     */
    @java.lang.Override
    public boolean hasFixed() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.FixedProto.FixedColor getFixed() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.expression.proto.FixedProto.FixedColor) inner_;
      }
      return androidx.wear.protolayout.expression.proto.FixedProto.FixedColor.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
     */
    private void setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedColor value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
     */
    private void mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedColor value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.expression.proto.FixedProto.FixedColor.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.FixedProto.FixedColor.newBuilder((androidx.wear.protolayout.expression.proto.FixedProto.FixedColor) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
     */
    private void clearFixed() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int STATE_SOURCE_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
     */
    @java.lang.Override
    public boolean hasStateSource() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource getStateSource() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
     */
    private void setStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
     */
    private void mergeStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
     */
    private void clearStateSource() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ANIMATABLE_FIXED_FIELD_NUMBER = 3;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
     */
    @java.lang.Override
    public boolean hasAnimatableFixed() {
      return innerCase_ == 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor getAnimatableFixed() {
      if (innerCase_ == 3) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
     */
    private void setAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
     */
    private void mergeAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor value) {
      value.getClass();
  if (innerCase_ == 3 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
     */
    private void clearAnimatableFixed() {
      if (innerCase_ == 3) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ANIMATABLE_DYNAMIC_FIELD_NUMBER = 4;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
     */
    @java.lang.Override
    public boolean hasAnimatableDynamic() {
      return innerCase_ == 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor getAnimatableDynamic() {
      if (innerCase_ == 4) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
     */
    private void setAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
     */
    private void mergeAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor value) {
      value.getClass();
  if (innerCase_ == 4 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
     */
    private void clearAnimatableDynamic() {
      if (innerCase_ == 4) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic color type.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicColor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.DynamicColor)
        androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColorOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
       */
      @java.lang.Override
      public boolean hasFixed() {
        return instance.hasFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.FixedProto.FixedColor getFixed() {
        return instance.getFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
       */
      public Builder setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedColor value) {
        copyOnWrite();
        instance.setFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
       */
      public Builder setFixed(
          androidx.wear.protolayout.expression.proto.FixedProto.FixedColor.Builder builderForValue) {
        copyOnWrite();
        instance.setFixed(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
       */
      public Builder mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedColor value) {
        copyOnWrite();
        instance.mergeFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedColor fixed = 1;</code>
       */
      public Builder clearFixed() {
        copyOnWrite();
        instance.clearFixed();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
       */
      @java.lang.Override
      public boolean hasStateSource() {
        return instance.hasStateSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource getStateSource() {
        return instance.getStateSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
       */
      public Builder setStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource value) {
        copyOnWrite();
        instance.setStateSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
       */
      public Builder setStateSource(
          androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource.Builder builderForValue) {
        copyOnWrite();
        instance.setStateSource(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
       */
      public Builder mergeStateSource(androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource value) {
        copyOnWrite();
        instance.mergeStateSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.StateColorSource state_source = 2;</code>
       */
      public Builder clearStateSource() {
        copyOnWrite();
        instance.clearStateSource();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
       */
      @java.lang.Override
      public boolean hasAnimatableFixed() {
        return instance.hasAnimatableFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor getAnimatableFixed() {
        return instance.getAnimatableFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
       */
      public Builder setAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor value) {
        copyOnWrite();
        instance.setAnimatableFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
       */
      public Builder setAnimatableFixed(
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimatableFixed(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
       */
      public Builder mergeAnimatableFixed(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor value) {
        copyOnWrite();
        instance.mergeAnimatableFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableFixedColor animatable_fixed = 3;</code>
       */
      public Builder clearAnimatableFixed() {
        copyOnWrite();
        instance.clearAnimatableFixed();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
       */
      @java.lang.Override
      public boolean hasAnimatableDynamic() {
        return instance.hasAnimatableDynamic();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor getAnimatableDynamic() {
        return instance.getAnimatableDynamic();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
       */
      public Builder setAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor value) {
        copyOnWrite();
        instance.setAnimatableDynamic(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
       */
      public Builder setAnimatableDynamic(
          androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimatableDynamic(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
       */
      public Builder mergeAnimatableDynamic(androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor value) {
        copyOnWrite();
        instance.mergeAnimatableDynamic(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.AnimatableDynamicColor animatable_dynamic = 4;</code>
       */
      public Builder clearAnimatableDynamic() {
        copyOnWrite();
        instance.clearAnimatableDynamic();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.DynamicColor)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.expression.proto.FixedProto.FixedColor.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.StateColorSource.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableFixedColor.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.AnimatableDynamicColor.class,
            };
            java.lang.String info =
                "\u0000\u0004\u0001\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000\u0003<\u0000\u0004<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.DynamicColor)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor DEFAULT_INSTANCE;
    static {
      DynamicColor defaultInstance = new DynamicColor();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DynamicColor.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicColor getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DynamicColor> PARSER;

    public static com.google.protobuf.Parser<DynamicColor> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface PlatformTimeSourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.PlatformTimeSource)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * <pre>
   * A dynamic time instant that sources its value from the platform.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.PlatformTimeSource}
   */
  public  static final class PlatformTimeSource extends
      com.google.protobuf.GeneratedMessageLite<
          PlatformTimeSource, PlatformTimeSource.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.PlatformTimeSource)
      PlatformTimeSourceOrBuilder {
    private PlatformTimeSource() {
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic time instant that sources its value from the platform.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.PlatformTimeSource}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.PlatformTimeSource)
        androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSourceOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.PlatformTimeSource)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = null;java.lang.String info =
                "\u0000\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.PlatformTimeSource)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource DEFAULT_INSTANCE;
    static {
      PlatformTimeSource defaultInstance = new PlatformTimeSource();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        PlatformTimeSource.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<PlatformTimeSource> PARSER;

    public static com.google.protobuf.Parser<PlatformTimeSource> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DynamicInstantOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.DynamicInstant)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
     * @return Whether the fixed field is set.
     */
    boolean hasFixed();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
     * @return The fixed.
     */
    androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant getFixed();

    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
     * @return Whether the platformSource field is set.
     */
    boolean hasPlatformSource();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
     * @return The platformSource.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource getPlatformSource();

    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dynamic time instant type.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicInstant}
   */
  public  static final class DynamicInstant extends
      com.google.protobuf.GeneratedMessageLite<
          DynamicInstant, DynamicInstant.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.DynamicInstant)
      DynamicInstantOrBuilder {
    private DynamicInstant() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      FIXED(1),
      PLATFORM_SOURCE(2),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return FIXED;
          case 2: return PLATFORM_SOURCE;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int FIXED_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
     */
    @java.lang.Override
    public boolean hasFixed() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant getFixed() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant) inner_;
      }
      return androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
     */
    private void setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
     */
    private void mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant.newBuilder((androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
     */
    private void clearFixed() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int PLATFORM_SOURCE_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
     */
    @java.lang.Override
    public boolean hasPlatformSource() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource getPlatformSource() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
     */
    private void setPlatformSource(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
     */
    private void mergePlatformSource(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
     */
    private void clearPlatformSource() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic time instant type.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicInstant}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.DynamicInstant)
        androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstantOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
       */
      @java.lang.Override
      public boolean hasFixed() {
        return instance.hasFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant getFixed() {
        return instance.getFixed();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
       */
      public Builder setFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant value) {
        copyOnWrite();
        instance.setFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
       */
      public Builder setFixed(
          androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant.Builder builderForValue) {
        copyOnWrite();
        instance.setFixed(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
       */
      public Builder mergeFixed(androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant value) {
        copyOnWrite();
        instance.mergeFixed(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.FixedInstant fixed = 1;</code>
       */
      public Builder clearFixed() {
        copyOnWrite();
        instance.clearFixed();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
       */
      @java.lang.Override
      public boolean hasPlatformSource() {
        return instance.hasPlatformSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource getPlatformSource() {
        return instance.getPlatformSource();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
       */
      public Builder setPlatformSource(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource value) {
        copyOnWrite();
        instance.setPlatformSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
       */
      public Builder setPlatformSource(
          androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource.Builder builderForValue) {
        copyOnWrite();
        instance.setPlatformSource(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
       */
      public Builder mergePlatformSource(androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource value) {
        copyOnWrite();
        instance.mergePlatformSource(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.PlatformTimeSource platform_source = 2;</code>
       */
      public Builder clearPlatformSource() {
        copyOnWrite();
        instance.clearPlatformSource();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.DynamicInstant)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.expression.proto.FixedProto.FixedInstant.class,
              androidx.wear.protolayout.expression.proto.DynamicProto.PlatformTimeSource.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.DynamicInstant)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant DEFAULT_INSTANCE;
    static {
      DynamicInstant defaultInstance = new DynamicInstant();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DynamicInstant.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DynamicInstant> PARSER;

    public static com.google.protobuf.Parser<DynamicInstant> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BetweenDurationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.BetweenDuration)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The time instant value marking the start of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
     * @return Whether the startInclusive field is set.
     */
    boolean hasStartInclusive();
    /**
     * <pre>
     * The time instant value marking the start of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
     * @return The startInclusive.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant getStartInclusive();

    /**
     * <pre>
     * The time instant value marking the end of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
     * @return Whether the endExclusive field is set.
     */
    boolean hasEndExclusive();
    /**
     * <pre>
     * The time instant value marking the end of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
     * @return The endExclusive.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant getEndExclusive();
  }
  /**
   * <pre>
   * A dynamic duration type that represents the duration between two dynamic time
   * instants.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.BetweenDuration}
   */
  public  static final class BetweenDuration extends
      com.google.protobuf.GeneratedMessageLite<
          BetweenDuration, BetweenDuration.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.BetweenDuration)
      BetweenDurationOrBuilder {
    private BetweenDuration() {
    }
    public static final int START_INCLUSIVE_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant startInclusive_;
    /**
     * <pre>
     * The time instant value marking the start of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
     */
    @java.lang.Override
    public boolean hasStartInclusive() {
      return startInclusive_ != null;
    }
    /**
     * <pre>
     * The time instant value marking the start of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant getStartInclusive() {
      return startInclusive_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.getDefaultInstance() : startInclusive_;
    }
    /**
     * <pre>
     * The time instant value marking the start of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
     */
    private void setStartInclusive(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant value) {
      value.getClass();
  startInclusive_ = value;
      
      }
    /**
     * <pre>
     * The time instant value marking the start of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeStartInclusive(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant value) {
      value.getClass();
  if (startInclusive_ != null &&
          startInclusive_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.getDefaultInstance()) {
        startInclusive_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.newBuilder(startInclusive_).mergeFrom(value).buildPartial();
      } else {
        startInclusive_ = value;
      }
      
    }
    /**
     * <pre>
     * The time instant value marking the start of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
     */
    private void clearStartInclusive() {  startInclusive_ = null;
      
    }

    public static final int END_EXCLUSIVE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant endExclusive_;
    /**
     * <pre>
     * The time instant value marking the end of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
     */
    @java.lang.Override
    public boolean hasEndExclusive() {
      return endExclusive_ != null;
    }
    /**
     * <pre>
     * The time instant value marking the end of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant getEndExclusive() {
      return endExclusive_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.getDefaultInstance() : endExclusive_;
    }
    /**
     * <pre>
     * The time instant value marking the end of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
     */
    private void setEndExclusive(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant value) {
      value.getClass();
  endExclusive_ = value;
      
      }
    /**
     * <pre>
     * The time instant value marking the end of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeEndExclusive(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant value) {
      value.getClass();
  if (endExclusive_ != null &&
          endExclusive_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.getDefaultInstance()) {
        endExclusive_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.newBuilder(endExclusive_).mergeFrom(value).buildPartial();
      } else {
        endExclusive_ = value;
      }
      
    }
    /**
     * <pre>
     * The time instant value marking the end of the duration.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
     */
    private void clearEndExclusive() {  endExclusive_ = null;
      
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic duration type that represents the duration between two dynamic time
     * instants.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.BetweenDuration}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.BetweenDuration)
        androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDurationOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The time instant value marking the start of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
       */
      @java.lang.Override
      public boolean hasStartInclusive() {
        return instance.hasStartInclusive();
      }
      /**
       * <pre>
       * The time instant value marking the start of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant getStartInclusive() {
        return instance.getStartInclusive();
      }
      /**
       * <pre>
       * The time instant value marking the start of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
       */
      public Builder setStartInclusive(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant value) {
        copyOnWrite();
        instance.setStartInclusive(value);
        return this;
        }
      /**
       * <pre>
       * The time instant value marking the start of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
       */
      public Builder setStartInclusive(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.Builder builderForValue) {
        copyOnWrite();
        instance.setStartInclusive(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The time instant value marking the start of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
       */
      public Builder mergeStartInclusive(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant value) {
        copyOnWrite();
        instance.mergeStartInclusive(value);
        return this;
      }
      /**
       * <pre>
       * The time instant value marking the start of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant start_inclusive = 1;</code>
       */
      public Builder clearStartInclusive() {  copyOnWrite();
        instance.clearStartInclusive();
        return this;
      }

      /**
       * <pre>
       * The time instant value marking the end of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
       */
      @java.lang.Override
      public boolean hasEndExclusive() {
        return instance.hasEndExclusive();
      }
      /**
       * <pre>
       * The time instant value marking the end of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant getEndExclusive() {
        return instance.getEndExclusive();
      }
      /**
       * <pre>
       * The time instant value marking the end of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
       */
      public Builder setEndExclusive(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant value) {
        copyOnWrite();
        instance.setEndExclusive(value);
        return this;
        }
      /**
       * <pre>
       * The time instant value marking the end of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
       */
      public Builder setEndExclusive(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant.Builder builderForValue) {
        copyOnWrite();
        instance.setEndExclusive(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The time instant value marking the end of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
       */
      public Builder mergeEndExclusive(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicInstant value) {
        copyOnWrite();
        instance.mergeEndExclusive(value);
        return this;
      }
      /**
       * <pre>
       * The time instant value marking the end of the duration.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicInstant end_exclusive = 2;</code>
       */
      public Builder clearEndExclusive() {  copyOnWrite();
        instance.clearEndExclusive();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.BetweenDuration)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "startInclusive_",
              "endExclusive_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.BetweenDuration)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration DEFAULT_INSTANCE;
    static {
      BetweenDuration defaultInstance = new BetweenDuration();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BetweenDuration.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<BetweenDuration> PARSER;

    public static com.google.protobuf.Parser<BetweenDuration> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DynamicDurationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.DynamicDuration)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
     * @return Whether the between field is set.
     */
    boolean hasBetween();
    /**
     * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
     * @return The between.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration getBetween();

    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A dynamic duration type.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicDuration}
   */
  public  static final class DynamicDuration extends
      com.google.protobuf.GeneratedMessageLite<
          DynamicDuration, DynamicDuration.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.DynamicDuration)
      DynamicDurationOrBuilder {
    private DynamicDuration() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      BETWEEN(1),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return BETWEEN;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int BETWEEN_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
     */
    @java.lang.Override
    public boolean hasBetween() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration getBetween() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration) inner_;
      }
      return androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
     */
    private void setBetween(androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
     */
    private void mergeBetween(androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration.newBuilder((androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
     */
    private void clearBetween() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A dynamic duration type.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.DynamicDuration}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.DynamicDuration)
        androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDurationOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
       */
      @java.lang.Override
      public boolean hasBetween() {
        return instance.hasBetween();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration getBetween() {
        return instance.getBetween();
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
       */
      public Builder setBetween(androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration value) {
        copyOnWrite();
        instance.setBetween(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
       */
      public Builder setBetween(
          androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration.Builder builderForValue) {
        copyOnWrite();
        instance.setBetween(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
       */
      public Builder mergeBetween(androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration value) {
        copyOnWrite();
        instance.mergeBetween(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.expression.proto.BetweenDuration between = 1;</code>
       */
      public Builder clearBetween() {
        copyOnWrite();
        instance.clearBetween();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.DynamicDuration)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.expression.proto.DynamicProto.BetweenDuration.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.DynamicDuration)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration DEFAULT_INSTANCE;
    static {
      DynamicDuration defaultInstance = new DynamicDuration();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DynamicDuration.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DynamicDuration> PARSER;

    public static com.google.protobuf.Parser<DynamicDuration> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface GetDurationPartOpOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.expression.proto.GetDurationPartOp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The duration input.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
     * @return Whether the input field is set.
     */
    boolean hasInput();
    /**
     * <pre>
     * The duration input.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
     * @return The input.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration getInput();

    /**
     * <pre>
     * The duration part to retrieve.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
     * @return The enum numeric value on the wire for durationPart.
     */
    int getDurationPartValue();
    /**
     * <pre>
     * The duration part to retrieve.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
     * @return The durationPart.
     */
    androidx.wear.protolayout.expression.proto.DynamicProto.DurationPartType getDurationPart();
  }
  /**
   * <pre>
   * Retrieve the specified duration part of a DynamicDuration instance as a
   * DynamicInt32.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.expression.proto.GetDurationPartOp}
   */
  public  static final class GetDurationPartOp extends
      com.google.protobuf.GeneratedMessageLite<
          GetDurationPartOp, GetDurationPartOp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.expression.proto.GetDurationPartOp)
      GetDurationPartOpOrBuilder {
    private GetDurationPartOp() {
    }
    public static final int INPUT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration input_;
    /**
     * <pre>
     * The duration input.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
     */
    @java.lang.Override
    public boolean hasInput() {
      return input_ != null;
    }
    /**
     * <pre>
     * The duration input.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration getInput() {
      return input_ == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration.getDefaultInstance() : input_;
    }
    /**
     * <pre>
     * The duration input.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
     */
    private void setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration value) {
      value.getClass();
  input_ = value;
      
      }
    /**
     * <pre>
     * The duration input.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration value) {
      value.getClass();
  if (input_ != null &&
          input_ != androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration.getDefaultInstance()) {
        input_ =
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration.newBuilder(input_).mergeFrom(value).buildPartial();
      } else {
        input_ = value;
      }
      
    }
    /**
     * <pre>
     * The duration input.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
     */
    private void clearInput() {  input_ = null;
      
    }

    public static final int DURATION_PART_FIELD_NUMBER = 2;
    private int durationPart_;
    /**
     * <pre>
     * The duration part to retrieve.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
     * @return The enum numeric value on the wire for durationPart.
     */
    @java.lang.Override
    public int getDurationPartValue() {
      return durationPart_;
    }
    /**
     * <pre>
     * The duration part to retrieve.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
     * @return The durationPart.
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.DynamicProto.DurationPartType getDurationPart() {
      androidx.wear.protolayout.expression.proto.DynamicProto.DurationPartType result = androidx.wear.protolayout.expression.proto.DynamicProto.DurationPartType.forNumber(durationPart_);
      return result == null ? androidx.wear.protolayout.expression.proto.DynamicProto.DurationPartType.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The duration part to retrieve.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
     * @param value The enum numeric value on the wire for durationPart to set.
     */
    private void setDurationPartValue(int value) {
        durationPart_ = value;
    }
    /**
     * <pre>
     * The duration part to retrieve.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
     * @param value The durationPart to set.
     */
    private void setDurationPart(androidx.wear.protolayout.expression.proto.DynamicProto.DurationPartType value) {
      durationPart_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The duration part to retrieve.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
     */
    private void clearDurationPart() {
      
      durationPart_ = 0;
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Retrieve the specified duration part of a DynamicDuration instance as a
     * DynamicInt32.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.expression.proto.GetDurationPartOp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.expression.proto.GetDurationPartOp)
        androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOpOrBuilder {
      // Construct using androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The duration input.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
       */
      @java.lang.Override
      public boolean hasInput() {
        return instance.hasInput();
      }
      /**
       * <pre>
       * The duration input.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration getInput() {
        return instance.getInput();
      }
      /**
       * <pre>
       * The duration input.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
       */
      public Builder setInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration value) {
        copyOnWrite();
        instance.setInput(value);
        return this;
        }
      /**
       * <pre>
       * The duration input.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
       */
      public Builder setInput(
          androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration.Builder builderForValue) {
        copyOnWrite();
        instance.setInput(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The duration input.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
       */
      public Builder mergeInput(androidx.wear.protolayout.expression.proto.DynamicProto.DynamicDuration value) {
        copyOnWrite();
        instance.mergeInput(value);
        return this;
      }
      /**
       * <pre>
       * The duration input.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DynamicDuration input = 1;</code>
       */
      public Builder clearInput() {  copyOnWrite();
        instance.clearInput();
        return this;
      }

      /**
       * <pre>
       * The duration part to retrieve.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
       * @return The enum numeric value on the wire for durationPart.
       */
      @java.lang.Override
      public int getDurationPartValue() {
        return instance.getDurationPartValue();
      }
      /**
       * <pre>
       * The duration part to retrieve.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
       * @param value The durationPart to set.
       * @return This builder for chaining.
       */
      public Builder setDurationPartValue(int value) {
        copyOnWrite();
        instance.setDurationPartValue(value);
        return this;
      }
      /**
       * <pre>
       * The duration part to retrieve.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
       * @return The durationPart.
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.DynamicProto.DurationPartType getDurationPart() {
        return instance.getDurationPart();
      }
      /**
       * <pre>
       * The duration part to retrieve.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
       * @param value The enum numeric value on the wire for durationPart to set.
       * @return This builder for chaining.
       */
      public Builder setDurationPart(androidx.wear.protolayout.expression.proto.DynamicProto.DurationPartType value) {
        copyOnWrite();
        instance.setDurationPart(value);
        return this;
      }
      /**
       * <pre>
       * The duration part to retrieve.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.DurationPartType duration_part = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDurationPart() {
        copyOnWrite();
        instance.clearDurationPart();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.expression.proto.GetDurationPartOp)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "input_",
              "durationPart_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.expression.proto.GetDurationPartOp)
    private static final androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp DEFAULT_INSTANCE;
    static {
      GetDurationPartOp defaultInstance = new GetDurationPartOp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetDurationPartOp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.expression.proto.DynamicProto.GetDurationPartOp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<GetDurationPartOp> PARSER;

    public static com.google.protobuf.Parser<GetDurationPartOp> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}