Lets go down the list

  1. Raw String:
    123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()
  2. URL Encode:
    123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29
  3. EncodeOffSet:
    012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18$1C62
  4. EncodeOffSet:
    012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18
  5. DecodeOffSet:
    123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73
  6. URL Decode:
    123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()
  7. Hash #Length:
    123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73
  8. Change marker dash:
    123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73
  9. URL Encode:
    123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73
  10. EncodeOffSet:
    012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18$1C62
  11. DecodeOffSet:
    123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73
  12. URL Decode:
    123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73

Using this method any SQL Injection that doesn't follow the same encode pattern will be offset by one position which would not be a valid SQL Statement.

This is one of the easier methods of protecting your POST variables from attach.

Below is the code on this page.


@ LANGUAGE="VBSCRIPT"
Option Explicit

Dim str1,str2,str3,str4,str5,str6,str7,str8,str9,str10,str11,str12,str13,str14,str15
Dim I,aSplit,sOutput

Function URLEncode(str)
URLEncode = Server.URLEncode(str)
End Function

Function URLDecode(sConvert)
If IsNull(sConvert) Then
URLDecode = ""
Exit Function
End If
' convert all pluses to spaces
sOutput = REPLACE(sConvert, "+", " ")
' next convert %hexdigits to the character
aSplit = Split(sOutput, "%")
If IsArray(aSplit) Then
sOutput = aSplit(0)
For I = 0 to UBound(aSplit) - 1
sOutput = sOutput & _
Chr("&H" & Left(aSplit(i + 1), 2)) &_
Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2)
Next
End If

URLDecode = sOutput
End Function
Function EncodeOffSet(str)
str = Trim(str)

For I = 1 To Len(str)
str3 = str3 + CHR(ASC(MID(str,I,1))-1)
Next
str3 = Replace(str3,"`","(MnW)") 'Google does not like that character in some apps.
EncodeOffSet = str3

End Function

Function DecodeOffSet(str)
str = Trim(str)

str5 = Replace(str5,"(MnW)","`") 'Google does not like that character in some apps.

For I = 1 To Len(str)
str5 = str5 + CHR(ASC(MID(str,I,1))+1)
Next

DecodeOffSet = str5

End Function

Function URLDecode(sConvert)
If IsNull(sConvert) Then
URLDecode = ""
Exit Function
End If

' convert all pluses to spaces
sOutput = REPLACE(sConvert, "+", " ")

' next convert %hexdigits to the character
aSplit = Split(sOutput, "%")

If IsArray(aSplit) Then
sOutput = aSplit(0)
For I = 0 to UBound(aSplit) - 1
sOutput = sOutput & _
Chr("&H" & Left(aSplit(i + 1), 2)) &_
Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2)
Next
End If

URLDecode = sOutput
End Function

str1 = "123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ "" ' ()"
str2 = URLEncode(str1)
str4 = EncodeOffSet(str2)
str5 = DecodeOffSet(str4)
str6 = URLDecode(str5)
str7 = str6&"-"&Len(str6)
str8 = str6&"-"&Len(str6)
str9 = URLEncode(str8)
str10 = EncodeOffSet(str9)
str11 = DecodeOffSet(str10)
str12 = URLDecode(str11)

Putting it all together

I am using the get form below as your way of entering querystring data.

It would actually be your dynamic URL's encoded on the server side instead of the client side.

Basic Contact form

Lets go down the list

  1. Raw String:
  2. URL Encode:
  3. EncodeOffSet:
    012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18$1C62012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18$1C62012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18$1C62$1C260
  4. EncodeOffSet:
    012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18$1C62
  5. DecodeOffSet:
    123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73%2D371
  6. URL Decode:
    123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73
  7. Hash #Length:
    123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73-371
  8. Change marker dash:
    123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73-371
  9. URL Encode:
    123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73%2D371
  10. EncodeOffSet:
    012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18$1C62012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18$1C62012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18012345678$6D$5/$10$3/$12$13$14$4D$15$1@$17$18$4E$1A$6A$6C$6B$4A$4C$4B$2@$2A$2B$2D$2E$1B$1D$1E@*A*B*CDEFGHIJKLMNOPQRSTUVWXY*$11*$16*$17$18$1C62$1C260
  11. DecodeOffSet:
    123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29123456789%7E%60%21%40%23%24%25%5E%26%2A%28%29%5F%2B%7B%7D%7C%5B%5D%5C%3A%3B%3C%3E%3F%2C%2E%2FA+B+C+DEFGHIJKLMNOPQRSTUVWXYZ+%22+%27+%28%29%2D73%2D371
  12. URL Decode:
    123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()123456789~`!@#$%^&*()_+{}|[]\:;<>?,./A B C DEFGHIJKLMNOPQRSTUVWXYZ " ' ()-73-371