23    {
   25        {
   26            return string.Empty;
   27        }
   28        ReadOnlySpan<char> readOnlySpan = 
s;
 
   29        int num = 0;
   30        while (num < 
s.Length)
 
   31        {
   32            if (
char.IsHighSurrogate(readOnlySpan[num]) && num < 
s.Length - 1 && 
char.IsLowSurrogate(readOnlySpan[num + 1]))
 
   33            {
   34                SurrogateCasing.ToLower(readOnlySpan[num], readOnlySpan[num + 1], out var hr, out var lr);
   35                if (readOnlySpan[num] != hr || readOnlySpan[num + 1] != lr)
   36                {
   37                    break;
   38                }
   39                num += 2;
   40            }
   41            else
   42            {
   43                if (
ToLower(readOnlySpan[num]) != readOnlySpan[num])
 
   44                {
   45                    break;
   46                }
   47                num++;
   48            }
   49        }
   51        {
   53        }
   54        return string.Create(
s.Length, (
s, num), delegate(Span<char> 
destination, (
string s, 
int i) 
state)
 
   55        {
   56            ReadOnlySpan<char> readOnlySpan2 = 
state.s;
 
   59        });
   60    }
static char ToLower(char c)