diff --git a/src/libs/OpenAI/Generated/JsonConverters.CreateTranscriptionRequestResponseFormat.g.cs b/src/libs/OpenAI/Generated/JsonConverters.AudioResponseFormat.g.cs
similarity index 64%
rename from src/libs/OpenAI/Generated/JsonConverters.CreateTranscriptionRequestResponseFormat.g.cs
rename to src/libs/OpenAI/Generated/JsonConverters.AudioResponseFormat.g.cs
index 90296ce3..9529d43f 100644
--- a/src/libs/OpenAI/Generated/JsonConverters.CreateTranscriptionRequestResponseFormat.g.cs
+++ b/src/libs/OpenAI/Generated/JsonConverters.AudioResponseFormat.g.cs
@@ -3,10 +3,10 @@
namespace OpenAI.JsonConverters
{
///
- public sealed class CreateTranscriptionRequestResponseFormatJsonConverter : global::System.Text.Json.Serialization.JsonConverter
+ public sealed class AudioResponseFormatJsonConverter : global::System.Text.Json.Serialization.JsonConverter
{
///
- public override global::OpenAI.CreateTranscriptionRequestResponseFormat Read(
+ public override global::OpenAI.AudioResponseFormat Read(
ref global::System.Text.Json.Utf8JsonReader reader,
global::System.Type typeToConvert,
global::System.Text.Json.JsonSerializerOptions options)
@@ -18,7 +18,7 @@ public sealed class CreateTranscriptionRequestResponseFormatJsonConverter : glob
var stringValue = reader.GetString();
if (stringValue != null)
{
- return global::OpenAI.CreateTranscriptionRequestResponseFormatExtensions.ToEnum(stringValue) ?? default;
+ return global::OpenAI.AudioResponseFormatExtensions.ToEnum(stringValue) ?? default;
}
break;
@@ -26,7 +26,7 @@ public sealed class CreateTranscriptionRequestResponseFormatJsonConverter : glob
case global::System.Text.Json.JsonTokenType.Number:
{
var numValue = reader.GetInt32();
- return (global::OpenAI.CreateTranscriptionRequestResponseFormat)numValue;
+ return (global::OpenAI.AudioResponseFormat)numValue;
}
default:
throw new global::System.ArgumentOutOfRangeException(nameof(reader));
@@ -38,12 +38,12 @@ public sealed class CreateTranscriptionRequestResponseFormatJsonConverter : glob
///
public override void Write(
global::System.Text.Json.Utf8JsonWriter writer,
- global::OpenAI.CreateTranscriptionRequestResponseFormat value,
+ global::OpenAI.AudioResponseFormat value,
global::System.Text.Json.JsonSerializerOptions options)
{
writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer));
- writer.WriteStringValue(global::OpenAI.CreateTranscriptionRequestResponseFormatExtensions.ToValueString(value));
+ writer.WriteStringValue(global::OpenAI.AudioResponseFormatExtensions.ToValueString(value));
}
}
}
diff --git a/src/libs/OpenAI/Generated/JsonConverters.CreateTranscriptionRequestResponseFormatNullable.g.cs b/src/libs/OpenAI/Generated/JsonConverters.AudioResponseFormatNullable.g.cs
similarity index 66%
rename from src/libs/OpenAI/Generated/JsonConverters.CreateTranscriptionRequestResponseFormatNullable.g.cs
rename to src/libs/OpenAI/Generated/JsonConverters.AudioResponseFormatNullable.g.cs
index f6f9593a..ee8e935d 100644
--- a/src/libs/OpenAI/Generated/JsonConverters.CreateTranscriptionRequestResponseFormatNullable.g.cs
+++ b/src/libs/OpenAI/Generated/JsonConverters.AudioResponseFormatNullable.g.cs
@@ -3,10 +3,10 @@
namespace OpenAI.JsonConverters
{
///
- public sealed class CreateTranscriptionRequestResponseFormatNullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter
+ public sealed class AudioResponseFormatNullableJsonConverter : global::System.Text.Json.Serialization.JsonConverter
{
///
- public override global::OpenAI.CreateTranscriptionRequestResponseFormat? Read(
+ public override global::OpenAI.AudioResponseFormat? Read(
ref global::System.Text.Json.Utf8JsonReader reader,
global::System.Type typeToConvert,
global::System.Text.Json.JsonSerializerOptions options)
@@ -18,7 +18,7 @@ public sealed class CreateTranscriptionRequestResponseFormatNullableJsonConverte
var stringValue = reader.GetString();
if (stringValue != null)
{
- return global::OpenAI.CreateTranscriptionRequestResponseFormatExtensions.ToEnum(stringValue);
+ return global::OpenAI.AudioResponseFormatExtensions.ToEnum(stringValue);
}
break;
@@ -26,7 +26,7 @@ public sealed class CreateTranscriptionRequestResponseFormatNullableJsonConverte
case global::System.Text.Json.JsonTokenType.Number:
{
var numValue = reader.GetInt32();
- return (global::OpenAI.CreateTranscriptionRequestResponseFormat)numValue;
+ return (global::OpenAI.AudioResponseFormat)numValue;
}
default:
throw new global::System.ArgumentOutOfRangeException(nameof(reader));
@@ -38,7 +38,7 @@ public sealed class CreateTranscriptionRequestResponseFormatNullableJsonConverte
///
public override void Write(
global::System.Text.Json.Utf8JsonWriter writer,
- global::OpenAI.CreateTranscriptionRequestResponseFormat? value,
+ global::OpenAI.AudioResponseFormat? value,
global::System.Text.Json.JsonSerializerOptions options)
{
writer = writer ?? throw new global::System.ArgumentNullException(nameof(writer));
@@ -49,7 +49,7 @@ public override void Write(
}
else
{
- writer.WriteStringValue(global::OpenAI.CreateTranscriptionRequestResponseFormatExtensions.ToValueString(value.Value));
+ writer.WriteStringValue(global::OpenAI.AudioResponseFormatExtensions.ToValueString(value.Value));
}
}
}
diff --git a/src/libs/OpenAI/Generated/JsonSerializerContext.g.cs b/src/libs/OpenAI/Generated/JsonSerializerContext.g.cs
index 8bcbd42e..f2a08475 100644
--- a/src/libs/OpenAI/Generated/JsonSerializerContext.g.cs
+++ b/src/libs/OpenAI/Generated/JsonSerializerContext.g.cs
@@ -163,8 +163,8 @@ namespace OpenAI
typeof(global::OpenAI.JsonConverters.CreateEmbeddingResponseObjectNullableJsonConverter),
typeof(global::OpenAI.JsonConverters.CreateTranscriptionRequestModelJsonConverter),
typeof(global::OpenAI.JsonConverters.CreateTranscriptionRequestModelNullableJsonConverter),
- typeof(global::OpenAI.JsonConverters.CreateTranscriptionRequestResponseFormatJsonConverter),
- typeof(global::OpenAI.JsonConverters.CreateTranscriptionRequestResponseFormatNullableJsonConverter),
+ typeof(global::OpenAI.JsonConverters.AudioResponseFormatJsonConverter),
+ typeof(global::OpenAI.JsonConverters.AudioResponseFormatNullableJsonConverter),
typeof(global::OpenAI.JsonConverters.CreateTranscriptionRequestTimestampGranularitieJsonConverter),
typeof(global::OpenAI.JsonConverters.CreateTranscriptionRequestTimestampGranularitieNullableJsonConverter),
typeof(global::OpenAI.JsonConverters.CreateTranslationRequestModelJsonConverter),
diff --git a/src/libs/OpenAI/Generated/JsonSerializerContextTypes.g.cs b/src/libs/OpenAI/Generated/JsonSerializerContextTypes.g.cs
index dea18ea4..c9756b40 100644
--- a/src/libs/OpenAI/Generated/JsonSerializerContextTypes.g.cs
+++ b/src/libs/OpenAI/Generated/JsonSerializerContextTypes.g.cs
@@ -961,7 +961,7 @@ public sealed partial class JsonSerializerContextTypes
///
///
///
- public global::OpenAI.CreateTranscriptionRequestResponseFormat? Type237 { get; set; }
+ public global::OpenAI.AudioResponseFormat? Type237 { get; set; }
///
///
///
diff --git a/src/libs/OpenAI/Generated/OpenAI.AudioClient.CreateTranscription.g.cs b/src/libs/OpenAI/Generated/OpenAI.AudioClient.CreateTranscription.g.cs
index 6c538273..8608f3b8 100644
--- a/src/libs/OpenAI/Generated/OpenAI.AudioClient.CreateTranscription.g.cs
+++ b/src/libs/OpenAI/Generated/OpenAI.AudioClient.CreateTranscription.g.cs
@@ -72,7 +72,7 @@ partial void ProcessCreateTranscriptionResponseContent(
content: new global::System.Net.Http.StringContent($"{request.Prompt}"),
name: "prompt");
}
- if (request.ResponseFormat != global::OpenAI.CreateTranscriptionRequestResponseFormat.Json)
+ if (request.ResponseFormat != global::OpenAI.AudioResponseFormat.Json)
{
__httpRequestContent.Add(
content: new global::System.Net.Http.StringContent($"{request.ResponseFormat?.ToValueString()}"),
@@ -157,7 +157,7 @@ partial void ProcessCreateTranscriptionResponseContent(
/// An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should match the audio language.
///
///
- /// The format of the transcript output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
+ /// The format of the output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
/// Default Value: json
///
///
@@ -176,7 +176,7 @@ partial void ProcessCreateTranscriptionResponseContent(
global::OpenAI.AnyOf model,
string? language = default,
string? prompt = default,
- global::OpenAI.CreateTranscriptionRequestResponseFormat? responseFormat = global::OpenAI.CreateTranscriptionRequestResponseFormat.Json,
+ global::OpenAI.AudioResponseFormat? responseFormat = global::OpenAI.AudioResponseFormat.Json,
double? temperature = 0,
global::System.Collections.Generic.IList? timestampGranularities = default,
global::System.Threading.CancellationToken cancellationToken = default)
diff --git a/src/libs/OpenAI/Generated/OpenAI.AudioClient.CreateTranslation.g.cs b/src/libs/OpenAI/Generated/OpenAI.AudioClient.CreateTranslation.g.cs
index c6dcd0bf..9358ad3f 100644
--- a/src/libs/OpenAI/Generated/OpenAI.AudioClient.CreateTranslation.g.cs
+++ b/src/libs/OpenAI/Generated/OpenAI.AudioClient.CreateTranslation.g.cs
@@ -66,10 +66,10 @@ partial void ProcessCreateTranslationResponseContent(
content: new global::System.Net.Http.StringContent($"{request.Prompt}"),
name: "prompt");
}
- if (request.ResponseFormat != "json")
+ if (request.ResponseFormat != global::OpenAI.AudioResponseFormat.Json)
{
__httpRequestContent.Add(
- content: new global::System.Net.Http.StringContent($"{request.ResponseFormat}"),
+ content: new global::System.Net.Http.StringContent($"{request.ResponseFormat?.ToValueString()}"),
name: "response_format");
}
if (request.Temperature != 0)
@@ -142,7 +142,7 @@ partial void ProcessCreateTranslationResponseContent(
/// An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should be in English.
///
///
- /// The format of the transcript output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
+ /// The format of the output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
/// Default Value: json
///
///
@@ -156,7 +156,7 @@ partial void ProcessCreateTranslationResponseContent(
string filename,
global::OpenAI.AnyOf model,
string? prompt = default,
- string? responseFormat = "json",
+ global::OpenAI.AudioResponseFormat? responseFormat = global::OpenAI.AudioResponseFormat.Json,
double? temperature = 0,
global::System.Threading.CancellationToken cancellationToken = default)
{
diff --git a/src/libs/OpenAI/Generated/OpenAI.IAudioClient.CreateTranscription.g.cs b/src/libs/OpenAI/Generated/OpenAI.IAudioClient.CreateTranscription.g.cs
index 6edcce2d..ae9a4aae 100644
--- a/src/libs/OpenAI/Generated/OpenAI.IAudioClient.CreateTranscription.g.cs
+++ b/src/libs/OpenAI/Generated/OpenAI.IAudioClient.CreateTranscription.g.cs
@@ -34,7 +34,7 @@ public partial interface IAudioClient
/// An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should match the audio language.
///
///
- /// The format of the transcript output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
+ /// The format of the output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
/// Default Value: json
///
///
@@ -53,7 +53,7 @@ public partial interface IAudioClient
global::OpenAI.AnyOf model,
string? language = default,
string? prompt = default,
- global::OpenAI.CreateTranscriptionRequestResponseFormat? responseFormat = global::OpenAI.CreateTranscriptionRequestResponseFormat.Json,
+ global::OpenAI.AudioResponseFormat? responseFormat = global::OpenAI.AudioResponseFormat.Json,
double? temperature = 0,
global::System.Collections.Generic.IList? timestampGranularities = default,
global::System.Threading.CancellationToken cancellationToken = default);
diff --git a/src/libs/OpenAI/Generated/OpenAI.IAudioClient.CreateTranslation.g.cs b/src/libs/OpenAI/Generated/OpenAI.IAudioClient.CreateTranslation.g.cs
index 8c518b74..beaca3e3 100644
--- a/src/libs/OpenAI/Generated/OpenAI.IAudioClient.CreateTranslation.g.cs
+++ b/src/libs/OpenAI/Generated/OpenAI.IAudioClient.CreateTranslation.g.cs
@@ -31,7 +31,7 @@ public partial interface IAudioClient
/// An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should be in English.
///
///
- /// The format of the transcript output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
+ /// The format of the output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
/// Default Value: json
///
///
@@ -45,7 +45,7 @@ public partial interface IAudioClient
string filename,
global::OpenAI.AnyOf model,
string? prompt = default,
- string? responseFormat = "json",
+ global::OpenAI.AudioResponseFormat? responseFormat = global::OpenAI.AudioResponseFormat.Json,
double? temperature = 0,
global::System.Threading.CancellationToken cancellationToken = default);
}
diff --git a/src/libs/OpenAI/Generated/OpenAI.Models.CreateTranscriptionRequestResponseFormat.g.cs b/src/libs/OpenAI/Generated/OpenAI.Models.AudioResponseFormat.g.cs
similarity index 52%
rename from src/libs/OpenAI/Generated/OpenAI.Models.CreateTranscriptionRequestResponseFormat.g.cs
rename to src/libs/OpenAI/Generated/OpenAI.Models.AudioResponseFormat.g.cs
index bfada1f7..a118669e 100644
--- a/src/libs/OpenAI/Generated/OpenAI.Models.CreateTranscriptionRequestResponseFormat.g.cs
+++ b/src/libs/OpenAI/Generated/OpenAI.Models.AudioResponseFormat.g.cs
@@ -4,10 +4,10 @@
namespace OpenAI
{
///
- /// The format of the transcript output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
+ /// The format of the output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
/// Default Value: json
///
- public enum CreateTranscriptionRequestResponseFormat
+ public enum AudioResponseFormat
{
///
/// `json`, `text`, `srt`, `verbose_json`, or `vtt`.
@@ -34,35 +34,35 @@ public enum CreateTranscriptionRequestResponseFormat
///
/// Enum extensions to do fast conversions without the reflection.
///
- public static class CreateTranscriptionRequestResponseFormatExtensions
+ public static class AudioResponseFormatExtensions
{
///
/// Converts an enum to a string.
///
- public static string ToValueString(this CreateTranscriptionRequestResponseFormat value)
+ public static string ToValueString(this AudioResponseFormat value)
{
return value switch
{
- CreateTranscriptionRequestResponseFormat.Json => "json",
- CreateTranscriptionRequestResponseFormat.Text => "text",
- CreateTranscriptionRequestResponseFormat.Srt => "srt",
- CreateTranscriptionRequestResponseFormat.VerboseJson => "verbose_json",
- CreateTranscriptionRequestResponseFormat.Vtt => "vtt",
+ AudioResponseFormat.Json => "json",
+ AudioResponseFormat.Text => "text",
+ AudioResponseFormat.Srt => "srt",
+ AudioResponseFormat.VerboseJson => "verbose_json",
+ AudioResponseFormat.Vtt => "vtt",
_ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null),
};
}
///
/// Converts an string to a enum.
///
- public static CreateTranscriptionRequestResponseFormat? ToEnum(string value)
+ public static AudioResponseFormat? ToEnum(string value)
{
return value switch
{
- "json" => CreateTranscriptionRequestResponseFormat.Json,
- "text" => CreateTranscriptionRequestResponseFormat.Text,
- "srt" => CreateTranscriptionRequestResponseFormat.Srt,
- "verbose_json" => CreateTranscriptionRequestResponseFormat.VerboseJson,
- "vtt" => CreateTranscriptionRequestResponseFormat.Vtt,
+ "json" => AudioResponseFormat.Json,
+ "text" => AudioResponseFormat.Text,
+ "srt" => AudioResponseFormat.Srt,
+ "verbose_json" => AudioResponseFormat.VerboseJson,
+ "vtt" => AudioResponseFormat.Vtt,
_ => null,
};
}
diff --git a/src/libs/OpenAI/Generated/OpenAI.Models.CreateTranscriptionRequest.g.cs b/src/libs/OpenAI/Generated/OpenAI.Models.CreateTranscriptionRequest.g.cs
index 3f37767e..b83c292c 100644
--- a/src/libs/OpenAI/Generated/OpenAI.Models.CreateTranscriptionRequest.g.cs
+++ b/src/libs/OpenAI/Generated/OpenAI.Models.CreateTranscriptionRequest.g.cs
@@ -46,12 +46,12 @@ public sealed partial class CreateTranscriptionRequest
public string? Prompt { get; set; }
///
- /// The format of the transcript output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
+ /// The format of the output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
/// Default Value: json
///
[global::System.Text.Json.Serialization.JsonPropertyName("response_format")]
- [global::System.Text.Json.Serialization.JsonConverter(typeof(global::OpenAI.JsonConverters.CreateTranscriptionRequestResponseFormatJsonConverter))]
- public global::OpenAI.CreateTranscriptionRequestResponseFormat? ResponseFormat { get; set; } = global::OpenAI.CreateTranscriptionRequestResponseFormat.Json;
+ [global::System.Text.Json.Serialization.JsonConverter(typeof(global::OpenAI.JsonConverters.AudioResponseFormatJsonConverter))]
+ public global::OpenAI.AudioResponseFormat? ResponseFormat { get; set; } = global::OpenAI.AudioResponseFormat.Json;
///
/// The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.
diff --git a/src/libs/OpenAI/Generated/OpenAI.Models.CreateTranslationRequest.g.cs b/src/libs/OpenAI/Generated/OpenAI.Models.CreateTranslationRequest.g.cs
index a8e618b4..e1866811 100644
--- a/src/libs/OpenAI/Generated/OpenAI.Models.CreateTranslationRequest.g.cs
+++ b/src/libs/OpenAI/Generated/OpenAI.Models.CreateTranslationRequest.g.cs
@@ -40,11 +40,12 @@ public sealed partial class CreateTranslationRequest
public string? Prompt { get; set; }
///
- /// The format of the transcript output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
+ /// The format of the output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.
/// Default Value: json
///
[global::System.Text.Json.Serialization.JsonPropertyName("response_format")]
- public string? ResponseFormat { get; set; } = "json";
+ [global::System.Text.Json.Serialization.JsonConverter(typeof(global::OpenAI.JsonConverters.AudioResponseFormatJsonConverter))]
+ public global::OpenAI.AudioResponseFormat? ResponseFormat { get; set; } = global::OpenAI.AudioResponseFormat.Json;
///
/// The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.
diff --git a/src/libs/OpenAI/openapi.yaml b/src/libs/OpenAI/openapi.yaml
index 90528cae..dd431cbf 100644
--- a/src/libs/OpenAI/openapi.yaml
+++ b/src/libs/OpenAI/openapi.yaml
@@ -5638,15 +5638,7 @@ components:
type: string
description: "An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should match the audio language.\n"
response_format:
- enum:
- - json
- - text
- - srt
- - verbose_json
- - vtt
- type: string
- description: "The format of the transcript output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.\n"
- default: json
+ $ref: '#/components/schemas/AudioResponseFormat'
temperature:
type: number
description: "The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.\n"
@@ -5776,6 +5768,16 @@ components:
name: The transcription object (Verbose JSON)
group: audio
example: "{\n \"task\": \"transcribe\",\n \"language\": \"english\",\n \"duration\": 8.470000267028809,\n \"text\": \"The beach was a popular spot on a hot summer day. People were swimming in the ocean, building sandcastles, and playing beach volleyball.\",\n \"segments\": [\n {\n \"id\": 0,\n \"seek\": 0,\n \"start\": 0.0,\n \"end\": 3.319999933242798,\n \"text\": \" The beach was a popular spot on a hot summer day.\",\n \"tokens\": [\n 50364, 440, 7534, 390, 257, 3743, 4008, 322, 257, 2368, 4266, 786, 13, 50530\n ],\n \"temperature\": 0.0,\n \"avg_logprob\": -0.2860786020755768,\n \"compression_ratio\": 1.2363636493682861,\n \"no_speech_prob\": 0.00985979475080967\n },\n ...\n ]\n}\n"
+ AudioResponseFormat:
+ enum:
+ - json
+ - text
+ - srt
+ - verbose_json
+ - vtt
+ type: string
+ description: "The format of the output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.\n"
+ default: json
CreateTranslationRequest:
required:
- file
@@ -5800,9 +5802,7 @@ components:
type: string
description: "An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should be in English.\n"
response_format:
- type: string
- description: "The format of the transcript output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.\n"
- default: json
+ $ref: '#/components/schemas/AudioResponseFormat'
temperature:
type: number
description: "The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.\n"