<RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__GetPrivateKeyPuTTYRegex_6
                    sealed class <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__GetPrivateKeyPuTTYRegex_6 : Regex
                
                using System.CodeDom.Compiler;
using System.Collections;
using System.Runtime.CompilerServices;
namespace System.Text.RegularExpressions.Generated
{
    [GeneratedCode("System.Text.RegularExpressions.Generator", "9.0.12.47515")]
    internal sealed class <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__GetPrivateKeyPuTTYRegex_6 : Regex
    {
        private sealed class RunnerFactory : RegexRunnerFactory
        {
            private sealed class Runner : RegexRunner
            {
                protected override void Scan(ReadOnlySpan<char> inputSpan)
                {
                    while (TryFindNextPossibleStartingPosition(inputSpan) && !TryMatchAtCurrentPosition(inputSpan) && runtextpos != inputSpan.Length) {
                        runtextpos++;
                        if (<RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.s_hasTimeout)
                            CheckTimeout();
                    }
                }
                private bool TryFindNextPossibleStartingPosition(ReadOnlySpan<char> inputSpan)
                {
                    int num = runtextpos;
                    if (num <= inputSpan.Length - 100) {
                        if (num <= 0 || inputSpan[num - 1] == '\n')
                            goto IL_005a;
                        int num2 = inputSpan.Slice(num).IndexOf('\n');
                        if ((uint)num2 <= inputSpan.Length - num - 1) {
                            num += num2 + 1;
                            if (num <= inputSpan.Length - 100)
                                goto IL_005a;
                        }
                    }
                    goto IL_007c;
                    IL_005a:
                    int num3 = inputSpan.Slice(num).IndexOfAny(<RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.s_indexOfString_B23305EF0D2F7847477C2D0284ACE7CA58A17E522D750B9B4AA3990104523EBA);
                    if (num3 >= 0) {
                        runtextpos = num + num3;
                        return true;
                    }
                    goto IL_007c;
                    IL_007c:
                    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 num3 = 0;
                    int num4 = 0;
                    int num5 = 0;
                    int num6 = 0;
                    int num7 = 0;
                    int num8 = 0;
                    int num9 = 0;
                    int num10 = 0;
                    int num11 = 0;
                    int num12 = 0;
                    int num13 = 0;
                    int pos = 0;
                    ReadOnlySpan<char> span = inputSpan.Slice(runtextpos);
                    if (runtextpos > 0 && inputSpan[runtextpos - 1] != '\n') {
                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
                        return false;
                    }
                    num = runtextpos;
                    if (!span.StartsWith("PuTTY-User-Key-File")) {
                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
                        return false;
                    }
                    runtextpos += 19;
                    span = inputSpan.Slice(runtextpos);
                    Capture(1, num, runtextpos);
                    if (span.IsEmpty || span[0] != '-') {
                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
                        return false;
                    }
                    runtextpos++;
                    span = inputSpan.Slice(runtextpos);
                    num2 = runtextpos;
                    int i;
                    for (i = 0; (uint)i < (uint)span.Length && char.IsDigit(span[i]); i++) {
                    }
                    if (i == 0) {
                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
                        return false;
                    }
                    span = span.Slice(i);
                    runtextpos += i;
                    Capture(2, num2, runtextpos);
                    if (!span.StartsWith(": ")) {
                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
                        return false;
                    }
                    runtextpos += 2;
                    span = inputSpan.Slice(runtextpos);
                    num4 = runtextpos;
                    int j;
                    for (j = 0; (uint)j < (uint)span.Length; j++) {
                        char c;
                        if ((((c = span[j]) < '') ? ("   Ͽ蟿߿"[(int)c >> 4] & (1 << (c & 15))) : (RegexRunner.CharInClass(c, " \n-. \t ") ? 1 : 0)) == 0)
                            break;
                    }
                    if (j == 0) {
                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
                        return false;
                    }
                    span = span.Slice(j);
                    runtextpos += j;
                    Capture(3, num4, runtextpos);
                    if (!span.IsEmpty && span[0] == '\r') {
                        span = span.Slice(1);
                        runtextpos++;
                    }
                    if (!span.StartsWith("\nEncryption: ")) {
                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
                        return false;
                    }
                    runtextpos += 13;
                    span = inputSpan.Slice(runtextpos);
                    num5 = runtextpos;
                    int k;
                    for (k = 0; (uint)k < (uint)span.Length; k++) {
                        char c;
                        if ((((c = span[k]) < '') ? ("   Ͽ蟿߿"[(int)c >> 4] & (1 << (c & 15))) : (RegexRunner.CharInClass(c, " \n-. \t ") ? 1 : 0)) == 0)
                            break;
                    }
                    if (k == 0) {
                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
                        return false;
                    }
                    span = span.Slice(k);
                    runtextpos += k;
                    Capture(4, num5, runtextpos);
                    if (!span.IsEmpty && span[0] == '\r') {
                        span = span.Slice(1);
                        runtextpos++;
                    }
                    if (!span.StartsWith("\nComment: ")) {
                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
                        return false;
                    }
                    runtextpos += 10;
                    span = inputSpan.Slice(runtextpos);
                    num6 = runtextpos;
                    num9 = runtextpos;
                    while (true) {
                        num8 = Crawlpos();
                        Capture(5, num6, runtextpos);
                        if (!span.IsEmpty && span[0] == '\r') {
                            span = span.Slice(1);
                            runtextpos++;
                        }
                        if (span.StartsWith("\nPublic-Lines: ")) {
                            runtextpos += 15;
                            span = inputSpan.Slice(runtextpos);
                            int l;
                            for (l = 0; (uint)l < (uint)span.Length && char.IsDigit(span[l]); l++) {
                            }
                            if (l != 0) {
                                span = span.Slice(l);
                                runtextpos += l;
                                if (!span.IsEmpty && span[0] == '\r') {
                                    span = span.Slice(1);
                                    runtextpos++;
                                }
                                if (!span.IsEmpty && span[0] == '\n') {
                                    runtextpos++;
                                    span = inputSpan.Slice(runtextpos);
                                    num7 = runtextpos;
                                    num10 = 0;
                                    while (true) {
                                        <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.StackPush(ref runstack, ref pos, Crawlpos(), runtextpos);
                                        num10++;
                                        int m;
                                        for (m = 0; m < 64 && (uint)m < (uint)span.Length; m++) {
                                            char c;
                                            if ((c = span[m]) >= '{')
                                                break;
                                            if (("  蠀⏿߿߿"[(int)c >> 4] & (1 << (c & 15))) == 0)
                                                break;
                                        }
                                        if (m == 0)
                                            break;
                                        span = span.Slice(m);
                                        runtextpos += m;
                                        if (!span.IsEmpty && span[0] == '\r') {
                                            span = span.Slice(1);
                                            runtextpos++;
                                        }
                                        if (span.IsEmpty || span[0] != '\n')
                                            break;
                                        runtextpos++;
                                        span = inputSpan.Slice(runtextpos);
                                    }
                                    while (--num10 >= 0) {
                                        runtextpos = runstack[--pos];
                                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]);
                                        span = inputSpan.Slice(runtextpos);
                                        if (num10 == 0)
                                            break;
                                        Capture(6, num7, runtextpos);
                                        num11 = 0;
                                        while (true) {
                                            <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.StackPush(ref runstack, ref pos, Crawlpos(), runtextpos);
                                            num11++;
                                            if (span.StartsWith("Key-Derivation: ")) {
                                                runtextpos += 16;
                                                span = inputSpan.Slice(runtextpos);
                                                int start2 = runtextpos;
                                                int n;
                                                for (n = 0; (uint)n < (uint)span.Length && <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.IsWordChar(span[n]); n++) {
                                                }
                                                if (n != 0) {
                                                    span = span.Slice(n);
                                                    runtextpos += n;
                                                    Capture(7, start2, runtextpos);
                                                    if (!span.IsEmpty && span[0] == '\r') {
                                                        span = span.Slice(1);
                                                        runtextpos++;
                                                    }
                                                    if (span.StartsWith("\nArgon2-Memory: ")) {
                                                        runtextpos += 16;
                                                        span = inputSpan.Slice(runtextpos);
                                                        int start3 = runtextpos;
                                                        int num14;
                                                        for (num14 = 0; (uint)num14 < (uint)span.Length && char.IsDigit(span[num14]); num14++) {
                                                        }
                                                        if (num14 != 0) {
                                                            span = span.Slice(num14);
                                                            runtextpos += num14;
                                                            Capture(8, start3, runtextpos);
                                                            if (!span.IsEmpty && span[0] == '\r') {
                                                                span = span.Slice(1);
                                                                runtextpos++;
                                                            }
                                                            if (span.StartsWith("\nArgon2-Passes: ")) {
                                                                runtextpos += 16;
                                                                span = inputSpan.Slice(runtextpos);
                                                                int start4 = runtextpos;
                                                                int num15;
                                                                for (num15 = 0; (uint)num15 < (uint)span.Length && char.IsDigit(span[num15]); num15++) {
                                                                }
                                                                if (num15 != 0) {
                                                                    span = span.Slice(num15);
                                                                    runtextpos += num15;
                                                                    Capture(9, start4, runtextpos);
                                                                    if (!span.IsEmpty && span[0] == '\r') {
                                                                        span = span.Slice(1);
                                                                        runtextpos++;
                                                                    }
                                                                    if (span.StartsWith("\nArgon2-Parallelism: ")) {
                                                                        runtextpos += 21;
                                                                        span = inputSpan.Slice(runtextpos);
                                                                        int start5 = runtextpos;
                                                                        int num16;
                                                                        for (num16 = 0; (uint)num16 < (uint)span.Length && char.IsDigit(span[num16]); num16++) {
                                                                        }
                                                                        if (num16 != 0) {
                                                                            span = span.Slice(num16);
                                                                            runtextpos += num16;
                                                                            Capture(10, start5, runtextpos);
                                                                            if (!span.IsEmpty && span[0] == '\r') {
                                                                                span = span.Slice(1);
                                                                                runtextpos++;
                                                                            }
                                                                            if (span.StartsWith("\nArgon2-Salt: ")) {
                                                                                runtextpos += 14;
                                                                                span = inputSpan.Slice(runtextpos);
                                                                                int start6 = runtextpos;
                                                                                int num17 = span.IndexOfAnyExcept(<RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.s_asciiHexDigits);
                                                                                if (num17 < 0)
                                                                                    num17 = span.Length;
                                                                                if (num17 != 0) {
                                                                                    span = span.Slice(num17);
                                                                                    runtextpos += num17;
                                                                                    Capture(11, start6, runtextpos);
                                                                                    if (!span.IsEmpty && span[0] == '\r') {
                                                                                        span = span.Slice(1);
                                                                                        runtextpos++;
                                                                                    }
                                                                                    if (!span.IsEmpty && span[0] == '\n') {
                                                                                        runtextpos++;
                                                                                        span = inputSpan.Slice(runtextpos);
                                                                                        if (num11 == 0)
                                                                                            continue;
                                                                                        goto IL_087b;
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            goto IL_0841;
                                            IL_087b:
                                            if (span.StartsWith("Private-Lines: ")) {
                                                runtextpos += 15;
                                                span = inputSpan.Slice(runtextpos);
                                                int num18;
                                                for (num18 = 0; (uint)num18 < (uint)span.Length && char.IsDigit(span[num18]); num18++) {
                                                }
                                                if (num18 != 0) {
                                                    span = span.Slice(num18);
                                                    runtextpos += num18;
                                                    if (!span.IsEmpty && span[0] == '\r') {
                                                        span = span.Slice(1);
                                                        runtextpos++;
                                                    }
                                                    if (!span.IsEmpty && span[0] == '\n') {
                                                        runtextpos++;
                                                        span = inputSpan.Slice(runtextpos);
                                                        num12 = 0;
                                                        while (true) {
                                                            <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.StackPush(ref runstack, ref pos, Crawlpos(), runtextpos);
                                                            num12++;
                                                            int num19 = runtextpos;
                                                            num13 = 0;
                                                            while (true) {
                                                                <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.StackPush(ref runstack, ref pos, Crawlpos(), runtextpos);
                                                                num13++;
                                                                int num20;
                                                                for (num20 = 0; num20 < 64 && (uint)num20 < (uint)span.Length; num20++) {
                                                                    char c;
                                                                    if ((c = span[num20]) >= '{')
                                                                        break;
                                                                    if (("  蠀⏿߿߿"[(int)c >> 4] & (1 << (c & 15))) == 0)
                                                                        break;
                                                                }
                                                                if (num20 == 0)
                                                                    break;
                                                                span = span.Slice(num20);
                                                                runtextpos += num20;
                                                                if (!span.IsEmpty && span[0] == '\r') {
                                                                    span = span.Slice(1);
                                                                    runtextpos++;
                                                                }
                                                                if (span.IsEmpty || span[0] != '\n')
                                                                    break;
                                                                runtextpos++;
                                                                span = inputSpan.Slice(runtextpos);
                                                            }
                                                            while (true) {
                                                                if (--num13 >= 0) {
                                                                    runtextpos = runstack[--pos];
                                                                    <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]);
                                                                    span = inputSpan.Slice(runtextpos);
                                                                    if (num13 != 0)
                                                                        break;
                                                                }
                                                                if (--num12 >= 0) {
                                                                    runtextpos = runstack[--pos];
                                                                    <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]);
                                                                    span = inputSpan.Slice(runtextpos);
                                                                    if (num12 != 0) {
                                                                        if (span.StartsWith("Private-MAC: ")) {
                                                                            runtextpos += 13;
                                                                            span = inputSpan.Slice(runtextpos);
                                                                            num3 = runtextpos;
                                                                            int num21 = span.IndexOfAnyExcept(<RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.s_asciiHexDigits);
                                                                            if (num21 < 0)
                                                                                num21 = span.Length;
                                                                            if (num21 != 0) {
                                                                                span = span.Slice(num21);
                                                                                runtextpos += num21;
                                                                                Capture(13, num3, runtextpos);
                                                                                base.runtextpos = runtextpos;
                                                                                Capture(0, start, runtextpos);
                                                                                return true;
                                                                            }
                                                                        }
                                                                        if (<RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.s_hasTimeout)
                                                                            CheckTimeout();
                                                                        if (num12 != 0) {
                                                                            num19 = runstack[--pos];
                                                                            num13 = runstack[--pos];
                                                                            if (<RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.s_hasTimeout)
                                                                                CheckTimeout();
                                                                            continue;
                                                                        }
                                                                    }
                                                                }
                                                                goto IL_0841;
                                                            }
                                                            <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.StackPush(ref runstack, ref pos, num13);
                                                            Capture(12, num19, runtextpos);
                                                            <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.StackPush(ref runstack, ref pos, num19);
                                                        }
                                                    }
                                                }
                                            }
                                            goto IL_0841;
                                            IL_0841:
                                            if (--num11 < 0)
                                                break;
                                            runtextpos = runstack[--pos];
                                            <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]);
                                            span = inputSpan.Slice(runtextpos);
                                            goto IL_087b;
                                        }
                                    }
                                }
                            }
                        }
                        <TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(num8);
                        if (<RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.s_hasTimeout)
                            CheckTimeout();
                        runtextpos = num9;
                        span = inputSpan.Slice(runtextpos);
                        if (span.IsEmpty || span[0] == '\n')
                            break;
                        runtextpos++;
                        span = inputSpan.Slice(runtextpos);
                        num9 = 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>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__GetPrivateKeyPuTTYRegex_6 Instance = new <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__GetPrivateKeyPuTTYRegex_6();
        private <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__GetPrivateKeyPuTTYRegex_6()
        {
            pattern = "^(?<keyName>PuTTY-User-Key-File)-(?<version>\\d+): (?<algorithmName>[\\w-]+)\\r?\\nEncryption: (?<encryptionType>[\\w-]+)\\r?\\nComment: (?<comment>.*?)\\r?\\nPublic-Lines: \\d+\\r?\\n(?<publicKey>(([a-zA-Z0-9/+=]{1,64})\\r?\\n)+)(Key-Derivation: (?<argon2Type>\\w+)\\r?\\nArgon2-Memory: (?<argon2Memory>\\d+)\\r?\\nArgon2-Passes: (?<argon2Passes>\\d+)\\r?\\nArgon2-Parallelism: (?<argon2Parallelism>\\d+)\\r?\\nArgon2-Salt: (?<argon2Salt>[a-fA-F0-9]+)\\r?\\n)?Private-Lines: \\d+\\r?\\n(?<data>(([a-zA-Z0-9/+=]{1,64})\\r?\\n)+)+Private-MAC: (?<mac>[a-fA-F0-9]+)";
            roptions = (RegexOptions.Multiline | RegexOptions.ExplicitCapture);
            Regex.ValidateMatchTimeout(<RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.s_defaultTimeout);
            internalMatchTimeout = <RegexGenerator_g>F13E84412258E915343E1B989C87CC052DFF95FC67A1DE317EDD2CB1D2C91A559__Utilities.s_defaultTimeout;
            factory = new RunnerFactory();
            base.CapNames = new Hashtable {
                {
                    "0",
                    0
                },
                {
                    "algorithmName",
                    3
                },
                {
                    "argon2Memory",
                    8
                },
                {
                    "argon2Parallelism",
                    10
                },
                {
                    "argon2Passes",
                    9
                },
                {
                    "argon2Salt",
                    11
                },
                {
                    "argon2Type",
                    7
                },
                {
                    "comment",
                    5
                },
                {
                    "data",
                    12
                },
                {
                    "encryptionType",
                    4
                },
                {
                    "keyName",
                    1
                },
                {
                    "mac",
                    13
                },
                {
                    "publicKey",
                    6
                },
                {
                    "version",
                    2
                }
            };
            capslist = new string[14] {
                "0",
                "keyName",
                "version",
                "algorithmName",
                "encryptionType",
                "comment",
                "publicKey",
                "argon2Type",
                "argon2Memory",
                "argon2Passes",
                "argon2Parallelism",
                "argon2Salt",
                "data",
                "mac"
            };
            capsize = 14;
        }
    }
}