From 6ab520746f4c323a19c650dc62dfe05d80ef200b Mon Sep 17 00:00:00 2001 From: Matthew Tang Date: Fri, 5 Jun 2026 15:19:18 -0700 Subject: [PATCH] feat: Pass in serializer options to be AOT compliant PiperOrigin-RevId: 927504092 --- ...tContentSimpleTextVertexTest.websocket.log | 22 +- ...tSystemInstructionVertexTest.websocket.log | 21 +- ...ClientContentToolsVertexTest.websocket.log | 34 +- ...RealtimeInputAudioVertexTest.websocket.log | 23 +- ...dRealtimeInputTextVertexTest.websocket.log | 19 +- ...seFunctionResponseVertexTest.websocket.log | 36 +- Google.GenAI.E2E.Tests/packages.lock.json | 630 +++++++++--------- .../GoogleGenAIExtensionsTest.cs | 4 +- Google.GenAI/Batches.cs | 61 +- Google.GenAI/Caches.cs | 49 +- Google.GenAI/Files.cs | 53 +- Google.GenAI/Models.cs | 161 +++-- Google.GenAI/Operations.cs | 18 +- Google.GenAI/Tunings.cs | 69 +- Google.GenAI/packages.lock.json | 511 +++++++------- 15 files changed, 926 insertions(+), 785 deletions(-) diff --git a/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentSimpleTextVertexTest.websocket.log b/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentSimpleTextVertexTest.websocket.log index c391984f..6175e08a 100644 --- a/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentSimpleTextVertexTest.websocket.log +++ b/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentSimpleTextVertexTest.websocket.log @@ -20,7 +20,7 @@ } <86 { "setupComplete": { - "sessionId": "bb8abf03-05d4-41c2-8f66-1b785a6df798" + "sessionId": "b0b5631c-685e-41fb-980f-8bf8f6c3af0e" } } @@ -32,7 +32,7 @@ { "inlineData": { "mimeType": "audio/pcm", - "data": "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aABrAG0AawBsAGsAZgBiAF8AWQBUAE8ARgA+ADUALAAgABQACgD+//L/5//c/8z/wP+0/6X/m/+Q/4X/fP9v/2T/XP9Q/0X/Ov8v/yj/JP8b/xT/C/8D//v+9f7s/uX+4v7d/tr+1/7S/tH+zv7K/sj+yv7L/s3+0f7P/tP+1f7W/tv+3/7j/un+8P76/v3+AP8F/wj/D/8X/x3/Jf8s/zL/OP89/0L/Rv9O/1L/V/9c/2D/Y/9m/2r/bf9v/3H/c/91/3b/dv92/3b/df91/3X/dv90/3T/cP9r/2z/Z/9h/2P/Yf9f/1r/WP9Y/1T/UP9M/0v/Rv9D/0P/P/89/zv/PP84/zL/M/80/zP/M/8z/zX/OP85/zj/Of85/zr/O/9A/0L/RP9I/0v/T/9O/1D/VP9U/1f/XP9e/1//Y/9h/2X/Zf9m/2f/af9o/2f/av9m/2b/Zv9h/2L/Yv9h/1//Wv9Y/1b/Uv9P/03/Sv9I/0T/P/88/zj/Mf8y/zH/Kf8k/yH/IP8c/xX/Ev8R/w//DP8K/wv/Cf8G/wT/Av8A/wD/Av8E/wP/A/8F/wf/Bf8H/wj/Cv8M/xL/Fv8Y/xz/IP8i/yX/K/8x/zf/Ov8//0X/TP9R/1f/XP9i/2b/bP9x/3X/ef98/4L/hf+H/4v/kv+S/5P/l/+a/5v/nv+g/6H/o/+i/6T/pP+j/6P/ov+j/6P/ov+g/57/oP+e/5r/mP+V/5L/j/+M/4j/hv+C/3//ev92/3P/b/9q/2f/Yv9e/13/WP9W/1L/Tv9K/0b/Rf9C/0D/PP86/zf/M/8y/zD/Lv8s/yv/Kv8s/yj/Jv8l/yX/Jf8k/yX/JP8k/yT/I/8l/yT/JP8l/yb/J/8o/yj/Jv8o/yn/K/8s/y3/L/8x/zH/Mf8z/zT/NP82/zj/Ov87/z7/P/9C/0L/Qf9D/0X/Rv9I/0n/S/9N/07/UP9U/1X/WP9b/1z/X/9h/2X/Zv9p/2z/cP9y/3T/ef96/33/gP+D/4T/hv+J/43/j/+R/5T/l/+Z/5r/mv+f/6P/pf+o/6v/rf+v/7H/s/+1/7X/t/+6/7z/vP+8/7z/vf++/7//v//A/7//v//A/8D/wP++/77/vf+9/7v/vP+7/7r/uP+2/7f/tP+v/7L/s/+y/7L/r/+u/6z/q/+q/6n/qv+o/6f/p/+m/6b/pf+k/6P/pP+j/6P/o/+j/6L/of+i/6H/o/+j/6L/o/+j/6P/o/+k/6T/pP+m/6j/pP+m/6f/p/+n/6f/qP+q/6v/rP+t/67/rv+u/7D/sP+z/7T/s/+2/7j/tv+4/7j/uf+7/73/vP++/7//v//B/8L/w//D/8X/xf/H/8f/zP/O/83/z//O/9D/0P/R/9L/0//V/9b/1//Y/9j/2v/a/9r/2//c/9v/3f/d/97/3//f/+H/4f/i/+P/4//k/+T/5f/o/+n/6f/q/+r/7P/y/+7/7v/u/+//8P/x//L/8//1//X/9f/2//j/+P/5//j/+v/7//z//v////7//v///wAAAAABAAMAAwADAAYABgAGAAcACAAIAAoACgAKAAoADgANAAwADgANAA8ADgAPAA0ADwAPABAAEAAQAA8ADwAQABAAEQAOABAADwAPAA8ADQAOAA4ADQAMAA0ADQALAAwACwAMAAsACwALAAgABgALAAsACwALAAsACwAKAAoACwALAAsACgALAAwACwAMAAwACgAMAA8ADQAOAA4AEAAQABIAEQASABQAFQAWABcAFwAZABsAGwAeABwAHwAkACMAIQAkACQAJgAmACgAKAAqACwALQAvAC0ALgAwADEAMQAxADIAMgAzADQANgA1ADYANwA2ADcANwA4ADkAOQA5ADoAOgA6ADsAOgA5AD4APAA6AD0APAA9AD0APAA9AD0APAA9AD0APQA+AD4APQA+AD4APgA/AEAAPwBAAD8AQABAAEEAQQBDAEIAQgBDAEMARABEAEUARQBHAEYA" + "data": "AQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAgACAAEAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQACAAEAAgABAAEAAQAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAA//8AAP///////////////////////////////////v/+/////v/+///////+/////v/+//7//f/+//3//f/+//3//f/+//3//f/+//3//f/9//3//f/8//3//f/8//3//f/8//z//P/8//z//f/8//z//P/8//z/+//8//z//P/8//z//P/7//v/+//7//v/+//7//v/+//7//v/+v/7//v/+//7//v/+//6//r/+//6//r/+//6//r/+v/6//r/+v/6//r/+//6//r/+v/6//r/+f/5//r/+v/6//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+P/5//j/+P/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//j/+P/5//n/+P/4//j/+P/4//j/+P/4//j/+P/4//j/+P/4//j/+P/4//j/+P/5//j/+P/4//f/+P/4//f/9//3//f/9//3//f/9//3//f/9//2//f/9//2//f/9v/2//f/9v/1//b/9v/2//b/9v/2//b/9v/2//b/9f/1//X/9f/0//X/9f/1//X/9f/1//T/9f/0//T/9P/0//X/9P/0//T/8//0//T/8//0//P/9P/z//T/8//0//P/8//z//L/8//z//L/8//y//L/8//z//L/8//y//L/8v/y//L/8v/y//H/8v/y//L/8v/y//L/8v/x//H/8f/x//H/8f/x//L/8f/x//L/8v/x//H/8f/x//H/8v/x//H/8f/x//H/8f/w//H/8P/x//H/8f/x//H/8f/x//H/8P/x//H/8P/w//D/8P/w//D/8f/x//D/8P/x//D/8P/w//D/8P/x//H/8f/x//H/8f/w//H/8f/x//H/8f/x//H/8f/x//H/8f/x//H/8f/x//H/8f/x//H/8f/x//H/8f/x//H/8v/y//L/8v/y//L/8v/x//L/8f/x//H/8f/y//L/8f/y//L/8v/y//L/8v/y//L/8v/y//L/8v/y//P/8v/y//P/8//z//P/8//z//P/8//z//P/8//z//P/8v/z//P/8//z//P/8//y//P/8//z//P/8//z//P/8//z//P/8//z//P/8//z//P/8//z//P/8//z//P/8//z//P/8//z//P/8//z//P/8//z//P/8//z//P/8//0//T/8//0//P/8//0//P/8//z//P/8v/z//L/8v/z//P/8//z//L/8//y//L/8//y//L/8v/y//L/8v/y//L/8v/y//H/8v/x//H/8f/x//H/8f/y//L/8v/x//L/8f/x//L/8v/y//H/8f/x//H/8f/x//H/8f/x//L/8f/x//H/8f/x//H/8f/w//H/8P/w//H/8f/w//H/8P/x//H/8f/x//H/8f/x//D/8P/w//D/8P/w//D/8P/w//H/8P/w//D/8P/w//D/8P/x//D/8P/w//D/8f/w//D/8f/w//D/8f/x//D/8f/x//D/8P/x//L/8f/x//H/8f/y//L/8v/y//L/8f/x//L/8v/y//L/8v/y//L/8v/y//L/8v/y//L/8//y//P/8v/y//P/8//z//L/8v/z//P/8//z//P/8v/z//L/8v/z//L/8//z//P/8//z//P/8//z//P/8v/z//T/8//z//P/8//z//P/9P/0//P/9P/z//P/8//0//P/8//z//P/8//z//P/8//z//P/8//0//P/8//z//P/8//z//P/9P/z//T/8//z//P/8//z//T/9P/z//T/9P/0//T/9P/0//T/9P/0//T/9P/0//T/9P/0//T/9P/1//X/9P/1//X/9f/1//X/9f/1//X/9f/1//X/9f/1//X/9f/1//X/9f/1//X/9v/1//b/9v/1//b/9v/2//b/9//2//b/9//3//f/9v/2//b/9//3//f/9//4//j/+P/4//j/+P/4//j/+P/3//j/+P/4//j/+P/4//j/+P/4//j/+f/5//j/+P/4//j/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//r/+v/6//r/+v/7//v/+//7//v/+//6//r/+//7//z/+//7//z//P/8//z//f/9//3//f/9//3//f/+//7//v/+//7//v/+//////////////8AAAAAAAAAAAAAAAAAAAAAAAABAAAAAQABAAIAAgACAAMAAgADAAMAAwAEAAMABAAEAAUABQAFAAYABgAGAAYABgAGAAcABwAHAAcABgAIAAgACQAJAAkACQAJAAoACQAJAAoACQAJAAkACQAKAAkACgAJAAkACAAJAAoACQALAAkACgAKAAkACgAJAAkACQAKAAoACwAKAAoACwAIAAgACQAJAAwACwALAAwACwALAAwACwALAAwACwANAAwADQAMAAwADAAKAAsADQAMAAoADQAKAAoACwAKAAsACQAJAAkACAAJAAUABgAGAAEABQAIAAYABwAHAAYABgAFAAcACQAFAAkABQAGAAoACAAJAAoACgALAAwAEgAOABEAFAARABMAFgAVABcAGAAZABoAGwAdAB0AGwAhABwAIgAiAB4AHQAdABgAFwAUABMAFAAQAA4AEAAIAAwABgAAAAMA/f/6//v/+v/2/+3/7f/o/+D/4v/d/93/3P/U/9f/1f/R/8//yv/O/8z/yf/S/9X/yv/K/8b/wP/A/8H/vf/C/7//uv/A/7//uv+8/7z/vP/B/8X/x//J/8b/w//C/8P/xf/I/87/zf/Q/9b/1P/Y/9T/2v/a/+D/5v/o/+//5P/g/9f/2v/Y/9b/5P/m/+z/7v/0//b/8f/1//T/9v8EAP//CAAOAAUAAwAIAAcACQAUABoALgA0AEIARwBQAFcAWwBrAHgAigCTAJwAqgCrAKcAsQCpAKgAtwC2ALoAygDFALQAtQCvAJ0AngCnAJQAmgCXAIMAdgBmAFEAMAAxAB0AEwAJAAEA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" } } ] @@ -48,7 +48,23 @@ { "inlineData": { "mimeType": "audio/pcm", - "data": "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" + "data": "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" + } + } + ] + } + } +} + +<15581 { + "serverContent": { + "modelTurn": { + "role": "model", + "parts": [ + { + "inlineData": { + "mimeType": "audio/pcm", + "data": "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7P/s/+v/7P/r/+v/6//t/+7/7P/u/+r/7//u/+z/7//v//L/8v/u//X/+//3//f/+//+/wIABAAAAAoACQAMABEAEwAXABoAGwAdACIAKwArACUALwAtADAANAAxADkANwA3AD0APAA/ADwAQwBGAEEARgBGAEkASABIAEsASQBLAEkASwBMAEoATABNAE8ASwBLAE4ATgBNAE4ATQBPAFAAUABSAFIAVQBTAE8ATwBUAFIAUQBSAFIAVABSAFQAUQBRAFYAVABPAFAAVgBRAFIATwBMAFEATwBLAFAATgBJAEsASgBLAEkARQBGAEMARQBFAEQARgBBAEIAQwBAAEMAQQBAAEQAPwBEAEIAQABAADwAPwBBAD8APQA/AD0APgA9AD8AOwA9AD8APAA9ADwAPQA8AD0APQA9ADkAQAA/ADkAPwA9ADoAOwA5ADwAPQA5ADgAOwA6ADYAOQA5ADcAOQA2ADUANQA5ADgANgA4ADQAOQA5ADYAOAA6ADcAOgA6ADcAOgA6ADwAOwA6ADwAQABCAEEAPABBAEAAPgBBAD8APgBBAEIAQQBBAEEAQQBCAEQAQAA9AEUAQQA/AEIAQQBCAD8AQQBAAEAAPwA/AD4AQgBAAEEAQQA+AEIAQwBGAEEAQwBBAEIAQABDAEIAQgBDAEAAQQBAAEEAPgA+AEAAPwA8ADsAOwA+ADoANwA4ADcAOAA1ADQANgA1ADMAMgAwADAALgAvAC8AKgAnACoAKwAoACoAKgAnACgAKQAnACgAKQAmACYAKgAnACUAJwAqACcAKAAqACcAKgAqACkAKQApACoAKAAqACoAKQAqACoAKAApACgAKgAoACUAIwAiACQAIgAjACIAIwAfACAAGwAdAB0AGgAaABkAGwAXABUAFwASABEAFAAOAA4ADwAOAA0ACgANAA4ACAAIAAkABwAGAAcACAADAAEABQAHAAYABwAFAAgABwAGAAgABwAFAAkACAAHAAUABQAGAAYABwAGAAYABwAIAAgACQAJAAkACQAJAAwACQAKAAwADAANAAsADQAKAAwACQAIAAsACwAMAAwADQANAA0ADQANAA4ADgAPAA0ADQAQABAADgAQABMADgAMABEADwAMAA4ADwAMAA4ADAAMAA0ADgANABAACwAKAA0ADQAKAAYABgAGAAUABwAGAAQABQADAAQA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" } } ] diff --git a/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentSystemInstructionVertexTest.websocket.log b/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentSystemInstructionVertexTest.websocket.log index db936998..0ba5fb0c 100644 --- a/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentSystemInstructionVertexTest.websocket.log +++ b/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentSystemInstructionVertexTest.websocket.log @@ -31,7 +31,7 @@ } <86 { "setupComplete": { - "sessionId": "42eb6c88-f1ff-4af1-9f87-bfa2548ebb9d" + "sessionId": "62ad588d-4f57-4d9c-88b1-1d42fd464b1a" } } @@ -41,20 +41,33 @@ "role": "model", "parts": [ { - "text": "The" + "text": "Did" } ] } } } -<204 { +<220 { "serverContent": { "modelTurn": { "role": "model", "parts": [ { - "text": " ocean is so big that over 95% of it remains unexplored. Did" + "text": " you know that the ocean is home to the world's largest living structure? It" + } + ] + } + } +} + +<200 { + "serverContent": { + "modelTurn": { + "role": "model", + "parts": [ + { + "text": "'s the Great Barrier Reef, off the coast of Australia.\n" } ] } diff --git a/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentToolsVertexTest.websocket.log b/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentToolsVertexTest.websocket.log index b639d7c9..2f13fa7c 100644 --- a/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentToolsVertexTest.websocket.log +++ b/Google.GenAI.E2E.Tests/Recordings/SendClientContentTest.SendClientContentToolsVertexTest.websocket.log @@ -41,18 +41,19 @@ } <86 { "setupComplete": { - "sessionId": "862a4019-163c-4441-b7a4-dcb9ef1652bb" + "sessionId": "9c227b3f-6ab2-406e-abb1-e092115e1eaa" } } -<171 { +<225 { "toolCall": { "functionCalls": [ { "name": "GetCurrentWeather", "args": { "location": "Redmond, WA" - } + }, + "id": "08c0e64a-5b82-485b-a3c9-89e459dc7919" } ] } @@ -64,3 +65,30 @@ } } +<451 { + "serverContent": { + "turnComplete": true, + "groundingMetadata": {} + }, + "usageMetadata": { + "promptTokenCount": 7, + "candidatesTokenCount": 7, + "totalTokenCount": 14, + "promptTokensDetails": [ + { + "modality": "TEXT", + "tokenCount": 7 + } + ], + "candidatesTokensDetails": [ + { + "modality": "TEXT", + "tokenCount": 7 + }, + { + "modality": "AUDIO" + } + ] + } +} + diff --git a/Google.GenAI.E2E.Tests/Recordings/SendRealtimeInputTest.SendRealtimeInputAudioVertexTest.websocket.log b/Google.GenAI.E2E.Tests/Recordings/SendRealtimeInputTest.SendRealtimeInputAudioVertexTest.websocket.log index ad315b64..053a27ee 100644 --- a/Google.GenAI.E2E.Tests/Recordings/SendRealtimeInputTest.SendRealtimeInputAudioVertexTest.websocket.log +++ b/Google.GenAI.E2E.Tests/Recordings/SendRealtimeInputTest.SendRealtimeInputAudioVertexTest.websocket.log @@ -18,30 +18,43 @@ } <86 { "setupComplete": { - "sessionId": "da69dd9c-2b97-4a5f-bd02-94f0edddfb9c" + "sessionId": "47b2760a-ffc3-4b48-84d2-fa0ac990f394" } } -<148 { +<147 { "serverContent": { "modelTurn": { "role": "model", "parts": [ { - "text": "Yeah" + "text": "Yes" } ] } } } -<174 { +<151 { "serverContent": { "modelTurn": { "role": "model", "parts": [ { - "text": ", loud and clear. What's up?\n" + "text": ", I can" + } + ] + } + } +} + +<192 { + "serverContent": { + "modelTurn": { + "role": "model", + "parts": [ + { + "text": " hear you loud and clear. What's on your mind?\n" } ] } diff --git a/Google.GenAI.E2E.Tests/Recordings/SendRealtimeInputTest.SendRealtimeInputTextVertexTest.websocket.log b/Google.GenAI.E2E.Tests/Recordings/SendRealtimeInputTest.SendRealtimeInputTextVertexTest.websocket.log index c0e116db..2c69b11d 100644 --- a/Google.GenAI.E2E.Tests/Recordings/SendRealtimeInputTest.SendRealtimeInputTextVertexTest.websocket.log +++ b/Google.GenAI.E2E.Tests/Recordings/SendRealtimeInputTest.SendRealtimeInputTextVertexTest.websocket.log @@ -15,7 +15,7 @@ } <86 { "setupComplete": { - "sessionId": "c70c8d9c-e0d8-4c91-937f-938dc77bb480" + "sessionId": "836c6a1d-89db-4a75-a39f-38d103286175" } } @@ -32,13 +32,26 @@ } } -<183 { +<148 { "serverContent": { "modelTurn": { "role": "model", "parts": [ { - "text": ", I'm here. How can I help you today?\n" + "text": ", I'" + } + ] + } + } +} + +<188 { + "serverContent": { + "modelTurn": { + "role": "model", + "parts": [ + { + "text": "m here. What would you like to talk about?\n" } ] } diff --git a/Google.GenAI.E2E.Tests/Recordings/SendToolResponseTest.SendToolResponseFunctionResponseVertexTest.websocket.log b/Google.GenAI.E2E.Tests/Recordings/SendToolResponseTest.SendToolResponseFunctionResponseVertexTest.websocket.log index f1001fd5..938f5a0b 100644 --- a/Google.GenAI.E2E.Tests/Recordings/SendToolResponseTest.SendToolResponseFunctionResponseVertexTest.websocket.log +++ b/Google.GenAI.E2E.Tests/Recordings/SendToolResponseTest.SendToolResponseFunctionResponseVertexTest.websocket.log @@ -5,7 +5,7 @@ } <86 { "setupComplete": { - "sessionId": "ede1e131-60f1-449c-a3b2-f62c8744fdfb" + "sessionId": "da909b47-624d-4f75-bd72-0c3b48796dd9" } } @@ -29,39 +29,7 @@ { "inlineData": { "mimeType": "audio/pcm", - "data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAA//8AAAAAAAAAAAAA//8AAAAAAAD///////8AAP////8AAAAAAAD//wAAAAAAAAAAAAD/////AAD/////AAAAAAAAAAAAAAAAAAD//wAAAAAAAP////8AAP//AAAAAAAAAAD///////8AAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAD//wAAAAD+//7/AAAAAP/////////////////////////////+/////////////////////////////v/+//7//v///////v/+//7//v/+//3//v/9//3//v/+//7//v/+//3//f/9//3//v/9//3//f/9//z//P/9//z//P/9//z//P/8//z//P/8//z//P/8//v//P/8//z/+//8//z/+//8//z//P/7//v/+//7//v/+//6//v/+//7//r/+v/7//r/+v/6//r/+v/6//r/+v/5//r/+v/6//r/+v/5//n/+v/6//n/+f/5//r/+f/5//n/+P/5//r/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//j/+P/5//n/+P/4//j/+P/4//j/+P/4//j/+P/4//j/+P/4//j/+P/4//j/+P/5//n/+P/4//j/+P/4//j/+P/3//f/+P/3//j/+f/3//j/+P/4//f/9//4//j/9//4//n/+P/3//j/+P/4//j/9//4//f/+P/4//j/+P/3//f/+P/5//n/+f/5//n/+f/5//n/+P/4//n/+P/5//n/+f/5//n/+P/5//r/+P/4//n/+f/5//n/+f/5//r/+f/5//n/+f/5//r/+v/5//n/+v/6//r/+v/6//n/+f/5//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+f/6//v/+v/6//r/+v/6//v/+v/7//r/+//7//r/+//7//v/+//7//r/+v/6//v/+//7//v/+//7//v/+v/7//z/+//7//v/+//7//v/+v/8//v/+//8//z/+//8//z/+//8//z/+//7//v//P/8//z//P/8//v//P/9//z/+//8//z//P/8//z//P/8//z//P/8//z//P/9//z//P/9//3//P/8//z//f/9//z//f/8//3//f/9//7//f/9//3//f/+//7//v/+//7//f/+//7//v/+///////+//7/////////AAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQACAAEAAQADAAMAAgACAAMAAgADAAMAAwADAAMAAwADAAMAAwADAAQABQAEAAUABAAEAAUABQAFAAUABQAGAAYABgAGAAYABwAGAAcABgAGAAYABwAHAAYABgAIAAcABwAIAAcABwAIAAcABwAHAAcABwAIAAcABwAIAAkACAAIAAgACAAIAAgACAAJAAgACQAJAAkACQAKAAkACQAJAAkACQAJAAoACAAJAAsACgAJAAkACgAJAAoACgAJAAkACgAKAAoACgAKAAoACgAKAAoACwAKAAoACwAKAAoACgAKAAoACgALAAsACgALAAsACgALAAsACwAMAAsACQAKAAoACwALAAsACwALAAsACwALAAoACwAMAAsACwALAAsACgALAAsACwALAAsACgALAAsACgALAAsACwALAAsACwALAAsACwAKAAsADQALAAoACgAKAAsACwALAAwACwALAAwACgALAAwACwALAAwACwALAAsADAALAAsACwALAAsADAALAAsADAAMAA0ADAAMAAwADAAMAA0ADgANAAwADAANAA0ADQANAA0ADQANAA4ADgAOAA4ADgAOAA0ADgAOAA4ADwAPAA8ADwAPAA8ADwAQABAAEAAQAA8AEAAQABEAEQAQABEAEQAQABEAEgASABIAEgASABIAEgATABMAEwATABQAFAATABQAFAAUABQAFQAVABQAFQAVABUAFgAWABYAFgAXABYAFQAWABYAFwAXABYAFgAYABYAFwAZABkAGQAYABgAGAAYABkAGQAZABkAGgAaABkAGQAZABkAGwAbABoAGgAbABoAGgAbABwAHAAbABsAHAAbABwAHAAbAB0AHQAcAB0AHQAeAB0AHQAdAB4AHQAeAB4AHQAeAB8AHgAeAB4AHgAfAB8AHwAfACAAHwAgACAAHwAgACEAIQAhACEAIAAhACAAIAAhACIAIQAiACIAIgAhACIAJAAiACIAIwAjACMAIgAjACMAIwAjACMAIwAkACQAJAAlACMAJAAkACQAJQAkACQAJQAlACUAJQAkACUAJAAmACUAJAAmACUAJgAlACYAKQAmACUAJQAlACYAJgAmACYAJgAmACYAJgAlACYAJwAoACgAJgAmACcAJwAnACcAJwAnACcAJgAnACcAJwAnACcAKAAnACcAJgAnACcAKAAnACgAKAAoACcAJwAoACgAKQAoACgAKAAoACgAKAAnACgAKQAoACgAKQAoACgAKQAoACgAKAAoACkAKAApACgAKQAoACgAKAAnACkAKAApACcAJgAoACcAKgAnACgAKAAnACkAJwAoACcAKAAoACgAJwApACgAJwAoACcAKAAoACcAJwAoACgAKAApACgAKAAnACYAKAAmACgAKQAmACYAJwApACYAKAAoACcAKQAmACgAJwAnACcAJwAoACYAJwAmACcAKAAmACcAJwAmACcAJwAmACUAJwAmACUAJgAlACYAJwAmACUAJQAlACcAIgAiACgAIwAmACUAJAAjACMAJQAjACQAJQAiACQAIwAjACMAIwAjACEAJAAiACEAIgAhACIAIQAiACIAIQAiAB8AIgAhAB8AIAAfACIAHwAeABsAHwAfABwAIQAeAB0AHQAbAB4AHQAbAB0AHAAbAB0AGwAbABoAGwAaABgAGwAZABkAGgAZABgAFwAZABgAFwAXABcAFwAXABcAFAAWABcAGAAUABQAFQATABQAFAATABQAEgARABIAEwARABEAEQAPAA8ADwAQAA8ADQAQAA0ADgAOAAwADQAMAAsADAANAAsACgAKAAsACQAIAAoACAAKAAkACAAHAAcACAAHAAcABgAFAAUABQAFAAQABQADAAMAAgADAAQAAAACAAQAAAAAAAEAAAD/////AAAAAP///P/+/////P/9//z//P/9//3/+//5//r/+v/5//n/+v/4//f/9//3//b/9v/2//b/9v/0//P/9P/1//L/8//y//L/8v/x//H/8f/v/+//8f/w/+7/7//u/+3/7f/t/+3/7P/t/+3/6//r/+v/6//q/+r/6f/q/+n/6P/o/+f/6P/n/+b/5v/m/+b/5f/j/+T/5P/j/+P/4//j/+L/4v/h/+H/4f/g/+D/3//f/97/3v/e/97/3v/e/93/2//d/9z/2//b/9v/2v/a/9r/2f/Z/9j/2f/Z/9f/1//W/9b/1v/W/9b/1f/V/9X/1P/U/9T/1P/T/9P/0//S/9H/0v/T/9H/0f/P/9D/0P/P/9D/0P/P/87/zv/O/8//zv/O/87/zf/M/8z/zf/M/83/zP/L/8z/zP/K/8n/yv/L/8r/yf/K/8j/yv/J/8j/yf/I/8j/yP/I/8j/yP/H/8f/x//H/8f/x//G/8X/xv/G/8X/xv/G/8b/xf/F/8X/xP/G/8X/xf/F/8X/xP/E/8T/xP/E/8T/xP/D/8T/xf/E/8T/xP/F/8T/w//E/8T/w//E/8T/w//D/8P/xP/D/8P/w//D/8T/wv/C/8L/xP/E/8P/w//C/8L/wv/D/8P/w//C/8L/wv/D/8P/w//C/8P/w//D/8L/wv/C/8P/wv/C/8L/wv/C/8L/wv/C/8L/wv/B/8P/wf/C/8L/wv/C/8H/wf/B/8L/wv/D/8H/wf/C/8H/wP/B/8H/wP/A/8D/wf/B/7//v//A/77/wP/A/77/v/+//8D/v/+//8D/v/++/77/vv+//7//v/+//77/vv+9/77/vv++/77/vf++/73/vv++/77/vv+9/73/vv++/73/u/++/7//vP++/77/vf+9/73/vv+8/77/vv+9/77/vf+9/73/vv++/73/vv+9/77/v/++/77/vv+//77/vv++/77/v/+//77/v/+//8D/v//B/8D/v//B/8D/wP/A/8D/wP/B/8L/wP/B/8L/wv/C/8P/wv/C/8L/wf/D/8P/wv/D/8P/xP/D/8T/xf/E/8T/xv/E/8X/xv/F/8b/xf/G/8f/x//H/8j/yP/H/8j/yP/I/8j/yP/J/8n/yv/K/8r/yv/L/8v/yv/K/8v/zP/M/8z/zP/M/83/zP/N/83/zv/P/87/zv/P/9H/z//P/9H/0v/S/9H/0//R/9L/0//T/9P/1P/V/9T/1P/V/9X/1f/W/9f/2P/X/9b/2P/Y/9j/2f/a/9r/2f/a/9v/2//b/93/3f/c/93/3f/d/93/3v/f/97/4P/h/9//4f/i/+L/4f/i/+T/4//j/+T/5P/k/+T/5f/l/+b/5f/l/+j/5//n/+f/5//n/+n/6f/p/+j/6f/r/+r/6v/q/+v/6//q/+r/7P/t/+v/7f/s/+3/7v/u/+7/7v/v/+7/7//v/+//8P/v/+//8P/x//H/8f/x//H/8v/z//L/8//y//P/9P/0//P/9P/0//X/9f/2//b/9v/4//f/9//4//f/9//4//j/+v/6//n/+//6//r/+//8//z//P/9//3//v/+//7//v/+////AAD//wAAAAAAAAAAAQABAAIAAQADAAMAAgACAAQABAAGAAUABQAGAAUABgAHAAYABwAIAAgACAAJAAkACgAJAAoACgALAA0ACgALAAwADQAMAA4ADgAOAA4ADgAPABAADwAQABAAEAARABEAEgASABIAEwATABQAFAAUABQAFAAVABYAFQAVABYAFwAWABcAGQAYABcAGAAYABkAGgAZABsAGgAbABsAGgAaABwAHQAdAB4AHQAeAB4AHQAeACAAHwAgACAAIAAiACIAIQAiACMAJAAkACUAJQAkACQAJQAmACcAJwAmACcAKgApACgAKQAqACoAKgArACwAKwArAC0ALQAtAC4ALQAuAC0ALgAvAC8AMAAwADEAMQAxADIAMwAzADMAMwAyADMANQA1ADQANAA1ADYANgA2ADUANgA2ADcANwA4ADkAOAA4ADkAOQA4ADkAOgA6ADoAOgA7ADoAOwA8ADwAPAA7ADwAPAA8AD0APQA9ADwAPQA9AD0APQA+AD0APQA+AD4APgA+AD0APgA/AD4APwA/AD4APgA/AD8APwBAAEAAPwA9AEAAQQA/AD8AQABAAEAAQQA/AEAAQQBAAEIAQQBAAEEAQQBBAEAAQABBAEEAQQBAAEAAQQBAAEEAQABCAEEAQABAAEEAQABAAD8AQABAAD4APwBAAD8APwA+AD4APwA/AD8APgA+AD4APgA+AD4APQA7ADwAPgA9AD0APgA8ADsAOgA7ADsAOwA8ADsAOgA6ADoAOQA5ADkAOgA6ADcAOQA5ADcAOAA3ADcANwA3ADYANgA2ADUANQA1ADUAMwAzADMAMwAzADMAMgAxADMAMgAyADEAMQAwADEAMAAuAC4ALwAvAC4ALgAsAC0ALQAtAC0AKwAsACsAKwArACoAKgAqACkAKAApACgAJwAnACYAJwAmACcAJgAkACUAJAAjACMAIgAiACEAIQAhAB8AIAAgACAAIAAeAB0AGwAcABwAGwAcABsAGQAaABoAGQAZABcAFwAVABUAFQAUABUAEwATABMAEQASABIADwAQABAAEQAQAA4ADAAMAA0ACwALAAoACgAKAAoACgAIAAcABwAGAAYABwAFAAUABAADAAMABAACAAIAAQABAAAAAAAAAAAAAAD+//7//v/9//z/+v/6//r/+f/5//j/+P/3//b/9f/1//T/9P/1//H/8//z//D/8P/v/+7/7v/u/+3/7P/r/+z/6//p/+n/5//o/+j/5//m/+X/5P/k/+P/4v/j/+H/4f/f/9//3//f/93/3v/c/9v/2//a/9v/3P/b/9f/1v/Y/9X/1//X/9T/1f/U/9T/0//T/9H/0v/S/9D/z//O/8//z//P/83/zv/O/8v/y//L/8v/yv/I/8r/yf/I/8j/yP/H/8b/xf/G/8b/xv/F/8T/w//D/8P/w//D/8L/wf/C/8L/v//A/8H/wP+//8D/vf++/7//vP+9/7//vf+8/7v/vP+8/7v/uv+7/7v/uv+7/7n/uf+4/7n/uf+7/7v/t/+3/7f/uP+3/7j/t/+2/7b/t/+3/7f/tv+3/7b/tv+2/7b/tv+1/7b/tf+1/7X/tP+1/7T/tP+2/7T/tP+2/7X/s/+1/7X/tv+2/7P/sv+0/7T/tP+0/7X/tP+0/7T/tP+0/7T/tP+1/7X/tP+0/7T/tP+2/7X/tP+0/7P/tP+1/7X/tv+0/7T/tf+1/7T/tf+0/7X/tP+0/7b/tP+1/7T/tf+1/7T/tP+1/7X/tP+1/7X/tf+1/7X/tf+0/7X/tf+3/7X/tP+2/7b/tf+0/7T/tf+1/7f/tf+z/7b/tf+1/7T/tf+1/7T/tP+z/7b/tv+1/7X/tP+0/7T/tP+0/7T/tP+0/7P/tP+0/7P/s/+0/7T/s/+z/7P/sv+z/7T/s/+z/7L/s/+0/7H/s/+0/7L/sv+y/7L/s/+z/7T/sv+x/7H/sf+y/7L/sv+y/7H/sf+y/7H/sP+x/7L/sv+x/7H/sP+w/7D/sP+w/7H/sP+w/6//sP+w/6//sf+w/6//sP+v/67/sP+v/7H/sv+u/6//sP+v/7D/sP+w/6//r/+v/7D/r/+v/7D/sP+x/7D/sP+u/6//sP+u/67/sP+w/6//rv+v/6//r/+v/7D/sP+x/6//rv+x/7D/sP+x/6//r/+w/6//rv+v/7D/sP+w/6//sP+w/7D/r/+w/7D/sf+w/6//sP+v/6//r/+w/7D/r/+v/6//sP+w/7D/r/+v/7D/r/+w/7D/sP+v/63/sP+w/6//r/+v/7D/sP+v/6//sP+u/6//sP+v/6//rv+u/67/r/+v/7D/sf+v/63/rv+v/67/rv+u/67/r/+u/67/r/+v/67/rf+v/63/rf+w/67/rv+v/67/rv+u/6//rv+u/63/rv+v/67/rv+t/63/rf+u/67/rv+u/6//rv+u/67/rf+u/63/rf+u/63/rf+u/67/r/+u/67/sP+v/63/rv+u/67/rv+v/6//r/+u/67/rv+v/7D/r/+v/6//r/+v/7D/sf+v/6//r/+w/7D/sP+x/7D/sP+x/7H/sf+x/7H/sf+x/7H/s/+w/7L/tf+y/7T/s/+z/7P/s/+0/7P/tP+z/7P/tP+0/7P/tP+1/7T/tf+2/7X/tf+1/7X/tv+2/7X/tv+3/7b/tv+3/7f/t/+3/7j/uP+3/7b/uf+6/7j/uf+5/7n/uf+5/7n/uv+6/7n/uv+6/7v/u/+7/7z/u/+7/7z/u/+8/7z/vP+8/7z/vf+9/73/vf++/77/vv++/73/vf++/77/wP++/73/vv++/7//wP/A/8D/wf/A/8D/wf/B/8H/wv/C/8H/wv/C/8H/xP/C/8L/w//D/8P/w//E/8T/xP/E/8T/xf/F/8T/xf/F/8b/xP/D/8b/xv/F/8f/xf/F/8b/x//G/8b/x//I/8f/xv/I/8j/yP/I/8j/yP/I/8f/yP/I/8f/yP/I/8j/yf/J/8n/yP/I/8n/yf/I/8j/yP/I/8b/yf/L/8n/yf/I/8n/yv/J/8r/yv/J/8n/yv/K/8r/yv/K/8r/yv/H/8n/yv/K/8r/yf/L/8v/yv/K/8v/zP/L/8r/y//M/8r/y//L/8n/y//P/8z/yv/L/8z/zf/M/83/zP/N/83/zP/O/87/zf/O/8//zv/N/87/0P/Q/8//zv/P/9D/0f/Q/9H/0f/R/9H/0v/S/9H/0f/R/9L/0P/P/9X/1v/S/9P/0//T/9P/1P/U/9T/1f/U/9X/1v/V/9X/1v/U/9b/1//W/9b/1//W/9f/1//X/9f/1v/W/9j/2f/Y/9j/2f/Z/9r/2f/b/9z/1v/Z/9r/2//b/9r/2//a/9v/2//b/9z/2//a/9z/3P/b/9z/3f/a/9v/3f/d/93/3f/d/93/3f/e/93/3P/c/97/3f/e/9//3//e/+D/3v/b/9//4P/g/+D/3v/f/9//3//g/+D/4P/f/+D/4f/g/+D/3//f/+D/4//h/+D/4f/h/+L/4v/i/+L/4v/h/+L/4v/j/+P/4v/i/+P/4//j/+T/4//k/+T/4//j/+P/5P/k/+P/5P/k/+T/5P/l/+T/5P/m/+X/4//k/+b/5v/l/+b/5v/m/+b/5f/n/+X/5v/m/+b/5//m/+b/5v/n/+X/6P/p/+b/6P/n/+f/5//n/+n/6P/o/+j/6f/o/+n/6f/p/+n/6f/p/+f/6f/q/+n/6v/p/+n/6v/q/+r/6//r/+z/6//r/+v/7P/t/+z/8P/t/+n/7f/u/+//7v/u/+//7v/u/+//8P/w/+//7//w//D/8f/x//H/8f/y//L/8v/y//L/8//z//T/8//0//T/9P/1//T/9f/2//b/9//2//L/9v/4//b/9//3//f/9//3//j/+P/4//n/+P/4//j/+f/5//n/+v/7//r/+v/7//v/+//7//v/+//8//v/+//8//z//f/8//3//f/9////+//9//7//f/+//3//f/9//3//v/+//7//v/+//7//f/9//7//f/+/wAA///+//7//v/+//7//v///////v/////////////////+//7/AAAAAP3///////7//v/////////+//3///8AAP///v////7//v/+////AAD+//7//v/+/////v/+///////9//7//v/+//7////+//7////8//v//v/+//7//f/9//z//f/9//3/+//9//z/+//6//r/+//7//v/+//7//r/+v/7//r/+v/6//n/+v/5//f/+P/5//j/9//3//b/9//3//j/+f/2//b/9v/1//X/9P/0//T/9f/0//P/9P/1//T/9P/z//P/8//z//H/8f/y//H/8f/x//D/8f/v/+//8P/v/+//7v/u/+3/7f/t/+3/7//u/+z/7P/s/+z/7P/s/+v/6//r/+v/6f/q/+n/6v/p/+n/6P/p/+f/5f/o/+f/6P/o/+f/5//m/+f/5v/m/+X/5v/l/+X/5f/l/+X/5P/m/+L/4v/j/+P/4v/i/+P/4v/k/+P/4v/j/+L/4f/g/+D/4P/g/+D/4P/g/+D/4P/f/+D/3//f/97/3v/e/9//3v/e/93/3v/e/93/3v/e/97/2v/b/93/3P/d/9v/3P/a/9v/3P/c/9r/2v/c/9r/2f/Y/9n/2f/Y/9n/2v/Z/9f/2f/Y/9j/2f/Y/9f/2P/Y/9f/1//Y/9f/2P/X/9b/1//V/9b/1//W/9b/1v/W/9X/1//X/9X/1v/W/9b/1P/V/9T/1P/U/9T/1//W/9X/1P/V/9T/1P/U/9P/1P/U/9X/1P/U/9T/0//T/9P/0v/S/9X/0v/T/9L/0//T/9P/1P/S/9L/1P/U/9P/0v/U/9P/0//T/9P/0P/R/9X/0v/S/9L/0f/R/9L/0f/R/9H/0f/R/9H/0f/R/9D/0f/R/9L/0v/R/9D/0P/Q/9H/0f/R/9H/0P/R/9D/0P/Q/9D/0f/Q/9D/0P/U/9T/zv/Q/9D/0f/R/9D/0f/R/9D/0P/R/9D/0v/S/9L/0v/R/9L/0v/R/9D/0v/R/9H/0v/R/9H/0v/R/9D/0v/T/9H/0v/Q/9L/0//S/9P/0f/P/9L/0f/R/9H/0v/R/9L/0//S/9H/0v/T/9H/0v/S/9L/0P/Q/9P/0//S/9H/0v/R/9L/0v/Q/9H/0v/S/9L/0f/R/9H/0f/R/9H/0f/T/9H/0P/Q/9D/0P/Q/8//0P/R/9D/z//P/9H/0P/R/9D/zv/P/83/0f/R/8//z//P/8//z//O/87/zf/O/8//z//O/83/zv/O/87/zf/Q/87/zf/O/87/zv/O/83/zf/O/83/y//M/83/zf/M/8z/zP/M/83/zv/L/8r/zP/L/8z/zP/M/8z/zP/L/8z/y//K/8r/y//K/8n/yv/J/8z/zv/J/8n/yv/J/8r/yf/H/8n/yP/J/8r/yf/I/8j/x//H/8f/xv/J/8f/xP/F/8T/xv/G/8b/xf/G/8T/w//F/8b/xf/F/8P/w//E/8T/w//C/8H/wf/B/8H/wf/B/8L/wf/B/8H/v//A/8D/v//B/7//v//A/73/vv/C/7//v/+//77/vv/A/73/vP+//77/vP+9/73/vP++/77/vP+7/73/vP+8/73/vP+8/7z/uv+7/77/u/+6/7v/u/+7/7v/vP+8/7v/uP+3/7r/u/+7/7r/uv+8/7v/vP+8/7n/uf+8/7r/u/+7/7r/u/+8/7r/vP++/7v/u/+8/7v/uv+7/7z/u/+8/7v/u/+8/73/vP+9/7z/vf+7/7r/vf++/7z/u/+8/7v/vf++/7v/vP++/7z/vv++/7z/vf++/73/v/+8/7v/vP+9/77/vf+9/73/vv++/7//v/++/7//vv+//7//wP/B/8D/vP++/8H/wf/C/8H/wP/B/8L/wf/A/8D/wP/B/8H/wf/B/8H/wf/A/8T/xP/C/8L/wv/D/8L/w//E/8P/w//E/8P/xP/D/8T/w//E/8X/x//H/8P/xf/G/8f/x//G/8b/xv/G/8b/xv/H/8f/xv/H/8f/x//I/8n/yv/J/8j/yP/I/8n/x//J/8r/yf/J/8r/yv/L/8r/yv/K/8v/zf/N/8j/y//M/83/z//N/83/zv/N/83/zv/O/87/zv/N/87/zv/Q/9H/z//M/9D/0P/P/9H/z//P/9D/z//P/9D/0f/P/8//z//Q/9D/0P/P/9L/0v/O/9D/0f/R/9H/0f/R/9H/0v/S/9L/0f/S/9L/0P/S/9L/0v/U/9P/0P/R/9P/0//U/9P/0//U/9T/1P/U/9X/1f/V/9X/1P/V/9f/1v/X/9j/1//X/9b/1v/Y/9f/1v/Y/9j/2P/Y/9j/2P/Y/9n/2P/X/9j/3f/b/9r/2//a/9r/2//a/9r/3P/b/9r/3P/c/9v/2//c/93/3f/c/93/3//e/9z/3f/d/93/3f/f/+D/3f/c/97/3//e/9//3//f/9//4f/e/9z/3v/e/+D/4P/f/9//3//f/+D/4P/g/9//3//f/97/4P/h/+H/4P/g/+L/4P/g/+H/4f/h/+D/4f/i/+H/4P/g/+D/4f/g/+D/3//f/+H/4f/h/+H/3//g/+D/3v/g/+H/3//d/97/3v/e/9//3v/d/97/3v/f/9//3v/c/93/3f/b/9z/3v/d/9v/2//d/9v/2v/b/9r/2v/a/9z/2v/X/9n/1//X/9n/1//X/9j/1//X/9b/1f/W/9b/1f/U/9b/1f/V/9X/1P/T/9L/0v/U/9P/0P/R/9D/z//R/9D/0P/R/8//zv/P/8//zv/P/8v/zf/P/87/y//L/8z/yv/K/8v/zP/K/8n/yv/I/8n/yf/I/8f/x//H/8b/x//I/8X/xf/H/8f/xf/F/8b/xf/E/8X/w//D/8X/xf/G/8T/wf/B/8T/xf/D/8L/xP/E/8T/wv/C/8L/wv/B/8H/wP+//8P/wv++/8D/wP/B/8H/wv/A/8H/wf++/8H/wf/A/7//wf/A/8D/wv/A/8H/wv/D/8D/vv/B/8L/wv/B/8H/wf/B/8P/wv/B/8P/w//D/8L/wf/E/8L/wP/D/8T/wv/C/8H/wv/C/8P/xP/C/8P/xP/E/8T/w//D/8P/xf/E/8X/xv/E/8X/xP/E/8b/xv/F/8X/x//H/8b/x//H/8b/yP/J/8n/x//I/8r/yP/I/8j/yP/J/8n/yv/I/8r/zP/L/8n/y//L/8r/y//J/8z/zP/L/8v/y//L/8z/zP/M/83/zv/L/8z/z//N/87/z//Q/8//zP/O/8//0P/P/8//0P/R/9H/z//R/9H/0P/Q/9H/0P/Q/9D/0//U/9H/0v/V/9T/1P/T/9P/0//U/9f/1P/U/9X/1P/W/9f/1v/Y/9j/2P/Y/9n/2f/X/9n/2v/b/9r/2v/b/9r/2v/a/9r/3P/c/9z/3P/c/97/3P/b/93/3//f/+D/3//d/97/3v/f/+D/3//f/+D/4P/f/+H/4P/j/+P/4P/h/+L/5P/j/+L/5P/i/+T/5f/l/+T/5P/l/+X/5P/m/+X/5f/m/+X/5f/m/+X/5v/m/+f/5v/l/+j/5v/n/+j/5//o/+f/5//q/+n/6f/o/+b/6P/o/+j/6v/o/+b/6f/q/+X/5//q/+j/6f/p/+f/6P/n/+j/6v/p/+n/6f/q/+z/6f/o/+n/6f/p/+j/6P/p/+n/6P/p/+j/6f/o/+b/6P/q/+j/6P/o/+r/5//n/+j/5//n/+f/5v/l/+X/6P/n/+f/5f/l/+j/5v/n/+X/5f/m/+X/5P/k/+X/5f/j/+P/5P/j/+X/4//h/+P/" - } - } - ] - } - } -} - -<15581 { - "serverContent": { - "modelTurn": { - "role": "model", - "parts": [ - { - "inlineData": { - "mimeType": "audio/pcm", - "data": "0P/Q/8//zf/P/83/zf/R/9H/zv/N/9H/z//O/87/zf/Q/87/z//K/8f/zP/N/83/zf/N/8z/zP/L/8z/y//H/8n/yf/J/8r/yf/J/8n/yf/I/8j/xf/I/8j/xv/G/8n/xf/D/8b/xv/E/8T/w//D/7//wf/D/8T/wP+7/7v/v/+8/7v/uv+5/7n/uv+5/7n/uf+2/7r/uf+2/7n/t/+4/7b/sv+1/7P/sf+y/7H/sP+y/7H/rf+v/67/r/+v/6v/rf+t/6z/rv+o/63/sv+t/63/rf+s/67/rv+p/6r/qf+q/6v/qv+q/63/rP+o/6f/qP+n/6j/pf+k/6b/o/+k/6H/of+k/6P/o/+j/6H/oP+f/6P/of+i/6H/oP+g/6H/of+c/53/nv+d/5v/n/+g/5z/nv+d/57/n/+d/5v/mf+Z/5j/m/+b/5z/m/+a/5f/l/+Y/5b/lv+Y/5X/l/+V/5X/mP+W/5r/mP+V/5b/mP+X/5P/lf+S/5L/kv+R/5H/kP+Q/5L/kv+S/5P/kv+Q/4//kf+P/43/kf+R/5P/kf+R/5L/kP+R/5H/kv+T/5H/kv+S/5L/j/+V/5j/kf+R/5T/k/+U/5T/kv+U/5P/lP+V/5L/lP+R/5D/kv+R/5X/lP+U/5L/k/+T/5H/k/+R/5D/kf+O/47/j/+J/43/jv+N/5H/kf+Q/4v/j/+O/47/jv+O/47/jv+P/4//kP+Q/5H/kf+R/5H/j/+Q/47/j/+W/5X/kf+T/5H/k/+R/5D/kv+Q/5P/lf+U/5P/lv+S/5X/lf+V/5n/mP+U/5T/lf+V/5f/l/+X/5f/mf+Z/5n/m/+b/5v/nf+b/5v/m/+e/5//oP+c/53/n/+g/6P/o/+j/6T/n/+g/6T/ov+j/6L/ov+j/6T/p/+n/6X/o/+k/6b/qP+n/6X/p/+l/6j/qP+k/6v/q/+q/6v/rP+t/6r/r/+x/7D/rv+t/6v/rv+w/7P/r/+v/7X/s/+z/7X/tP+3/7n/uP+4/73/uv+6/73/vv+9/77/vv+//7//vv+9/77/wf+//73/v//A/8D/wP/H/8f/xv/D/8P/x//E/8j/x//E/8r/y//I/8r/yv/L/8z/y//I/8z/z//N/9D/zv/P/9D/0f/Q/9D/1f/Y/9f/1f/W/9f/1//a/9f/2//e/9z/1P/a/97/3f/e/9//3v/c/+L/4P/i/+L/4f/l/+b/5f/l/+b/5//l/+X/5v/p/+j/6P/r/+v/6v/r/+z/7f/u/+//7v/t/+//7//v/+//8v/3//D/8f/x//T/9P/1//b/8//5//r/+P/6//3/+//+//z/+v8CAAMAAAAAAAQAAgACAAMABAADAAEABQAIAAQABAAHAAcABQAHAAkACgAQAA0ACgAMAAoACAAMAAoACwANAAwADgAPABIAEwAWABYAFgAWABQAFAAQABIAFwAVABYAFgAYABgAGAAaABwAGgAaABsAHgAdABoAHQAfACUAIQAdACAAIQAfACEAJAAiACAAJQAjACEAJQAhACIAJQAiACYAJQAmACgAJAAnACoAKAAkACcAKAAoACUAJwAnACUAJgAoACkAJwAjACQAIQAkACYAJQAlACEAIQAgACEAIAAdAB4AHAAcABwAGgAaABsAGgAaABoAGwAcABsAGgAdABsAGgAdABoAFwAaABsAFwAZABoAHAAcABwAGgAZABsAGAAeAB4AHAAbABwAGwAaABkAGQAZABkAGAAZABsAGwAaABoAFQAYABkAGAAXABUAFgAXABkAGAAaABkAGAAZABoAGAAYABgAFQAWABwAHQAbABYAFwAaABYAGAAbABgAGgAXABkAHAAZABkAGgAZABcAHAAaABQAFgAYABYAFQAXABYAFQAXABgAGAAXABcAFwAYABUAFwAYABoAHAAZABcAGgAbABsAGwAdAB4AHQAbAB8AHgAeAB4AHgAcACAAIAAeABsAIQAeAB0AIAAgACEAIQAgACIAIgAkACMAJQAkACUAJAAoACYAKwAuAC0AKgAlACgAKAAoACoAKAApACwALQAsAC0AKwAvACsALQAtADAALgAsAC0ALQAuAC4ALgAvACsALwA1ADMALQA1ADQANQA2ADYAOAA3AC4AMwA6ADgAPAA8ADwAPAA+AD4APAA/AD8APwA/AEAAQgBAAEEARABFAEEAQwBFAEIARQBFAEUARgBFAEUARQBDAEgARgBDAEcASABDAEMAQQBFAEcASQBIAEgASQBFAEoASwBIAEgARgBHAEoASABHAEcARwBHAEYASgBKAEkASgBLAEsASwBLAE8ATQBJAE4ATABLAE0ATQBPAFEAUQBOAEwASwBOAE4ATwBQAFEAUABRAFIAUQBQAE8AUABPAEsASwBOAFEATgBKAE4AUQBNAFEAVQBQAFAAUwBRAFIAUgBRAFEATwBTAFEAUABOAE0AVQBXAFoAVwBVAFYAWQBYAFcAVQBUAFQAUwBTAFUAUgBVAFMAVQBWAFYAVgBVAFcAWwBYAFcAXABdAFoAWgBZAFoAWABbAF4AXABbAFwAXABiAGQAYgBfAF8AXgBhAGEAXgBfAGIAYQBiAGIAZABjAGMAYQBhAGcAYwBiAGMAYgBkAGMAZQBmAGMAYwBlAGQAZgBjAGIAZABlAGYAYwBhAF8AXwBgAGMAYwBkAGYAZgBmAGcAZgBmAGcAZwBnAGUAZABnAGYAZABpAGcAYwBmAGYAZQBkAGUAZABkAGYAZABlAGYAZABlAGQAYABgAGkAZwBgAGMAYgBkAGEAYABkAGMAYQBhAGUAZABhAGEAYgBlAGEAXwBgAFsAXgBgAF4AYQBgAF4AXgBgAF4AXwBfAGAAXgBcAF4AXwBcAFsAYABjAGEAYQBeAF8AYABgAF8AXwBeAF4AXgBdAF4AWwBbAFkAVgBTAFcAWABZAFkAVgBWAFUAUwBYAFMAUABTAFEATwBOAE4ATQBOAE0ASwBPAFAATABKAE0ATgBLAE4ATQBMAE0ATwBNAEoASwBMAEsASABJAEgARwBJAEQAQwBBAEEAQgBBAEIAQQBBAEEAQgBBADwAPQA7ADgAOAA5AEAAQgA8ADsAOwA7ADkAOQA5ADYANQA4ADcANgA3ADgANgA3ADcANQA4ADcAMwA1ADMAMgAzADIAMQAwADAALwAtAC0ALgAuACwALQAsACgAJQAkACYAJgAkACIAIQAhAB8AIAAfAB8AHgAcABoAGgAbABsAGwAYABUAHAAZABgAFwAXABcAFwAWABUAFAASABMAEgASABIAEQAPAA4ADQAHAAkADgALAAkACQAIAAUABAAGAAMABAADAAEAAwACAAEAAQAAAAAAAgACAP///f/9//7//P/8//r/+f/6//r/9//4//r/+P/2//b/+f/3//T/9f/z/+3/7P/t/+3/6//r/+n/5//m/+f/5v/n/+L/4v/m/+T/4//h/+H/4v/g/9z/3v/d/93/3f/c/93/2//b/9z/2v/Z/9b/1//T/9n/1//U/9b/1v/S/9H/0P/R/9D/0f/O/83/zv/P/83/zf/K/8r/yP/H/8j/xP/A/8T/xP/A/77/wP/C/8L/wP/B/8H/wf/C/8L/wv/C/8L/wv/A/7n/uP+8/7//v/+9/7v/v/+8/7z/vv+8/7v/uf+8/7v/uf+5/7j/tf+5/7f/tf+3/7P/tf+z/7P/sP+x/7L/rv+v/67/rv+w/67/rP+q/6f/qP+q/6r/qf+o/6f/qP+l/6P/pv+l/6H/ov+j/6P/o/+i/6P/n/+j/6T/nf+f/6P/of+f/57/m/+c/5z/nP+b/5z/nP+c/53/m/+d/5z/lP+W/5b/lf+Z/5v/mP+V/5b/mP+Z/5n/l/+Y/5f/lP+W/5b/l/+W/5j/m/+V/5X/lf+V/5X/lv+V/5f/l/+X/5f/lv+S/5T/lf+X/5j/mf+V/5D/kP+P/5P/k/+S/5H/kP+P/47/kP+S/5H/kf+N/43/kf+S/4//kf+Q/47/kP+Q/5H/kv+P/5L/kf+P/5D/kP+P/4//j/+N/43/kP+L/4f/kP+U/5H/kv+S/5H/kf+S/4//kf+Q/43/kv+O/4r/kP+Q/4z/jf+U/47/h/+J/43/iv+L/43/i/+O/4v/iP+J/4r/jP+M/4j/i/+N/47/j/+M/4v/jP+P/4z/j/+O/43/kP+P/5D/kP+P/47/kP+S/47/jf+O/4v/i/+M/4z/jP+M/43/j/+R/5L/kf+R/5T/lP+U/5L/k/+V/5f/l/+W/5L/kf+T/5T/k/+S/5P/lf+Q/5T/lP+U/5T/k/+V/5j/mP+W/5f/lP+U/5n/m/+d/53/n/+f/5//of+g/5//of+j/6L/oP+k/6T/ov+m/6X/pP+k/6X/qf+o/6f/qf+s/6v/q/+s/6v/rf+v/6//rv+x/6//rf+y/7P/sf+x/7H/sf+y/7T/tv+z/7b/tv+4/7n/uP+6/7r/u/+8/7z/uf+5/7r/vv+//7//wP/D/8L/wP/D/8H/wv/C/8P/w//D/8T/w//F/8P/xP/G/8T/xP/H/8n/xv/H/8n/yP/K/8v/yP/J/8z/zP/N/87/zP/L/83/zf/S/9P/0//W/9T/1//Z/9j/1v/a/9n/1v/W/9b/2P/Y/9v/3//j/+P/4P/h/+X/5v/i/+X/6f/n/+r/6f/q/+3/6//r/+7/7v/v//T/8f/v//L/8v/x//T/9f/1//b/9v/4//n//P/8//3///////7//P/9/wIABAAAAAEABAACAAUABQAFAAgACAAHAAkACQAKAAwACwAKAA4ADAAKAAwADAANAA0ADAANABAADwASABIAEQAVABQAFAAUABUAGAAaABwAGQAWABgAGwAaABkAHAAdABsAHAAdAB8AHgAfACEAIwAhACMAJAAhACIAJQAkACMAJgAlACQAJgAmACcAJgAmACcAJQAnACgAKQAsADAAKQAnACwALgAwAC8AMQAyADQANwA0ADQANwA1ADYAOAA1ADYANQA3ADkAPAA7ADcAOAA5ADoAOAA6ADwAPwA8AD4AQAA9AEAAQABAAEAARABHAEMAQgBDAEMAQgBBAEEAQwBBAEEARQBCAEIARgBGAEUARABDAEMARQBIAEgARwBIAEYARQBFAEQARwBGAEUARwBIAEYASQBIAEcASABNAEoARABGAEgASQBJAEgASgBKAEcASABIAEYARQBGAEUARwBIAEUASABFAEMARQBEAEcASQBMAEoASQBLAE0ASgBKAEoATABKAEoASQBKAEwATwBLAEgASgBKAEgASABIAEoARwBIAEkASQBIAEgARgBFAEgARgBKAEcAQQBFAEUARABEAEYARQBDAEIAQQBAAEMARAA+AEAAQgA+AD8AQQBBADwAPAA7AD0AQAA+AEEAQAA/AEAAPAA9ADoAOgA7ADwAPQA8ADYANgA/ADsAOgA3ADcAOwA4ADQAOQA5ADoAOgA6ADkAOAA5ADQANwA2ADcANwA0ADQANQA2AC8AMwAzADEAMQAxAC4AMgAwAC0AMAAtACwAKAAlACsALAAqACoAKQAmACkAKwAmACcAJQAlACUAIwAlACQAIgAjACUAJgAjACIAIgAgACAAHgAbAB0AGwAcAB0AGwAcAB4AGgAbABoAGwAXABUAFwAVABYAEwAQABEAEAAPABEADwAPAA8ADwAPAA4ADgAOAAwADQAIAAcABwAGAAgABgAEAAQABQACAAQABAAEAAMAAwAEAAMAAwAEAAQAAAAAAAMABAADAAMAAwABAAAAAgAAAP/////+//7//v/8//v//P/3/wAA///3//r/9//4//n/9v/3//f/9f/2//X/9P/y//P/8v/y//P/8//0/+7/8P/x//L/8f/w/+//7v/y/+7/6//s/+z/6v/q/+n/6v/s/+v/8P/r/+b/5//k/+X/5//j/+L/5P/j/+P/4f/h/+D/4P/g/97/4v/d/9n/3f/d/+H/4P/e/93/3P/c/9r/2v/a/9z/2v/X/9j/2v/b/9v/2P/X/9v/2f/Y/9r/2f/X/9j/2P/W/9T/1f/V/9P/0f/S/9L/0f/S/9f/0//N/9D/0v/R/9H/0//Q/9L/0//Q/8//zv/R/83/y//N/87/zf/M/83/yv/J/8v/yv/M/8z/y//N/8z/zv/M/8z/zf/M/83/zP/L/83/yv/M/9D/y//L/8v/yf/J/8r/yf/G/8n/yf/J/8j/yf/H/8j/x//F/8X/y//I/8f/yP/G/8j/yf/G/8b/yP/H/8T/yP/G/8P/w//D/8X/x//D/8f/yv/F/8T/xf/F/8X/xv/E/8T/x//E/8T/xP/C/8P/xf/G/8P/x//C/8D/w//C/8H/wf/B/7//vv/A/8D/vf+//77/wP+//7z/vf++/8L/wf+9/77/v/+9/7z/vv++/7z/vf+9/77/u/+7/7z/u/+6/7z/vP+6/7//wP+8/7//vv/A/77/vf+7/7z/vf+7/7r/vP+6/7r/vf+5/7z/vv/A/8H/vP+//73/vP+8/7z/vv+9/7r/uf+9/7z/u/+6/7r/u/+5/7z/uv+2/7f/tf+5/7n/t/+3/7f/uv+7/7j/tv+5/7j/tP+1/7f/tv+3/7f/tv+0/7b/tP+2/7b/s/+1/7X/tf+z/7P/tf+z/7b/tP+1/7T/tv+4/7P/tP+2/7X/tf+1/7T/tP+z/7P/s/+0/7L/sv+1/7P/sf+0/7L/rv+u/6//sf+y/7D/r/+x/7D/rv+u/67/sP+v/6z/qv+s/6z/rf+w/63/rf+s/6//rv+u/7H/rv+u/7L/sv+t/6//sP+u/7H/sP+x/7P/sf+q/6//sv+x/7T/s/+z/7P/s/+y/7L/sv+y/7L/tP+z/7L/sf+3/7X/sv+3/7T/t/+1/7X/uf+5/7r/uf+4/7v/uf+7/73/vf+8/7v/u//A/8L/vv+//77/vf++/77/vv/B/8H/wv/B/8L/wv/D/8T/xf/G/8b/xP/E/8X/x//E/8T/xf/E/8X/xv/J/8f/yP/K/8j/x//F/8z/yf/J/87/z//Q/83/zP/O/87/z//O/9D/0v/R/9D/1P/V/9L/1P/V/9L/1f/S/9f/1//V/9b/1v/U/9b/2v/U/9j/2f/Z/9r/3P/c/9v/2//Z/97/4v/h/+P/4f/f/97/3P/g/9//4v/l/+P/4v/j/+P/5P/j/+T/5f/k/+X/6f/p/+b/5P/n/+f/6P/m/+r/6//t/+3/7f/t/+3/7P/t//L/8P/t/+//7v/y//T/9v/0//f/9//2//f/9v/4//n/+v/4//b/+f/5//j//P/3//n/+//4//v/+v/7//z//P/4//3//P/9/////v/9/wAA///9//v//f/8/wAAAgAAAAAAAAAAAAIAAgABAAMAAgACAAEABgACAAIAAwAEAAcABQAGAAcACgAHAAUACQAMAAoACQALAAsADAAOAA4ADQATABIAEQAPAA4ADwAQABMAFAATABEAEwAVABMAFQAVABQAFAAUABIAEgAUABIAFQAUABIAFgAXABcAGAAaABwAGQAYABkAGQAZABkAFwAaABgAFgAXABYAHAAdAB4AHQAbABsAHQAdABsAGwAcAB0AHQAaABoAHQAaABsAHwAZAB4AHQAeAB4AHwAfACAAHwAhAB8AIAAgACAAIAAhACQAIQAdAB8AIgAkACQAIQAjACQAIQAiACQAIgAiACQAJAAkACIAIgAkACQAIwAkACAAJQAjACEAIgAkACIAJQAjACEAIgAjACQAJAAhACIAIAAjACMAIgAcAB0AIAAcAB4AIAAgAB4AHwAeAB4AHQAeAB4AHAAeABsAGQAcABkAHQAeABoAGwAaABgAGQAYABcAFgAYABQAEwATABUAEQATABIADQAOABUAEQAPAA4ADQAOAA4ADgAJAAwADAAKAA0ACQAJAAsACAAGAAcACAACAAIABQAFAAQAAwAEAAUAAgACAP//AAABAP///v/8//z/+//5//v//v8AAAAA/f/9//v/+//9//n/9//2//n//P/5//b/9//2//b/8v/w//D/8v/1//L/7v/w//D/7P/p/+3/6v/r/+3/6v/n/+j/6P/n/+n/5v/o/+f/4//j/+T/5P/k/+L/3f/h/+D/4P/g/+D/3f/c/97/3v/f/93/3P/f/9v/1v/Y/9n/2f/X/9j/2v/U/9n/1//T/9L/0v/T/87/0P/T/9r/2//Z/9b/1f/T/9L/0//T/83/0f/X/9D/1P/U/9P/1P/U/9T/0f/U/9L/0P/P/8//0f/R/87/zf/R/9P/0P/P/8//z//O/8//0f/N/8n/yf/J/83/zv/L/8r/zf/L/8r/zP/K/8r/yf/G/8j/yP/K/8j/x//L/8f/y//K/8f/yf/J/8r/yP/L/8n/yP/J/8j/yv/L/8v/yP/J/8r/x//E/8b/y//M/8r/yP/H/8n/yv/K/8n/yP/K/8r/y//K/8r/x//N/83/yv/K/87/yv/I/8r/zP/L/8n/yf/L/87/y//O/83/zf/N/8z/0f/M/8v/0f/M/8X/yf/I/8b/yP/I/8f/zP/L/8z/zv/N/8//z//P/9D/0P/O/87/0f/S/87/zv/O/9H/z//L/87/0f/Q/9H/z//O/9T/0P/R/9L/0//W/9b/0f/Q/9T/0//U/9P/0v/S/9X/0v/U/9X/1P/T/9P/0v/W/9T/1P/W/9X/1v/V/9b/2f/Y/9z/2P/a/97/3//d/9//4f/j/+D/5f/e/9n/3f/g/+L/4//k/+T/5v/k/+f/6P/j/+b/5//l/+n/6v/m/+j/6//r/+f/6//t/+z/6v/u/+3/7f/v/+3/7v/v/+//7//y//P/7//y/+//8f/x//P/9f/y//T/8//0//X/9//z//T/+f/4//b/+//6//r//f/5//r//P/6////+v/6//z/+//8//3/+///////AAD9/wIAAwAAAAAAAAD8//z/AwACAAAAAQAAAAEAAgACAAUAAwACAAEAAwAFAAIAAwAHAAkABgAGAAYABQAGAAYABAAIAAkACgAHAAYABwAHAAYABwALAA0ACwAIAAQABQAGAAkACgAKAAsACQAIAAkACwAMAAwADQAKAAkADAAQAA4ADAANAA0AEAAOABAAEQARABAAEQATAA8ADgARABMAEQAQABEAEgARABEAFAAZABgAGAAUABgAFgATABcAFgAVABUAGAASABQAFwATABcAGQAWABcAFQAUABMAFgAWABgAGgAWABQAEwAWABQAGQAZABQAFwAbAB0AFgAXABcAGQAYABcAGAAZABoAGwAZABkAGAAbABwAGQAXABcAFgAbABgAEgAYABYAFgAWABcAGQAWABgAHAAbABsAGwAZABoAIQAdABkAGwAeABgAFwAaABkAGgAWABkAGgAZABoAGAAXABgAGgAaABoAGgAWABkAGgAWABkAGgAeAB0AHQAeAB0AHQAbAB0AGQAbAB8AGgAdAB0AGQAdABsAGgAXABcAGQAbABsAFwAZABwAHwAZABsAHwAdAB4AGQAcAB0AGwAeAB4AGQAbABsAGwAdABsAHQAcAB0AIQAfACEAGwAfACQAHgAiAB4AGQAgACEAHgAkACAAIwAhACMAJgAgAB4AIgAgACQAIQAiACIAHgAiACMAJAAjACAAJQAkACYAIwAgACUAJgAlACEAIwAkACIAIwAlACQAIgAlACIAJAAmACYAIwApACoAJgAoACoAJAAiACkAJwAlACEAIQAmACgAJwAqACoAKAAqACcAJQAnACcAJwAqACoALAArACsAKwArAC0AKwArAC0ALQAsACsALAApADAALgAvADAALwAvAC0AMQAyADEAMgAxADEALQAwADMAMwA2ADMAMwAzADYAOQA0ADIANgA4ADUANAA2ADcAOQA5ADkAOgA3ADcANwA3ADwAOwA2ADcAOgA9ADgAOgA6ADoAPgA7ADcAQQBCAEAAQAA+AD4APgBCAD8AQgA7AD4ARQBBAD0APgBAAEUAQQA9AEQAQQA8AEIAQQBBAEEAQwBEAD4APwBBAEAAQABBAD4APgBBAEAAPwBBAEMAPwA+AEMAQwBAAEMARQBEAEUAQwBEAEYAQQBFAEYAQgBFAEEARABHAEYAQwBIAEUAQgBEAEcARQBCAEUASwBBAEUASQBHAEgASABJAEgASgBIAEsATwBIAEYARQBIAEoASgBLAEcARQBIAEgASQBHAEkASQBGAEsASQBNAE8ASQBIAEoASgBJAEgARgBKAEwATQBKAEgASQBKAEsATABJAEoASgBJAEsASQBJAE8ATABJAEoATQBKAEgASABKAEoASQBIAEkATgBGAEMASgBIAEcATABIAFIAUQBGAE0ATQBNAEwAUgBNAEcATQBMAFEATABOAE8ASABMAE4ATgBQAEoASwBRAFUATABPAE0ATgBPAE4ATgBPAFIAUQBNAEkATgBSAFAASgBKAE0ATABMAFAAUQBNAE4ATgBOAE8ATgBOAEYASgBPAE0ATQBPAE8AVQBMAFAATgBIAEkATgBNAEwATgBKAE4ATgBKAE8ASgBMAEwASgBLAEoATQBPAFAATABLAEwATgBMAEcATABLAEsASgBOAFEASQBIAE0ASQBNAEoARgBLAEsASwBMAE4ASgBHAEcARgBFAEYASABKAEwARQBMAEgASABNAEcARgBGAEgARQBKAEkARgBHAEsASgBFAE0ASgBJAEgASABKAEYARwBLAEYARwBNAEcASwBIAEcASwBLAEQASgBKAEgARwBLAEMARgBHAEUARwBGAEgASABKAEgARwBNAEgARgBGAEYAQgBGAEwASABHAEMARABGAEwASwBGAEoARgBMAE4ASQBJAEcASABMAEwASQBPAFUASwBLAE8ATgBRAEsATwBLAFEATgBLAE0ATQBVAFAAUwBSAE4ATgBRAFYAUABSAFYAUwBSAFIATwBSAFIAUgBYAFMAVwBZAFMAVQBUAFgAWABaAFQAVQBYAFgAWABYAFcAVwBXAFUAWQBgAF4AVwBeAFkAVQBbAF0AWABaAF4AWgBbAFcAWQBbAF0AXQBbAF4AXgBaAFsAWgBbAGIAYgBiAGAAXQBdAGEAZQBhAGEAXABfAGIAYABkAGcAXwBhAGUAZABhAGYAaABkAGMAYgBlAGgAYABlAGMAYgBlAF4AZwBoAGUAZQBnAGEAYwBmAGYAaABlAGkAaABjAGYAaABjAGMAZgBnAGMAZwBpAGYAXwBjAGQAZwBqAGcAagBjAGgAawBpAGwAZABuAGsAaABnAGoAbwBsAHIAawBpAG0AaABoAG8AbABrAGwAbwBnAHAAcABmAGsAbQBsAHEAbwBxAHIAcQBtAHAAdABtAHMAeQBwAHAAdABzAHAAbgB3AHMAcAB7AHsAdQB2AHYAdQB6AHgAegB6AHoAeAB3AHYAdwB9AH0AgQB9AHsAfwB9AHQAewCBAH8AfQB8AHwAewB7AIEAewB+AIUAfQB/AIIAfgB/AIUAhQCEAIQAfgCAAIUAgQCHAIcAggCEAIUAhgCGAIUAggCCAIYAhgCGAIcAjQCJAIoAiwCJAIcAiwCNAIgAiwCGAJAAiwCEAI4AkACOAIcAigCbAJUAjACTAJUAkwCOAJEAkQCcAJAAiwCXAJMAlACPAJYAlACSAJgAlgCSAJYAlwCNAJgAmACZAJsAmQCSAJcAnwCPAJoAmwCXAJ8AnACeAJgAnACjAJkAnAChAJ8AmwCZAJoAnQCfAJ8AnQCcAKAAowCkAJ8AowCjAJ4AngCgAKQApQCdAJ8ApAChAKQAngCdAKQApwCYAKEAoQCZAKUAngCaAJ0AnwCjAJ8AoAClAKIAnwCZAJ4AoQCdAJkAmwCkAKEApQClAJoAnQChAJ0AogCjAKIAngCeAKgAogCkAKIAmwCdAJ0ApACaAJ4AogCaAJ4ApwCcAJkAqwCdAKUApgCVAKIAmgCdAJ0AmwCfAJkAogCfAKYAngClAKAAmgCfAJkAqwCdAJ0ArQCdAKMAoACnAKoAoACfAKIAoQCjAKIAnAClAJcAlgCjAK4AmwCdAJ8AjwCnAK8AmACfAKYAnAClAJwAogClAJYAowCmAJsAnQCoAJoAlQCjAKUAoACYAKIAngChAJ8AqgCeAJwAqAClAKMAoACtAKQAogCjAJ0ApACqAJsAqQC1AKQAnACvAKwAkQClAKgAngCmAK4AmwCcAKgAqgClAKUApACkAJoApwCsAKQApwClAK8AogCeAKYApwCnAKkAogCtAKMAqQCjAKIAoQCmAKgAnACvALAAmAChAKMAngCgAKgAswCiAKAAqQCYAJUAtgCoAJ4AoACyAJkAnwCrAJEArwC1AK0ArwCoAKsAsACcAK4AsQCrAJoAqgCkAKIArwCmAK0ApgC2AKUArQCpAJYAtACsAKkAqwCwAKEAlgC3AKcAkwCqAK0AoACdAK0AlgCgALwApQCjAKsApQCsAKwApACuAJoAoQCVAJoAtQCuAKcApgCtAKEApQCdAJkAlwCpALUAoACeAJEAowCVAJwAjwCmAKIAiwC2AKUAqACaAJcArgCTAJYAoQCUAKQAkgCWAI8AkwCYAJsAsAB5AJoAkgB7AJIAnwCJAJQAogB+AIYAiwCgAI4AnwCOAHkAoQCbAHcAlACLAIgAlgBsAKoAoQCAAKcAjQB/AKsAiwB7AKAAnwCCAIwAmgB4AIoAlQCXAIAAjACgAIUAkQCIAIMApACcAJ0AlQCEAI0AjgCKAIIAlgCGAIgAmQCfAKUAmQCaAJ0AjQCPAI8AnwCMAIkApgCaAJMAhAB9AJwAjgCGAKMAjwB5AIEAoACCAIEAkACIAIkAgQB3AJYAkwBrAIgAkQCKAIkAiACLAHcAigB9AHMAdwB2AIUAfwCFAIYAcgBnAH8AcABwAHoAdAB2AHAAbgCAAIAAfACIAHQAaAB2AHEAggBtAG4AfQBvAGIAfwB3AHcAdwBuAHIAbQByAHUAdACBAGUAYwB6AFEAdQBrAGgAbgB0AHAAdwBtAF0AawBlAHsAbQBiAGkAZQBXAFsAaABaAGAAXAByAGYAXQB3AFIATQBZAFwAXgBNAEcATQA7AEcAUQBMAEkAVQBFAEAASABPAFYAUABSAFcAWABCAFAAXgBcAGsASgBBAFMASQA8AFQAPwBBAFkARQBJAEQA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" - } - } - ] - } - } -} - -<15581 { - "serverContent": { - "modelTurn": { - "role": "model", - "parts": [ - { - "inlineData": { - "mimeType": "audio/pcm", - "data": "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" + "data": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7///8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAP//////////AAAAAP///////wAAAAD//////////////v/+/////v/+//////////7//v/+//7//v/+//7//v/+//7//v/+//7//v/9//7//v/+//3//f/9//3//f/9//z//f/9//7//f/9//3//P/8//z//P/9//z//P/8//z//P/8//z//P/8//z//P/8//v/+//7//z//P/7//v/+//7//v/+//7//v/+//7//r/+//7//v/+v/5//r/+v/5//n/+v/5//r/+v/5//n/+f/6//n/+f/5//n/+P/4//j/+P/4//j/+f/4//j/+P/4//j/+P/4//j/+P/4//j/9v/3//f/9//4//j/9//3//f/9//3//f/9//3//b/9v/2//b/9v/2//f/9v/2//b/9v/2//X/9f/2//X/9v/1//X/9f/1//X/9f/1//X/9P/1//X/9f/2//T/9P/1//T/9P/0//T/9P/0//T/9P/0//P/9P/0//T/9P/0//P/8//0//T/9P/0//T/9P/z//T/8//z//T/8//z//T/9P/0//T/9P/z//P/8v/y//P/8//0//T/8//z//P/8//z//P/8//z//P/8//z//P/8//z//P/8//z//P/9P/z//T/9P/0//P/8//z//P/8//0//T/9P/0//P/9P/1//T/9P/0//T/9P/1//X/9f/1//X/9f/1//X/9f/1//b/9f/1//b/9f/1//b/9v/2//b/9v/3//b/9//3//b/9//3//f/9//3//j/+P/4//n/+P/4//n/+f/5//r/+f/5//n/+f/6//r/+v/6//v/+v/7//v/+//8//v//P/8//z//P/8//z//f/8//3//f/+//7//v/+//7///////7//v///////v//////////////AAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAABAAEAAAABAAEAAQABAAEAAQABAAEAAQABAAAAAQABAAIAAgABAAEAAgACAAEAAQABAAEAAgACAAIAAgACAAIAAQACAAIAAQABAAEAAQABAAIAAgACAAIAAQABAAEAAQABAAEAAQACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAQABAAEAAAAAAP//AAAAAAAAAAAAAAAAAAAAAP////////////////7///////7//v/+//7//v/+//7//f/9//3//v/9//3//f/9//3//P/8//3//f/8//z/+//7//z//P/8//v/+//7//v/+v/7//r/+v/6//r/+v/5//r/+f/4//n/+f/4//n/+P/4//j/+P/4//f/9//3//f/9v/3//f/9//3//X/9f/1//X/9f/1//T/9P/0//T/9f/z//T/9P/z//P/8//y//L/8v/y//L/8v/y//L/8v/x//H/8f/x//H/8P/w//D/8P/v/+//7//v/+//8P/w/+//7v/u/+//7v/u/+7/7v/u/+7/7f/t/+3/7f/s/+z/7P/s/+z/7P/r/+z/7P/s/+v/6//r/+v/6v/r/+v/6//r/+r/6f/q/+n/6v/r/+v/6//q/+r/6f/q/+r/6v/q/+r/6v/q/+r/6v/p/+r/6v/q/+n/6v/q/+r/6f/q/+r/6f/p/+r/6f/q/+n/6P/o/+n/6f/p/+n/6v/p/+r/6f/o/+n/6f/p/+n/6f/p/+n/6P/o/+n/6f/p/+n/6P/o/+n/6f/o/+j/6P/p/+n/6f/p/+n/6f/o/+j/6P/p/+r/6f/p/+n/6f/o/+n/6f/o/+n/6f/p/+j/6f/p/+j/6f/o/+j/6f/o/+j/6P/o/+j/6P/o/+j/6P/o/+f/6P/p/+j/5//o/+j/5//o/+j/6P/o/+j/6P/o/+j/6f/o/+f/5//n/+f/5//n/+f/5//o/+f/5v/m/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+b/5v/n/+f/5//n/+f/5//n/+b/5v/m/+b/5//m/+f/6P/n/+f/5v/n/+f/6P/n/+j/6P/n/+f/5//n/+f/5//n/+f/6P/n/+f/5//n/+f/5//m/+f/5//n/+f/5//n/+f/5v/m/+f/5//l/+X/5v/m/+b/5v/m/+b/5v/m/+b/5v/l/+b/5v/m/+b/5v/l/+b/5f/m/+b/5f/l/+X/5f/m/+X/5v/l/+X/5f/m/+X/5f/l/+b/5f/m/+T/5f/m/+X/5v/l/+X/5v/l/+X/5f/l/+X/5f/l/+T/5f/k/+X/5f/k/+T/5P/k/+T/5P/k/+T/5P/j/+T/4//j/+P/4//j/+P/4//i/+L/4f/h/+H/4f/i/+L/4v/h/+H/4f/h/+D/4P/g/+D/4f/g/+D/4f/f/9//4P/f/97/3v/e/97/3v/e/97/3f/d/93/3P/d/9z/2//c/9z/3P/a/9r/2f/Z/9v/2v/a/9r/2f/a/9n/2P/Z/9f/2P/Y/9j/2P/X/9f/1v/X/9X/1v/V/9X/1f/V/9X/0//U/9T/0//T/9P/0//S/9P/0v/R/9P/0//Q/9H/0P/Q/9D/z//P/8//zv/O/87/zv/N/83/zP/M/8v/y//M/8v/y//K/8r/yv/K/8r/yP/I/8j/yP/I/8j/x//I/8j/x//H/8b/x//G/8f/x//F/8X/xP/F/8X/xP/E/8P/xP/D/8P/w//D/8P/wf/D/8P/wP/B/8L/wP/B/8L/wP+//7//v//A/8D/v/+//8D/wf+//7//v/+//8D/vv++/7//vv++/73/vf+9/73/vf+9/77/vf+9/7z/vf+8/7v/vP+7/7v/uv+7/7v/u/+7/7v/uv+6/7n/u/+6/7n/uf+5/7n/uf+5/7n/uP+5/7n/uf+5/7n/uf+4/7j/uf+5/7n/uf+5/7j/uP+5/7n/uf+5/7j/uf+5/7j/uf+4/7n/uP+4/7n/uf+5/7n/uP+5/7n/uf+6/7n/u/+7/7v/vP+6/7z/u/+8/7z/vP+9/73/vP+9/73/v/++/77/v/++/77/v//A/8D/v//A/8D/wP/B/8H/wv/C/8L/w//D/8P/xP/E/8T/xf/G/8T/xP/G/8b/xv/G/8b/x//I/8f/yP/J/8r/yv/J/8r/yv/J/8v/y//L/8z/zP/M/83/zf/N/83/zv/O/8//0P/Q/9D/0f/R/9L/0v/T/9T/0//U/9X/1f/W/9b/1v/W/9f/2P/Y/9j/2f/Z/9r/2f/b/9r/2//c/9z/3P/c/93/3v/f/9//3//f/+D/4P/i/+L/4v/j/+P/4//j/+X/5f/n/+f/5v/n/+f/6P/o/+n/6f/q/+r/6//s/+z/7P/t/+3/7//v/+//8P/w//D/8f/x//L/8v/z//T/9P/0//X/9f/1//b/9//3//j/+f/6//r/+v/6//v//P/8//z//f/9//7//v/+////AAAAAAAAAAAAAAEAAgABAAMAAwACAAQABAAFAAUABQAGAAYABgAHAAcABwAHAAgABwAIAAgACAAJAAgACQAJAAkACgAKAAoACwALAAsACwAMAAwADAAMAA0ADAAMAA0ADQANAA0ADgANAA0ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA4ADgARABAAEAARABAAEAAQABAAEAAPABAADwAQABAAEAAQABAAEAAQABAAEAAPAA8AEAAPAA8AEAAQABAAEAAPAA8AEAAPABAADwAPAA8ADgAPAA0ADQAOAA0ADgAOAA0ADQANAA0ADQANAAwADAAMAAsACwALAAoACgALAAoACQAJAAkACAAHAAYABwAGAAUABgAFAAUABQAFAAQAAwADAAUAAwADAAMAAAAAAAEAAQAAAAAAAAD///////////7//f/8//z/+v/6//r/+v/6//n/+P/4//f/9v/2//X/9P/0//T/9P/0//P/8v/y//H/8v/w/+//7//t/+3/7P/s/+3/6//r/+r/6f/p/+j/6P/n/+b/5f/l/+T/5f/k/+P/4//h/+D/3//e/9//3v/d/97/3f/d/9z/3P/a/9r/2//Z/9n/1v/X/9b/1f/W/9X/1P/U/9T/0//U/9P/0v/S/9H/0P/R/8//zv/O/87/zf/O/83/zP/L/8r/yf/K/8r/yf/J/8n/x//H/8f/xv/G/8b/x//G/8X/xf/F/8X/xP/D/8L/w//D/8L/wv/C/8H/wf/B/8H/wP/A/8H/wP/A/7//wP+//77/vv++/77/vv+//77/vf+8/7z/vP+9/7z/vP+9/73/vP+7/7z/u/+7/7r/uv+6/7n/uv+6/7n/uf+6/7n/uf+5/7j/uP+4/7j/uP+4/7j/uP+4/7j/uP+3/7j/t/+3/7f/t/+3/7f/uP+3/7f/t/+3/7f/uP+4/7f/uP+4/7j/uP+3/7f/t/+3/7j/uP+4/7f/tv+3/7j/uP+4/7n/t/+4/7j/uP+4/7j/uP+4/7j/uP+4/7j/uP+5/7r/u/+6/7r/uv+6/7j/uP+5/7n/uv+6/7r/u/+7/7r/u/+7/7v/u/+7/7v/vP+8/7z/vP+8/7v/vP+9/73/vf+9/73/vf++/73/vf++/77/vv++/7//wP/A/8H/wP/A/7//wP/A/8D/wf/B/8H/wf/A/8D/wf/C/8L/w//C/8L/w//D/8P/w//C/8L/wv/D/8P/w//E/8P/w//D/8P/w//E/8L/wv/E/8P/w//E/8T/xP/F/8T/xf/F/8T/xP/F/8X/xv/F/8X/xv/F/8X/xf/E/8T/xf/F/8b/xv/F/8b/xv/F/8X/xv/G/8b/xv/G/8X/xf/G/8b/xv/G/8b/xv/G/8b/xv/G/8b/xf/F/8b/xf/F/8X/xf/E/8T/xf/F/8X/xP/F/8T/xP/D/8T/w//D/8P/w//D/8P/w//D/8P/wv/A/8H/wv/B/8L/wv/B/8H/wf/B/8H/wf/B/8H/wf/B/8H/wP/A/7//wP/B/8D/v/+//7//vv++/77/vf+9/77/vf++/73/vf++/77/vf+8/7r/uv+7/7v/u/+7/7v/uv+6/7r/uv+5/7n/uv+5/7n/uP+4/7j/uf+2/7X/t/+2/7b/t/+3/7b/tf+1/7X/tf+1/7X/tf+1/7P/tP+0/7P/s/+z/7P/s/+y/7L/sv+y/7P/sv+x/7H/sf+x/7H/sP+w/6//sP+x/7L/r/+v/67/rv+u/67/rf+t/63/rP+s/6z/rf+s/6z/q/+r/6v/rP+s/6z/q/+r/6v/qv+q/6r/qv+r/6n/qf+q/6n/qP+p/6n/qP+p/6j/qP+o/6j/p/+n/6j/p/+o/6j/p/+m/6b/qP+n/6b/pv+n/6f/pv+m/6X/pv+m/6b/pv+l/6b/pv+m/6b/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y//M/83/y//M/8v/zP/L/8r/y//J/8n/yf/I/8j/x//H/8b/xv/F/8b/xv/E/8T/xP/E/8T/w//E/8P/w//D/8L/wv/B/8H/wv/B/8H/wf++/8D/wP+//7//v/+//77/vv+//73/vf++/73/vP+8/7v/vP+7/7v/vv+8/7v/u/+7/7v/u/+7/7v/u/+7/7v/uv+6/7r/uv+6/7r/uv+6/7z/uv+6/7n/uf+6/7n/uf+5/7r/u/+6/7r/uv+7/7v/u/+7/7v/uv+7/73/vP+8/7z/vP+8/7z/vP+9/73/vf+9/73/vP+9/77/vv++/7//v/++/77/vv+//7//wP/A/8H/wv/C/8H/wf/C/8L/wv/C/8T/xP/H/8f/w//F/8b/xv/G/8f/yP/J/8j/yP/J/8n/yv/J/8v/zP/L/8z/zf/L/8z/zv/O/8//z//Q/9D/0P/Q/9H/0v/T/9L/1P/U/9X/1f/W/9f/1v/V/9j/2P/Y/9j/2f/a/9v/2//b/9z/3f/d/93/3v/e/9//3v/f/+L/4v/h/+H/4v/i/+P/4//k/+X/5v/l/+b/5v/n/+j/5//p/+n/6v/r/+r/6v/r/+r/6//r/+v/7P/u/+3/7f/u/+//7v/v//D/7//w/+//8v/y//H/8v/y//H/8f/y//L/8v/z//T/9P/0//T/9f/1//X/9v/3//b/9f/3//b/9v/3//b/9//4//f/9//3//j/9//3//j/+f/5//n/+v/5//f/+f/5//r/+v/6//r/+v/6//r/+v/6//n/+f/6//r/+f/5//r//P/6//n/+v/5//r/+f/5//r/+v/6//r/+f/5//n/+P/5//j/+P/6//f/9f/3//f/9v/2//X/9f/2//X/9P/1//X/8//0//P/8//0//L/8v/z//H/8P/w//D/8P/w//D/7//v/+//7//t/+z/7f/t/+z/7P/s/+n/6f/t/+v/6v/q/+n/6f/p/+j/6P/o/+j/5//n/+f/5f/m/+b/5P/k/+T/5f/k/+P/4//j/+P/4f/h/+L/4f/h/+H/4P/g/+D/4P/f/97/3f/c/93/3f/d/93/3P/d/9z/3P/c/9v/2v/b/9r/2v/a/9r/2f/a/9n/2v/a/9j/2f/Y/9j/2P/X/9f/1//W/9b/1v/X/9b/1v/W/9X/1f/V/9X/1v/V/9X/1f/U/9P/0//U/9P/0//V/9T/0//T/9P/0//T/9P/1P/R/9H/0v/S/9H/0f/S/9L/0v/S/9L/0f/S/9L/0v/S/9P/0v/S/9L/0P/S/9P/0v/S/9P/0//S/9L/0v/R/9H/0v/S/9L/0v/R/9H/0v/R/9X/0//S/9L/0f/S/9L/0v/T/9L/0v/T/9L/0v/S/9L/0v/T/9P/1P/U/9L/1P/U/9T/1f/U/9T/1f/V/9T/0//V/9X/1f/U/9T/1f/W/9f/2P/W/9b/1v/V/9b/1//X/9f/1//Y/9j/1//Z/9n/2P/Y/9n/2v/a/9f/2v/b/9v/2//b/9v/2//c/9v/2//c/9z/3P/b/93/3f/d/97/3f/d/93/3v/d/97/3v/e/97/3v/e/97/3v/e/97/3v/f/9//3//f/+D/4P/d/97/3//g/+D/4P/h/+H/4P/g/+D/4P/h/+H/3//g/+H/4f/i/+H/4P/i/+L/4f/i/+L/4//k/+T/5P/j/+T/5f/k/+X/5P/l/+b/5P/n/+j/5//m/+f/5//n/+f/6P/o/+j/6f/p/+n/6v/p/+r/6v/q/+r/7P/s/+z/7P/s/+z/7P/s/+z/7v/t/+3/7//v/+//7//u//D/7//v//L/8f/w//D/8f/x//H/8f/y//L/8v/y//L/8//y//P/8//0//T/9v/z//L/8//z//T/9P/1//X/9P/1//X/9P/1//X/9f/1//T/9v/3//f/9v/2//f/9//3//f/9//3//f/9//3//j/9//4//f/9//4//j/9//1//n/+f/3//j/+P/5//j/9//4//n/+P/3//f/+P/4//j/+P/4//j/+P/6//j/9//3//f/+P/3//f/9//4//f/9v/3//b/9v/1//X/9v/1//b/9f/0//X/8//z//T/9P/z//L/8//z//H/8f/y//H/8P/x//D/8P/x//D/7//u/+3/7P/t/+z/7P/r/+r/6v/r/+r/6f/o/+r/6f/p/+j/5//n/+X/5f/l/+X/5f/k/+P/4//j/+H/4v/g/+D/4P/f/9//3//e/93/2//c/9z/2//c/9v/2v/a/9r/2P/Y/9j/2P/Y/9b/1f/V/9b/1f/W/9X/0//T/9P/0v/T/9P/0//S/9L/0v/P/87/0P/Q/8//zv/O/8//zv/K/83/zv/N/83/zf/N/8z/y//L/8v/y//L/8n/y//K/8r/y//K/8v/yf/K/8r/yv/K/8n/yv/J/8r/yv/K/8v/yf/J/8r/yf/J/8n/yv/K/8n/yP/J/8n/yf/K/8n/yf/J/8n/yf/K/8v/yv/K/8r/yv/K/8r/yv/K/8z/y//L/8v/y//K/8v/y//L/8v/zP/N/83/zP/M/83/zv/O/8//0P/O/87/z//P/8//zv/Q/8//0P/Q/8//0f/R/9H/0f/R/9L/0f/Q/9T/0//R/9L/0v/T/9T/1f/S/9P/1f/V/9b/1v/W/9f/2P/X/9j/2f/X/9f/2P/Z/9n/2f/b/9v/2v/a/9r/2//c/9z/3f/d/9z/3P/d/93/3//g/+H/4P/f/+D/4P/h/+H/4f/j/+H/4v/l/+T/5f/m/+b/5f/k/+f/6f/o/+j/6f/q/+n/6v/r/+r/6//r/+v/7f/u/+3/7f/t/+7/7f/t/+//8f/x//H/8f/x//L/8v/y//T/8v/z//T/9P/0//T/9v/3//f/9//4//j/+f/4//n/+f/6//v/+f/6//z/+//7//z//f/8//7//f/+/////v///wAAAAAAAAAAAQACAAEAAgADAAMABAAEAAQABAAFAAUABwAGAAUABgAHAAgACAAIAAgACgALAAkACgALAAsADAAMAA0ADAALAAwAEAARABAAEAARABAAEQARABEAEgATABEAEgAUABMAEwATABQAFQATABMAFgAWABYAFgAXABYAFgAXABcAGAAZABgAGAAXABgAGgAYABgAGAAZABsAGgAbABsAGgAZABsAGgAaABsAGgAaABoAGgAaABoAGgAaABoA" } } ] diff --git a/Google.GenAI.E2E.Tests/packages.lock.json b/Google.GenAI.E2E.Tests/packages.lock.json index 6233720f..b5d29a18 100644 --- a/Google.GenAI.E2E.Tests/packages.lock.json +++ b/Google.GenAI.E2E.Tests/packages.lock.json @@ -1,313 +1,319 @@ -{ - "version": 2, - "dependencies": { - "net8.0": { - "coverlet.collector": { - "type": "Direct", - "requested": "[6.0.4, )", - "resolved": "6.0.4", - "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg==" - }, - "Microsoft.NET.Test.Sdk": { - "type": "Direct", - "requested": "[17.10.0, )", - "resolved": "17.10.0", - "contentHash": "0/2HeACkaHEYU3wc83YlcD2Fi4LMtECJjqrtvw0lPi9DCEa35zSPt1j4fuvM8NagjDqJuh1Ja35WcRtn1Um6/A==", - "dependencies": { - "Microsoft.CodeCoverage": "17.10.0", - "Microsoft.TestPlatform.TestHost": "17.10.0" - } - }, - "Microsoft.Testing.Extensions.CodeCoverage": { - "type": "Direct", - "requested": "[17.10.1, )", - "resolved": "17.10.1", - "contentHash": "EdPqUfB4GShYeXiivrjWrTAjZz93tmrF313QlyK/CI4afdBAcNCrJ2IqEWAQ1n+05sc+tEwZnyaZAdStnwQqcw==", - "dependencies": { - "Microsoft.DiaSymReader": "2.0.0", - "Microsoft.Extensions.DependencyModel": "6.0.0", - "Microsoft.Testing.Platform": "1.0.0", - "Mono.Cecil": "0.11.5", - "System.Reflection.Metadata": "6.0.1" - } - }, - "Moq": { - "type": "Direct", - "requested": "[4.20.70, )", - "resolved": "4.20.70", - "contentHash": "4rNnAwdpXJBuxqrOCzCyICXHSImOTRktCgCWXWykuF1qwoIsVvEnR7PjbMk/eLOxWvhmj5Kwt+kDV3RGUYcNwg==", - "dependencies": { - "Castle.Core": "5.1.1" - } - }, - "MSTest.TestAdapter": { - "type": "Direct", - "requested": "[3.4.3, )", - "resolved": "3.4.3", - "contentHash": "5ul31wYr17590gDumPxWMiBLPREfPF/ggtdPGfaKoYSsO0EW6H1GWY+7xnVCKa2SB4I/dSEZLDYSwRLDjA0LEQ==", - "dependencies": { - "Microsoft.Testing.Extensions.VSTestBridge": "1.2.1", - "Microsoft.Testing.Platform.MSBuild": "1.2.1" - } - }, - "MSTest.TestFramework": { - "type": "Direct", - "requested": "[3.4.3, )", - "resolved": "3.4.3", - "contentHash": "hu7F0PyRe47LScY2SCjRFIzP2QYxq1oeHMAIdao9onUm5WhobO9tfZrFAAkJ4v+66EQjilloEbA4kspVHCZpTg==" - }, - "System.Text.Json": { - "type": "Direct", - "requested": "[10.0.8, )", - "resolved": "10.0.8", - "contentHash": "/fysUDkD7oFGaRPoA7IaFs0wRoO3GlwlCNq2P+xWZqxLy1R4cktRSKfMjJDy9ymS4grL7IDVdt8de8L9a0z55Q==", - "dependencies": { - "System.IO.Pipelines": "10.0.8", - "System.Text.Encodings.Web": "10.0.8" - } - }, - "TestServerSdk": { - "type": "Direct", - "requested": "[0.1.5, )", - "resolved": "0.1.5", - "contentHash": "cQZJyJvSn12KSe5yzWDuq+YK1rKLT+ndNdUgmiCN+SmQtQIMy0uGbqhen6i7mKvgdF9K+J62QhvM6bT9TSqlyg==", - "dependencies": { - "SharpCompress": "0.29.0", - "YamlDotNet": "12.0.2" - } - }, - "Castle.Core": { - "type": "Transitive", - "resolved": "5.1.1", - "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", - "dependencies": { - "System.Diagnostics.EventLog": "6.0.0" - } - }, - "Google.Apis": { - "type": "Transitive", - "resolved": "1.69.0", - "contentHash": "1TfjsXFejwIf7iWaE7A0FbnOEsk8FPlbdFAt1r+I8aSMQfLLdSVWCLdZz6TzuWVwoCGEuJUHTZ/FXdptdU3qWw==", - "dependencies": { - "Google.Apis.Core": "1.69.0" - } - }, - "Google.Apis.Core": { - "type": "Transitive", - "resolved": "1.69.0", - "contentHash": "SXUcurNUPxYMtOnawvB2Av18VrPBC9W7So9q9ikmXIXLGiv4RX7Zbu4kc+8PbwTdd8wLt54r0PBGOT5RaKoTjQ==", - "dependencies": { - "Newtonsoft.Json": "13.0.3" - } - }, - "Microsoft.ApplicationInsights": { - "type": "Transitive", - "resolved": "2.22.0", - "contentHash": "3AOM9bZtku7RQwHyMEY3tQMrHIgjcfRDa6YQpd/QG2LDGvMydSlL9Di+8LLMt7J2RDdfJ7/2jdYv6yHcMJAnNw==", - "dependencies": { - "System.Diagnostics.DiagnosticSource": "5.0.0" - } - }, - "Microsoft.CodeCoverage": { - "type": "Transitive", - "resolved": "17.10.0", - "contentHash": "yC7oSlnR54XO5kOuHlVOKtxomNNN1BWXX8lK1G2jaPXT9sUok7kCOoA4Pgs0qyFaCtMrNsprztYMeoEGqCm4uA==" - }, - "Microsoft.DiaSymReader": { - "type": "Transitive", - "resolved": "2.0.0", - "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" - }, - "Microsoft.Extensions.DependencyModel": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "TD5QHg98m3+QhgEV1YVoNMl5KtBw/4rjfxLHO0e/YV9bPUBDKntApP4xdrVtGgCeQZHVfC2EXIGsdpRNrr87Pg==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0", - "System.Text.Json": "6.0.0" - } - }, - "Microsoft.Testing.Extensions.Telemetry": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "MKGxwQhDDEoTS/ntFb21Z6Bxh9VvknmSLgEWH+NFD86fbcIqE2Al8lrXkQPeH+AqCvlhx2WnPLKd81T2PXc2dw==", - "dependencies": { - "Microsoft.ApplicationInsights": "2.22.0", - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.Testing.Extensions.TrxReport.Abstractions": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "46SnzaLR+SDaTtBWy49xdFm/rI40I8nZtziqnt2d4lgILKovWPnkM8Pehnga/uwl+OznVIh0XuRsN3NokkX1TQ==", - "dependencies": { - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.Testing.Extensions.VSTestBridge": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "Tu8CWHEwV/92WM2DRr/qeIdH243diV5s43ODPLl13XeRqGbZlu9lk7X0a7kcxhp0BLRlA3fqMW3F6RynrnDrPw==", - "dependencies": { - "Microsoft.ApplicationInsights": "2.22.0", - "Microsoft.TestPlatform.ObjectModel": "17.5.0", - "Microsoft.Testing.Extensions.Telemetry": "1.2.1", - "Microsoft.Testing.Extensions.TrxReport.Abstractions": "1.2.1", - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.Testing.Platform": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "mb7irPwqjgusJ05BxuQ5KP6uofWaoDr/dfjFNItX1Q1Ntv3EDMr3CeLInrlU2PNcPwwObw4X6bZG7wJvvFjKZQ==" - }, - "Microsoft.Testing.Platform.MSBuild": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "leUhW4iQNy7vmPk5uRHd4OROqfRtugWDQkWL/4AD17gxZwAAwGCaTcrqG0YVPi7uuZ+lj2Loa6kU7hBLA/v5+w==", - "dependencies": { - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.TestPlatform.ObjectModel": { - "type": "Transitive", - "resolved": "17.10.0", - "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", - "dependencies": { - "System.Reflection.Metadata": "1.6.0" - } - }, - "Microsoft.TestPlatform.TestHost": { - "type": "Transitive", - "resolved": "17.10.0", - "contentHash": "LWpMdfqhHvcUkeMCvNYJO8QlPLlYz9XPPb+ZbaXIKhdmjAV0wqTSrTiW5FLaf7RRZT50AQADDOYMOe0HxDxNgA==", - "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.10.0", - "Newtonsoft.Json": "13.0.1" - } - }, - "Mono.Cecil": { - "type": "Transitive", - "resolved": "0.11.5", - "contentHash": "fxfX+0JGTZ8YQeu1MYjbBiK2CYTSzDyEeIixt+yqKKTn7FW8rv7JMY70qevup4ZJfD7Kk/VG/jDzQQTpfch87g==" - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.3", - "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" - }, - "SharpCompress": { - "type": "Transitive", - "resolved": "0.29.0", - "contentHash": "k7iUB0mZWS6eEj6L0PuuxASzjpQvlYKfHJ0JtnHBJFbU3VeQJ4SNQC4eloiYsPbmFrJCJYiqFhV4AZuBXpIXiQ==" - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.CodeDom": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==" - }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "tCQTzPsGZh/A9LhhA6zrqCRV4hOHsK90/G7q3Khxmn6tnB1PuNU0cRaKANP2AWcF9bn0zsuOoZOSrHuJk6oNBA==" - }, - "System.Diagnostics.EventLog": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "10.0.8", - "contentHash": "STVNTIVd+UrYvSo31D2tOOTs19IThdjGDN14FS3/NZb4PWsVakAg/VT4sq+JYWGP/GtazzvXwebWL6LPBAwnFQ==" - }, - "System.Management": { - "type": "Transitive", - "resolved": "7.0.2", - "contentHash": "/qEUN91mP/MUQmJnM5y5BdT7ZoPuVrtxnFlbJ8a3kBJGhe2wCzBfnPFtK2wTtEEcf3DMGR9J00GZZfg6HRI6yA==", - "dependencies": { - "System.CodeDom": "7.0.0" - } - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==" - }, - "System.Reflection.Metadata": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", - "dependencies": { - "System.Collections.Immutable": "6.0.0" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "10.0.8", - "contentHash": "HvFIJXM/CMTRu6PBQmjukQZ/O32Vx5fOEYZs0kq0OD5s9vJQ19KHLWCVmnfh3gNC7pbYomm06tzOTgJBflr/nQ==" - }, - "YamlDotNet": { - "type": "Transitive", - "resolved": "12.0.2", - "contentHash": "IFj2oDZYJIv5sM8mqaj5edVrpgUyoXk/wCGqZQJrgys/0tBajajpjRSgFM+iA/9ILOfTsPYKtcDcwvqBnBcNIg==" - }, - "google.genai": { - "type": "Project", - "dependencies": { - "Google.Apis.Auth": "[1.69.0, )", - "Microsoft.Extensions.AI.Abstractions": "[10.6.0, )", - "MimeTypes": "[2.5.2, )", - "System.Text.Json": "[10.0.8, )" - } - }, - "Google.Apis.Auth": { - "type": "CentralTransitive", - "requested": "[1.69.0, )", - "resolved": "1.69.0", - "contentHash": "ar07yxn/s41jdqQ3sMh8EAehiSvXQ9yE1MS4McmZINeSWvolnLHmIZ9Yxj4tHVIYYz0c7H/lpToVqm7C2aYx9g==", - "dependencies": { - "Google.Apis": "1.69.0", - "Google.Apis.Core": "1.69.0", - "System.Management": "7.0.2" - } - }, - "Microsoft.Extensions.AI.Abstractions": { - "type": "CentralTransitive", - "requested": "[10.6.0, )", - "resolved": "10.6.0", - "contentHash": "JCkVoyqBqi9r3Vs5Qo5PfZobT0+CWeOx+9y9yggBxtW9s/X5CAoa7Iw/tP/rfUdz+nxRKMSBmrytYgwmu60lgA==", - "dependencies": { - "System.Text.Json": "10.0.8" - } - }, - "MimeTypes": { - "type": "CentralTransitive", - "requested": "[2.5.2, )", - "resolved": "2.5.2", - "contentHash": "vm4xrNt+i6OVRQ8vhfCcmDIUg3qvjyCTkSTNVTDFohsG6CXEpMaVFkidECL6yRYpHDnz4TqXhDoEQAcnHCu/tw==" - } - } - } +{ + "version": 2, + "dependencies": { + "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.4, )", + "resolved": "6.0.4", + "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg==" + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.10.0, )", + "resolved": "17.10.0", + "contentHash": "0/2HeACkaHEYU3wc83YlcD2Fi4LMtECJjqrtvw0lPi9DCEa35zSPt1j4fuvM8NagjDqJuh1Ja35WcRtn1Um6/A==", + "dependencies": { + "Microsoft.CodeCoverage": "17.10.0", + "Microsoft.TestPlatform.TestHost": "17.10.0" + } + }, + "Microsoft.Testing.Extensions.CodeCoverage": { + "type": "Direct", + "requested": "[17.10.1, )", + "resolved": "17.10.1", + "contentHash": "EdPqUfB4GShYeXiivrjWrTAjZz93tmrF313QlyK/CI4afdBAcNCrJ2IqEWAQ1n+05sc+tEwZnyaZAdStnwQqcw==", + "dependencies": { + "Microsoft.DiaSymReader": "2.0.0", + "Microsoft.Extensions.DependencyModel": "6.0.0", + "Microsoft.Testing.Platform": "1.0.0", + "Mono.Cecil": "0.11.5", + "System.Reflection.Metadata": "6.0.1" + } + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.70, )", + "resolved": "4.20.70", + "contentHash": "4rNnAwdpXJBuxqrOCzCyICXHSImOTRktCgCWXWykuF1qwoIsVvEnR7PjbMk/eLOxWvhmj5Kwt+kDV3RGUYcNwg==", + "dependencies": { + "Castle.Core": "5.1.1" + } + }, + "MSTest.TestAdapter": { + "type": "Direct", + "requested": "[3.4.3, )", + "resolved": "3.4.3", + "contentHash": "5ul31wYr17590gDumPxWMiBLPREfPF/ggtdPGfaKoYSsO0EW6H1GWY+7xnVCKa2SB4I/dSEZLDYSwRLDjA0LEQ==", + "dependencies": { + "Microsoft.Testing.Extensions.VSTestBridge": "1.2.1", + "Microsoft.Testing.Platform.MSBuild": "1.2.1" + } + }, + "MSTest.TestFramework": { + "type": "Direct", + "requested": "[3.4.3, )", + "resolved": "3.4.3", + "contentHash": "hu7F0PyRe47LScY2SCjRFIzP2QYxq1oeHMAIdao9onUm5WhobO9tfZrFAAkJ4v+66EQjilloEbA4kspVHCZpTg==" + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[10.0.8, )", + "resolved": "10.0.8", + "contentHash": "/fysUDkD7oFGaRPoA7IaFs0wRoO3GlwlCNq2P+xWZqxLy1R4cktRSKfMjJDy9ymS4grL7IDVdt8de8L9a0z55Q==", + "dependencies": { + "System.IO.Pipelines": "10.0.8", + "System.Text.Encodings.Web": "10.0.8" + } + }, + "TestServerSdk": { + "type": "Direct", + "requested": "[0.1.5, )", + "resolved": "0.1.5", + "contentHash": "cQZJyJvSn12KSe5yzWDuq+YK1rKLT+ndNdUgmiCN+SmQtQIMy0uGbqhen6i7mKvgdF9K+J62QhvM6bT9TSqlyg==", + "dependencies": { + "SharpCompress": "0.29.0", + "YamlDotNet": "12.0.2" + } + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + } + }, + "Google.Apis": { + "type": "Transitive", + "resolved": "1.69.0", + "contentHash": "1TfjsXFejwIf7iWaE7A0FbnOEsk8FPlbdFAt1r+I8aSMQfLLdSVWCLdZz6TzuWVwoCGEuJUHTZ/FXdptdU3qWw==", + "dependencies": { + "Google.Apis.Core": "1.69.0" + } + }, + "Google.Apis.Core": { + "type": "Transitive", + "resolved": "1.69.0", + "contentHash": "SXUcurNUPxYMtOnawvB2Av18VrPBC9W7So9q9ikmXIXLGiv4RX7Zbu4kc+8PbwTdd8wLt54r0PBGOT5RaKoTjQ==", + "dependencies": { + "Newtonsoft.Json": "13.0.3" + } + }, + "Microsoft.ApplicationInsights": { + "type": "Transitive", + "resolved": "2.22.0", + "contentHash": "3AOM9bZtku7RQwHyMEY3tQMrHIgjcfRDa6YQpd/QG2LDGvMydSlL9Di+8LLMt7J2RDdfJ7/2jdYv6yHcMJAnNw==", + "dependencies": { + "System.Diagnostics.DiagnosticSource": "5.0.0" + } + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.10.0", + "contentHash": "yC7oSlnR54XO5kOuHlVOKtxomNNN1BWXX8lK1G2jaPXT9sUok7kCOoA4Pgs0qyFaCtMrNsprztYMeoEGqCm4uA==" + }, + "Microsoft.DiaSymReader": { + "type": "Transitive", + "resolved": "2.0.0", + "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" + }, + "Microsoft.Extensions.DependencyModel": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "TD5QHg98m3+QhgEV1YVoNMl5KtBw/4rjfxLHO0e/YV9bPUBDKntApP4xdrVtGgCeQZHVfC2EXIGsdpRNrr87Pg==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.0", + "System.Text.Json": "6.0.0" + } + }, + "Microsoft.Testing.Extensions.Telemetry": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "MKGxwQhDDEoTS/ntFb21Z6Bxh9VvknmSLgEWH+NFD86fbcIqE2Al8lrXkQPeH+AqCvlhx2WnPLKd81T2PXc2dw==", + "dependencies": { + "Microsoft.ApplicationInsights": "2.22.0", + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.Testing.Extensions.TrxReport.Abstractions": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "46SnzaLR+SDaTtBWy49xdFm/rI40I8nZtziqnt2d4lgILKovWPnkM8Pehnga/uwl+OznVIh0XuRsN3NokkX1TQ==", + "dependencies": { + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.Testing.Extensions.VSTestBridge": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "Tu8CWHEwV/92WM2DRr/qeIdH243diV5s43ODPLl13XeRqGbZlu9lk7X0a7kcxhp0BLRlA3fqMW3F6RynrnDrPw==", + "dependencies": { + "Microsoft.ApplicationInsights": "2.22.0", + "Microsoft.TestPlatform.ObjectModel": "17.5.0", + "Microsoft.Testing.Extensions.Telemetry": "1.2.1", + "Microsoft.Testing.Extensions.TrxReport.Abstractions": "1.2.1", + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.Testing.Platform": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "mb7irPwqjgusJ05BxuQ5KP6uofWaoDr/dfjFNItX1Q1Ntv3EDMr3CeLInrlU2PNcPwwObw4X6bZG7wJvvFjKZQ==" + }, + "Microsoft.Testing.Platform.MSBuild": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "leUhW4iQNy7vmPk5uRHd4OROqfRtugWDQkWL/4AD17gxZwAAwGCaTcrqG0YVPi7uuZ+lj2Loa6kU7hBLA/v5+w==", + "dependencies": { + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.10.0", + "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.10.0", + "contentHash": "LWpMdfqhHvcUkeMCvNYJO8QlPLlYz9XPPb+ZbaXIKhdmjAV0wqTSrTiW5FLaf7RRZT50AQADDOYMOe0HxDxNgA==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.10.0", + "Newtonsoft.Json": "13.0.1" + } + }, + "Mono.Cecil": { + "type": "Transitive", + "resolved": "0.11.5", + "contentHash": "fxfX+0JGTZ8YQeu1MYjbBiK2CYTSzDyEeIixt+yqKKTn7FW8rv7JMY70qevup4ZJfD7Kk/VG/jDzQQTpfch87g==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "SharpCompress": { + "type": "Transitive", + "resolved": "0.29.0", + "contentHash": "k7iUB0mZWS6eEj6L0PuuxASzjpQvlYKfHJ0JtnHBJFbU3VeQJ4SNQC4eloiYsPbmFrJCJYiqFhV4AZuBXpIXiQ==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.CodeDom": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==" + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "tCQTzPsGZh/A9LhhA6zrqCRV4hOHsK90/G7q3Khxmn6tnB1PuNU0cRaKANP2AWcF9bn0zsuOoZOSrHuJk6oNBA==" + }, + "System.Diagnostics.EventLog": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "10.0.8", + "contentHash": "STVNTIVd+UrYvSo31D2tOOTs19IThdjGDN14FS3/NZb4PWsVakAg/VT4sq+JYWGP/GtazzvXwebWL6LPBAwnFQ==" + }, + "System.Management": { + "type": "Transitive", + "resolved": "7.0.2", + "contentHash": "/qEUN91mP/MUQmJnM5y5BdT7ZoPuVrtxnFlbJ8a3kBJGhe2wCzBfnPFtK2wTtEEcf3DMGR9J00GZZfg6HRI6yA==", + "dependencies": { + "System.CodeDom": "7.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "10.0.8", + "contentHash": "HvFIJXM/CMTRu6PBQmjukQZ/O32Vx5fOEYZs0kq0OD5s9vJQ19KHLWCVmnfh3gNC7pbYomm06tzOTgJBflr/nQ==" + }, + "YamlDotNet": { + "type": "Transitive", + "resolved": "12.0.2", + "contentHash": "IFj2oDZYJIv5sM8mqaj5edVrpgUyoXk/wCGqZQJrgys/0tBajajpjRSgFM+iA/9ILOfTsPYKtcDcwvqBnBcNIg==" + }, + "google.genai": { + "type": "Project", + "dependencies": { + "Google.Apis.Auth": "[1.69.0, )", + "Microsoft.Extensions.AI.Abstractions": "[10.6.0, )", + "MimeTypes": "[2.5.2, )", + "System.Collections.Immutable": "[9.0.0, )", + "System.Net.ServerSentEvents": "[9.0.0, )", + "System.Text.Json": "[10.0.8, )" + } + }, + "Google.Apis.Auth": { + "type": "CentralTransitive", + "requested": "[1.69.0, )", + "resolved": "1.69.0", + "contentHash": "ar07yxn/s41jdqQ3sMh8EAehiSvXQ9yE1MS4McmZINeSWvolnLHmIZ9Yxj4tHVIYYz0c7H/lpToVqm7C2aYx9g==", + "dependencies": { + "Google.Apis": "1.69.0", + "Google.Apis.Core": "1.69.0", + "System.Management": "7.0.2" + } + }, + "Microsoft.Extensions.AI.Abstractions": { + "type": "CentralTransitive", + "requested": "[10.6.0, )", + "resolved": "10.6.0", + "contentHash": "JCkVoyqBqi9r3Vs5Qo5PfZobT0+CWeOx+9y9yggBxtW9s/X5CAoa7Iw/tP/rfUdz+nxRKMSBmrytYgwmu60lgA==", + "dependencies": { + "System.Text.Json": "10.0.8" + } + }, + "MimeTypes": { + "type": "CentralTransitive", + "requested": "[2.5.2, )", + "resolved": "2.5.2", + "contentHash": "vm4xrNt+i6OVRQ8vhfCcmDIUg3qvjyCTkSTNVTDFohsG6CXEpMaVFkidECL6yRYpHDnz4TqXhDoEQAcnHCu/tw==" + }, + "System.Collections.Immutable": { + "type": "CentralTransitive", + "requested": "[9.0.0, )", + "resolved": "9.0.0", + "contentHash": "QhkXUl2gNrQtvPmtBTQHb0YsUrDiDQ2QS09YbtTTiSjGcf7NBqtYbrG/BE06zcBPCKEwQGzIv13IVdXNOSub2w==" + }, + "System.Net.ServerSentEvents": { + "type": "CentralTransitive", + "requested": "[9.0.0, )", + "resolved": "9.0.0", + "contentHash": "VTWjeyx9nPb4+hkjGcAaDw1nOckypMtvABmxSWm6PPYwrXoIiVG3jwtNlAGhaGVjDkBrERABox67wYTAcHxg7Q==" + } + } + } } \ No newline at end of file diff --git a/Google.GenAI.Tests/GoogleGenAIExtensionsTest.cs b/Google.GenAI.Tests/GoogleGenAIExtensionsTest.cs index 757ba4d5..e91e46d5 100644 --- a/Google.GenAI.Tests/GoogleGenAIExtensionsTest.cs +++ b/Google.GenAI.Tests/GoogleGenAIExtensionsTest.cs @@ -4838,9 +4838,7 @@ public async Task IChatClient_FunctionResultWithMultipleContentItems() "result": [ { "$type": "text", - "Text": "Additional text data", - "Annotations": null, - "AdditionalProperties": null + "text": "Additional text data" } ] } diff --git a/Google.GenAI/Batches.cs b/Google.GenAI/Batches.cs index e341d1ac..1c82ef7f 100644 --- a/Google.GenAI/Batches.cs +++ b/Google.GenAI/Batches.cs @@ -1784,7 +1784,7 @@ private async Task PrivateCreateAsync(string? model, BatchJobSource sr if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse CreateBatchJobParameters to JsonNode."); @@ -1809,9 +1809,10 @@ private async Task PrivateCreateAsync(string? model, BatchJobSource sr } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -1832,7 +1833,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali responseNode = BatchJobFromMldev(httpContentNode, new JsonObject()); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -1850,7 +1851,7 @@ private async Task PrivateCreateEmbeddingsAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException( @@ -1877,9 +1878,10 @@ private async Task PrivateCreateEmbeddingsAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -1901,7 +1903,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali responseNode = BatchJobFromMldev(httpContentNode, new JsonObject()); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -1927,7 +1929,7 @@ public async Task GetAsync(string name, GetBatchJobConfig? config = nu if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse GetBatchJobParameters to JsonNode."); @@ -1952,9 +1954,10 @@ public async Task GetAsync(string name, GetBatchJobConfig? config = nu } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -1975,7 +1978,7 @@ await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serializ responseNode = BatchJobFromMldev(httpContentNode, new JsonObject()); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -2001,7 +2004,7 @@ public async Task CancelAsync(string name, CancelBatchJobConfig? config = null, if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse CancelBatchJobParameters to JsonNode."); @@ -2026,9 +2029,10 @@ public async Task CancelAsync(string name, CancelBatchJobConfig? config = null, } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -2059,7 +2063,7 @@ private async Task PrivateListAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse ListBatchJobsParameters to JsonNode."); @@ -2084,9 +2088,10 @@ private async Task PrivateListAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -2107,7 +2112,8 @@ await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serializ responseNode = ListBatchJobsResponseFromMldev(httpContentNode, new JsonObject()); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -2135,7 +2141,7 @@ public async Task DeleteAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse DeleteBatchJobParameters to JsonNode."); @@ -2161,7 +2167,8 @@ public async Task DeleteAsync( HttpOptions? requestHttpOptions = config?.HttpOptions; ApiResponse response = await this._apiClient.RequestAsync( - HttpMethod.Delete, path, JsonSerializer.Serialize(body), requestHttpOptions, + HttpMethod.Delete, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 @@ -2183,7 +2190,7 @@ public async Task DeleteAsync( responseNode = DeleteResourceJobFromMldev(httpContentNode, new JsonObject()); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } diff --git a/Google.GenAI/Caches.cs b/Google.GenAI/Caches.cs index 44ca8430..bc5bb917 100644 --- a/Google.GenAI/Caches.cs +++ b/Google.GenAI/Caches.cs @@ -1132,7 +1132,7 @@ public async Task CreateAsync(string model, if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException( @@ -1160,9 +1160,10 @@ public async Task CreateAsync(string model, } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -1183,7 +1184,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali responseNode = httpContentNode; } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -1197,7 +1198,7 @@ public async Task GetAsync(string name, GetCachedContentConfig? c if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse GetCachedContentParameters to JsonNode."); @@ -1222,9 +1223,10 @@ public async Task GetAsync(string name, GetCachedContentConfig? c } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -1245,7 +1247,7 @@ await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serializ responseNode = httpContentNode; } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -1260,7 +1262,7 @@ public async Task DeleteAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException( @@ -1289,7 +1291,8 @@ public async Task DeleteAsync( HttpOptions? requestHttpOptions = config?.HttpOptions; ApiResponse response = await this._apiClient.RequestAsync( - HttpMethod.Delete, path, JsonSerializer.Serialize(body), requestHttpOptions, + HttpMethod.Delete, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 @@ -1311,7 +1314,8 @@ public async Task DeleteAsync( responseNode = DeleteCachedContentResponseFromMldev(httpContentNode, new JsonObject()); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -1327,7 +1331,7 @@ public async Task UpdateAsync(string name, if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException( @@ -1356,7 +1360,8 @@ public async Task UpdateAsync(string name, HttpOptions? requestHttpOptions = config?.HttpOptions; ApiResponse response = await this._apiClient.RequestAsync( - new HttpMethod("PATCH"), path, JsonSerializer.Serialize(body), requestHttpOptions, + new HttpMethod("PATCH"), path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 @@ -1378,7 +1383,7 @@ public async Task UpdateAsync(string name, responseNode = httpContentNode; } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -1389,7 +1394,7 @@ private async Task PrivateListAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException( @@ -1415,9 +1420,10 @@ private async Task PrivateListAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -1438,7 +1444,8 @@ await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serializ responseNode = ListCachedContentsResponseFromMldev(httpContentNode, new JsonObject()); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } diff --git a/Google.GenAI/Files.cs b/Google.GenAI/Files.cs index cb72194b..fe50eada 100644 --- a/Google.GenAI/Files.cs +++ b/Google.GenAI/Files.cs @@ -186,7 +186,7 @@ private async Task PrivateListAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse ListFilesParameters to JsonNode."); @@ -211,9 +211,10 @@ private async Task PrivateListAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -235,7 +236,7 @@ await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serializ responseNode = httpContentNode; } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -250,7 +251,7 @@ private async Task PrivateCreateAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse CreateFileParameters to JsonNode."); @@ -275,9 +276,10 @@ private async Task PrivateCreateAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -316,7 +318,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali responseNode = httpContentNode; } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -330,7 +332,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse GetFileParameters to JsonNode."); @@ -355,9 +357,10 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -379,7 +382,8 @@ await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serializ responseNode = httpContentNode; } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -395,7 +399,7 @@ public async Task DeleteAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse DeleteFileParameters to JsonNode."); @@ -421,7 +425,8 @@ public async Task DeleteAsync( HttpOptions? requestHttpOptions = config?.HttpOptions; ApiResponse response = await this._apiClient.RequestAsync( - HttpMethod.Delete, path, JsonSerializer.Serialize(body), requestHttpOptions, + HttpMethod.Delete, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 @@ -444,7 +449,7 @@ public async Task DeleteAsync( responseNode = httpContentNode; } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -459,7 +464,7 @@ private async Task PrivateRegisterFilesAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException( @@ -485,9 +490,10 @@ private async Task PrivateRegisterFilesAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -526,7 +532,8 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali responseNode = httpContentNode; } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } diff --git a/Google.GenAI/Models.cs b/Google.GenAI/Models.cs index 4f677bf3..8462494d 100644 --- a/Google.GenAI/Models.cs +++ b/Google.GenAI/Models.cs @@ -4549,7 +4549,7 @@ private async Task PrivateGenerateContentAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse GenerateContentParameters to JsonNode."); @@ -4576,9 +4576,10 @@ private async Task PrivateGenerateContentAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -4601,7 +4602,8 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali GenerateContentResponseFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -4620,7 +4622,7 @@ private async IAsyncEnumerable PrivateGenerateContentSt if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse GenerateContentParameters to JsonNode."); @@ -4648,8 +4650,9 @@ private async IAsyncEnumerable PrivateGenerateContentSt HttpOptions? requestHttpOptions = config?.HttpOptions; await foreach (ApiResponse apiResponse in this._apiClient.RequestStreamAsync( - HttpMethod.Post, path, JsonSerializer.Serialize(body), requestHttpOptions, - cancellationToken)) { + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), + requestHttpOptions, cancellationToken)) { #if NETSTANDARD2_0 string chunkJson = await apiResponse.GetEntity().ReadAsStringAsync(); #else @@ -4666,7 +4669,8 @@ private async IAsyncEnumerable PrivateGenerateContentSt responseNode = GenerateContentResponseFromMldev(chunkNode, new JsonObject(), parameterNode); } - var chunkResponse = responseNode.Deserialize(); + var chunkResponse = + responseNode.Deserialize(JsonConfig.InternalSerializerOptions); yield return chunkResponse; } } @@ -4705,7 +4709,7 @@ private async Task PrivateEmbedContentAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException( @@ -4737,9 +4741,10 @@ private async Task PrivateEmbedContentAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -4762,7 +4767,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali EmbedContentResponseFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -4781,7 +4786,7 @@ private async Task PrivateGenerateImagesAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse GenerateImagesParameters to JsonNode."); @@ -4808,9 +4813,10 @@ private async Task PrivateGenerateImagesAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -4833,7 +4839,8 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali GenerateImagesResponseFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -4855,7 +4862,7 @@ private async Task PrivateEditImageAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse EditImageParameters to JsonNode."); @@ -4881,9 +4888,10 @@ private async Task PrivateEditImageAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -4906,7 +4914,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali "This method is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode."); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -4927,7 +4935,7 @@ private async Task PrivateUpscaleImageAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse UpscaleImageAPIParameters to JsonNode."); @@ -4953,9 +4961,10 @@ private async Task PrivateUpscaleImageAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -4978,7 +4987,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali "This method is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode."); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -4997,7 +5006,7 @@ public async Task RecontextImageAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse RecontextImageParameters to JsonNode."); @@ -5023,9 +5032,10 @@ public async Task RecontextImageAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -5048,7 +5058,8 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali "This method is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode."); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -5067,7 +5078,7 @@ public async Task SegmentImageAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse SegmentImageParameters to JsonNode."); @@ -5093,9 +5104,10 @@ public async Task SegmentImageAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -5118,7 +5130,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali "This method is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode."); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -5137,7 +5149,7 @@ public async Task GetAsync(string model, GetModelConfig? config = null, if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse GetModelParameters to JsonNode."); @@ -5164,9 +5176,10 @@ public async Task GetAsync(string model, GetModelConfig? config = null, } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -5187,7 +5200,7 @@ await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serializ responseNode = ModelFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -5198,7 +5211,7 @@ private async Task PrivateListAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse ListModelsParameters to JsonNode."); @@ -5225,9 +5238,10 @@ private async Task PrivateListAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -5250,7 +5264,7 @@ await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serializ ListModelsResponseFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -5274,7 +5288,7 @@ public async Task UpdateAsync(string model, UpdateModelConfig? config = n if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse UpdateModelParameters to JsonNode."); @@ -5302,7 +5316,8 @@ public async Task UpdateAsync(string model, UpdateModelConfig? config = n HttpOptions? requestHttpOptions = config?.HttpOptions; ApiResponse response = await this._apiClient.RequestAsync( - new HttpMethod("PATCH"), path, JsonSerializer.Serialize(body), requestHttpOptions, + new HttpMethod("PATCH"), path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 @@ -5324,7 +5339,7 @@ public async Task UpdateAsync(string model, UpdateModelConfig? config = n responseNode = ModelFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -5343,7 +5358,7 @@ public async Task DeleteAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse DeleteModelParameters to JsonNode."); @@ -5371,7 +5386,8 @@ public async Task DeleteAsync( HttpOptions? requestHttpOptions = config?.HttpOptions; ApiResponse response = await this._apiClient.RequestAsync( - HttpMethod.Delete, path, JsonSerializer.Serialize(body), requestHttpOptions, + HttpMethod.Delete, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 @@ -5395,7 +5411,7 @@ public async Task DeleteAsync( DeleteModelResponseFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -5426,7 +5442,7 @@ public async Task CountTokensAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse CountTokensParameters to JsonNode."); @@ -5453,9 +5469,10 @@ public async Task CountTokensAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -5478,7 +5495,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali CountTokensResponseFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -5510,7 +5527,7 @@ public async Task ComputeTokensAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse ComputeTokensParameters to JsonNode."); @@ -5536,9 +5553,10 @@ public async Task ComputeTokensAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -5561,7 +5579,8 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali "This method is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode."); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -5589,7 +5608,7 @@ private async Task PrivateGenerateVideosAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse GenerateVideosParameters to JsonNode."); @@ -5616,9 +5635,10 @@ private async Task PrivateGenerateVideosAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -5641,7 +5661,8 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali GenerateVideosOperationFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } diff --git a/Google.GenAI/Operations.cs b/Google.GenAI/Operations.cs index fdf401e3..46967976 100644 --- a/Google.GenAI/Operations.cs +++ b/Google.GenAI/Operations.cs @@ -285,7 +285,7 @@ internal async Task PrivateGetVideosOperationAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse GetOperationParameters to JsonNode."); @@ -310,9 +310,10 @@ internal async Task PrivateGetVideosOperationAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -342,7 +343,7 @@ internal async Task PrivateFetchPredictVideosOperationAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException( @@ -368,9 +369,10 @@ internal async Task PrivateFetchPredictVideosOperationAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); diff --git a/Google.GenAI/Tunings.cs b/Google.GenAI/Tunings.cs index 7197041f..be8531d0 100644 --- a/Google.GenAI/Tunings.cs +++ b/Google.GenAI/Tunings.cs @@ -1692,7 +1692,7 @@ private async Task PrivateGetAsync(string name, GetTuningJobConfig? c if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse GetTuningJobParameters to JsonNode."); @@ -1717,9 +1717,10 @@ private async Task PrivateGetAsync(string name, GetTuningJobConfig? c } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -1740,7 +1741,7 @@ await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serializ responseNode = TuningJobFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -1751,7 +1752,7 @@ private async Task PrivateListAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse ListTuningJobsParameters to JsonNode."); @@ -1776,9 +1777,10 @@ private async Task PrivateListAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Get, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -1801,7 +1803,8 @@ await this._apiClient.RequestAsync(HttpMethod.Get, path, JsonSerializer.Serializ "This method is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode."); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -1825,7 +1828,7 @@ public async Task CancelAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse CancelTuningJobParameters to JsonNode."); @@ -1850,9 +1853,10 @@ public async Task CancelAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -1875,7 +1879,8 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali CancelTuningJobResponseFromMldev(httpContentNode, new JsonObject(), parameterNode); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } @@ -1898,7 +1903,7 @@ private async Task PrivateTuneAsync(string? baseModel, PreTunedModel? if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException( @@ -1925,9 +1930,10 @@ private async Task PrivateTuneAsync(string? baseModel, PreTunedModel? } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -1949,7 +1955,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali "This method is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode."); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -1970,7 +1976,7 @@ private async Task PrivateTuneMldevAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException( @@ -1997,9 +2003,10 @@ private async Task PrivateTuneMldevAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -2021,7 +2028,7 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali responseNode = httpContentNode; } - return responseNode.Deserialize() ?? + return responseNode.Deserialize(JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException("Failed to deserialize Task."); } @@ -2050,7 +2057,7 @@ public async Task ValidateRewardAsync( if (!Common.IsZero(config)) { parameter.Config = config; } - string jsonString = JsonSerializer.Serialize(parameter); + string jsonString = JsonSerializer.Serialize(parameter, JsonConfig.InternalSerializerOptions); JsonNode? parameterNode = JsonNode.Parse(jsonString); if (parameterNode == null) { throw new NotSupportedException("Failed to parse ValidateRewardParameters to JsonNode."); @@ -2076,9 +2083,10 @@ public async Task ValidateRewardAsync( } HttpOptions? requestHttpOptions = config?.HttpOptions; - ApiResponse response = - await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Serialize(body), - requestHttpOptions, cancellationToken); + ApiResponse response = await this._apiClient.RequestAsync( + HttpMethod.Post, path, + JsonSerializer.Serialize(body, JsonConfig.InternalSerializerOptions), requestHttpOptions, + cancellationToken); HttpContent httpContent = response.GetEntity(); #if NETSTANDARD2_0 string contentString = await httpContent.ReadAsStringAsync(); @@ -2101,7 +2109,8 @@ await this._apiClient.RequestAsync(HttpMethod.Post, path, JsonSerializer.Seriali "This method is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode."); } - return responseNode.Deserialize() ?? + return responseNode.Deserialize( + JsonConfig.InternalSerializerOptions) ?? throw new InvalidOperationException( "Failed to deserialize Task."); } diff --git a/Google.GenAI/packages.lock.json b/Google.GenAI/packages.lock.json index bc5e6bfc..00036c7d 100644 --- a/Google.GenAI/packages.lock.json +++ b/Google.GenAI/packages.lock.json @@ -1,240 +1,273 @@ -{ - "version": 2, - "dependencies": { - ".NETStandard,Version=v2.0": { - "Google.Apis.Auth": { - "type": "Direct", - "requested": "[1.69.0, )", - "resolved": "1.69.0", - "contentHash": "ar07yxn/s41jdqQ3sMh8EAehiSvXQ9yE1MS4McmZINeSWvolnLHmIZ9Yxj4tHVIYYz0c7H/lpToVqm7C2aYx9g==", - "dependencies": { - "Google.Apis": "1.69.0", - "Google.Apis.Core": "1.69.0", - "System.Management": "7.0.2" - } - }, - "Microsoft.Extensions.AI.Abstractions": { - "type": "Direct", - "requested": "[10.6.0, )", - "resolved": "10.6.0", - "contentHash": "JCkVoyqBqi9r3Vs5Qo5PfZobT0+CWeOx+9y9yggBxtW9s/X5CAoa7Iw/tP/rfUdz+nxRKMSBmrytYgwmu60lgA==", - "dependencies": { - "System.Text.Json": "10.0.8" - } - }, - "MimeTypes": { - "type": "Direct", - "requested": "[2.5.2, )", - "resolved": "2.5.2", - "contentHash": "vm4xrNt+i6OVRQ8vhfCcmDIUg3qvjyCTkSTNVTDFohsG6CXEpMaVFkidECL6yRYpHDnz4TqXhDoEQAcnHCu/tw==" - }, - "NETStandard.Library": { - "type": "Direct", - "requested": "[2.0.3, )", - "resolved": "2.0.3", - "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0" - } - }, - "System.Text.Json": { - "type": "Direct", - "requested": "[10.0.8, )", - "resolved": "10.0.8", - "contentHash": "/fysUDkD7oFGaRPoA7IaFs0wRoO3GlwlCNq2P+xWZqxLy1R4cktRSKfMjJDy9ymS4grL7IDVdt8de8L9a0z55Q==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "10.0.8", - "System.Buffers": "4.6.1", - "System.IO.Pipelines": "10.0.8", - "System.Memory": "4.6.3", - "System.Runtime.CompilerServices.Unsafe": "6.1.2", - "System.Text.Encodings.Web": "10.0.8", - "System.Threading.Tasks.Extensions": "4.6.3" - } - }, - "Google.Apis": { - "type": "Transitive", - "resolved": "1.69.0", - "contentHash": "1TfjsXFejwIf7iWaE7A0FbnOEsk8FPlbdFAt1r+I8aSMQfLLdSVWCLdZz6TzuWVwoCGEuJUHTZ/FXdptdU3qWw==", - "dependencies": { - "Google.Apis.Core": "1.69.0" - } - }, - "Google.Apis.Core": { - "type": "Transitive", - "resolved": "1.69.0", - "contentHash": "SXUcurNUPxYMtOnawvB2Av18VrPBC9W7So9q9ikmXIXLGiv4RX7Zbu4kc+8PbwTdd8wLt54r0PBGOT5RaKoTjQ==", - "dependencies": { - "Newtonsoft.Json": "13.0.3" - } - }, - "Microsoft.NETCore.Platforms": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.3", - "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.6.1", - "contentHash": "N8GXpmiLMtljq7gwvyS+1QvKT/W2J8sNAvx+HVg4NGmsG/H+2k/y9QI23auLJRterrzCiDH+IWAw4V/GPwsMlw==" - }, - "System.CodeDom": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==" - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "10.0.8", - "contentHash": "STVNTIVd+UrYvSo31D2tOOTs19IThdjGDN14FS3/NZb4PWsVakAg/VT4sq+JYWGP/GtazzvXwebWL6LPBAwnFQ==", - "dependencies": { - "System.Buffers": "4.6.1", - "System.Memory": "4.6.3", - "System.Threading.Tasks.Extensions": "4.6.3" - } - }, - "System.Management": { - "type": "Transitive", - "resolved": "7.0.2", - "contentHash": "/qEUN91mP/MUQmJnM5y5BdT7ZoPuVrtxnFlbJ8a3kBJGhe2wCzBfnPFtK2wTtEEcf3DMGR9J00GZZfg6HRI6yA==", - "dependencies": { - "System.CodeDom": "7.0.0" - } - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.6.3", - "contentHash": "qdcDOgnFZY40+Q9876JUHnlHu7bosOHX8XISRoH94fwk6hgaeQGSgfZd8srWRZNt5bV9ZW2TljcegDNxsf+96A==", - "dependencies": { - "System.Buffers": "4.6.1", - "System.Numerics.Vectors": "4.6.1", - "System.Runtime.CompilerServices.Unsafe": "6.1.2" - } - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.6.1", - "contentHash": "sQxefTnhagrhoq2ReR0D/6K0zJcr9Hrd6kikeXsA1I8kOCboTavcUC4r7TSfpKFeE163uMuxZcyfO1mGO3EN8Q==" - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.1.2", - "contentHash": "2hBr6zdbIBTDE3EhK7NSVNdX58uTK6iHW/P/Axmm9sl1xoGSLqDvMtpecn226TNwHByFokYwJmt/aQQNlO5CRw==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "10.0.8", - "contentHash": "HvFIJXM/CMTRu6PBQmjukQZ/O32Vx5fOEYZs0kq0OD5s9vJQ19KHLWCVmnfh3gNC7pbYomm06tzOTgJBflr/nQ==", - "dependencies": { - "System.Buffers": "4.6.1", - "System.Memory": "4.6.3", - "System.Runtime.CompilerServices.Unsafe": "6.1.2" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.6.3", - "contentHash": "7sCiwilJLYbTZELaKnc7RecBBXWXA+xMLQWZKWawBxYjp6DBlSE3v9/UcvKBvr1vv2tTOhipiogM8rRmxlhrVA==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.1.2" - } - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "CentralTransitive", - "requested": "[10.0.3, )", - "resolved": "10.0.8", - "contentHash": "e+kYYRb0HmNo5FTOcjXkP0mIEFHEyygm4ea/iLWpdumsACzCH078nZMfnk6RQFmtSrnNbh654c8nNtmUSwQoow==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.6.3" - } - } - }, - "net8.0": { - "Google.Apis.Auth": { - "type": "Direct", - "requested": "[1.69.0, )", - "resolved": "1.69.0", - "contentHash": "ar07yxn/s41jdqQ3sMh8EAehiSvXQ9yE1MS4McmZINeSWvolnLHmIZ9Yxj4tHVIYYz0c7H/lpToVqm7C2aYx9g==", - "dependencies": { - "Google.Apis": "1.69.0", - "Google.Apis.Core": "1.69.0", - "System.Management": "7.0.2" - } - }, - "Microsoft.Extensions.AI.Abstractions": { - "type": "Direct", - "requested": "[10.6.0, )", - "resolved": "10.6.0", - "contentHash": "JCkVoyqBqi9r3Vs5Qo5PfZobT0+CWeOx+9y9yggBxtW9s/X5CAoa7Iw/tP/rfUdz+nxRKMSBmrytYgwmu60lgA==", - "dependencies": { - "System.Text.Json": "10.0.8" - } - }, - "MimeTypes": { - "type": "Direct", - "requested": "[2.5.2, )", - "resolved": "2.5.2", - "contentHash": "vm4xrNt+i6OVRQ8vhfCcmDIUg3qvjyCTkSTNVTDFohsG6CXEpMaVFkidECL6yRYpHDnz4TqXhDoEQAcnHCu/tw==" - }, - "System.Text.Json": { - "type": "Direct", - "requested": "[10.0.8, )", - "resolved": "10.0.8", - "contentHash": "/fysUDkD7oFGaRPoA7IaFs0wRoO3GlwlCNq2P+xWZqxLy1R4cktRSKfMjJDy9ymS4grL7IDVdt8de8L9a0z55Q==", - "dependencies": { - "System.IO.Pipelines": "10.0.8", - "System.Text.Encodings.Web": "10.0.8" - } - }, - "Google.Apis": { - "type": "Transitive", - "resolved": "1.69.0", - "contentHash": "1TfjsXFejwIf7iWaE7A0FbnOEsk8FPlbdFAt1r+I8aSMQfLLdSVWCLdZz6TzuWVwoCGEuJUHTZ/FXdptdU3qWw==", - "dependencies": { - "Google.Apis.Core": "1.69.0" - } - }, - "Google.Apis.Core": { - "type": "Transitive", - "resolved": "1.69.0", - "contentHash": "SXUcurNUPxYMtOnawvB2Av18VrPBC9W7So9q9ikmXIXLGiv4RX7Zbu4kc+8PbwTdd8wLt54r0PBGOT5RaKoTjQ==", - "dependencies": { - "Newtonsoft.Json": "13.0.3" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.3", - "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" - }, - "System.CodeDom": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==" - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "10.0.8", - "contentHash": "STVNTIVd+UrYvSo31D2tOOTs19IThdjGDN14FS3/NZb4PWsVakAg/VT4sq+JYWGP/GtazzvXwebWL6LPBAwnFQ==" - }, - "System.Management": { - "type": "Transitive", - "resolved": "7.0.2", - "contentHash": "/qEUN91mP/MUQmJnM5y5BdT7ZoPuVrtxnFlbJ8a3kBJGhe2wCzBfnPFtK2wTtEEcf3DMGR9J00GZZfg6HRI6yA==", - "dependencies": { - "System.CodeDom": "7.0.0" - } - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "10.0.8", - "contentHash": "HvFIJXM/CMTRu6PBQmjukQZ/O32Vx5fOEYZs0kq0OD5s9vJQ19KHLWCVmnfh3gNC7pbYomm06tzOTgJBflr/nQ==" - } - } - } +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "Google.Apis.Auth": { + "type": "Direct", + "requested": "[1.69.0, )", + "resolved": "1.69.0", + "contentHash": "ar07yxn/s41jdqQ3sMh8EAehiSvXQ9yE1MS4McmZINeSWvolnLHmIZ9Yxj4tHVIYYz0c7H/lpToVqm7C2aYx9g==", + "dependencies": { + "Google.Apis": "1.69.0", + "Google.Apis.Core": "1.69.0", + "System.Management": "7.0.2" + } + }, + "Microsoft.Extensions.AI.Abstractions": { + "type": "Direct", + "requested": "[10.6.0, )", + "resolved": "10.6.0", + "contentHash": "JCkVoyqBqi9r3Vs5Qo5PfZobT0+CWeOx+9y9yggBxtW9s/X5CAoa7Iw/tP/rfUdz+nxRKMSBmrytYgwmu60lgA==", + "dependencies": { + "System.Text.Json": "10.0.8" + } + }, + "MimeTypes": { + "type": "Direct", + "requested": "[2.5.2, )", + "resolved": "2.5.2", + "contentHash": "vm4xrNt+i6OVRQ8vhfCcmDIUg3qvjyCTkSTNVTDFohsG6CXEpMaVFkidECL6yRYpHDnz4TqXhDoEQAcnHCu/tw==" + }, + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "System.Collections.Immutable": { + "type": "Direct", + "requested": "[9.0.0, )", + "resolved": "9.0.0", + "contentHash": "QhkXUl2gNrQtvPmtBTQHb0YsUrDiDQ2QS09YbtTTiSjGcf7NBqtYbrG/BE06zcBPCKEwQGzIv13IVdXNOSub2w==", + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Net.ServerSentEvents": { + "type": "Direct", + "requested": "[9.0.0, )", + "resolved": "9.0.0", + "contentHash": "VTWjeyx9nPb4+hkjGcAaDw1nOckypMtvABmxSWm6PPYwrXoIiVG3jwtNlAGhaGVjDkBrERABox67wYTAcHxg7Q==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "9.0.0", + "System.Memory": "4.5.5", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[10.0.8, )", + "resolved": "10.0.8", + "contentHash": "/fysUDkD7oFGaRPoA7IaFs0wRoO3GlwlCNq2P+xWZqxLy1R4cktRSKfMjJDy9ymS4grL7IDVdt8de8L9a0z55Q==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.8", + "System.Buffers": "4.6.1", + "System.IO.Pipelines": "10.0.8", + "System.Memory": "4.6.3", + "System.Runtime.CompilerServices.Unsafe": "6.1.2", + "System.Text.Encodings.Web": "10.0.8", + "System.Threading.Tasks.Extensions": "4.6.3" + } + }, + "Google.Apis": { + "type": "Transitive", + "resolved": "1.69.0", + "contentHash": "1TfjsXFejwIf7iWaE7A0FbnOEsk8FPlbdFAt1r+I8aSMQfLLdSVWCLdZz6TzuWVwoCGEuJUHTZ/FXdptdU3qWw==", + "dependencies": { + "Google.Apis.Core": "1.69.0" + } + }, + "Google.Apis.Core": { + "type": "Transitive", + "resolved": "1.69.0", + "contentHash": "SXUcurNUPxYMtOnawvB2Av18VrPBC9W7So9q9ikmXIXLGiv4RX7Zbu4kc+8PbwTdd8wLt54r0PBGOT5RaKoTjQ==", + "dependencies": { + "Newtonsoft.Json": "13.0.3" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.6.1", + "contentHash": "N8GXpmiLMtljq7gwvyS+1QvKT/W2J8sNAvx+HVg4NGmsG/H+2k/y9QI23auLJRterrzCiDH+IWAw4V/GPwsMlw==" + }, + "System.CodeDom": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==" + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "10.0.8", + "contentHash": "STVNTIVd+UrYvSo31D2tOOTs19IThdjGDN14FS3/NZb4PWsVakAg/VT4sq+JYWGP/GtazzvXwebWL6LPBAwnFQ==", + "dependencies": { + "System.Buffers": "4.6.1", + "System.Memory": "4.6.3", + "System.Threading.Tasks.Extensions": "4.6.3" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "7.0.2", + "contentHash": "/qEUN91mP/MUQmJnM5y5BdT7ZoPuVrtxnFlbJ8a3kBJGhe2wCzBfnPFtK2wTtEEcf3DMGR9J00GZZfg6HRI6yA==", + "dependencies": { + "System.CodeDom": "7.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.6.3", + "contentHash": "qdcDOgnFZY40+Q9876JUHnlHu7bosOHX8XISRoH94fwk6hgaeQGSgfZd8srWRZNt5bV9ZW2TljcegDNxsf+96A==", + "dependencies": { + "System.Buffers": "4.6.1", + "System.Numerics.Vectors": "4.6.1", + "System.Runtime.CompilerServices.Unsafe": "6.1.2" + } + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.6.1", + "contentHash": "sQxefTnhagrhoq2ReR0D/6K0zJcr9Hrd6kikeXsA1I8kOCboTavcUC4r7TSfpKFeE163uMuxZcyfO1mGO3EN8Q==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.1.2", + "contentHash": "2hBr6zdbIBTDE3EhK7NSVNdX58uTK6iHW/P/Axmm9sl1xoGSLqDvMtpecn226TNwHByFokYwJmt/aQQNlO5CRw==" + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "10.0.8", + "contentHash": "HvFIJXM/CMTRu6PBQmjukQZ/O32Vx5fOEYZs0kq0OD5s9vJQ19KHLWCVmnfh3gNC7pbYomm06tzOTgJBflr/nQ==", + "dependencies": { + "System.Buffers": "4.6.1", + "System.Memory": "4.6.3", + "System.Runtime.CompilerServices.Unsafe": "6.1.2" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.6.3", + "contentHash": "7sCiwilJLYbTZELaKnc7RecBBXWXA+xMLQWZKWawBxYjp6DBlSE3v9/UcvKBvr1vv2tTOhipiogM8rRmxlhrVA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.1.2" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "CentralTransitive", + "requested": "[10.0.3, )", + "resolved": "10.0.8", + "contentHash": "e+kYYRb0HmNo5FTOcjXkP0mIEFHEyygm4ea/iLWpdumsACzCH078nZMfnk6RQFmtSrnNbh654c8nNtmUSwQoow==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.6.3" + } + } + }, + "net8.0": { + "Google.Apis.Auth": { + "type": "Direct", + "requested": "[1.69.0, )", + "resolved": "1.69.0", + "contentHash": "ar07yxn/s41jdqQ3sMh8EAehiSvXQ9yE1MS4McmZINeSWvolnLHmIZ9Yxj4tHVIYYz0c7H/lpToVqm7C2aYx9g==", + "dependencies": { + "Google.Apis": "1.69.0", + "Google.Apis.Core": "1.69.0", + "System.Management": "7.0.2" + } + }, + "Microsoft.Extensions.AI.Abstractions": { + "type": "Direct", + "requested": "[10.6.0, )", + "resolved": "10.6.0", + "contentHash": "JCkVoyqBqi9r3Vs5Qo5PfZobT0+CWeOx+9y9yggBxtW9s/X5CAoa7Iw/tP/rfUdz+nxRKMSBmrytYgwmu60lgA==", + "dependencies": { + "System.Text.Json": "10.0.8" + } + }, + "MimeTypes": { + "type": "Direct", + "requested": "[2.5.2, )", + "resolved": "2.5.2", + "contentHash": "vm4xrNt+i6OVRQ8vhfCcmDIUg3qvjyCTkSTNVTDFohsG6CXEpMaVFkidECL6yRYpHDnz4TqXhDoEQAcnHCu/tw==" + }, + "System.Collections.Immutable": { + "type": "Direct", + "requested": "[9.0.0, )", + "resolved": "9.0.0", + "contentHash": "QhkXUl2gNrQtvPmtBTQHb0YsUrDiDQ2QS09YbtTTiSjGcf7NBqtYbrG/BE06zcBPCKEwQGzIv13IVdXNOSub2w==" + }, + "System.Net.ServerSentEvents": { + "type": "Direct", + "requested": "[9.0.0, )", + "resolved": "9.0.0", + "contentHash": "VTWjeyx9nPb4+hkjGcAaDw1nOckypMtvABmxSWm6PPYwrXoIiVG3jwtNlAGhaGVjDkBrERABox67wYTAcHxg7Q==" + }, + "System.Text.Json": { + "type": "Direct", + "requested": "[10.0.8, )", + "resolved": "10.0.8", + "contentHash": "/fysUDkD7oFGaRPoA7IaFs0wRoO3GlwlCNq2P+xWZqxLy1R4cktRSKfMjJDy9ymS4grL7IDVdt8de8L9a0z55Q==", + "dependencies": { + "System.IO.Pipelines": "10.0.8", + "System.Text.Encodings.Web": "10.0.8" + } + }, + "Google.Apis": { + "type": "Transitive", + "resolved": "1.69.0", + "contentHash": "1TfjsXFejwIf7iWaE7A0FbnOEsk8FPlbdFAt1r+I8aSMQfLLdSVWCLdZz6TzuWVwoCGEuJUHTZ/FXdptdU3qWw==", + "dependencies": { + "Google.Apis.Core": "1.69.0" + } + }, + "Google.Apis.Core": { + "type": "Transitive", + "resolved": "1.69.0", + "contentHash": "SXUcurNUPxYMtOnawvB2Av18VrPBC9W7So9q9ikmXIXLGiv4RX7Zbu4kc+8PbwTdd8wLt54r0PBGOT5RaKoTjQ==", + "dependencies": { + "Newtonsoft.Json": "13.0.3" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "System.CodeDom": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==" + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "10.0.8", + "contentHash": "STVNTIVd+UrYvSo31D2tOOTs19IThdjGDN14FS3/NZb4PWsVakAg/VT4sq+JYWGP/GtazzvXwebWL6LPBAwnFQ==" + }, + "System.Management": { + "type": "Transitive", + "resolved": "7.0.2", + "contentHash": "/qEUN91mP/MUQmJnM5y5BdT7ZoPuVrtxnFlbJ8a3kBJGhe2wCzBfnPFtK2wTtEEcf3DMGR9J00GZZfg6HRI6yA==", + "dependencies": { + "System.CodeDom": "7.0.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "10.0.8", + "contentHash": "HvFIJXM/CMTRu6PBQmjukQZ/O32Vx5fOEYZs0kq0OD5s9vJQ19KHLWCVmnfh3gNC7pbYomm06tzOTgJBflr/nQ==" + } + } + } } \ No newline at end of file