// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'dart:developer';

void main() {
  print(ServiceExtensionResponse.kInvalidParams);
  print(ServiceExtensionResponse.kExtensionError);
  print(ServiceExtensionResponse.kExtensionErrorMax);
  print(ServiceExtensionResponse.kExtensionErrorMin);
}
