# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This file has been generated with testing/libfuzzer/dictionary_generator.py
# using net_parse_data_url_fuzzer binary and RFC 3986.
"all"
"DNS"
"text"
"labels"
"DQUOTE"
"\"%D3%81%87%A4%95%81@%C2%85%81%83%88\"."
"[RFC2234]"
"F.,"
"FORCE"
"SOCIETY"
"\"%\""
"with"
"cache"
"WINS,"
"D.1."
"0"
"only"
"HTML"
"SPONSORED"
"[RFC1630]."
"D.,"
"[RFC1123]"
"US-ASCII"
"(STD"
"[RFC1808],"
"string"
"get"
"=="
"H"
"HEREIN"
"[BCP35]"
"SP)"
"SCTP)"
"(NUL)"
"THE"
"(URI):"
"REPRESENTS"
"[RFC2732]."
"resource"
"A.,"
"EXPRESS"
"list"
"(%2E),"
"WILL"
"HE/SHE"
"J."
"INCLUDING"
"common"
"segment."
"[RFC2732]"
"(URL)\","
"set"
"HTTP"
"IANA"
"INFORMATION"
"(%41-%5A"
"[RFC2518]"
"M."
"direct"
"sign"
"Only"
"Version"
"are"
"allowed."
"\"X\""
"HTTP,"
"(SP)."
"2DIGIT"
"section"
"BUT"
"\"UTF-8,"
"3"
"version"
"[RFC1034]"
"probably"
"[UCS],"
"metadata"
"Y.,"
"C"
"WWW\""
"parent"
"0X"
"W3C/IETF"
"S"
"key"
"address"
"INPUT"
"["
"P."
"WWW:"
"AND"
"received"
"WWW"
"[BCP35]."
"MA"
"\"AS"
"[RFC2718]."
"(IDNA)\","
"implementation"
"TCP"
"NOT"
"(URN)"
"ANY"
"[RFC1808]"
"WARRANTY"
"useful"
"[RFC1737]."
"[STD63],"
"\"HTTP\""
"(MIME)"
"TELNET"
"[RFC1630]"
"S."
"D.2."
"B.,"
"[RFC2234]."
"[RFC2234],"
"BCP"
"select"
"[STD63];"
"use"
"LATIN"
"from"
"C."
"to"
"WARRANTIES"
"(MHTML)\","
"ENGINEERING"
"URI;"
"."
"few"
"(DNS)."
"expected"
"USENET"
"type"
"empty"
"XML"
"URL?\","
"W3C/MIT"
"F"
"CA"
"STD:"
"SMTP"
"[RFC2141],"
"N"
"A),"
"flag"
"NOTE:"
"CR"
"MHTML"
"BY"
"must"
"ANY),"
"ALL"
"[STD63]"
"RIGHTS"
"this"
"SP"
"[BCP19]"
"value"
"INFRINGE"
"while"
"KATAKANA"
"resources"
"error"
"following"
"example"
"loop"
"J.,"
"2E:"
"type."
"L."
"have"
"%61-%7A),"
"is"
"allowed"
"thus"
"URI,"
"parse"
"STEP"
"MIME"
"UTF-8"
"in"
"[RFC0952]."
"native"
"FOR"
"binary"
"ISO/IEC"
"\"A"
"(%5F),"
")"
"algorithm."
"returning"
"\"A\","
"[RFC2141]"
"BUFFER"
"ABNF"
"[RFC2557]."
"I."
"WARRANTIES,"
"URN"
"EBCDIC"
"A"
"LF"
"used"
"http"
"I"
"IP"
"IS"
"after"
"L"
"Q"
"'A'"
"running"
"HEXDIG"
"such"
"EBCDIC,"
"data"
"TASK"
"a"
"task"
"P"
"[ASCII]."
"M.,"
"Names"
"flag."
"the"
"If"
"[RFC3490]"
"US-ASCII."
"2C:"
"THAT"
"being"
"when"
"E.,"
"(%2D),"
"\"URL:\""
"mechanism"
"WITH"
"its"
"before"
"tables"
"[UCS]"
"TO"
"BNF"
"platform"
"internal"
"P.,"
"ORGANIZATION"
"\"HTTP"
"URI."
"it,"
"D"
"format"
"URL"
"S.,"
"(0"
"URI\""
"URI"
"K."
"URI:"
"T"
"D.W."
"not"
"R."
"LIMITED"
"\"%3A\")"
"name"
"OF"
"B."
"[RFC1736]"
"(R),"
"IPR"
"[RFC1738];"
"OUTPUT"
"LALR"
"OR"
"STD"
"[RFC3513]"
"because"
"bytes"
"DNS,"
"some"
"back"
"(URI)"
"*DIGIT"
"[RFC2046]"
"[RFC3305]"
"\"%7E\""
"W3C"
"E."
"for"
"space"
"ABNF\","
"avoid"
"[RFC1535]."
"/"
"increase"
"may"
"time."
"does"
"'F'"
"[RFC2396]"
"be"
"K.,"
"DISCLAIM"
"G"
"(UTF-16),"
"This"
"M"
"INTERNET"
"RFC"
"X3.4,"
"base"
"(T):"
"IMPLIED,"
"by"
"\"URL\""
"on"
"DIGIT"
"(ABNF)"
"WEBDAV\","
"of"
"could"
"R.,"
"(ABNF:"
"failed"
"or"
"1*4HEXDIG"
"already"
"No"
"CAPITAL"
"number"
"one"
"ISO"
"FITNESS"
"message"
"open"
"ANSI"
"[BCP19],"
"\"%C3%80\","
"IETF"
"unknown"
"support"
"\"URN"
"[RFC1123]."
"long"
"[RFC0952]"
"[ASCII]"
":"
"was"
"[RFC3513]."
"[RFC2718]"
"B"
"N."
"that"
"IDNA"
"OCTET"
"but"
"R"
"POSIX"
"LETTER"
"CONTRIBUTOR,"
"[RFC1738]"
"line"
"(C)"
"true"
"\"URI\""
"PARTICULAR"
"target"
"16"
"default"
"double"
"\"URN\""
"[RFC2557]"
"enabled"
"up"
"TCP,"
"PURPOSE."
"MERCHANTABILITY"
"1)"
"IS\""
"\"IANA"
"called"
"multipart"
"and"
"USE"
"false"
"(IF"
"USA"
"URL,"
"an"
"To"
"as"
"(%7E)"
"at"
"file"
"need"
"any"
"\"%E3%82%A2\"."
"physical"
"1*HEXDIG"
"no"
"[RFC1737]"
"-"
"invalid"
"A."
"application"
"valid"
"take"
"which"
"test"
"[RFC2732],"
"you"
"="
"GRAVE"
"<URI>"
"begin"
"[RFC2396],"
"multiple"
"2B:"
"period,"
"UDP,"
"[RFC1535]"
"T."
"(UCS)\","
"U"
"A-F."
"T.,"
"The"
"]"
"source"
"D."
"persistent"
"traditional"
"L.,"
"As"
"IMPLIED"
"(URL)"
"ALPHA"
"[RFC3305]."
"H.,"
"\"MIME"
