<PackageReference Include="SSH.NET" Version="2025.0.0" />

<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2

using System.CodeDom.Compiler; using System.Collections; using System.Runtime.CompilerServices; namespace System.Text.RegularExpressions.Generated { [GeneratedCode("System.Text.RegularExpressions.Generator", "8.0.12.16413")] internal sealed class <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2 : Regex { private sealed class RunnerFactory : RegexRunnerFactory { private sealed class Runner : RegexRunner { protected override void Scan(ReadOnlySpan<char> inputSpan) { if (TryFindNextPossibleStartingPosition(inputSpan) && !TryMatchAtCurrentPosition(inputSpan)) runtextpos = inputSpan.Length; } private bool TryFindNextPossibleStartingPosition(ReadOnlySpan<char> inputSpan) { int runtextpos = base.runtextpos; if (runtextpos <= inputSpan.Length - 6 && runtextpos == 0) return true; base.runtextpos = inputSpan.Length; return false; } private bool TryMatchAtCurrentPosition(ReadOnlySpan<char> inputSpan) { int runtextpos = base.runtextpos; int start = runtextpos; int num = 0; int num2 = 0; int arg = 0; int arg2 = 0; int num3 = 0; int num4 = 0; int num5 = 0; int pos = 0; ReadOnlySpan<char> span = inputSpan.Slice(runtextpos); if (runtextpos != 0) { <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0); return false; } if (!span.StartsWith("SSH-")) { <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0); return false; } runtextpos += 4; span = inputSpan.Slice(runtextpos); num = runtextpos; int num6 = span.IndexOf('-'); if (num6 < 0) num6 = span.Length; if (num6 == 0) { <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0); return false; } span = span.Slice(num6); runtextpos += num6; Capture(1, num, runtextpos); if (span.IsEmpty || span[0] != '-') { <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0); return false; } runtextpos++; span = inputSpan.Slice(runtextpos); num2 = runtextpos; num4 = runtextpos; while (true) { num3 = Crawlpos(); Capture(2, num2, runtextpos); num5 = 0; while (true) { <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, Crawlpos(), runtextpos); num5++; int num7; if (!span.IsEmpty && span[0] == ' ') { runtextpos++; span = inputSpan.Slice(runtextpos); num7 = runtextpos; arg = runtextpos; int num8 = span.IndexOf('\n'); if (num8 < 0) num8 = span.Length; if (num8 != 0) { span = span.Slice(num8); runtextpos += num8; arg2 = runtextpos; arg++; goto IL_0209; } } goto IL_0259; IL_0259: if (--num5 < 0) break; runtextpos = runstack[--pos]; <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]); span = inputSpan.Slice(runtextpos); goto IL_02ab; IL_02ab: if (runtextpos >= inputSpan.Length - 1 && ((uint)runtextpos >= (uint)inputSpan.Length || inputSpan[runtextpos] == '\n')) { base.runtextpos = runtextpos; Capture(0, start, runtextpos); return true; } if (<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_hasTimeout) CheckTimeout(); if (num5 == 0) break; num7 = runstack[--pos]; <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]); <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPop(runstack, ref pos, out arg2, out arg); if (<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_hasTimeout) CheckTimeout(); if (arg < arg2) { runtextpos = --arg2; span = inputSpan.Slice(runtextpos); goto IL_0209; } goto IL_0259; IL_0209: <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, arg, arg2, Crawlpos()); Capture(3, num7, runtextpos); <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, num7); if (num5 == 0) continue; goto IL_02ab; } <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(num3); if (<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_hasTimeout) CheckTimeout(); runtextpos = num4; span = inputSpan.Slice(runtextpos); if (span.IsEmpty || span[0] == '\n') break; runtextpos++; span = inputSpan.Slice(runtextpos); num4 = runtextpos; } <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0); return false; } } [NullableContext(1)] protected override RegexRunner CreateInstance() { return new Runner(); } } [Nullable(1)] internal static readonly <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2 Instance = new <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2(); private <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetServerVersionRegex_2() { pattern = "^SSH-(?<protoversion>[^-]+)-(?<softwareversion>.*?)([ ](?<comments>.+))?$"; roptions = RegexOptions.ExplicitCapture; Regex.ValidateMatchTimeout(<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_defaultTimeout); internalMatchTimeout = <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_defaultTimeout; factory = new RunnerFactory(); base.CapNames = new Hashtable { { "0", 0 }, { "comments", 3 }, { "protoversion", 1 }, { "softwareversion", 2 } }; capslist = new string[4] { "0", "protoversion", "softwareversion", "comments" }; capsize = 4; } } }