// generated by go run gen.go; DO NOT EDIT

package publicsuffix

var rules = [...]string{
	"ao",
	"ed.ao",
	"gv.ao",
	"og.ao",
	"co.ao",
	"pb.ao",
	"it.ao",
	"*.ar",
	"!congresodelalengua3.ar",
	"!educ.ar",
	"!gobiernoelectronico.ar",
	"!mecon.ar",
	"!nacion.ar",
	"!nic.ar",
	"!promocion.ar",
	"!retina.ar",
	"!uba.ar",
	"e164.arpa",
	"in-addr.arpa",
	"ip6.arpa",
	"iris.arpa",
	"uri.arpa",
	"urn.arpa",
	"*.cy",
	"jp",
	"ac.jp",
	"kyoto.jp",
	"*.kobe.jp",
	"!city.kobe.jp",
	"ayabe.kyoto.jp",
	"fukuchiyama.kyoto.jp",
	"higashiyama.kyoto.jp",
	"ide.kyoto.jp",
	"ine.kyoto.jp",
	"joyo.kyoto.jp",
	"kameoka.kyoto.jp",
	"kamo.kyoto.jp",
	"kita.kyoto.jp",
	"kizu.kyoto.jp",
	"kumiyama.kyoto.jp",
	"kyotamba.kyoto.jp",
	"kyotanabe.kyoto.jp",
	"kyotango.kyoto.jp",
	"maizuru.kyoto.jp",
	"minami.kyoto.jp",
	"minamiyamashiro.kyoto.jp",
	"miyazu.kyoto.jp",
	"muko.kyoto.jp",
	"nagaokakyo.kyoto.jp",
	"nakagyo.kyoto.jp",
	"nantan.kyoto.jp",
	"oyamazaki.kyoto.jp",
	"sakyo.kyoto.jp",
	"seika.kyoto.jp",
	"tanabe.kyoto.jp",
	"uji.kyoto.jp",
	"ujitawara.kyoto.jp",
	"wazuka.kyoto.jp",
	"yamashina.kyoto.jp",
	"yawata.kyoto.jp",
	"*.om",
	"!mediaphone.om",
	"!nawrastelecom.om",
	"!nawras.om",
	"!omanmobile.om",
	"!omanpost.om",
	"!omantel.om",
	"!rakpetroleum.om",
	"!siemens.om",
	"!songfest.om",
	"!statecouncil.om",
	"tw",
	"edu.tw",
	"gov.tw",
	"mil.tw",
	"com.tw",
	"net.tw",
	"org.tw",
	"idv.tw",
	"game.tw",
	"ebiz.tw",
	"club.tw",
	"xn--zf0ao64a.tw",
	"xn--uc0atv.tw",
	"xn--czrw28b.tw",
	"*.uk",
	"*.sch.uk",
	"!bl.uk",
	"!british-library.uk",
	"!jet.uk",
	"!mod.uk",
	"!national-library-scotland.uk",
	"!nel.uk",
	"!nic.uk",
	"!nls.uk",
	"!parliament.uk",
	"ak.us",
	"k12.ak.us",
	"cc.ak.us",
	"lib.ak.us",
	"xn--p1ai",
	"*.zw",
	"uk.com",
	"blogspot.co.uk",
	"blogspot.com.ar",
	"blogspot.tw",
	"dyndns.org",
	"go.dyndns.org",
	"home.dyndns.org",
}

var nodeLabels = [...]string{
	"ao",
	"ar",
	"arpa",
	"com",
	"cy",
	"jp",
	"om",
	"org",
	"tw",
	"uk",
	"us",
	"xn--p1ai",
	"zw",
	"co",
	"ed",
	"gv",
	"it",
	"og",
	"pb",
	"com",
	"congresodelalengua3",
	"educ",
	"gobiernoelectronico",
	"mecon",
	"nacion",
	"nic",
	"promocion",
	"retina",
	"uba",
	"blogspot",
	"e164",
	"in-addr",
	"ip6",
	"iris",
	"uri",
	"urn",
	"uk",
	"ac",
	"kobe",
	"kyoto",
	"city",
	"ayabe",
	"fukuchiyama",
	"higashiyama",
	"ide",
	"ine",
	"joyo",
	"kameoka",
	"kamo",
	"kita",
	"kizu",
	"kumiyama",
	"kyotamba",
	"kyotanabe",
	"kyotango",
	"maizuru",
	"minami",
	"minamiyamashiro",
	"miyazu",
	"muko",
	"nagaokakyo",
	"nakagyo",
	"nantan",
	"oyamazaki",
	"sakyo",
	"seika",
	"tanabe",
	"uji",
	"ujitawara",
	"wazuka",
	"yamashina",
	"yawata",
	"mediaphone",
	"nawras",
	"nawrastelecom",
	"omanmobile",
	"omanpost",
	"omantel",
	"rakpetroleum",
	"siemens",
	"songfest",
	"statecouncil",
	"dyndns",
	"go",
	"home",
	"blogspot",
	"club",
	"com",
	"ebiz",
	"edu",
	"game",
	"gov",
	"idv",
	"mil",
	"net",
	"org",
	"xn--czrw28b",
	"xn--uc0atv",
	"xn--zf0ao64a",
	"bl",
	"british-library",
	"co",
	"jet",
	"mod",
	"national-library-scotland",
	"nel",
	"nic",
	"nls",
	"parliament",
	"sch",
	"blogspot",
	"ak",
	"cc",
	"k12",
	"lib",
}
