diff options
Diffstat (limited to 'vendor/github.com/tdewolff/minify/v2/html/hash.go')
-rw-r--r-- | vendor/github.com/tdewolff/minify/v2/html/hash.go | 543 |
1 files changed, 543 insertions, 0 deletions
diff --git a/vendor/github.com/tdewolff/minify/v2/html/hash.go b/vendor/github.com/tdewolff/minify/v2/html/hash.go new file mode 100644 index 000000000..3b91cbbd5 --- /dev/null +++ b/vendor/github.com/tdewolff/minify/v2/html/hash.go @@ -0,0 +1,543 @@ +package html + +// generated by hasher -type=Hash -file=hash.go; DO NOT EDIT, except for adding more constants to the list and rerun go generate + +// uses github.com/tdewolff/hasher +//go:generate hasher -type=Hash -file=hash.go + +// Hash defines perfect hashes for a predefined list of strings +type Hash uint32 + +// Unique hash definitions to be used instead of strings +const ( + A Hash = 0x1 // a + Abbr Hash = 0x37a04 // abbr + About Hash = 0x5 // about + Accept Hash = 0x1106 // accept + Accept_Charset Hash = 0x110e // accept-charset + Action Hash = 0x23f06 // action + Address Hash = 0x5a07 // address + Align Hash = 0x32705 // align + Alink Hash = 0x7005 // alink + Allowfullscreen Hash = 0x2ad0f // allowfullscreen + Amp_Boilerplate Hash = 0x610f // amp-boilerplate + Area Hash = 0x1e304 // area + Article Hash = 0x2707 // article + Aside Hash = 0xb405 // aside + Async Hash = 0xac05 // async + Audio Hash = 0xd105 // audio + Autofocus Hash = 0xe409 // autofocus + Autoplay Hash = 0x10808 // autoplay + Axis Hash = 0x11004 // axis + B Hash = 0x101 // b + Background Hash = 0x300a // background + Base Hash = 0x19604 // base + Bb Hash = 0x37b02 // bb + Bdi Hash = 0x7503 // bdi + Bdo Hash = 0x31f03 // bdo + Bgcolor Hash = 0x12607 // bgcolor + Blockquote Hash = 0x13e0a // blockquote + Body Hash = 0xd04 // body + Br Hash = 0x37c02 // br + Button Hash = 0x14806 // button + Canvas Hash = 0xb006 // canvas + Caption Hash = 0x21f07 // caption + Charset Hash = 0x1807 // charset + Checked Hash = 0x1b307 // checked + Cite Hash = 0xfb04 // cite + Class Hash = 0x15905 // class + Classid Hash = 0x15907 // classid + Clear Hash = 0x2b05 // clear + Code Hash = 0x19204 // code + Codebase Hash = 0x19208 // codebase + Codetype Hash = 0x1a408 // codetype + Col Hash = 0x12803 // col + Colgroup Hash = 0x1bb08 // colgroup + Color Hash = 0x12805 // color + Cols Hash = 0x1cf04 // cols + Colspan Hash = 0x1cf07 // colspan + Compact Hash = 0x1ec07 // compact + Content Hash = 0x28407 // content + Controls Hash = 0x20108 // controls + Data Hash = 0x1f04 // data + Datalist Hash = 0x1f08 // datalist + Datatype Hash = 0x4d08 // datatype + Dd Hash = 0x5b02 // dd + Declare Hash = 0xb707 // declare + Default Hash = 0x7f07 // default + DefaultChecked Hash = 0x1730e // defaultChecked + DefaultMuted Hash = 0x7f0c // defaultMuted + DefaultSelected Hash = 0x8a0f // defaultSelected + Defer Hash = 0x9805 // defer + Del Hash = 0x10503 // del + Details Hash = 0x15f07 // details + Dfn Hash = 0x16c03 // dfn + Dialog Hash = 0xa606 // dialog + Dir Hash = 0x7603 // dir + Disabled Hash = 0x18008 // disabled + Div Hash = 0x18703 // div + Dl Hash = 0x1b902 // dl + Dt Hash = 0x23102 // dt + Em Hash = 0x4302 // em + Embed Hash = 0x4905 // embed + Enabled Hash = 0x26c07 // enabled + Enctype Hash = 0x1fa07 // enctype + Face Hash = 0x5604 // face + Fieldset Hash = 0x21408 // fieldset + Figcaption Hash = 0x21c0a // figcaption + Figure Hash = 0x22606 // figure + Footer Hash = 0xdb06 // footer + For Hash = 0x23b03 // for + Form Hash = 0x23b04 // form + Formaction Hash = 0x23b0a // formaction + Formnovalidate Hash = 0x2450e // formnovalidate + Frame Hash = 0x28c05 // frame + Frameborder Hash = 0x28c0b // frameborder + H1 Hash = 0x2e002 // h1 + H2 Hash = 0x25302 // h2 + H3 Hash = 0x25502 // h3 + H4 Hash = 0x25702 // h4 + H5 Hash = 0x25902 // h5 + H6 Hash = 0x25b02 // h6 + Head Hash = 0x2d204 // head + Header Hash = 0x2d206 // header + Hgroup Hash = 0x25d06 // hgroup + Hidden Hash = 0x26806 // hidden + Hr Hash = 0x32d02 // hr + Href Hash = 0x32d04 // href + Hreflang Hash = 0x32d08 // hreflang + Html Hash = 0x27304 // html + Http_Equiv Hash = 0x2770a // http-equiv + I Hash = 0x2401 // i + Icon Hash = 0x28304 // icon + Id Hash = 0xb602 // id + Iframe Hash = 0x28b06 // iframe + Img Hash = 0x29703 // img + Inert Hash = 0xf605 // inert + Inlist Hash = 0x29a06 // inlist + Input Hash = 0x2a405 // input + Ins Hash = 0x2a903 // ins + Ismap Hash = 0x11205 // ismap + Itemscope Hash = 0xfc09 // itemscope + Kbd Hash = 0x7403 // kbd + Keygen Hash = 0x1f606 // keygen + Label Hash = 0xbe05 // label + Lang Hash = 0x33104 // lang + Language Hash = 0x33108 // language + Legend Hash = 0x2c506 // legend + Li Hash = 0x2302 // li + Link Hash = 0x7104 // link + Longdesc Hash = 0xc208 // longdesc + Main Hash = 0xf404 // main + Manifest Hash = 0x2bc08 // manifest + Map Hash = 0xee03 // map + Mark Hash = 0x2cb04 // mark + Math Hash = 0x2cf04 // math + Max Hash = 0x2d803 // max + Maxlength Hash = 0x2d809 // maxlength + Media Hash = 0xa405 // media + Menu Hash = 0x12204 // menu + Meta Hash = 0x2e204 // meta + Meter Hash = 0x2f705 // meter + Method Hash = 0x2fc06 // method + Multiple Hash = 0x30208 // multiple + Muted Hash = 0x30a05 // muted + Name Hash = 0xa204 // name + Nav Hash = 0x32403 // nav + Nohref Hash = 0x32b06 // nohref + Noresize Hash = 0x13608 // noresize + Noscript Hash = 0x14d08 // noscript + Noshade Hash = 0x16e07 // noshade + Novalidate Hash = 0x2490a // novalidate + Nowrap Hash = 0x1d506 // nowrap + Object Hash = 0xd506 // object + Ol Hash = 0xcb02 // ol + Open Hash = 0x32104 // open + Optgroup Hash = 0x35608 // optgroup + Option Hash = 0x30f06 // option + Output Hash = 0x206 // output + P Hash = 0x501 // p + Param Hash = 0xf005 // param + Pauseonexit Hash = 0x1160b // pauseonexit + Picture Hash = 0x1c207 // picture + Plaintext Hash = 0x1da09 // plaintext + Poster Hash = 0x26206 // poster + Pre Hash = 0x35d03 // pre + Prefix Hash = 0x35d06 // prefix + Profile Hash = 0x36407 // profile + Progress Hash = 0x34208 // progress + Property Hash = 0x31508 // property + Q Hash = 0x14301 // q + Rb Hash = 0x2f02 // rb + Readonly Hash = 0x1e408 // readonly + Rel Hash = 0xbc03 // rel + Required Hash = 0x22a08 // required + Resource Hash = 0x1c708 // resource + Rev Hash = 0x7803 // rev + Reversed Hash = 0x7808 // reversed + Rows Hash = 0x9c04 // rows + Rowspan Hash = 0x9c07 // rowspan + Rp Hash = 0x6a02 // rp + Rt Hash = 0x2802 // rt + Rtc Hash = 0xf903 // rtc + Ruby Hash = 0xe004 // ruby + Rules Hash = 0x12c05 // rules + S Hash = 0x1c01 // s + Samp Hash = 0x6004 // samp + Scope Hash = 0x10005 // scope + Scoped Hash = 0x10006 // scoped + Script Hash = 0x14f06 // script + Scrolling Hash = 0xc809 // scrolling + Seamless Hash = 0x19808 // seamless + Section Hash = 0x13007 // section + Select Hash = 0x16506 // select + Selected Hash = 0x16508 // selected + Shape Hash = 0x19f05 // shape + Size Hash = 0x13a04 // size + Slot Hash = 0x20804 // slot + Small Hash = 0x2ab05 // small + Sortable Hash = 0x2ef08 // sortable + Source Hash = 0x1c906 // source + Span Hash = 0x9f04 // span + Src Hash = 0x34903 // src + Srcset Hash = 0x34906 // srcset + Start Hash = 0x2505 // start + Strong Hash = 0x29e06 // strong + Style Hash = 0x2c205 // style + Sub Hash = 0x31d03 // sub + Summary Hash = 0x33907 // summary + Sup Hash = 0x34003 // sup + Svg Hash = 0x34f03 // svg + Tabindex Hash = 0x2e408 // tabindex + Table Hash = 0x2f205 // table + Target Hash = 0x706 // target + Tbody Hash = 0xc05 // tbody + Td Hash = 0x1e02 // td + Template Hash = 0x4208 // template + Text Hash = 0x1df04 // text + Textarea Hash = 0x1df08 // textarea + Tfoot Hash = 0xda05 // tfoot + Th Hash = 0x2d102 // th + Thead Hash = 0x2d105 // thead + Time Hash = 0x12004 // time + Title Hash = 0x15405 // title + Tr Hash = 0x1f202 // tr + Track Hash = 0x1f205 // track + Translate Hash = 0x20b09 // translate + Truespeed Hash = 0x23209 // truespeed + Type Hash = 0x5104 // type + Typemustmatch Hash = 0x1a80d // typemustmatch + Typeof Hash = 0x5106 // typeof + U Hash = 0x301 // u + Ul Hash = 0x8302 // ul + Undeterminate Hash = 0x370d // undeterminate + Usemap Hash = 0xeb06 // usemap + Valign Hash = 0x32606 // valign + Value Hash = 0x18905 // value + Valuetype Hash = 0x18909 // valuetype + Var Hash = 0x28003 // var + Video Hash = 0x35205 // video + Visible Hash = 0x36b07 // visible + Vlink Hash = 0x37205 // vlink + Vocab Hash = 0x37705 // vocab + Wbr Hash = 0x37e03 // wbr + Xmlns Hash = 0x2eb05 // xmlns + Xmp Hash = 0x36203 // xmp +) + +// String returns the hash' name. +func (i Hash) String() string { + start := uint32(i >> 8) + n := uint32(i & 0xff) + if start+n > uint32(len(_Hash_text)) { + return "" + } + return _Hash_text[start : start+n] +} + +// ToHash returns the hash whose name is s. It returns zero if there is no +// such hash. It is case sensitive. +func ToHash(s []byte) Hash { + if len(s) == 0 || len(s) > _Hash_maxLen { + return 0 + } + h := uint32(_Hash_hash0) + for i := 0; i < len(s); i++ { + h ^= uint32(s[i]) + h *= 16777619 + } + if i := _Hash_table[h&uint32(len(_Hash_table)-1)]; int(i&0xff) == len(s) { + t := _Hash_text[i>>8 : i>>8+i&0xff] + for i := 0; i < len(s); i++ { + if t[i] != s[i] { + goto NEXT + } + } + return i + } +NEXT: + if i := _Hash_table[(h>>16)&uint32(len(_Hash_table)-1)]; int(i&0xff) == len(s) { + t := _Hash_text[i>>8 : i>>8+i&0xff] + for i := 0; i < len(s); i++ { + if t[i] != s[i] { + return 0 + } + } + return i + } + return 0 +} + +const _Hash_hash0 = 0x9acb0442 +const _Hash_maxLen = 15 +const _Hash_text = "aboutputargetbodyaccept-charsetdatalistarticlearbackgroundet" + + "erminatemplatembedatatypeofaceaddressamp-boilerplatealinkbdi" + + "reversedefaultMutedefaultSelectedeferowspanamedialogasyncanv" + + "asideclarelabelongdescrollingaudiobjectfooterubyautofocusema" + + "paramainertcitemscopedelautoplayaxismapauseonexitimenubgcolo" + + "rulesectionoresizeblockquotebuttonoscriptitleclassidetailsel" + + "ectedfnoshadefaultCheckedisabledivaluetypecodebaseamlesshape" + + "codetypemustmatcheckedlcolgroupicturesourcecolspanowraplaint" + + "extareadonlycompactrackeygenctypecontrolslotranslatefieldset" + + "figcaptionfigurequiredtruespeedformactionformnovalidateh2h3h" + + "4h5h6hgrouposterhiddenabledhtmlhttp-equivaricontentiframebor" + + "derimginlistronginputinsmallowfullscreenmanifestylegendmarkm" + + "atheadermaxlength1metabindexmlnsortablemetermethodmultiplemu" + + "tedoptionpropertysubdopenavalignohreflanguagesummarysuprogre" + + "ssrcsetsvgvideoptgrouprefixmprofilevisiblevlinkvocabbrwbr" + +var _Hash_table = [1 << 9]Hash{ + 0x0: 0x1df08, // textarea + 0x4: 0x32d02, // hr + 0x8: 0x1c207, // picture + 0xb: 0x18905, // value + 0xf: 0x2e408, // tabindex + 0x12: 0x15905, // class + 0x15: 0x37e03, // wbr + 0x18: 0x1a80d, // typemustmatch + 0x1a: 0x1b902, // dl + 0x1d: 0xf903, // rtc + 0x1e: 0x25702, // h4 + 0x22: 0x2ef08, // sortable + 0x24: 0x4208, // template + 0x25: 0x28c0b, // frameborder + 0x28: 0x37a04, // abbr + 0x29: 0x28b06, // iframe + 0x2a: 0x610f, // amp-boilerplate + 0x2c: 0x1e408, // readonly + 0x30: 0x23f06, // action + 0x33: 0x28c05, // frame + 0x35: 0x12c05, // rules + 0x36: 0x30208, // multiple + 0x38: 0x31f03, // bdo + 0x39: 0x1d506, // nowrap + 0x3e: 0x21408, // fieldset + 0x3f: 0x7503, // bdi + 0x46: 0x7f0c, // defaultMuted + 0x49: 0x35205, // video + 0x4c: 0x19808, // seamless + 0x4d: 0x13608, // noresize + 0x4f: 0xb602, // id + 0x51: 0x25d06, // hgroup + 0x52: 0x23102, // dt + 0x55: 0x12805, // color + 0x56: 0x34003, // sup + 0x59: 0x370d, // undeterminate + 0x5a: 0x35608, // optgroup + 0x5b: 0x2d206, // header + 0x5c: 0xb405, // aside + 0x5f: 0x10005, // scope + 0x60: 0x101, // b + 0x61: 0xcb02, // ol + 0x64: 0x32b06, // nohref + 0x65: 0x1da09, // plaintext + 0x66: 0x20804, // slot + 0x67: 0x11004, // axis + 0x68: 0x12803, // col + 0x69: 0x32606, // valign + 0x6c: 0x2d105, // thead + 0x70: 0x34906, // srcset + 0x71: 0x26806, // hidden + 0x76: 0x1bb08, // colgroup + 0x78: 0x34f03, // svg + 0x7b: 0x2cb04, // mark + 0x7e: 0x33104, // lang + 0x81: 0x1cf04, // cols + 0x86: 0x5a07, // address + 0x8b: 0xf404, // main + 0x8c: 0x4302, // em + 0x8f: 0x32d08, // hreflang + 0x93: 0x1b307, // checked + 0x94: 0x25902, // h5 + 0x95: 0x301, // u + 0x96: 0x32705, // align + 0x97: 0x14301, // q + 0x99: 0xd506, // object + 0x9b: 0x28407, // content + 0x9d: 0xc809, // scrolling + 0x9f: 0x36407, // profile + 0xa0: 0x34903, // src + 0xa1: 0xda05, // tfoot + 0xa3: 0x2f705, // meter + 0xa4: 0x37705, // vocab + 0xa6: 0xd04, // body + 0xa8: 0x19204, // code + 0xac: 0x20108, // controls + 0xb0: 0x2ab05, // small + 0xb1: 0x18008, // disabled + 0xb5: 0x5604, // face + 0xb6: 0x501, // p + 0xb9: 0x2302, // li + 0xbb: 0xe409, // autofocus + 0xbf: 0x27304, // html + 0xc2: 0x4d08, // datatype + 0xc6: 0x35d06, // prefix + 0xcb: 0x35d03, // pre + 0xcc: 0x1106, // accept + 0xd1: 0x23b03, // for + 0xd5: 0x29e06, // strong + 0xd6: 0x9c07, // rowspan + 0xd7: 0x25502, // h3 + 0xd8: 0x2cf04, // math + 0xde: 0x16e07, // noshade + 0xdf: 0x19f05, // shape + 0xe1: 0x10006, // scoped + 0xe3: 0x706, // target + 0xe6: 0x21c0a, // figcaption + 0xe9: 0x1df04, // text + 0xea: 0x1c708, // resource + 0xec: 0xee03, // map + 0xf0: 0x29a06, // inlist + 0xf1: 0x16506, // select + 0xf2: 0x1f606, // keygen + 0xf3: 0x5106, // typeof + 0xf6: 0xb006, // canvas + 0xf7: 0x30f06, // option + 0xf8: 0xbe05, // label + 0xf9: 0xbc03, // rel + 0xfb: 0x1f04, // data + 0xfd: 0x6004, // samp + 0x100: 0x110e, // accept-charset + 0x101: 0xeb06, // usemap + 0x103: 0x2bc08, // manifest + 0x109: 0xa204, // name + 0x10a: 0x14806, // button + 0x10b: 0x2b05, // clear + 0x10e: 0x33907, // summary + 0x10f: 0x2e204, // meta + 0x110: 0x33108, // language + 0x112: 0x300a, // background + 0x113: 0x2707, // article + 0x116: 0x23b0a, // formaction + 0x119: 0x1, // a + 0x11b: 0x5, // about + 0x11c: 0xfc09, // itemscope + 0x11e: 0x14d08, // noscript + 0x11f: 0x15907, // classid + 0x120: 0x36203, // xmp + 0x121: 0x19604, // base + 0x123: 0x1c01, // s + 0x124: 0x36b07, // visible + 0x126: 0x37b02, // bb + 0x127: 0x9c04, // rows + 0x12d: 0x2450e, // formnovalidate + 0x131: 0x1f205, // track + 0x135: 0x18703, // div + 0x136: 0xac05, // async + 0x137: 0x31508, // property + 0x13a: 0x16c03, // dfn + 0x13e: 0xf605, // inert + 0x142: 0x10503, // del + 0x144: 0x25302, // h2 + 0x147: 0x2c205, // style + 0x149: 0x29703, // img + 0x14a: 0xc05, // tbody + 0x14b: 0x7603, // dir + 0x14c: 0x2eb05, // xmlns + 0x14e: 0x1f08, // datalist + 0x14f: 0x32d04, // href + 0x150: 0x1f202, // tr + 0x151: 0x13e0a, // blockquote + 0x152: 0x18909, // valuetype + 0x155: 0xdb06, // footer + 0x157: 0x14f06, // script + 0x158: 0x1cf07, // colspan + 0x15d: 0x1730e, // defaultChecked + 0x15f: 0x2490a, // novalidate + 0x164: 0x1a408, // codetype + 0x165: 0x2c506, // legend + 0x16b: 0x1160b, // pauseonexit + 0x16c: 0x21f07, // caption + 0x16f: 0x26c07, // enabled + 0x173: 0x26206, // poster + 0x175: 0x30a05, // muted + 0x176: 0x11205, // ismap + 0x178: 0x2a903, // ins + 0x17a: 0xe004, // ruby + 0x17b: 0x37c02, // br + 0x17c: 0x8a0f, // defaultSelected + 0x17d: 0x7403, // kbd + 0x17f: 0x1c906, // source + 0x182: 0x9f04, // span + 0x184: 0x2d803, // max + 0x18a: 0x5b02, // dd + 0x18b: 0x13a04, // size + 0x18c: 0xa405, // media + 0x18d: 0x19208, // codebase + 0x18f: 0x4905, // embed + 0x192: 0x5104, // type + 0x193: 0xf005, // param + 0x194: 0x25b02, // h6 + 0x197: 0x28304, // icon + 0x198: 0x12607, // bgcolor + 0x199: 0x2ad0f, // allowfullscreen + 0x19a: 0x12004, // time + 0x19b: 0x7803, // rev + 0x19d: 0x34208, // progress + 0x19e: 0x22606, // figure + 0x1a0: 0x6a02, // rp + 0x1a2: 0xa606, // dialog + 0x1a4: 0x2802, // rt + 0x1a7: 0x1e304, // area + 0x1a8: 0x7808, // reversed + 0x1aa: 0x32104, // open + 0x1ac: 0x2d204, // head + 0x1ad: 0x7005, // alink + 0x1af: 0x28003, // var + 0x1b0: 0x15f07, // details + 0x1b1: 0x2401, // i + 0x1b3: 0x1e02, // td + 0x1b4: 0xb707, // declare + 0x1b5: 0x8302, // ul + 0x1ba: 0x2fc06, // method + 0x1bd: 0x13007, // section + 0x1be: 0x22a08, // required + 0x1c2: 0x9805, // defer + 0x1c3: 0x37205, // vlink + 0x1c4: 0x15405, // title + 0x1c5: 0x2770a, // http-equiv + 0x1c6: 0x1fa07, // enctype + 0x1c7: 0x1ec07, // compact + 0x1c8: 0x2d809, // maxlength + 0x1c9: 0x16508, // selected + 0x1cc: 0xd105, // audio + 0x1cd: 0xc208, // longdesc + 0x1d1: 0xfb04, // cite + 0x1da: 0x2505, // start + 0x1de: 0x2d102, // th + 0x1df: 0x10808, // autoplay + 0x1e2: 0x7104, // link + 0x1e3: 0x206, // output + 0x1e5: 0x12204, // menu + 0x1e6: 0x2a405, // input + 0x1eb: 0x32403, // nav + 0x1ec: 0x31d03, // sub + 0x1ee: 0x1807, // charset + 0x1ef: 0x7f07, // default + 0x1f3: 0x2f205, // table + 0x1f4: 0x23b04, // form + 0x1f5: 0x23209, // truespeed + 0x1f6: 0x2f02, // rb + 0x1fb: 0x20b09, // translate + 0x1fd: 0x2e002, // h1 +} |