| 1 |
- !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).singlefile={})}(this,(function(n){"use strict";const e=["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","META","PARAM","SOURCE","TRACK","WBR"],t=1,a=3,o=8,i=[{tagName:"HEAD",accept:n=>!n.childNodes.length||n.childNodes[0].nodeType==t},{tagName:"BODY",accept:n=>!n.childNodes.length}],r=[{tagName:"HTML",accept:n=>!n||n.nodeType!=o},{tagName:"HEAD",accept:n=>!n||n.nodeType!=o&&(n.nodeType!=a||!m(n.textContent))},{tagName:"BODY",accept:n=>!n||n.nodeType!=o},{tagName:"LI",accept:(n,e)=>!n&&e.parentElement&&("UL"==d(e.parentElement)||"OL"==d(e.parentElement))||n&&["LI"].includes(d(n))},{tagName:"DT",accept:n=>!n||["DT","DD"].includes(d(n))},{tagName:"P",accept:n=>n&&["ADDRESS","ARTICLE","ASIDE","BLOCKQUOTE","DETAILS","DIV","DL","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","H1","H2","H3","H4","H5","H6","HEADER","HR","MAIN","NAV","OL","P","PRE","SECTION","TABLE","UL"].includes(d(n))},{tagName:"DD",accept:n=>!n||["DT","DD"].includes(d(n))},{tagName:"RT",accept:n=>!n||["RT","RP"].includes(d(n))},{tagName:"RP",accept:n=>!n||["RT","RP"].includes(d(n))},{tagName:"OPTGROUP",accept:n=>!n||["OPTGROUP"].includes(d(n))},{tagName:"OPTION",accept:n=>!n||["OPTION","OPTGROUP"].includes(d(n))},{tagName:"COLGROUP",accept:n=>!n||n.nodeType!=o&&(n.nodeType!=a||!m(n.textContent))},{tagName:"CAPTION",accept:n=>!n||n.nodeType!=o&&(n.nodeType!=a||!m(n.textContent))},{tagName:"THEAD",accept:n=>!n||["TBODY","TFOOT"].includes(d(n))},{tagName:"TBODY",accept:n=>!n||["TBODY","TFOOT"].includes(d(n))},{tagName:"TFOOT",accept:n=>!n},{tagName:"TR",accept:n=>!n||["TR"].includes(d(n))},{tagName:"TD",accept:n=>!n||["TD","TH"].includes(d(n))},{tagName:"TH",accept:n=>!n||["TD","TH"].includes(d(n))}],s=["STYLE","SCRIPT","XMP","IFRAME","NOEMBED","NOFRAMES","PLAINTEXT","NOSCRIPT"];function l(n,e){const t=n.doctype;let a="";return t&&(a="<!DOCTYPE "+t.nodeName,t.publicId?(a+=' PUBLIC "'+t.publicId+'"',t.systemId&&(a+=' "'+t.systemId+'"')):t.systemId&&(a+=' SYSTEM "'+t.systemId+'"'),t.internalSubset&&(a+=" ["+t.internalSubset+"]"),a+="> "),a+c(n.documentElement,e)}function c(n,l,m){return n.nodeType==a?function(n){const e=n.parentNode;let a;e&&e.nodeType==t&&(a=d(e));return!a||s.includes(a)?("SCRIPT"!=a||e.type&&"text/javascript"!=e.type)&&"STYLE"!=a?n.textContent:n.textContent.replace(/<\//gi,"<\\/").replace(/\/>/gi,"\\/>"):n.textContent.replace(/&/g,"&").replace(/\u00a0/g," ").replace(/</g,"<").replace(/>/g,">")}(n):n.nodeType==o?"\x3c!--"+n.textContent+"--\x3e":n.nodeType==t?function(n,t,a){const o=d(n),s=t&&i.find((e=>o==d(e)&&e.accept(n)));let l="";s&&!n.attributes.length||(l="<"+o.toLowerCase(),Array.from(n.attributes).forEach((e=>l+=function(n,e,t){const a=n.name;let o="";if(!a.match(/["'>/=]/)){let i,r=n.value;t&&"class"==a&&(r=Array.from(e.classList).map((n=>n.trim())).join(" ")),r=r.replace(/&/g,"&").replace(/\u00a0/g," "),r.includes('"')&&(r.includes("'")||!t?r=r.replace(/"/g,"""):i=!0);const s=!t||r.match(/[ \t\n\f\r'"`=<>]/);o+=" ",n.namespace?"http://www.w3.org/XML/1998/namespace"==n.namespaceURI?o+="xml:"+a:"http://www.w3.org/2000/xmlns/"==n.namespaceURI?("xmlns"!==a&&(o+="xmlns:"),o+=a):"http://www.w3.org/1999/xlink"==n.namespaceURI?o+="xlink:"+a:o+=a:o+=a,""!=r&&(o+="=",s&&(o+=i?"'":'"'),o+=r,s&&(o+=i?"'":'"'))}return o}(e,n,t))),l+=">");"TEMPLATE"!=o||n.childNodes.length?Array.from(n.childNodes).forEach((n=>l+=c(n,t,a||"svg"==o))):l+=n.innerHTML;const m=t&&r.find((e=>o==d(e)&&e.accept(n.nextSibling,n)));(a||!m&&!e.includes(o))&&(l+="</"+o.toLowerCase()+">");return l}(n,l,m):void 0}function m(n){return Boolean(n.match(/^[ \t\n\f\r]/))}function d(n){return n.tagName&&n.tagName.toUpperCase()}function h(n,e,t,a){this.message=n,this.expected=e,this.found=t,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,h)}async function p(n,e){e=void 0!==e?e:{};var t,a={},o={start:an},i=an,r=function(n){return n.join("")},s="|",l=X("|",!1),c=function(n){return n},m="%",d=X("%",!1),p="<",u=X("<",!1),g=">",w=X(">",!1),b=function(n,t,a){return e.callFunction(n,t,a)},f="{",k=X("{",!1),y="}",v=X("}",!1),j=function(n,t){return e.getVariableValue(n,t)},S="[",x=X("[",!1),C="]",z=X("]",!1),L=function(n,e){return{length:n,unit:e}},A="ch",I=X("ch",!1),T=/^[a-z0-9-]/,R=Q([["a","z"],["0","9"],"-"],!1,!1),E=function(){return $()},D=/^[0-9]/,M=Q([["0","9"]],!1,!1),B=function(){return Number($())},N="\\\\%",P=X("\\\\%",!1),O="\\\\{",_=X("\\\\{",!1),F="\\\\|",q=X("\\\\|",!1),U="\\\\>",H=X("\\\\>",!1),G={type:"any"},W=0,V=0,K=[{line:1,column:1}],J=0,Y=[],Z=0;if("startRule"in e){if(!(e.startRule in o))throw new Error("Can't start parsing from rule \""+e.startRule+'".');i=o[e.startRule]}function $(){return n.substring(V,W)}function X(n,e){return{type:"literal",text:n,ignoreCase:e}}function Q(n,e,t){return{type:"class",parts:n,inverted:e,ignoreCase:t}}function nn(e){var t,a=K[e];if(a)return a;for(t=e-1;!K[t];)t--;for(a={line:(a=K[t]).line,column:a.column};t<e;)10===n.charCodeAt(t)?(a.line++,a.column=1):a.column++,t++;return K[e]=a,a}function en(n,e){var t=nn(n),a=nn(e);return{start:{offset:n,line:t.line,column:t.column},end:{offset:e,line:a.line,column:a.column}}}function tn(n){W<J||(W>J&&(J=W,Y=[]),Y.push(n))}async function an(){return await on()}async function on(){var n,e,t;for(n=W,e=[],t=await rn();t!==a;)e.push(t),t=await rn();return e!==a&&(V=n,e=r(e)),n=e}async function rn(){var e;return(e=await async function(){var e,t,o,i,r,s,l;e=W,37===n.charCodeAt(W)?(t=m,W++):(t=a,0===Z&&tn(d));t!==a&&(o=cn())!==a?(60===n.charCodeAt(W)?(i=p,W++):(i=a,0===Z&&tn(u)),i!==a?(r=await async function(){var n,e,t;n=W,e=await on(),e!==a?(t=await async function(){var n,e;if(n=[],e=await sn(),e!==a)for(;e!==a;)n.push(e),e=await sn();else n=a;return n}(),t===a&&(t=null),t!==a?n=e=[e,t]:(W=n,n=a)):(W=n,n=a);return n}(),r!==a?(62===n.charCodeAt(W)?(s=g,W++):(s=a,0===Z&&tn(w)),s!==a?((l=ln())===a&&(l=null),l!==a?(V=e,e=t=await b(o,r,l)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a);return e}())===a&&(e=await async function(){var e,t,o,i,r;e=W,123===n.charCodeAt(W)?(t=f,W++):(t=a,0===Z&&tn(k));t!==a&&(o=cn())!==a?(125===n.charCodeAt(W)?(i=y,W++):(i=a,0===Z&&tn(v)),i!==a?((r=ln())===a&&(r=null),r!==a?(V=e,e=t=await j(o,r)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a);return e}())===a&&(e=function(){var n,e,t;if(n=W,e=[],(t=mn())!==a)for(;t!==a;)e.push(t),t=mn();else e=a;e!==a&&(V=n,e=E());return n=e,n}()),e}async function sn(){var e,t,o;return e=W,124===n.charCodeAt(W)?(t=s,W++):(t=a,0===Z&&tn(l)),t!==a&&(o=await on())!==a?(V=e,e=t=c(o)):(W=e,e=a),e}function ln(){var e,t,o,i,r;return e=W,91===n.charCodeAt(W)?(t=S,W++):(t=a,0===Z&&tn(x)),t!==a?(o=function(){var e,t,o;e=W,t=[],D.test(n.charAt(W))?(o=n.charAt(W),W++):(o=a,0===Z&&tn(M));if(o!==a)for(;o!==a;)t.push(o),D.test(n.charAt(W))?(o=n.charAt(W),W++):(o=a,0===Z&&tn(M));else t=a;t!==a&&(V=e,t=B());return e=t,e}(),o!==a?(i=function(){var e;n.substr(W,2)===A?(e=A,W+=2):(e=a,0===Z&&tn(I));e===a&&(e=null);return e}(),i!==a?(93===n.charCodeAt(W)?(r=C,W++):(r=a,0===Z&&tn(z)),r!==a?(V=e,e=t=L(o,i)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a),e}function cn(){var e,t,o;if(e=W,t=[],T.test(n.charAt(W))?(o=n.charAt(W),W++):(o=a,0===Z&&tn(R)),o!==a)for(;o!==a;)t.push(o),T.test(n.charAt(W))?(o=n.charAt(W),W++):(o=a,0===Z&&tn(R));else t=a;return t!==a&&(V=e,t=E()),e=t}function mn(){var e,t,o,i,r,c;return e=W,t=W,Z++,37===n.charCodeAt(W)?(o=m,W++):(o=a,0===Z&&tn(d)),Z--,o===a?t=void 0:(W=t,t=a),t!==a?(o=W,Z++,123===n.charCodeAt(W)?(i=f,W++):(i=a,0===Z&&tn(k)),Z--,i===a?o=void 0:(W=o,o=a),o!==a?(i=W,Z++,124===n.charCodeAt(W)?(r=s,W++):(r=a,0===Z&&tn(l)),Z--,r===a?i=void 0:(W=i,i=a),i!==a?(r=W,Z++,62===n.charCodeAt(W)?(c=g,W++):(c=a,0===Z&&tn(w)),Z--,c===a?r=void 0:(W=r,r=a),r!==a?(c=function(){var e;n.substr(W,3)===N?(e=N,W+=3):(e=a,0===Z&&tn(P));e===a&&(n.substr(W,3)===O?(e=O,W+=3):(e=a,0===Z&&tn(_)),e===a&&(n.substr(W,3)===F?(e=F,W+=3):(e=a,0===Z&&tn(q)),e===a&&(n.substr(W,3)===U?(e=U,W+=3):(e=a,0===Z&&tn(H)),e===a&&(n.length>W?(e=n.charAt(W),W++):(e=a,0===Z&&tn(G))))));return e}(),c!==a?e=t=[t,o,i,r,c]:(W=e,e=a)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a),e}if((t=await i())!==a&&W===n.length)return t;throw t!==a&&W<n.length&&tn({type:"end"}),function(n,e,t){return new h(h.buildMessage(n,e),n,e,t)}(Y,J<n.length?n.charAt(J):null,J<n.length?en(J,J+1):en(J,J))}!function(n,e){function t(){this.constructor=n}t.prototype=e.prototype,n.prototype=new t}(h,Error),h.buildMessage=function(n,e){var t={literal:function(n){return'"'+o(n.text)+'"'},class:function(n){var e,t="";for(e=0;e<n.parts.length;e++)t+=n.parts[e]instanceof Array?i(n.parts[e][0])+"-"+i(n.parts[e][1]):i(n.parts[e]);return"["+(n.inverted?"^":"")+t+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(n){return n.description}};function a(n){return n.charCodeAt(0).toString(16).toUpperCase()}function o(n){return n.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(n){return"\\x0"+a(n)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(n){return"\\x"+a(n)}))}function i(n){return n.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(n){return"\\x0"+a(n)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(n){return"\\x"+a(n)}))}return"Expected "+function(n){var e,a,o,i=new Array(n.length);for(e=0;e<n.length;e++)i[e]=(o=n[e],t[o.type](o));if(i.sort(),i.length>0){for(e=1,a=1;e<i.length;e++)i[e-1]!==i[e]&&(i[a]=i[e],a++);i.length=a}switch(i.length){case 1:return i[0];case 2:return i[0]+" or "+i[1];default:return i.slice(0,-1).join(", ")+", or "+i[i.length-1]}}(n)+" but "+function(n){return n?'"'+o(n)+'"':"end of input"}(e)+" found."};const u="[\\x20\\t\\r\\n\\f]",g=new RegExp("\\\\([\\da-f]{1,6}"+u+"?|("+u+")|.)","ig");const w="_singleFile_fontFaces",b="_singleFile_worklets",f=globalThis.document,k=globalThis.Document,y=globalThis.JSON,v=globalThis.MutationObserver;let j,S;function x(){f instanceof k&&(f.addEventListener("single-file-new-font-face",(n=>{const e=n.detail,t=Object.assign({},e);delete t.src,j.set(y.stringify(t),e)})),f.addEventListener("single-file-delete-font",(n=>{const e=n.detail,t=Object.assign({},e);delete t.src,j.delete(y.stringify(t))})),f.addEventListener("single-file-clear-fonts",(()=>j=new Map)),f.addEventListener("single-file-new-worklet",(n=>{const e=n.detail;S.set(e.moduleURL,e)})))}j=window[w]?window[w]:window[w]=new Map,S=window[b]?window[b]:window[b]=new Map,x(),new v(x).observe(f,{childList:!0});const C="single-file-",z="SingleFile",L="single-file-infobar",A="\n.infobar,\n.infobar .infobar-icon,\n.infobar .infobar-link-icon {\n min-inline-size: 28px;\n min-block-size: 28px;\n box-sizing: border-box;\n}\n\n.infobar,\n.infobar .infobar-close-icon,\n.infobar .infobar-link-icon {\n opacity: 0.7;\n transition: opacity 250ms;\n}\n\n.infobar:hover,\n.infobar .infobar-close-icon:hover,\n.infobar .infobar-link-icon:hover {\n opacity: 1;\n}\n\n.infobar,\n.infobar-content {\n display: flex;\n}\n\n.infobar {\n position: fixed;\n max-height: calc(100% - 32px);\n top: 16px;\n right: 16px;\n margin-inline-start: 16px;\n margin-block-end: 16px;\n color: #2d2d2d;\n background-color: #737373;\n border: 2px solid;\n border-color: #eee;\n border-radius: 16px;\n z-index: 2147483647;\n animation-name: flash;\n animation-duration: .5s;\n animation-timing-function: cubic-bezier(0.39, 0.58, 0.57, 1);\n animation-delay: 1s;\n animation-iteration-count: 2;\n}\n\n.infobar:valid, .infobar:not(:focus-within):not(.infobar-focus) .infobar-content {\n display: none;\n}\n\n.infobar:focus-within, .infobar.infobar-focus {\n background-color: #f9f9f9;\n border-color: #878787;\n border-radius: 8px;\n opacity: 1;\n transition-property: opacity, background-color, border-color, border-radius, color;\n}\n\n.infobar-content {\n border: 2px solid;\n border-color: #f9f9f9;\n border-radius: 6px;\n background-color: #f9f9f9;\n overflow: auto;\n}\n\n.infobar-content span {\n font-family: Arial, Helvetica, sans-serif;\n font-size: 14px;\n line-height: 18px;\n word-break: break-word;\n white-space: pre-wrap;\n margin-inline: 4px;\n margin-block: 4px;\n padding-inline: 24px;\n}\n\n.infobar .infobar-icon,\n.infobar .infobar-close-icon,\n.infobar .infobar-link-icon {\n cursor: pointer;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n.infobar .infobar-close-icon,\n.infobar .infobar-link-icon {\n position: fixed;\n align-self: flex-start;\n}\n\n.infobar .infobar-icon {\n position: absolute;\n min-inline-size: 24px;\n min-block-size: 24px;\n}\n\n@keyframes flash {\n 0%, 100% {\n\tbackground-color: #737373;\n }\n 50% {\n\tbackground-color: #dd6a00;\n }\n}\n\n.infobar:focus-within .infobar-icon, .infobar.infobar-focus .infobar-icon {\n z-index: -1;\n background-image: none;\n margin: 4px;\n}\n\n.infobar .infobar-close-icon {\n min-inline-size: 22px;\n min-block-size: 22px;\n}\n\n.infobar .infobar-icon {\n background-color: transparent;\n background-size: 70%;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAABhmlDQ1BJQ0MgcHJvZmlsZQAAKJF9kj1Iw0AYht+mSkUrDnYQcchQnSyIijqWKhbBQmkrtOpgcukfNGlIUlwcBdeCgz+LVQcXZ10dXAVB8AfEydFJ0UVK/C4ptIjx4LiH9+59+e67A4RGhalm1wSgapaRisfEbG5VDLyiDwEAvZiVmKkn0osZeI6ve/j4ehfhWd7n/hz9St5kgE8kjjLdsIg3iGc2LZ3zPnGIlSSF+Jx43KACiR+5Lrv8xrnosMAzQ0YmNU8cIhaLHSx3MCsZKvE0cVhRNcoXsi4rnLc4q5Uaa9XJbxjMaytprtMcQRxLSCAJETJqKKMCCxFaNVJMpGg/5uEfdvxJcsnkKoORYwFVqJAcP/gb/O6tWZiadJOCMaD7xbY/RoHALtCs2/b3sW03TwD/M3Cltf3VBjD3SXq9rYWPgIFt4OK6rcl7wOUOMPSkS4bkSH6aQqEAvJ/RM+WAwVv6EGtu31r7OH0AMtSr5Rvg4BAYK1L2use9ezr79u+ZVv9+AFlNcp0UUpiqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5AsHADIRLMaOHwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAPUExURQAAAIqKioyNjY2OjvDw8L2y1DEAAAABdFJOUwBA5thmAAAAAWJLR0QB/wIt3gAAAGNJREFUSMdjYCAJsLi4OBCQx6/CBQwIGIDPCBcXAkYQUsACU+AwlBVQHg6Eg5pgZBGOboIJZugDFwRwoJECJCUOhJI1wZwzqmBUwagCuipgIqTABG9h7YIKaKGAURAFEF/6AQAO4HqSoDP8bgAAAABJRU5ErkJggg==);\n}\n\n.infobar .infobar-link-icon {\n right: 20px;\n background-size: 60%;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAgMAAADXB5lNAAABhmlDQ1BJQ0MgcHJvZmlsZQAAKJF9kj1Iw0AYht+mSkUrDnYQcchQnSyIijqWKhbBQmkrtOpgcukfNGlIUlwcBdeCgz+LVQcXZ10dXAVB8AfEydFJ0UVK/C4ptIjx4LiH9+59+e67A4RGhalm1wSgapaRisfEbG5VDLyiDwEAvZiVmKkn0osZeI6ve/j4ehfhWd7n/hz9St5kgE8kjjLdsIg3iGc2LZ3zPnGIlSSF+Jx43KACiR+5Lrv8xrnosMAzQ0YmNU8cIhaLHSx3MCsZKvE0cVhRNcoXsi4rnLc4q5Uaa9XJbxjMaytprtMcQRxLSCAJETJqKKMCCxFaNVJMpGg/5uEfdvxJcsnkKoORYwFVqJAcP/gb/O6tWZiadJOCMaD7xbY/RoHALtCs2/b3sW03TwD/M3Cltf3VBjD3SXq9rYWPgIFt4OK6rcl7wOUOMPSkS4bkSH6aQqEAvJ/RM+WAwVv6EGtu31r7OH0AMtSr5Rvg4BAYK1L2use9ezr79u+ZVv9+AFlNcp0UUpiqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5AsHAB8H+DhhoQAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAJUExURQAAAICHi4qKioTuJAkAAAABdFJOUwBA5thmAAAAAWJLR0QCZgt8ZAAAAJJJREFUOI3t070NRCEMA2CnYAOyDyPwpHj/Va7hJ3FzV7zy3ET5JIwoAF6Jk4wzAJAkzxAYG9YRTgB+24wBgKmfrGAKTcEfAY4KRlRoIeBTgKOCERVaCPgU4Khge2GqKOBTgKOCERVaAEC/4PNcnyoSWHpjqkhwKxbcig0Q6AorXYF/+A6eIYD1lVbwG/jdA6/kA2THRAURVubcAAAAAElFTkSuQmCC);\n}\n\n.infobar .infobar-close-icon {\n appearance: none;\n background-size: 80%;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAgMAAADXB5lNAAABhmlDQ1BJQ0MgcHJvZmlsZQAAKJF9kj1Iw0AYht+mSkUrDnYQcchQnSyIijqWKhbBQmkrtOpgcukfNGlIUlwcBdeCgz+LVQcXZ10dXAVB8AfEydFJ0UVK/C4ptIjx4LiH9+59+e67A4RGhalm1wSgapaRisfEbG5VDLyiDwEAvZiVmKkn0osZeI6ve/j4ehfhWd7n/hz9St5kgE8kjjLdsIg3iGc2LZ3zPnGIlSSF+Jx43KACiR+5Lrv8xrnosMAzQ0YmNU8cIhaLHSx3MCsZKvE0cVhRNcoXsi4rnLc4q5Uaa9XJbxjMaytprtMcQRxLSCAJETJqKKMCCxFaNVJMpGg/5uEfdvxJcsnkKoORYwFVqJAcP/gb/O6tWZiadJOCMaD7xbY/RoHALtCs2/b3sW03TwD/M3Cltf3VBjD3SXq9rYWPgIFt4OK6rcl7wOUOMPSkS4bkSH6aQqEAvJ/RM+WAwVv6EGtu31r7OH0AMtSr5Rvg4BAYK1L2use9ezr79u+ZVv9+AFlNcp0UUpiqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5AsHAB8VC4EQ6QAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAJUExURQAAAICHi4qKioTuJAkAAAABdFJOUwBA5thmAAAAAWJLR0QCZgt8ZAAAAJtJREFUOI3NkrsBgCAMRLFwBPdxBArcfxXFkO8rbKWAAJfHJ9faf9vuYX/749T5NmShm3bEwbe2SxeuM4+2oxDL1cDoKtVUjRy+tH78Cv2CS+wIiQNC1AEhk4AQeUTMWUJMfUJMSEJMSEY8kIx4IONroaYAimNxsXp1PA7PxwfVL8QnowwoVC0lig07wDDVUjAdbAnjwtow/z/bDW7eI4M2KruJAAAAAElFTkSuQmCC);\n}\n";function I(n,e,t){if(!n.querySelector(L)){let a;e.infobarContent?a=e.infobarContent.replace(/\\n/g,"\n").replace(/\\t/g,"\t"):e.saveDate&&(a=e.saveDate),a=a||"No info";const o="BODY"==n.body.tagName?n.body:n.documentElement,i=function(n,e,t){const a=n.createElement(e);return t.appendChild(a),Array.from(getComputedStyle(a)).forEach((n=>a.style.setProperty(n,"initial","important"))),a}(n,L,o);let r;if(t)r=i.attachShadow({mode:"open"});else{const e=n.createElement("template");e.setAttribute("shadowrootmode","open"),i.appendChild(e),r=e}const s=n.createElement("div"),l=n.createElement("style");l.textContent=A.replace(/ {2}/g,"").replace(/\n/g,"").replace(/: /g,":").replace(/, /g,","),s.appendChild(l);const c=n.createElement("form");c.classList.add("infobar"),e.openInfobar&&c.classList.add("infobar-focus"),s.appendChild(c);const m=n.createElement("span");m.tabIndex=-1,m.classList.add("infobar-icon"),c.appendChild(m);const d=n.createElement("span");d.tabIndex=-1,d.classList.add("infobar-content");const h=n.createElement("input");h.type="checkbox",h.required=!0,h.classList.add("infobar-close-icon"),h.title="Close",d.appendChild(h);const p=n.createElement("span");p.textContent=a,d.appendChild(p);const u=n.createElement("a");if(u.classList.add("infobar-link-icon"),u.target="_blank",u.rel="noopener noreferrer",u.title="Open source URL: "+e.saveUrl,u.href=e.saveUrl,d.appendChild(u),c.appendChild(d),t)r.appendChild(s);else{const e=n.createElement("script");let t=R.toString();t+=";const SINGLE_FILE_SIGNATURE = "+JSON.stringify(z)+";",t+=T.toString(),t+="("+E.toString()+")(document)",e.textContent=t,s.appendChild(e),r.innerHTML=s.outerHTML}}}function T(n){const e=n.evaluate("//comment()",n,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);let t=e&&e.singleNodeValue;if(t&&t.nodeType==Node.COMMENT_NODE&&t.textContent.includes(z)){const n=t.textContent.split("\n"),[,,e,...a]=n,o=e.match(/^ url: (.*) ?$/),i=o&&o[1];if(i){let n,e;if(a.length&&(e=a[0].split("saved date: ")[1],e&&a.shift(),a.length>1)){let e=a[0].split("info: ")[1].trim();for(let n=1;n<a.length-1;n++)e+="\n"+a[n].trim();n=e.trim()}return{saveUrl:i,infobarContent:n,saveDate:e}}}}function R(n,{saveUrl:e,infobarContent:t,saveDate:a}){if(e){const o=n.querySelector("single-file-infobar").shadowRoot;o.querySelector(".infobar-content span").textContent=t||a;const i=o.querySelector(".infobar-content .infobar-link-icon");i.href=e,i.title="Open source URL: "+e}}function E(n){const e=T(n);e&&e.saveUrl&&R(n,e)}const D=C+"on-before-capture",M=C+"on-after-capture",B=C+"request-get-adopted-stylesheets",N=C+"response-get-adopted-stylesheets",P=C+"unregister-request-get-adopted-stylesheets",O="data-"+C+"removed-content",_="data-"+C+"hidden-content",F="data-"+C+"kept-content",q="data-"+C+"hidden-frame",U="data-"+C+"preserved-space-element",H="data-"+C+"shadow-root-element",G="data-"+C+"win-id",W="data-"+C+"image",V="data-"+C+"poster",K="data-"+C+"video",J="data-"+C+"canvas",Y="data-"+C+"movable-style",Z="data-"+C+"input-value",$="data-"+C+"lazy-loaded-src",X="data-"+C+"stylesheet",Q="data-"+C+"disabled-noscript",nn="data-"+C+"selected-content",en="data-"+C+"invalid-element",tn="data-"+C+"async-script",an="*:not(base):not(link):not(meta):not(noscript):not(script):not(style):not(template):not(title)",on=["NOSCRIPT","DISABLED-NOSCRIPT","META","LINK","STYLE","TITLE","TEMPLATE","SOURCE","OBJECT","SCRIPT","HEAD","BODY"],rn=["SCRIPT","NOSCRIPT","META","LINK","TEMPLATE"],sn=/^'(.*?)'$/,ln=/^"(.*?)"$/,cn={regular:"400",normal:"400",bold:"700",bolder:"700",lighter:"100"},mn="single-file-ui-element",dn=L,hn="data:,",pn=globalThis.JSON,un=globalThis.crypto,gn=globalThis.TextEncoder,wn=globalThis.Blob,bn=globalThis.CustomEvent;function fn(n,e,t){n.querySelectorAll("noscript:not(["+Q+"])").forEach((n=>{n.setAttribute(Q,n.textContent),n.textContent=""})),function(n){n.querySelectorAll("meta[http-equiv=refresh]").forEach((n=>{n.removeAttribute("http-equiv"),n.setAttribute("disabled-http-equiv","refresh")}))}(n),n.head&&n.head.querySelectorAll(an).forEach((n=>n.hidden=!0)),n.querySelectorAll("svg foreignObject").forEach((n=>{const e=n.querySelectorAll("html > head > "+an+", html > body > "+an);e.length&&(Array.from(n.childNodes).forEach((n=>n.remove())),e.forEach((e=>n.appendChild(e))))}));const a=new Map;let o;return e&&n.documentElement?(n.querySelectorAll("button button, a a").forEach((e=>{const t=n.createElement("template");t.setAttribute(en,""),t.content.appendChild(e.cloneNode(!0)),a.set(e,t),e.replaceWith(t)})),o=kn(e,n,n.documentElement,t),t.moveStylesInHead&&n.querySelectorAll("body style, body ~ style").forEach((n=>{const t=Rn(e,n);t&&Sn(n,t)&&(n.setAttribute(Y,""),o.markedElements.push(n))}))):o={canvases:[],images:[],posters:[],videos:[],usedFonts:[],shadowRoots:[],markedElements:[]},{canvases:o.canvases,fonts:Array.from(j.values()),worklets:Array.from(S.values()),stylesheets:xn(n),images:o.images,posters:o.posters,videos:o.videos,usedFonts:Array.from(o.usedFonts.values()),shadowRoots:o.shadowRoots,referrer:n.referrer,markedElements:o.markedElements,invalidElements:a,scrollPosition:{x:e.scrollX,y:e.scrollY},adoptedStyleSheets:yn(n.adoptedStyleSheets)}}function kn(n,e,t,a,o={usedFonts:new Map,canvases:[],images:[],posters:[],videos:[],shadowRoots:[],markedElements:[]},i){if(t.childNodes){Array.from(t.childNodes).filter((e=>e instanceof n.HTMLElement||e instanceof n.SVGElement||e instanceof globalThis.HTMLElement||e instanceof globalThis.SVGElement)).forEach((t=>{let r,s,l;if(!a.autoSaveExternalSave&&(a.removeHiddenElements||a.removeUnusedFonts||a.compressHTML)&&(l=Rn(n,t),(t instanceof n.HTMLElement||t instanceof globalThis.HTMLElement)&&a.removeHiddenElements&&(s=(i||t.closest("html > head"))&&on.includes(t.tagName.toUpperCase())||t.closest("details"),s||(r=i||Sn(t,l),r&&!rn.includes(t.tagName.toUpperCase())&&(t.setAttribute(_,""),o.markedElements.push(t)))),!r)){if(a.compressHTML&&l){const n=l.getPropertyValue("white-space");n&&n.startsWith("pre")&&(t.setAttribute(U,""),o.markedElements.push(t))}a.removeUnusedFonts&&(vn(l,a,o.usedFonts),vn(Rn(n,t,":first-letter"),a,o.usedFonts),vn(Rn(n,t,":before"),a,o.usedFonts),vn(Rn(n,t,":after"),a,o.usedFonts))}!function(n,e,t,a,o,i,r){const s=t.tagName&&t.tagName.toUpperCase();if("CANVAS"==s)try{o.canvases.push({dataURI:t.toDataURL("image/png",""),backgroundColor:r.getPropertyValue("background-color")}),t.setAttribute(J,o.canvases.length-1),o.markedElements.push(t)}catch(n){}if("IMG"==s){const e={currentSrc:i?hn:a.loadDeferredImages&&t.getAttribute($)||t.currentSrc};if(o.images.push(e),t.setAttribute(W,o.images.length-1),o.markedElements.push(t),t.removeAttribute($),r=r||Rn(n,t)){e.size=function(n,e,t){let a=e.naturalWidth,o=e.naturalHeight;if(!a&&!o){const i=null==e.getAttribute("style");if(t=t||Rn(n,e)){let n,r,s,l,c,m,d,h,p=!1;if("content-box"==t.getPropertyValue("box-sizing")){const n=e.style.getPropertyValue("box-sizing"),t=e.style.getPropertyPriority("box-sizing"),a=e.clientWidth;e.style.setProperty("box-sizing","border-box","important"),p=e.clientWidth!=a,n?e.style.setProperty("box-sizing",n,t):e.style.removeProperty("box-sizing")}n=Cn("padding-left",t),r=Cn("padding-right",t),s=Cn("padding-top",t),l=Cn("padding-bottom",t),p?(c=Cn("border-left-width",t),m=Cn("border-right-width",t),d=Cn("border-top-width",t),h=Cn("border-bottom-width",t)):c=m=d=h=0,a=Math.max(0,e.clientWidth-n-r-c-m),o=Math.max(0,e.clientHeight-s-l-d-h),i&&e.removeAttribute("style")}}return{pxWidth:a,pxHeight:o}}(n,t,r);const a=r.getPropertyValue("box-shadow"),o=r.getPropertyValue("background-image");a&&"none"!=a||o&&"none"!=o||!(e.size.pxWidth>1||e.size.pxHeight>1)||(e.replaceable=!0,e.backgroundColor=r.getPropertyValue("background-color"),e.objectFit=r.getPropertyValue("object-fit"),e.boxSizing=r.getPropertyValue("box-sizing"),e.objectPosition=r.getPropertyValue("object-position"))}}if("VIDEO"==s){const a=t.currentSrc;if(a&&!a.startsWith("blob:")&&!a.startsWith("data:")){const e=Rn(n,t.parentNode);o.videos.push({positionParent:e&&e.getPropertyValue("position"),src:a,size:{pxWidth:t.clientWidth,pxHeight:t.clientHeight},currentTime:t.currentTime}),t.setAttribute(K,o.videos.length-1)}if(!t.getAttribute("poster")){const n=e.createElement("canvas"),a=n.getContext("2d");n.width=t.clientWidth,n.height=t.clientHeight;try{a.drawImage(t,0,0,n.width,n.height),o.posters.push(n.toDataURL("image/png","")),t.setAttribute(V,o.posters.length-1),o.markedElements.push(t)}catch(n){}}}"IFRAME"==s&&i&&a.removeHiddenElements&&(t.setAttribute(q,""),o.markedElements.push(t));"INPUT"==s&&("password"!=t.type&&(t.setAttribute(Z,t.value),o.markedElements.push(t)),"radio"!=t.type&&"checkbox"!=t.type||(t.setAttribute(Z,t.checked),o.markedElements.push(t)));"TEXTAREA"==s&&(t.setAttribute(Z,t.value),o.markedElements.push(t));"SELECT"==s&&t.querySelectorAll("option").forEach((n=>{n.selected&&(n.setAttribute(Z,""),o.markedElements.push(n))}));"SCRIPT"==s&&(t.async&&""!=t.getAttribute("async")&&"async"!=t.getAttribute("async")&&(t.setAttribute(tn,""),o.markedElements.push(t)),t.textContent=t.textContent.replace(/<\/script>/gi,"<\\/script>"))}(n,e,t,a,o,r,l);const c=!(t instanceof n.SVGElement||t instanceof globalThis.SVGElement)&&function(n){const e=globalThis.chrome;if(n.openOrClosedShadowRoot)return n.openOrClosedShadowRoot;if(!(e&&e.dom&&e.dom.openOrClosedShadowRoot))return n.shadowRoot;try{return e.dom.openOrClosedShadowRoot(n)}catch(e){return n.shadowRoot}}(t);if(c&&!t.classList.contains(mn)&&t.tagName.toLowerCase()!=dn){const i={};t.setAttribute(H,o.shadowRoots.length),o.markedElements.push(t),o.shadowRoots.push(i);try{if(c.adoptedStyleSheets)if(c.adoptedStyleSheets.length)i.adoptedStyleSheets=yn(c.adoptedStyleSheets);else if(void 0===c.adoptedStyleSheets.length){const n=n=>i.adoptedStyleSheets=n.detail.adoptedStyleSheets;c.addEventListener(N,n),c.dispatchEvent(new bn(B,{bubbles:!0})),i.adoptedStyleSheets||t.dispatchEvent(new bn(B,{bubbles:!0})),c.removeEventListener(N,n)}}catch(n){}kn(n,e,c,a,o,r),i.content=c.innerHTML,i.mode=c.mode;try{c.adoptedStyleSheets&&void 0===c.adoptedStyleSheets.length&&c.dispatchEvent(new bn(P,{bubbles:!0}))}catch(n){}}kn(n,e,t,a,o,r),!a.autoSaveExternalSave&&a.removeHiddenElements&&i&&(s||""==t.getAttribute(F)?t.parentElement&&(t.parentElement.setAttribute(F,""),o.markedElements.push(t.parentElement)):r&&(t.setAttribute(O,""),o.markedElements.push(t)))}))}return o}function yn(n){return n?Array.from(n).map((n=>Array.from(n.cssRules).map((n=>n.cssText)).join("\n"))):[]}function vn(n,e,t){if(n){const a=n.getPropertyValue("font-style")||"normal";n.getPropertyValue("font-family").split(",").forEach((o=>{if(o=jn(o),!e.loadedFonts||e.loadedFonts.find((n=>jn(n.family)==o&&n.style==a))){const e=Ln(n.getPropertyValue("font-weight")),i=n.getPropertyValue("font-variant")||"normal",r=[o,e,a,i];t.set(pn.stringify(r),[o,e,a,i])}}))}}function jn(n=""){return zn((e=n.trim(),e.replace(g,((n,e,t)=>{const a="0x"+e-65536;return a!=a||t?e:a<0?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,1023&a|56320)})))).toLowerCase();var e}function Sn(n,e){let t=!1;if(e){const a=e.getPropertyValue("display"),o=e.getPropertyValue("opacity"),i=e.getPropertyValue("visibility");if(t="none"==a,!t&&("0"==o||"hidden"==i)&&n.getBoundingClientRect){const e=n.getBoundingClientRect();t=!e.width&&!e.height}}return Boolean(t)}function xn(n){if(n){const e=[];return n.querySelectorAll("style").forEach(((t,a)=>{try{if(!t.sheet.disabled){const o=n.createElement("style");o.textContent=t.textContent,n.body.appendChild(o);const i=o.sheet;o.remove();const r=Array.from(i.cssRules).map((n=>n.cssText)).join("\n"),s=Array.from(t.sheet.cssRules).map((n=>n.cssText)).join("\n");i&&r==s||(t.setAttribute(X,a),e[a]=Array.from(t.sheet.cssRules).map((n=>n.cssText)).join("\n"))}}catch(n){}})),e}}function Cn(n,e){if(e.getPropertyValue(n).endsWith("px"))return parseFloat(e.getPropertyValue(n))}function zn(n){return(n=n.match(sn)?n.replace(sn,"$1"):n.replace(ln,"$1")).trim()}function Ln(n){return cn[n.toLowerCase().trim()]||n}function An(n){return new wn([n]).size}async function In(n,e){try{return function(n){const e=[],t=new DataView(n);for(let n=0;n<t.byteLength;n+=4){const a="00000000",o=(a+t.getUint32(n).toString(16)).slice(-a.length);e.push(o)}return e.join("")}(await un.subtle.digest(n,new gn("utf-8").encode(e)))}catch(n){return""}}function Tn(n){return n.flat?n.flat():n.reduce(((n,e)=>n.concat(Array.isArray(e)?Tn(e):e)),[])}function Rn(n,e,t){try{return n.getComputedStyle(e,t)}catch(n){}}const En=globalThis.Blob,Dn=globalThis.FileReader,Mn=globalThis.URL,Bn=globalThis.Intl,Nn=globalThis.URLSearchParams,Pn=globalThis.navigator,On=["~","+","\\\\","?","%","*",":","|",'"',"<",">","\0-",""],_n="_",Fn=/([{}()^$&.*?/+|[\\\\]|\]|-)/g,qn={"😀":"grinning-face","😃":"grinning-face-with-big-eyes","😄":"grinning-face-with-smiling-eyes","😁":"beaming-face-with-smiling-eyes","😆":"grinning-squinting-face","😅":"grinning-face-with-sweat","🤣":"rolling-on-the-floor-laughing","😂":"face-with-tears-of-joy","🙂":"slightly-smiling-face","🙃":"upside-down-face","🫠":"melting-face","😉":"winking-face","😊":"smiling-face-with-smiling-eyes","😇":"smiling-face-with-halo","🥰":"smiling-face-with-hearts","😍":"smiling-face-with-heart-eyes","🤩":"star-struck","😘":"face-blowing-a-kiss","😗":"kissing-face","☺":"smiling-face","😚":"kissing-face-with-closed-eyes","😙":"kissing-face-with-smiling-eyes","🥲":"smiling-face-with-tear","😋":"face-savoring-food","😛":"face-with-tongue","😜":"winking-face-with-tongue","🤪":"zany-face","😝":"squinting-face-with-tongue","🤑":"money-mouth-face","🤗":"smiling-face-with-open-hands","🤭":"face-with-hand-over-mouth","🫢":"face-with-open-eyes-and-hand-over-mouth","🫣":"face-with-peeking-eye","🤫":"shushing-face","🤔":"thinking-face","🫡":"saluting-face","🤐":"zipper-mouth-face","🤨":"face-with-raised-eyebrow","😐":"neutral-face","😑":"expressionless-face","😶":"face-without-mouth","🫥":"dotted-line-face","😶🌫️":"face-in-clouds","😏":"smirking-face","😒":"unamused-face","🙄":"face-with-rolling-eyes","😬":"grimacing-face","😮💨":"face-exhaling","🤥":"lying-face","🫨":"⊛-shaking-face","😌":"relieved-face","😔":"pensive-face","😪":"sleepy-face","🤤":"drooling-face","😴":"sleeping-face","😷":"face-with-medical-mask","🤒":"face-with-thermometer","🤕":"face-with-head-bandage","🤢":"nauseated-face","🤮":"face-vomiting","🤧":"sneezing-face","🥵":"hot-face","🥶":"cold-face","🥴":"woozy-face","😵":"face-with-crossed-out-eyes","😵💫":"face-with-spiral-eyes","🤯":"exploding-head","🤠":"cowboy-hat-face","🥳":"partying-face","🥸":"disguised-face","😎":"smiling-face-with-sunglasses","🤓":"nerd-face","🧐":"face-with-monocle","😕":"confused-face","🫤":"face-with-diagonal-mouth","😟":"worried-face","🙁":"slightly-frowning-face","☹":"frowning-face","😮":"face-with-open-mouth","😯":"hushed-face","😲":"astonished-face","😳":"flushed-face","🥺":"pleading-face","🥹":"face-holding-back-tears","😦":"frowning-face-with-open-mouth","😧":"anguished-face","😨":"fearful-face","😰":"anxious-face-with-sweat","😥":"sad-but-relieved-face","😢":"crying-face","😭":"loudly-crying-face","😱":"face-screaming-in-fear","😖":"confounded-face","😣":"persevering-face","😞":"disappointed-face","😓":"downcast-face-with-sweat","😩":"weary-face","😫":"tired-face","🥱":"yawning-face","😤":"face-with-steam-from-nose","😡":"enraged-face","😠":"angry-face","🤬":"face-with-symbols-on-mouth","😈":"smiling-face-with-horns","👿":"angry-face-with-horns","💀":"skull","☠":"skull-and-crossbones","💩":"pile-of-poo","🤡":"clown-face","👹":"ogre","👺":"goblin","👻":"ghost","👽":"alien","👾":"alien-monster","🤖":"robot","😺":"grinning-cat","😸":"grinning-cat-with-smiling-eyes","😹":"cat-with-tears-of-joy","😻":"smiling-cat-with-heart-eyes","😼":"cat-with-wry-smile","😽":"kissing-cat","🙀":"weary-cat","😿":"crying-cat","😾":"pouting-cat","🙈":"see-no-evil-monkey","🙉":"hear-no-evil-monkey","🙊":"speak-no-evil-monkey","💌":"love-letter","💘":"heart-with-arrow","💝":"heart-with-ribbon","💖":"sparkling-heart","💗":"growing-heart","💓":"beating-heart","💞":"revolving-hearts","💕":"two-hearts","💟":"heart-decoration","❣":"heart-exclamation","💔":"broken-heart","❤️🔥":"heart-on-fire","❤️🩹":"mending-heart","❤":"red-heart","🩷":"⊛-pink-heart","🧡":"orange-heart","💛":"yellow-heart","💚":"green-heart","💙":"blue-heart","🩵":"⊛-light-blue-heart","💜":"purple-heart","🤎":"brown-heart","🖤":"black-heart","🩶":"⊛-grey-heart","🤍":"white-heart","💋":"kiss-mark","💯":"hundred-points","💢":"anger-symbol","💥":"collision","💫":"dizzy","💦":"sweat-droplets","💨":"dashing-away","🕳":"hole","💬":"speech-balloon","👁️🗨️":"eye-in-speech-bubble","🗨":"left-speech-bubble","🗯":"right-anger-bubble","💭":"thought-balloon","💤":"zzz","👋":"waving-hand","🤚":"raised-back-of-hand","🖐":"hand-with-fingers-splayed","✋":"raised-hand","🖖":"vulcan-salute","🫱":"rightwards-hand","🫲":"leftwards-hand","🫳":"palm-down-hand","🫴":"palm-up-hand","🫷":"⊛-leftwards-pushing-hand","🫸":"⊛-rightwards-pushing-hand","👌":"ok-hand","🤌":"pinched-fingers","🤏":"pinching-hand","✌":"victory-hand","🤞":"crossed-fingers","🫰":"hand-with-index-finger-and-thumb-crossed","🤟":"love-you-gesture","🤘":"sign-of-the-horns","🤙":"call-me-hand","👈":"backhand-index-pointing-left","👉":"backhand-index-pointing-right","👆":"backhand-index-pointing-up","🖕":"middle-finger","👇":"backhand-index-pointing-down","☝":"index-pointing-up","🫵":"index-pointing-at-the-viewer","👍":"thumbs-up","👎":"thumbs-down","✊":"raised-fist","👊":"oncoming-fist","🤛":"left-facing-fist","🤜":"right-facing-fist","👏":"clapping-hands","🙌":"raising-hands","🫶":"heart-hands","👐":"open-hands","🤲":"palms-up-together","🤝":"handshake","🙏":"folded-hands","✍":"writing-hand","💅":"nail-polish","🤳":"selfie","💪":"flexed-biceps","🦾":"mechanical-arm","🦿":"mechanical-leg","🦵":"leg","🦶":"foot","👂":"ear","🦻":"ear-with-hearing-aid","👃":"nose","🧠":"brain","🫀":"anatomical-heart","🫁":"lungs","🦷":"tooth","🦴":"bone","👀":"eyes","👁":"eye","👅":"tongue","👄":"mouth","🫦":"biting-lip","👶":"baby","🧒":"child","👦":"boy","👧":"girl","🧑":"person","👱":"person-blond-hair","👨":"man","🧔":"person-beard","🧔♂️":"man-beard","🧔♀️":"woman-beard","👨🦰":"man-red-hair","👨🦱":"man-curly-hair","👨🦳":"man-white-hair","👨🦲":"man-bald","👩":"woman","👩🦰":"woman-red-hair","🧑🦰":"person-red-hair","👩🦱":"woman-curly-hair","🧑🦱":"person-curly-hair","👩🦳":"woman-white-hair","🧑🦳":"person-white-hair","👩🦲":"woman-bald","🧑🦲":"person-bald","👱♀️":"woman-blond-hair","👱♂️":"man-blond-hair","🧓":"older-person","👴":"old-man","👵":"old-woman","🙍":"person-frowning","🙍♂️":"man-frowning","🙍♀️":"woman-frowning","🙎":"person-pouting","🙎♂️":"man-pouting","🙎♀️":"woman-pouting","🙅":"person-gesturing-no","🙅♂️":"man-gesturing-no","🙅♀️":"woman-gesturing-no","🙆":"person-gesturing-ok","🙆♂️":"man-gesturing-ok","🙆♀️":"woman-gesturing-ok","💁":"person-tipping-hand","💁♂️":"man-tipping-hand","💁♀️":"woman-tipping-hand","🙋":"person-raising-hand","🙋♂️":"man-raising-hand","🙋♀️":"woman-raising-hand","🧏":"deaf-person","🧏♂️":"deaf-man","🧏♀️":"deaf-woman","🙇":"person-bowing","🙇♂️":"man-bowing","🙇♀️":"woman-bowing","🤦":"person-facepalming","🤦♂️":"man-facepalming","🤦♀️":"woman-facepalming","🤷":"person-shrugging","🤷♂️":"man-shrugging","🤷♀️":"woman-shrugging","🧑⚕️":"health-worker","👨⚕️":"man-health-worker","👩⚕️":"woman-health-worker","🧑🎓":"student","👨🎓":"man-student","👩🎓":"woman-student","🧑🏫":"teacher","👨🏫":"man-teacher","👩🏫":"woman-teacher","🧑⚖️":"judge","👨⚖️":"man-judge","👩⚖️":"woman-judge","🧑🌾":"farmer","👨🌾":"man-farmer","👩🌾":"woman-farmer","🧑🍳":"cook","👨🍳":"man-cook","👩🍳":"woman-cook","🧑🔧":"mechanic","👨🔧":"man-mechanic","👩🔧":"woman-mechanic","🧑🏭":"factory-worker","👨🏭":"man-factory-worker","👩🏭":"woman-factory-worker","🧑💼":"office-worker","👨💼":"man-office-worker","👩💼":"woman-office-worker","🧑🔬":"scientist","👨🔬":"man-scientist","👩🔬":"woman-scientist","🧑💻":"technologist","👨💻":"man-technologist","👩💻":"woman-technologist","🧑🎤":"singer","👨🎤":"man-singer","👩🎤":"woman-singer","🧑🎨":"artist","👨🎨":"man-artist","👩🎨":"woman-artist","🧑✈️":"pilot","👨✈️":"man-pilot","👩✈️":"woman-pilot","🧑🚀":"astronaut","👨🚀":"man-astronaut","👩🚀":"woman-astronaut","🧑🚒":"firefighter","👨🚒":"man-firefighter","👩🚒":"woman-firefighter","👮":"police-officer","👮♂️":"man-police-officer","👮♀️":"woman-police-officer","🕵":"detective","🕵️♂️":"man-detective","🕵️♀️":"woman-detective","💂":"guard","💂♂️":"man-guard","💂♀️":"woman-guard","🥷":"ninja","👷":"construction-worker","👷♂️":"man-construction-worker","👷♀️":"woman-construction-worker","🫅":"person-with-crown","🤴":"prince","👸":"princess","👳":"person-wearing-turban","👳♂️":"man-wearing-turban","👳♀️":"woman-wearing-turban","👲":"person-with-skullcap","🧕":"woman-with-headscarf","🤵":"person-in-tuxedo","🤵♂️":"man-in-tuxedo","🤵♀️":"woman-in-tuxedo","👰":"person-with-veil","👰♂️":"man-with-veil","👰♀️":"woman-with-veil","🤰":"pregnant-woman","🫃":"pregnant-man","🫄":"pregnant-person","🤱":"breast-feeding","👩🍼":"woman-feeding-baby","👨🍼":"man-feeding-baby","🧑🍼":"person-feeding-baby","👼":"baby-angel","🎅":"santa-claus","🤶":"mrs-claus","🧑🎄":"mx-claus","🦸":"superhero","🦸♂️":"man-superhero","🦸♀️":"woman-superhero","🦹":"supervillain","🦹♂️":"man-supervillain","🦹♀️":"woman-supervillain","🧙":"mage","🧙♂️":"man-mage","🧙♀️":"woman-mage","🧚":"fairy","🧚♂️":"man-fairy","🧚♀️":"woman-fairy","🧛":"vampire","🧛♂️":"man-vampire","🧛♀️":"woman-vampire","🧜":"merperson","🧜♂️":"merman","🧜♀️":"mermaid","🧝":"elf","🧝♂️":"man-elf","🧝♀️":"woman-elf","🧞":"genie","🧞♂️":"man-genie","🧞♀️":"woman-genie","🧟":"zombie","🧟♂️":"man-zombie","🧟♀️":"woman-zombie","🧌":"troll","💆":"person-getting-massage","💆♂️":"man-getting-massage","💆♀️":"woman-getting-massage","💇":"person-getting-haircut","💇♂️":"man-getting-haircut","💇♀️":"woman-getting-haircut","🚶":"person-walking","🚶♂️":"man-walking","🚶♀️":"woman-walking","🧍":"person-standing","🧍♂️":"man-standing","🧍♀️":"woman-standing","🧎":"person-kneeling","🧎♂️":"man-kneeling","🧎♀️":"woman-kneeling","🧑🦯":"person-with-white-cane","👨🦯":"man-with-white-cane","👩🦯":"woman-with-white-cane","🧑🦼":"person-in-motorized-wheelchair","👨🦼":"man-in-motorized-wheelchair","👩🦼":"woman-in-motorized-wheelchair","🧑🦽":"person-in-manual-wheelchair","👨🦽":"man-in-manual-wheelchair","👩🦽":"woman-in-manual-wheelchair","🏃":"person-running","🏃♂️":"man-running","🏃♀️":"woman-running","💃":"woman-dancing","🕺":"man-dancing","🕴":"person-in-suit-levitating","👯":"people-with-bunny-ears","👯♂️":"men-with-bunny-ears","👯♀️":"women-with-bunny-ears","🧖":"person-in-steamy-room","🧖♂️":"man-in-steamy-room","🧖♀️":"woman-in-steamy-room","🧗":"person-climbing","🧗♂️":"man-climbing","🧗♀️":"woman-climbing","🤺":"person-fencing","🏇":"horse-racing","⛷":"skier","🏂":"snowboarder","🏌":"person-golfing","🏌️♂️":"man-golfing","🏌️♀️":"woman-golfing","🏄":"person-surfing","🏄♂️":"man-surfing","🏄♀️":"woman-surfing","🚣":"person-rowing-boat","🚣♂️":"man-rowing-boat","🚣♀️":"woman-rowing-boat","🏊":"person-swimming","🏊♂️":"man-swimming","🏊♀️":"woman-swimming","⛹":"person-bouncing-ball","⛹️♂️":"man-bouncing-ball","⛹️♀️":"woman-bouncing-ball","🏋":"person-lifting-weights","🏋️♂️":"man-lifting-weights","🏋️♀️":"woman-lifting-weights","🚴":"person-biking","🚴♂️":"man-biking","🚴♀️":"woman-biking","🚵":"person-mountain-biking","🚵♂️":"man-mountain-biking","🚵♀️":"woman-mountain-biking","🤸":"person-cartwheeling","🤸♂️":"man-cartwheeling","🤸♀️":"woman-cartwheeling","🤼":"people-wrestling","🤼♂️":"men-wrestling","🤼♀️":"women-wrestling","🤽":"person-playing-water-polo","🤽♂️":"man-playing-water-polo","🤽♀️":"woman-playing-water-polo","🤾":"person-playing-handball","🤾♂️":"man-playing-handball","🤾♀️":"woman-playing-handball","🤹":"person-juggling","🤹♂️":"man-juggling","🤹♀️":"woman-juggling","🧘":"person-in-lotus-position","🧘♂️":"man-in-lotus-position","🧘♀️":"woman-in-lotus-position","🛀":"person-taking-bath","🛌":"person-in-bed","🧑🤝🧑":"people-holding-hands","👭":"women-holding-hands","👫":"woman-and-man-holding-hands","👬":"men-holding-hands","💏":"kiss","👩❤️💋👨":"kiss-woman,-man","👨❤️💋👨":"kiss-man,-man","👩❤️💋👩":"kiss-woman,-woman","💑":"couple-with-heart","👩❤️👨":"couple-with-heart-woman,-man","👨❤️👨":"couple-with-heart-man,-man","👩❤️👩":"couple-with-heart-woman,-woman","👪":"family","👨👩👦":"family-man,-woman,-boy","👨👩👧":"family-man,-woman,-girl","👨👩👧👦":"family-man,-woman,-girl,-boy","👨👩👦👦":"family-man,-woman,-boy,-boy","👨👩👧👧":"family-man,-woman,-girl,-girl","👨👨👦":"family-man,-man,-boy","👨👨👧":"family-man,-man,-girl","👨👨👧👦":"family-man,-man,-girl,-boy","👨👨👦👦":"family-man,-man,-boy,-boy","👨👨👧👧":"family-man,-man,-girl,-girl","👩👩👦":"family-woman,-woman,-boy","👩👩👧":"family-woman,-woman,-girl","👩👩👧👦":"family-woman,-woman,-girl,-boy","👩👩👦👦":"family-woman,-woman,-boy,-boy","👩👩👧👧":"family-woman,-woman,-girl,-girl","👨👦":"family-man,-boy","👨👦👦":"family-man,-boy,-boy","👨👧":"family-man,-girl","👨👧👦":"family-man,-girl,-boy","👨👧👧":"family-man,-girl,-girl","👩👦":"family-woman,-boy","👩👦👦":"family-woman,-boy,-boy","👩👧":"family-woman,-girl","👩👧👦":"family-woman,-girl,-boy","👩👧👧":"family-woman,-girl,-girl","🗣":"speaking-head","👤":"bust-in-silhouette","👥":"busts-in-silhouette","🫂":"people-hugging","👣":"footprints","🦰":"red-hair","🦱":"curly-hair","🦳":"white-hair","🦲":"bald","🐵":"monkey-face","🐒":"monkey","🦍":"gorilla","🦧":"orangutan","🐶":"dog-face","🐕":"dog","🦮":"guide-dog","🐕🦺":"service-dog","🐩":"poodle","🐺":"wolf","🦊":"fox","🦝":"raccoon","🐱":"cat-face","🐈":"cat","🐈⬛":"black-cat","🦁":"lion","🐯":"tiger-face","🐅":"tiger","🐆":"leopard","🐴":"horse-face","🫎":"⊛-moose","🫏":"⊛-donkey","🐎":"horse","🦄":"unicorn","🦓":"zebra","🦌":"deer","🦬":"bison","🐮":"cow-face","🐂":"ox","🐃":"water-buffalo","🐄":"cow","🐷":"pig-face","🐖":"pig","🐗":"boar","🐽":"pig-nose","🐏":"ram","🐑":"ewe","🐐":"goat","🐪":"camel","🐫":"two-hump-camel","🦙":"llama","🦒":"giraffe","🐘":"elephant","🦣":"mammoth","🦏":"rhinoceros","🦛":"hippopotamus","🐭":"mouse-face","🐁":"mouse","🐀":"rat","🐹":"hamster","🐰":"rabbit-face","🐇":"rabbit","🐿":"chipmunk","🦫":"beaver","🦔":"hedgehog","🦇":"bat","🐻":"bear","🐻❄️":"polar-bear","🐨":"koala","🐼":"panda","🦥":"sloth","🦦":"otter","🦨":"skunk","🦘":"kangaroo","🦡":"badger","🐾":"paw-prints","🦃":"turkey","🐔":"chicken","🐓":"rooster","🐣":"hatching-chick","🐤":"baby-chick","🐥":"front-facing-baby-chick","🐦":"bird","🐧":"penguin","🕊":"dove","🦅":"eagle","🦆":"duck","🦢":"swan","🦉":"owl","🦤":"dodo","🪶":"feather","🦩":"flamingo","🦚":"peacock","🦜":"parrot","🪽":"⊛-wing","🐦⬛":"⊛-black-bird","🪿":"⊛-goose","🐸":"frog","🐊":"crocodile","🐢":"turtle","🦎":"lizard","🐍":"snake","🐲":"dragon-face","🐉":"dragon","🦕":"sauropod","🦖":"t-rex","🐳":"spouting-whale","🐋":"whale","🐬":"dolphin","🦭":"seal","🐟":"fish","🐠":"tropical-fish","🐡":"blowfish","🦈":"shark","🐙":"octopus","🐚":"spiral-shell","🪸":"coral","🪼":"⊛-jellyfish","🐌":"snail","🦋":"butterfly","🐛":"bug","🐜":"ant","🐝":"honeybee","🪲":"beetle","🐞":"lady-beetle","🦗":"cricket","🪳":"cockroach","🕷":"spider","🕸":"spider-web","🦂":"scorpion","🦟":"mosquito","🪰":"fly","🪱":"worm","🦠":"microbe","💐":"bouquet","🌸":"cherry-blossom","💮":"white-flower","🪷":"lotus","🏵":"rosette","🌹":"rose","🥀":"wilted-flower","🌺":"hibiscus","🌻":"sunflower","🌼":"blossom","🌷":"tulip","🪻":"⊛-hyacinth","🌱":"seedling","🪴":"potted-plant","🌲":"evergreen-tree","🌳":"deciduous-tree","🌴":"palm-tree","🌵":"cactus","🌾":"sheaf-of-rice","🌿":"herb","☘":"shamrock","🍀":"four-leaf-clover","🍁":"maple-leaf","🍂":"fallen-leaf","🍃":"leaf-fluttering-in-wind","🪹":"empty-nest","🪺":"nest-with-eggs","🍄":"mushroom","🍇":"grapes","🍈":"melon","🍉":"watermelon","🍊":"tangerine","🍋":"lemon","🍌":"banana","🍍":"pineapple","🥭":"mango","🍎":"red-apple","🍏":"green-apple","🍐":"pear","🍑":"peach","🍒":"cherries","🍓":"strawberry","🫐":"blueberries","🥝":"kiwi-fruit","🍅":"tomato","🫒":"olive","🥥":"coconut","🥑":"avocado","🍆":"eggplant","🥔":"potato","🥕":"carrot","🌽":"ear-of-corn","🌶":"hot-pepper","🫑":"bell-pepper","🥒":"cucumber","🥬":"leafy-green","🥦":"broccoli","🧄":"garlic","🧅":"onion","🥜":"peanuts","🫘":"beans","🌰":"chestnut","🫚":"⊛-ginger-root","🫛":"⊛-pea-pod","🍞":"bread","🥐":"croissant","🥖":"baguette-bread","🫓":"flatbread","🥨":"pretzel","🥯":"bagel","🥞":"pancakes","🧇":"waffle","🧀":"cheese-wedge","🍖":"meat-on-bone","🍗":"poultry-leg","🥩":"cut-of-meat","🥓":"bacon","🍔":"hamburger","🍟":"french-fries","🍕":"pizza","🌭":"hot-dog","🥪":"sandwich","🌮":"taco","🌯":"burrito","🫔":"tamale","🥙":"stuffed-flatbread","🧆":"falafel","🥚":"egg","🍳":"cooking","🥘":"shallow-pan-of-food","🍲":"pot-of-food","🫕":"fondue","🥣":"bowl-with-spoon","🥗":"green-salad","🍿":"popcorn","🧈":"butter","🧂":"salt","🥫":"canned-food","🍱":"bento-box","🍘":"rice-cracker","🍙":"rice-ball","🍚":"cooked-rice","🍛":"curry-rice","🍜":"steaming-bowl","🍝":"spaghetti","🍠":"roasted-sweet-potato","🍢":"oden","🍣":"sushi","🍤":"fried-shrimp","🍥":"fish-cake-with-swirl","🥮":"moon-cake","🍡":"dango","🥟":"dumpling","🥠":"fortune-cookie","🥡":"takeout-box","🦀":"crab","🦞":"lobster","🦐":"shrimp","🦑":"squid","🦪":"oyster","🍦":"soft-ice-cream","🍧":"shaved-ice","🍨":"ice-cream","🍩":"doughnut","🍪":"cookie","🎂":"birthday-cake","🍰":"shortcake","🧁":"cupcake","🥧":"pie","🍫":"chocolate-bar","🍬":"candy","🍭":"lollipop","🍮":"custard","🍯":"honey-pot","🍼":"baby-bottle","🥛":"glass-of-milk","☕":"hot-beverage","🫖":"teapot","🍵":"teacup-without-handle","🍶":"sake","🍾":"bottle-with-popping-cork","🍷":"wine-glass","🍸":"cocktail-glass","🍹":"tropical-drink","🍺":"beer-mug","🍻":"clinking-beer-mugs","🥂":"clinking-glasses","🥃":"tumbler-glass","🫗":"pouring-liquid","🥤":"cup-with-straw","🧋":"bubble-tea","🧃":"beverage-box","🧉":"mate","🧊":"ice","🥢":"chopsticks","🍽":"fork-and-knife-with-plate","🍴":"fork-and-knife","🥄":"spoon","🔪":"kitchen-knife","🫙":"jar","🏺":"amphora","🌍":"globe-showing-europe-africa","🌎":"globe-showing-americas","🌏":"globe-showing-asia-australia","🌐":"globe-with-meridians","🗺":"world-map","🗾":"map-of-japan","🧭":"compass","🏔":"snow-capped-mountain","⛰":"mountain","🌋":"volcano","🗻":"mount-fuji","🏕":"camping","🏖":"beach-with-umbrella","🏜":"desert","🏝":"desert-island","🏞":"national-park","🏟":"stadium","🏛":"classical-building","🏗":"building-construction","🧱":"brick","🪨":"rock","🪵":"wood","🛖":"hut","🏘":"houses","🏚":"derelict-house","🏠":"house","🏡":"house-with-garden","🏢":"office-building","🏣":"japanese-post-office","🏤":"post-office","🏥":"hospital","🏦":"bank","🏨":"hotel","🏩":"love-hotel","🏪":"convenience-store","🏫":"school","🏬":"department-store","🏭":"factory","🏯":"japanese-castle","🏰":"castle","💒":"wedding","🗼":"tokyo-tower","🗽":"statue-of-liberty","⛪":"church","🕌":"mosque","🛕":"hindu-temple","🕍":"synagogue","⛩":"shinto-shrine","🕋":"kaaba","⛲":"fountain","⛺":"tent","🌁":"foggy","🌃":"night-with-stars","🏙":"cityscape","🌄":"sunrise-over-mountains","🌅":"sunrise","🌆":"cityscape-at-dusk","🌇":"sunset","🌉":"bridge-at-night","♨":"hot-springs","🎠":"carousel-horse","🛝":"playground-slide","🎡":"ferris-wheel","🎢":"roller-coaster","💈":"barber-pole","🎪":"circus-tent","🚂":"locomotive","🚃":"railway-car","🚄":"high-speed-train","🚅":"bullet-train","🚆":"train","🚇":"metro","🚈":"light-rail","🚉":"station","🚊":"tram","🚝":"monorail","🚞":"mountain-railway","🚋":"tram-car","🚌":"bus","🚍":"oncoming-bus","🚎":"trolleybus","🚐":"minibus","🚑":"ambulance","🚒":"fire-engine","🚓":"police-car","🚔":"oncoming-police-car","🚕":"taxi","🚖":"oncoming-taxi","🚗":"automobile","🚘":"oncoming-automobile","🚙":"sport-utility-vehicle","🛻":"pickup-truck","🚚":"delivery-truck","🚛":"articulated-lorry","🚜":"tractor","🏎":"racing-car","🏍":"motorcycle","🛵":"motor-scooter","🦽":"manual-wheelchair","🦼":"motorized-wheelchair","🛺":"auto-rickshaw","🚲":"bicycle","🛴":"kick-scooter","🛹":"skateboard","🛼":"roller-skate","🚏":"bus-stop","🛣":"motorway","🛤":"railway-track","🛢":"oil-drum","⛽":"fuel-pump","🛞":"wheel","🚨":"police-car-light","🚥":"horizontal-traffic-light","🚦":"vertical-traffic-light","🛑":"stop-sign","🚧":"construction","⚓":"anchor","🛟":"ring-buoy","⛵":"sailboat","🛶":"canoe","🚤":"speedboat","🛳":"passenger-ship","⛴":"ferry","🛥":"motor-boat","🚢":"ship","✈":"airplane","🛩":"small-airplane","🛫":"airplane-departure","🛬":"airplane-arrival","🪂":"parachute","💺":"seat","🚁":"helicopter","🚟":"suspension-railway","🚠":"mountain-cableway","🚡":"aerial-tramway","🛰":"satellite","🚀":"rocket","🛸":"flying-saucer","🛎":"bellhop-bell","🧳":"luggage","⌛":"hourglass-done","⏳":"hourglass-not-done","⌚":"watch","⏰":"alarm-clock","⏱":"stopwatch","⏲":"timer-clock","🕰":"mantelpiece-clock","🕛":"twelve-o-clock","🕧":"twelve-thirty","🕐":"one-o-clock","🕜":"one-thirty","🕑":"two-o-clock","🕝":"two-thirty","🕒":"three-o-clock","🕞":"three-thirty","🕓":"four-o-clock","🕟":"four-thirty","🕔":"five-o-clock","🕠":"five-thirty","🕕":"six-o-clock","🕡":"six-thirty","🕖":"seven-o-clock","🕢":"seven-thirty","🕗":"eight-o-clock","🕣":"eight-thirty","🕘":"nine-o-clock","🕤":"nine-thirty","🕙":"ten-o-clock","🕥":"ten-thirty","🕚":"eleven-o-clock","🕦":"eleven-thirty","🌑":"new-moon","🌒":"waxing-crescent-moon","🌓":"first-quarter-moon","🌔":"waxing-gibbous-moon","🌕":"full-moon","🌖":"waning-gibbous-moon","🌗":"last-quarter-moon","🌘":"waning-crescent-moon","🌙":"crescent-moon","🌚":"new-moon-face","🌛":"first-quarter-moon-face","🌜":"last-quarter-moon-face","🌡":"thermometer","☀":"sun","🌝":"full-moon-face","🌞":"sun-with-face","🪐":"ringed-planet","⭐":"star","🌟":"glowing-star","🌠":"shooting-star","🌌":"milky-way","☁":"cloud","⛅":"sun-behind-cloud","⛈":"cloud-with-lightning-and-rain","🌤":"sun-behind-small-cloud","🌥":"sun-behind-large-cloud","🌦":"sun-behind-rain-cloud","🌧":"cloud-with-rain","🌨":"cloud-with-snow","🌩":"cloud-with-lightning","🌪":"tornado","🌫":"fog","🌬":"wind-face","🌀":"cyclone","🌈":"rainbow","🌂":"closed-umbrella","☂":"umbrella","☔":"umbrella-with-rain-drops","⛱":"umbrella-on-ground","⚡":"high-voltage","❄":"snowflake","☃":"snowman","⛄":"snowman-without-snow","☄":"comet","🔥":"fire","💧":"droplet","🌊":"water-wave","🎃":"jack-o-lantern","🎄":"christmas-tree","🎆":"fireworks","🎇":"sparkler","🧨":"firecracker","✨":"sparkles","🎈":"balloon","🎉":"party-popper","🎊":"confetti-ball","🎋":"tanabata-tree","🎍":"pine-decoration","🎎":"japanese-dolls","🎏":"carp-streamer","🎐":"wind-chime","🎑":"moon-viewing-ceremony","🧧":"red-envelope","🎀":"ribbon","🎁":"wrapped-gift","🎗":"reminder-ribbon","🎟":"admission-tickets","🎫":"ticket","🎖":"military-medal","🏆":"trophy","🏅":"sports-medal","🥇":"1st-place-medal","🥈":"2nd-place-medal","🥉":"3rd-place-medal","⚽":"soccer-ball","⚾":"baseball","🥎":"softball","🏀":"basketball","🏐":"volleyball","🏈":"american-football","🏉":"rugby-football","🎾":"tennis","🥏":"flying-disc","🎳":"bowling","🏏":"cricket-game","🏑":"field-hockey","🏒":"ice-hockey","🥍":"lacrosse","🏓":"ping-pong","🏸":"badminton","🥊":"boxing-glove","🥋":"martial-arts-uniform","🥅":"goal-net","⛳":"flag-in-hole","⛸":"ice-skate","🎣":"fishing-pole","🤿":"diving-mask","🎽":"running-shirt","🎿":"skis","🛷":"sled","🥌":"curling-stone","🎯":"bullseye","🪀":"yo-yo","🪁":"kite","🔫":"water-pistol","🎱":"pool-8-ball","🔮":"crystal-ball","🪄":"magic-wand","🎮":"video-game","🕹":"joystick","🎰":"slot-machine","🎲":"game-die","🧩":"puzzle-piece","🧸":"teddy-bear","🪅":"piñata","🪩":"mirror-ball","🪆":"nesting-dolls","♠":"spade-suit","♥":"heart-suit","♦":"diamond-suit","♣":"club-suit","♟":"chess-pawn","🃏":"joker","🀄":"mahjong-red-dragon","🎴":"flower-playing-cards","🎭":"performing-arts","🖼":"framed-picture","🎨":"artist-palette","🧵":"thread","🪡":"sewing-needle","🧶":"yarn","🪢":"knot","👓":"glasses","🕶":"sunglasses","🥽":"goggles","🥼":"lab-coat","🦺":"safety-vest","👔":"necktie","👕":"t-shirt","👖":"jeans","🧣":"scarf","🧤":"gloves","🧥":"coat","🧦":"socks","👗":"dress","👘":"kimono","🥻":"sari","🩱":"one-piece-swimsuit","🩲":"briefs","🩳":"shorts","👙":"bikini","👚":"woman-s-clothes","🪭":"⊛-folding-hand-fan","👛":"purse","👜":"handbag","👝":"clutch-bag","🛍":"shopping-bags","🎒":"backpack","🩴":"thong-sandal","👞":"man-s-shoe","👟":"running-shoe","🥾":"hiking-boot","🥿":"flat-shoe","👠":"high-heeled-shoe","👡":"woman-s-sandal","🩰":"ballet-shoes","👢":"woman-s-boot","🪮":"⊛-hair-pick","👑":"crown","👒":"woman-s-hat","🎩":"top-hat","🎓":"graduation-cap","🧢":"billed-cap","🪖":"military-helmet","⛑":"rescue-worker-s-helmet","📿":"prayer-beads","💄":"lipstick","💍":"ring","💎":"gem-stone","🔇":"muted-speaker","🔈":"speaker-low-volume","🔉":"speaker-medium-volume","🔊":"speaker-high-volume","📢":"loudspeaker","📣":"megaphone","📯":"postal-horn","🔔":"bell","🔕":"bell-with-slash","🎼":"musical-score","🎵":"musical-note","🎶":"musical-notes","🎙":"studio-microphone","🎚":"level-slider","🎛":"control-knobs","🎤":"microphone","🎧":"headphone","📻":"radio","🎷":"saxophone","🪗":"accordion","🎸":"guitar","🎹":"musical-keyboard","🎺":"trumpet","🎻":"violin","🪕":"banjo","🥁":"drum","🪘":"long-drum","🪇":"maracas","🪈":"flute","📱":"mobile-phone","📲":"mobile-phone-with-arrow","☎":"telephone","📞":"telephone-receiver","📟":"pager","📠":"fax-machine","🔋":"battery","🪫":"low-battery","🔌":"electric-plug","💻":"laptop","🖥":"desktop-computer","🖨":"printer","⌨":"keyboard","🖱":"computer-mouse","🖲":"trackball","💽":"computer-disk","💾":"floppy-disk","💿":"optical-disk","📀":"dvd","🧮":"abacus","🎥":"movie-camera","🎞":"film-frames","📽":"film-projector","🎬":"clapper-board","📺":"television","📷":"camera","📸":"camera-with-flash","📹":"video-camera","📼":"videocassette","🔍":"magnifying-glass-tilted-left","🔎":"magnifying-glass-tilted-right","🕯":"candle","💡":"light-bulb","🔦":"flashlight","🏮":"red-paper-lantern","🪔":"diya-lamp","📔":"notebook-with-decorative-cover","📕":"closed-book","📖":"open-book","📗":"green-book","📘":"blue-book","📙":"orange-book","📚":"books","📓":"notebook","📒":"ledger","📃":"page-with-curl","📜":"scroll","📄":"page-facing-up","📰":"newspaper","🗞":"rolled-up-newspaper","📑":"bookmark-tabs","🔖":"bookmark","🏷":"label","💰":"money-bag","🪙":"coin","💴":"yen-banknote","💵":"dollar-banknote","💶":"euro-banknote","💷":"pound-banknote","💸":"money-with-wings","💳":"credit-card","🧾":"receipt","💹":"chart-increasing-with-yen","✉":"envelope","📧":"e-mail","📨":"incoming-envelope","📩":"envelope-with-arrow","📤":"outbox-tray","📥":"inbox-tray","📦":"package","📫":"closed-mailbox-with-raised-flag","📪":"closed-mailbox-with-lowered-flag","📬":"open-mailbox-with-raised-flag","📭":"open-mailbox-with-lowered-flag","📮":"postbox","🗳":"ballot-box-with-ballot","✏":"pencil","✒":"black-nib","🖋":"fountain-pen","🖊":"pen","🖌":"paintbrush","🖍":"crayon","📝":"memo","💼":"briefcase","📁":"file-folder","📂":"open-file-folder","🗂":"card-index-dividers","📅":"calendar","📆":"tear-off-calendar","🗒":"spiral-notepad","🗓":"spiral-calendar","📇":"card-index","📈":"chart-increasing","📉":"chart-decreasing","📊":"bar-chart","📋":"clipboard","📌":"pushpin","📍":"round-pushpin","📎":"paperclip","🖇":"linked-paperclips","📏":"straight-ruler","📐":"triangular-ruler","✂":"scissors","🗃":"card-file-box","🗄":"file-cabinet","🗑":"wastebasket","🔒":"locked","🔓":"unlocked","🔏":"locked-with-pen","🔐":"locked-with-key","🔑":"key","🗝":"old-key","🔨":"hammer","🪓":"axe","⛏":"pick","⚒":"hammer-and-pick","🛠":"hammer-and-wrench","🗡":"dagger","⚔":"crossed-swords","💣":"bomb","🪃":"boomerang","🏹":"bow-and-arrow","🛡":"shield","🪚":"carpentry-saw","🔧":"wrench","🪛":"screwdriver","🔩":"nut-and-bolt","⚙":"gear","🗜":"clamp","⚖":"balance-scale","🦯":"white-cane","🔗":"link","⛓":"chains","🪝":"hook","🧰":"toolbox","🧲":"magnet","🪜":"ladder","⚗":"alembic","🧪":"test-tube","🧫":"petri-dish","🧬":"dna","🔬":"microscope","🔭":"telescope","📡":"satellite-antenna","💉":"syringe","🩸":"drop-of-blood","💊":"pill","🩹":"adhesive-bandage","🩼":"crutch","🩺":"stethoscope","🩻":"x-ray","🚪":"door","🛗":"elevator","🪞":"mirror","🪟":"window","🛏":"bed","🛋":"couch-and-lamp","🪑":"chair","🚽":"toilet","🪠":"plunger","🚿":"shower","🛁":"bathtub","🪤":"mouse-trap","🪒":"razor","🧴":"lotion-bottle","🧷":"safety-pin","🧹":"broom","🧺":"basket","🧻":"roll-of-paper","🪣":"bucket","🧼":"soap","🫧":"bubbles","🪥":"toothbrush","🧽":"sponge","🧯":"fire-extinguisher","🛒":"shopping-cart","🚬":"cigarette","⚰":"coffin","🪦":"headstone","⚱":"funeral-urn","🧿":"nazar-amulet","🪬":"hamsa","🗿":"moai","🪧":"placard","🪪":"identification-card","🏧":"atm-sign","🚮":"litter-in-bin-sign","🚰":"potable-water","♿":"wheelchair-symbol","🚹":"men-s-room","🚺":"women-s-room","🚻":"restroom","🚼":"baby-symbol","🚾":"water-closet","🛂":"passport-control","🛃":"customs","🛄":"baggage-claim","🛅":"left-luggage","⚠":"warning","🚸":"children-crossing","⛔":"no-entry","🚫":"prohibited","🚳":"no-bicycles","🚭":"no-smoking","🚯":"no-littering","🚱":"non-potable-water","🚷":"no-pedestrians","📵":"no-mobile-phones","🔞":"no-one-under-eighteen","☢":"radioactive","☣":"biohazard","⬆":"up-arrow","↗":"up-right-arrow","➡":"right-arrow","↘":"down-right-arrow","⬇":"down-arrow","↙":"down-left-arrow","⬅":"left-arrow","↖":"up-left-arrow","↕":"up-down-arrow","↔":"left-right-arrow","↩":"right-arrow-curving-left","↪":"left-arrow-curving-right","⤴":"right-arrow-curving-up","⤵":"right-arrow-curving-down","🔃":"clockwise-vertical-arrows","🔄":"counterclockwise-arrows-button","🔙":"back-arrow","🔚":"end-arrow","🔛":"on!-arrow","🔜":"soon-arrow","🔝":"top-arrow","🛐":"place-of-worship","⚛":"atom-symbol","🕉":"om","✡":"star-of-david","☸":"wheel-of-dharma","☯":"yin-yang","✝":"latin-cross","☦":"orthodox-cross","☪":"star-and-crescent","☮":"peace-symbol","🕎":"menorah","🔯":"dotted-six-pointed-star","🪯":"⊛-khanda","♈":"aries","♉":"taurus","♊":"gemini","♋":"cancer","♌":"leo","♍":"virgo","♎":"libra","♏":"scorpio","♐":"sagittarius","♑":"capricorn","♒":"aquarius","♓":"pisces","⛎":"ophiuchus","🔀":"shuffle-tracks-button","🔁":"repeat-button","🔂":"repeat-single-button","▶":"play-button","⏩":"fast-forward-button","⏭":"next-track-button","⏯":"play-or-pause-button","◀":"reverse-button","⏪":"fast-reverse-button","⏮":"last-track-button","🔼":"upwards-button","⏫":"fast-up-button","🔽":"downwards-button","⏬":"fast-down-button","⏸":"pause-button","⏹":"stop-button","⏺":"record-button","⏏":"eject-button","🎦":"cinema","🔅":"dim-button","🔆":"bright-button","📶":"antenna-bars","🛜":"⊛-wireless","📳":"vibration-mode","📴":"mobile-phone-off","♀":"female-sign","♂":"male-sign","⚧":"transgender-symbol","✖":"multiply","➕":"plus","➖":"minus","➗":"divide","🟰":"heavy-equals-sign","♾":"infinity","‼":"double-exclamation-mark","⁉":"exclamation-question-mark","❓":"red-question-mark","❔":"white-question-mark","❕":"white-exclamation-mark","❗":"red-exclamation-mark","〰":"wavy-dash","💱":"currency-exchange","💲":"heavy-dollar-sign","⚕":"medical-symbol","♻":"recycling-symbol","⚜":"fleur-de-lis","🔱":"trident-emblem","📛":"name-badge","🔰":"japanese-symbol-for-beginner","⭕":"hollow-red-circle","✅":"check-mark-button","☑":"check-box-with-check","✔":"check-mark","❌":"cross-mark","❎":"cross-mark-button","➰":"curly-loop","➿":"double-curly-loop","〽":"part-alternation-mark","✳":"eight-spoked-asterisk","✴":"eight-pointed-star","❇":"sparkle","©":"copyright","®":"registered","™":"trade-mark","#️⃣":"keycap-#","*️⃣":"keycap-*","0️⃣":"keycap-0","1️⃣":"keycap-1","2️⃣":"keycap-2","3️⃣":"keycap-3","4️⃣":"keycap-4","5️⃣":"keycap-5","6️⃣":"keycap-6","7️⃣":"keycap-7","8️⃣":"keycap-8","9️⃣":"keycap-9","🔟":"keycap-10","🔠":"input-latin-uppercase","🔡":"input-latin-lowercase","🔢":"input-numbers","🔣":"input-symbols","🔤":"input-latin-letters","🅰":"a-button-(blood-type)","🆎":"ab-button-(blood-type)","🅱":"b-button-(blood-type)","🆑":"cl-button","🆒":"cool-button","🆓":"free-button","ℹ":"information","🆔":"id-button","Ⓜ":"circled-m","🆕":"new-button","🆖":"ng-button","🅾":"o-button-(blood-type)","🆗":"ok-button","🅿":"p-button","🆘":"sos-button","🆙":"up!-button","🆚":"vs-button","🈁":"japanese-here-button","🈂":"japanese-service-charge-button","🈷":"japanese-monthly-amount-button","🈶":"japanese-not-free-of-charge-button","🈯":"japanese-reserved-button","🉐":"japanese-bargain-button","🈹":"japanese-discount-button","🈚":"japanese-free-of-charge-button","🈲":"japanese-prohibited-button","🉑":"japanese-acceptable-button","🈸":"japanese-application-button","🈴":"japanese-passing-grade-button","🈳":"japanese-vacancy-button","㊗":"japanese-congratulations-button","㊙":"japanese-secret-button","🈺":"japanese-open-for-business-button","🈵":"japanese-no-vacancy-button","🔴":"red-circle","🟠":"orange-circle","🟡":"yellow-circle","🟢":"green-circle","🔵":"blue-circle","🟣":"purple-circle","🟤":"brown-circle","⚫":"black-circle","⚪":"white-circle","🟥":"red-square","🟧":"orange-square","🟨":"yellow-square","🟩":"green-square","🟦":"blue-square","🟪":"purple-square","🟫":"brown-square","⬛":"black-large-square","⬜":"white-large-square","◼":"black-medium-square","◻":"white-medium-square","◾":"black-medium-small-square","◽":"white-medium-small-square","▪":"black-small-square","▫":"white-small-square","🔶":"large-orange-diamond","🔷":"large-blue-diamond","🔸":"small-orange-diamond","🔹":"small-blue-diamond","🔺":"red-triangle-pointed-up","🔻":"red-triangle-pointed-down","💠":"diamond-with-a-dot","🔘":"radio-button","🔳":"white-square-button","🔲":"black-square-button","🏁":"chequered-flag","🚩":"triangular-flag","🎌":"crossed-flags","🏴":"black-flag","🏳":"white-flag","🏳️🌈":"rainbow-flag","🏳️⚧️":"transgender-flag","🏴☠️":"pirate-flag","🇦🇨":"flag-ascension-island","🇦🇩":"flag-andorra","🇦🇪":"flag-united-arab-emirates","🇦🇫":"flag-afghanistan","🇦🇬":"flag-antigua-and-barbuda","🇦🇮":"flag-anguilla","🇦🇱":"flag-albania","🇦🇲":"flag-armenia","🇦🇴":"flag-angola","🇦🇶":"flag-antarctica","🇦🇷":"flag-argentina","🇦🇸":"flag-american-samoa","🇦🇹":"flag-austria","🇦🇺":"flag-australia","🇦🇼":"flag-aruba","🇦🇽":"flag-åland-islands","🇦🇿":"flag-azerbaijan","🇧🇦":"flag-bosnia-and-herzegovina","🇧🇧":"flag-barbados","🇧🇩":"flag-bangladesh","🇧🇪":"flag-belgium","🇧🇫":"flag-burkina-faso","🇧🇬":"flag-bulgaria","🇧🇭":"flag-bahrain","🇧🇮":"flag-burundi","🇧🇯":"flag-benin","🇧🇱":"flag-st-barthelemy","🇧🇲":"flag-bermuda","🇧🇳":"flag-brunei","🇧🇴":"flag-bolivia","🇧🇶":"flag-caribbean-netherlands","🇧🇷":"flag-brazil","🇧🇸":"flag-bahamas","🇧🇹":"flag-bhutan","🇧🇻":"flag-bouvet-island","🇧🇼":"flag-botswana","🇧🇾":"flag-belarus","🇧🇿":"flag-belize","🇨🇦":"flag-canada","🇨🇨":"flag-cocos-(keeling)-islands","🇨🇩":"flag-congo---kinshasa","🇨🇫":"flag-central-african-republic","🇨🇬":"flag-congo---brazzaville","🇨🇭":"flag-switzerland","🇨🇮":"flag-côte-d-ivoire","🇨🇰":"flag-cook-islands","🇨🇱":"flag-chile","🇨🇲":"flag-cameroon","🇨🇳":"flag-china","🇨🇴":"flag-colombia","🇨🇵":"flag-clipperton-island","🇨🇷":"flag-costa-rica","🇨🇺":"flag-cuba","🇨🇻":"flag-cape-verde","🇨🇼":"flag-curaçao","🇨🇽":"flag-christmas-island","🇨🇾":"flag-cyprus","🇨🇿":"flag-czechia","🇩🇪":"flag-germany","🇩🇬":"flag-diego-garcia","🇩🇯":"flag-djibouti","🇩🇰":"flag-denmark","🇩🇲":"flag-dominica","🇩🇴":"flag-dominican-republic","🇩🇿":"flag-algeria","🇪🇦":"flag-ceuta-and-melilla","🇪🇨":"flag-ecuador","🇪🇪":"flag-estonia","🇪🇬":"flag-egypt","🇪🇭":"flag-western-sahara","🇪🇷":"flag-eritrea","🇪🇸":"flag-spain","🇪🇹":"flag-ethiopia","🇪🇺":"flag-european-union","🇫🇮":"flag-finland","🇫🇯":"flag-fiji","🇫🇰":"flag-falkland-islands","🇫🇲":"flag-micronesia","🇫🇴":"flag-faroe-islands","🇫🇷":"flag-france","🇬🇦":"flag-gabon","🇬🇧":"flag-united-kingdom","🇬🇩":"flag-grenada","🇬🇪":"flag-georgia","🇬🇫":"flag-french-guiana","🇬🇬":"flag-guernsey","🇬🇭":"flag-ghana","🇬🇮":"flag-gibraltar","🇬🇱":"flag-greenland","🇬🇲":"flag-gambia","🇬🇳":"flag-guinea","🇬🇵":"flag-guadeloupe","🇬🇶":"flag-equatorial-guinea","🇬🇷":"flag-greece","🇬🇸":"flag-south-georgia-and-south-sandwich-islands","🇬🇹":"flag-guatemala","🇬🇺":"flag-guam","🇬🇼":"flag-guinea-bissau","🇬🇾":"flag-guyana","🇭🇰":"flag-hong-kong-sar-china","🇭🇲":"flag-heard-and-mcdonald-islands","🇭🇳":"flag-honduras","🇭🇷":"flag-croatia","🇭🇹":"flag-haiti","🇭🇺":"flag-hungary","🇮🇨":"flag-canary-islands","🇮🇩":"flag-indonesia","🇮🇪":"flag-ireland","🇮🇱":"flag-israel","🇮🇲":"flag-isle-of-man","🇮🇳":"flag-india","🇮🇴":"flag-british-indian-ocean-territory","🇮🇶":"flag-iraq","🇮🇷":"flag-iran","🇮🇸":"flag-iceland","🇮🇹":"flag-italy","🇯🇪":"flag-jersey","🇯🇲":"flag-jamaica","🇯🇴":"flag-jordan","🇯🇵":"flag-japan","🇰🇪":"flag-kenya","🇰🇬":"flag-kyrgyzstan","🇰🇭":"flag-cambodia","🇰🇮":"flag-kiribati","🇰🇲":"flag-comoros","🇰🇳":"flag-st-kitts-and-nevis","🇰🇵":"flag-north-korea","🇰🇷":"flag-south-korea","🇰🇼":"flag-kuwait","🇰🇾":"flag-cayman-islands","🇰🇿":"flag-kazakhstan","🇱🇦":"flag-laos","🇱🇧":"flag-lebanon","🇱🇨":"flag-st-lucia","🇱🇮":"flag-liechtenstein","🇱🇰":"flag-sri-lanka","🇱🇷":"flag-liberia","🇱🇸":"flag-lesotho","🇱🇹":"flag-lithuania","🇱🇺":"flag-luxembourg","🇱🇻":"flag-latvia","🇱🇾":"flag-libya","🇲🇦":"flag-morocco","🇲🇨":"flag-monaco","🇲🇩":"flag-moldova","🇲🇪":"flag-montenegro","🇲🇫":"flag-st-martin","🇲🇬":"flag-madagascar","🇲🇭":"flag-marshall-islands","🇲🇰":"flag-north-macedonia","🇲🇱":"flag-mali","🇲🇲":"flag-myanmar-(burma)","🇲🇳":"flag-mongolia","🇲🇴":"flag-macao-sar-china","🇲🇵":"flag-northern-mariana-islands","🇲🇶":"flag-martinique","🇲🇷":"flag-mauritania","🇲🇸":"flag-montserrat","🇲🇹":"flag-malta","🇲🇺":"flag-mauritius","🇲🇻":"flag-maldives","🇲🇼":"flag-malawi","🇲🇽":"flag-mexico","🇲🇾":"flag-malaysia","🇲🇿":"flag-mozambique","🇳🇦":"flag-namibia","🇳🇨":"flag-new-caledonia","🇳🇪":"flag-niger","🇳🇫":"flag-norfolk-island","🇳🇬":"flag-nigeria","🇳🇮":"flag-nicaragua","🇳🇱":"flag-netherlands","🇳🇴":"flag-norway","🇳🇵":"flag-nepal","🇳🇷":"flag-nauru","🇳🇺":"flag-niue","🇳🇿":"flag-new-zealand","🇴🇲":"flag-oman","🇵🇦":"flag-panama","🇵🇪":"flag-peru","🇵🇫":"flag-french-polynesia","🇵🇬":"flag-papua-new-guinea","🇵🇭":"flag-philippines","🇵🇰":"flag-pakistan","🇵🇱":"flag-poland","🇵🇲":"flag-st-pierre-and-miquelon","🇵🇳":"flag-pitcairn-islands","🇵🇷":"flag-puerto-rico","🇵🇸":"flag-palestinian-territories","🇵🇹":"flag-portugal","🇵🇼":"flag-palau","🇵🇾":"flag-paraguay","🇶🇦":"flag-qatar","🇷🇪":"flag-reunion","🇷🇴":"flag-romania","🇷🇸":"flag-serbia","🇷🇺":"flag-russia","🇷🇼":"flag-rwanda","🇸🇦":"flag-saudi-arabia","🇸🇧":"flag-solomon-islands","🇸🇨":"flag-seychelles","🇸🇩":"flag-sudan","🇸🇪":"flag-sweden","🇸🇬":"flag-singapore","🇸🇭":"flag-st-helena","🇸🇮":"flag-slovenia","🇸🇯":"flag-svalbard-and-jan-mayen","🇸🇰":"flag-slovakia","🇸🇱":"flag-sierra-leone","🇸🇲":"flag-san-marino","🇸🇳":"flag-senegal","🇸🇴":"flag-somalia","🇸🇷":"flag-suriname","🇸🇸":"flag-south-sudan","🇸🇹":"flag-são-tome-and-príncipe","🇸🇻":"flag-el-salvador","🇸🇽":"flag-sint-maarten","🇸🇾":"flag-syria","🇸🇿":"flag-eswatini","🇹🇦":"flag-tristan-da-cunha","🇹🇨":"flag-turks-and-caicos-islands","🇹🇩":"flag-chad","🇹🇫":"flag-french-southern-territories","🇹🇬":"flag-togo","🇹🇭":"flag-thailand","🇹🇯":"flag-tajikistan","🇹🇰":"flag-tokelau","🇹🇱":"flag-timor-leste","🇹🇲":"flag-turkmenistan","🇹🇳":"flag-tunisia","🇹🇴":"flag-tonga","🇹🇷":"flag-turkey","🇹🇹":"flag-trinidad-and-tobago","🇹🇻":"flag-tuvalu","🇹🇼":"flag-taiwan","🇹🇿":"flag-tanzania","🇺🇦":"flag-ukraine","🇺🇬":"flag-uganda","🇺🇲":"flag-us-outlying-islands","🇺🇳":"flag-united-nations","🇺🇸":"flag-united-states","🇺🇾":"flag-uruguay","🇺🇿":"flag-uzbekistan","🇻🇦":"flag-vatican-city","🇻🇨":"flag-st-vincent-and-grenadines","🇻🇪":"flag-venezuela","🇻🇬":"flag-british-virgin-islands","🇻🇮":"flag-us-virgin-islands","🇻🇳":"flag-vietnam","🇻🇺":"flag-vanuatu","🇼🇫":"flag-wallis-and-futuna","🇼🇸":"flag-samoa","🇽🇰":"flag-kosovo","🇾🇪":"flag-yemen","🇾🇹":"flag-mayotte","🇿🇦":"flag-south-africa","🇿🇲":"flag-zambia","🇿🇼":"flag-zimbabwe","🏴":"flag-england","🏴":"flag-scotland","🏴":"flag-wales"},Un=Object.keys(qn),Hn='\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this\n// file, You can obtain one at https://mozilla.org/MPL/2.0/.\n\n// Please pull this list from, and only from https://publicsuffix.org/list/public_suffix_list.dat,\n// rather than any other VCS sites. Pulling from any other URL is not guaranteed to be supported.\n\n// Instructions on pulling and using this list can be found at https://publicsuffix.org/list/.\n\n// ===BEGIN ICANN DOMAINS===\n\n// ac : http://nic.ac/rules.htm\nac\ncom.ac\nedu.ac\ngov.ac\nnet.ac\nmil.ac\norg.ac\n\n// ad : https://en.wikipedia.org/wiki/.ad\nad\nnom.ad\n\n// ae : https://tdra.gov.ae/en/aeda/ae-policies\nae\nco.ae\nnet.ae\norg.ae\nsch.ae\nac.ae\ngov.ae\nmil.ae\n\n// aero : see https://www.information.aero/index.php?id=66\naero\naccident-investigation.aero\naccident-prevention.aero\naerobatic.aero\naeroclub.aero\naerodrome.aero\nagents.aero\naircraft.aero\nairline.aero\nairport.aero\nair-surveillance.aero\nairtraffic.aero\nair-traffic-control.aero\nambulance.aero\namusement.aero\nassociation.aero\nauthor.aero\nballooning.aero\nbroker.aero\ncaa.aero\ncargo.aero\ncatering.aero\ncertification.aero\nchampionship.aero\ncharter.aero\ncivilaviation.aero\nclub.aero\nconference.aero\nconsultant.aero\nconsulting.aero\ncontrol.aero\ncouncil.aero\ncrew.aero\ndesign.aero\ndgca.aero\neducator.aero\nemergency.aero\nengine.aero\nengineer.aero\nentertainment.aero\nequipment.aero\nexchange.aero\nexpress.aero\nfederation.aero\nflight.aero\nfuel.aero\ngliding.aero\ngovernment.aero\ngroundhandling.aero\ngroup.aero\nhanggliding.aero\nhomebuilt.aero\ninsurance.aero\njournal.aero\njournalist.aero\nleasing.aero\nlogistics.aero\nmagazine.aero\nmaintenance.aero\nmedia.aero\nmicrolight.aero\nmodelling.aero\nnavigation.aero\nparachuting.aero\nparagliding.aero\npassenger-association.aero\npilot.aero\npress.aero\nproduction.aero\nrecreation.aero\nrepbody.aero\nres.aero\nresearch.aero\nrotorcraft.aero\nsafety.aero\nscientist.aero\nservices.aero\nshow.aero\nskydiving.aero\nsoftware.aero\nstudent.aero\ntrader.aero\ntrading.aero\ntrainer.aero\nunion.aero\nworkinggroup.aero\nworks.aero\n\n// af : http://www.nic.af/help.jsp\naf\ngov.af\ncom.af\norg.af\nnet.af\nedu.af\n\n// ag : http://www.nic.ag/prices.htm\nag\ncom.ag\norg.ag\nnet.ag\nco.ag\nnom.ag\n\n// ai : http://nic.com.ai/\nai\noff.ai\ncom.ai\nnet.ai\norg.ai\n\n// al : http://www.ert.gov.al/ert_alb/faq_det.html?Id=31\nal\ncom.al\nedu.al\ngov.al\nmil.al\nnet.al\norg.al\n\n// am : https://www.amnic.net/policy/en/Policy_EN.pdf\nam\nco.am\ncom.am\ncommune.am\nnet.am\norg.am\n\n// ao : https://en.wikipedia.org/wiki/.ao\n// http://www.dns.ao/REGISTR.DOC\nao\ned.ao\ngv.ao\nog.ao\nco.ao\npb.ao\nit.ao\n\n// aq : https://en.wikipedia.org/wiki/.aq\naq\n\n// ar : https://nic.ar/es/nic-argentina/normativa\nar\nbet.ar\ncom.ar\ncoop.ar\nedu.ar\ngob.ar\ngov.ar\nint.ar\nmil.ar\nmusica.ar\nmutual.ar\nnet.ar\norg.ar\nsenasa.ar\ntur.ar\n\n// arpa : https://en.wikipedia.org/wiki/.arpa\n// Confirmed by registry <iana-questions@icann.org> 2008-06-18\narpa\ne164.arpa\nin-addr.arpa\nip6.arpa\niris.arpa\nuri.arpa\nurn.arpa\n\n// as : https://en.wikipedia.org/wiki/.as\nas\ngov.as\n\n// asia : https://en.wikipedia.org/wiki/.asia\nasia\n\n// at : https://en.wikipedia.org/wiki/.at\n// Confirmed by registry <it@nic.at> 2008-06-17\nat\nac.at\nco.at\ngv.at\nor.at\nsth.ac.at\n\n// au : https://en.wikipedia.org/wiki/.au\n// http://www.auda.org.au/\nau\n// 2LDs\ncom.au\nnet.au\norg.au\nedu.au\ngov.au\nasn.au\nid.au\n// Historic 2LDs (closed to new registration, but sites still exist)\ninfo.au\nconf.au\noz.au\n// CGDNs - http://www.cgdn.org.au/\nact.au\nnsw.au\nnt.au\nqld.au\nsa.au\ntas.au\nvic.au\nwa.au\n// 3LDs\nact.edu.au\ncatholic.edu.au\n// eq.edu.au - Removed at the request of the Queensland Department of Education\nnsw.edu.au\nnt.edu.au\nqld.edu.au\nsa.edu.au\ntas.edu.au\nvic.edu.au\nwa.edu.au\n// act.gov.au Bug 984824 - Removed at request of Greg Tankard\n// nsw.gov.au Bug 547985 - Removed at request of <Shae.Donelan@services.nsw.gov.au>\n// nt.gov.au Bug 940478 - Removed at request of Greg Connors <Greg.Connors@nt.gov.au>\nqld.gov.au\nsa.gov.au\ntas.gov.au\nvic.gov.au\nwa.gov.au\n// 4LDs\n// education.tas.edu.au - Removed at the request of the Department of Education Tasmania\nschools.nsw.edu.au\n\n// aw : https://en.wikipedia.org/wiki/.aw\naw\ncom.aw\n\n// ax : https://en.wikipedia.org/wiki/.ax\nax\n\n// az : https://en.wikipedia.org/wiki/.az\naz\ncom.az\nnet.az\nint.az\ngov.az\norg.az\nedu.az\ninfo.az\npp.az\nmil.az\nname.az\npro.az\nbiz.az\n\n// ba : http://nic.ba/users_data/files/pravilnik_o_registraciji.pdf\nba\ncom.ba\nedu.ba\ngov.ba\nmil.ba\nnet.ba\norg.ba\n\n// bb : https://en.wikipedia.org/wiki/.bb\nbb\nbiz.bb\nco.bb\ncom.bb\nedu.bb\ngov.bb\ninfo.bb\nnet.bb\norg.bb\nstore.bb\ntv.bb\n\n// bd : https://en.wikipedia.org/wiki/.bd\n*.bd\n\n// be : https://en.wikipedia.org/wiki/.be\n// Confirmed by registry <tech@dns.be> 2008-06-08\nbe\nac.be\n\n// bf : https://en.wikipedia.org/wiki/.bf\nbf\ngov.bf\n\n// bg : https://en.wikipedia.org/wiki/.bg\n// https://www.register.bg/user/static/rules/en/index.html\nbg\na.bg\nb.bg\nc.bg\nd.bg\ne.bg\nf.bg\ng.bg\nh.bg\ni.bg\nj.bg\nk.bg\nl.bg\nm.bg\nn.bg\no.bg\np.bg\nq.bg\nr.bg\ns.bg\nt.bg\nu.bg\nv.bg\nw.bg\nx.bg\ny.bg\nz.bg\n0.bg\n1.bg\n2.bg\n3.bg\n4.bg\n5.bg\n6.bg\n7.bg\n8.bg\n9.bg\n\n// bh : https://en.wikipedia.org/wiki/.bh\nbh\ncom.bh\nedu.bh\nnet.bh\norg.bh\ngov.bh\n\n// bi : https://en.wikipedia.org/wiki/.bi\n// http://whois.nic.bi/\nbi\nco.bi\ncom.bi\nedu.bi\nor.bi\norg.bi\n\n// biz : https://en.wikipedia.org/wiki/.biz\nbiz\n\n// bj : https://nic.bj/bj-suffixes.txt\n// submitted by registry <contact@nic.bj>\nbj\nafrica.bj\nagro.bj\narchitectes.bj\nassur.bj\navocats.bj\nco.bj\ncom.bj\neco.bj\necono.bj\nedu.bj\ninfo.bj\nloisirs.bj\nmoney.bj\nnet.bj\norg.bj\note.bj\nresto.bj\nrestaurant.bj\ntourism.bj\nuniv.bj\n\n// bm : http://www.bermudanic.bm/dnr-text.txt\nbm\ncom.bm\nedu.bm\ngov.bm\nnet.bm\norg.bm\n\n// bn : http://www.bnnic.bn/faqs\nbn\ncom.bn\nedu.bn\ngov.bn\nnet.bn\norg.bn\n\n// bo : https://nic.bo/delegacion2015.php#h-1.10\nbo\ncom.bo\nedu.bo\ngob.bo\nint.bo\norg.bo\nnet.bo\nmil.bo\ntv.bo\nweb.bo\n// Social Domains\nacademia.bo\nagro.bo\narte.bo\nblog.bo\nbolivia.bo\nciencia.bo\ncooperativa.bo\ndemocracia.bo\ndeporte.bo\necologia.bo\neconomia.bo\nempresa.bo\nindigena.bo\nindustria.bo\ninfo.bo\nmedicina.bo\nmovimiento.bo\nmusica.bo\nnatural.bo\nnombre.bo\nnoticias.bo\npatria.bo\npolitica.bo\nprofesional.bo\nplurinacional.bo\npueblo.bo\nrevista.bo\nsalud.bo\ntecnologia.bo\ntksat.bo\ntransporte.bo\nwiki.bo\n\n// br : http://registro.br/dominio/categoria.html\n// Submitted by registry <fneves@registro.br>\nbr\n9guacu.br\nabc.br\nadm.br\nadv.br\nagr.br\naju.br\nam.br\nanani.br\naparecida.br\napp.br\narq.br\nart.br\nato.br\nb.br\nbarueri.br\nbelem.br\nbhz.br\nbib.br\nbio.br\nblog.br\nbmd.br\nboavista.br\nbsb.br\ncampinagrande.br\ncampinas.br\ncaxias.br\ncim.br\ncng.br\ncnt.br\ncom.br\ncontagem.br\ncoop.br\ncoz.br\ncri.br\ncuiaba.br\ncuritiba.br\ndef.br\ndes.br\ndet.br\ndev.br\necn.br\neco.br\nedu.br\nemp.br\nenf.br\neng.br\nesp.br\netc.br\neti.br\nfar.br\nfeira.br\nflog.br\nfloripa.br\nfm.br\nfnd.br\nfortal.br\nfot.br\nfoz.br\nfst.br\ng12.br\ngeo.br\nggf.br\ngoiania.br\ngov.br\n// gov.br 26 states + df https://en.wikipedia.org/wiki/States_of_Brazil\nac.gov.br\nal.gov.br\nam.gov.br\nap.gov.br\nba.gov.br\nce.gov.br\ndf.gov.br\nes.gov.br\ngo.gov.br\nma.gov.br\nmg.gov.br\nms.gov.br\nmt.gov.br\npa.gov.br\npb.gov.br\npe.gov.br\npi.gov.br\npr.gov.br\nrj.gov.br\nrn.gov.br\nro.gov.br\nrr.gov.br\nrs.gov.br\nsc.gov.br\nse.gov.br\nsp.gov.br\nto.gov.br\ngru.br\nimb.br\nind.br\ninf.br\njab.br\njampa.br\njdf.br\njoinville.br\njor.br\njus.br\nleg.br\nlel.br\nlog.br\nlondrina.br\nmacapa.br\nmaceio.br\nmanaus.br\nmaringa.br\nmat.br\nmed.br\nmil.br\nmorena.br\nmp.br\nmus.br\nnatal.br\nnet.br\nniteroi.br\n*.nom.br\nnot.br\nntr.br\nodo.br\nong.br\norg.br\nosasco.br\npalmas.br\npoa.br\nppg.br\npro.br\npsc.br\npsi.br\npvh.br\nqsl.br\nradio.br\nrec.br\nrecife.br\nrep.br\nribeirao.br\nrio.br\nriobranco.br\nriopreto.br\nsalvador.br\nsampa.br\nsantamaria.br\nsantoandre.br\nsaobernardo.br\nsaogonca.br\nseg.br\nsjc.br\nslg.br\nslz.br\nsorocaba.br\nsrv.br\ntaxi.br\ntc.br\ntec.br\nteo.br\nthe.br\ntmp.br\ntrd.br\ntur.br\ntv.br\nudi.br\nvet.br\nvix.br\nvlog.br\nwiki.br\nzlg.br\n\n// bs : http://www.nic.bs/rules.html\nbs\ncom.bs\nnet.bs\norg.bs\nedu.bs\ngov.bs\n\n// bt : https://en.wikipedia.org/wiki/.bt\nbt\ncom.bt\nedu.bt\ngov.bt\nnet.bt\norg.bt\n\n// bv : No registrations at this time.\n// Submitted by registry <jarle@uninett.no>\nbv\n\n// bw : https://en.wikipedia.org/wiki/.bw\n// http://www.gobin.info/domainname/bw.doc\n// list of other 2nd level tlds ?\nbw\nco.bw\norg.bw\n\n// by : https://en.wikipedia.org/wiki/.by\n// http://tld.by/rules_2006_en.html\n// list of other 2nd level tlds ?\nby\ngov.by\nmil.by\n// Official information does not indicate that com.by is a reserved\n// second-level domain, but it\'s being used as one (see www.google.com.by and\n// www.yahoo.com.by, for example), so we list it here for safety\'s sake.\ncom.by\n\n// http://hoster.by/\nof.by\n\n// bz : https://en.wikipedia.org/wiki/.bz\n// http://www.belizenic.bz/\nbz\ncom.bz\nnet.bz\norg.bz\nedu.bz\ngov.bz\n\n// ca : https://en.wikipedia.org/wiki/.ca\nca\n// ca geographical names\nab.ca\nbc.ca\nmb.ca\nnb.ca\nnf.ca\nnl.ca\nns.ca\nnt.ca\nnu.ca\non.ca\npe.ca\nqc.ca\nsk.ca\nyk.ca\n// gc.ca: https://en.wikipedia.org/wiki/.gc.ca\n// see also: http://registry.gc.ca/en/SubdomainFAQ\ngc.ca\n\n// cat : https://en.wikipedia.org/wiki/.cat\ncat\n\n// cc : https://en.wikipedia.org/wiki/.cc\ncc\n\n// cd : https://en.wikipedia.org/wiki/.cd\n// see also: https://www.nic.cd/domain/insertDomain_2.jsp?act=1\ncd\ngov.cd\n\n// cf : https://en.wikipedia.org/wiki/.cf\ncf\n\n// cg : https://en.wikipedia.org/wiki/.cg\ncg\n\n// ch : https://en.wikipedia.org/wiki/.ch\nch\n\n// ci : https://en.wikipedia.org/wiki/.ci\n// http://www.nic.ci/index.php?page=charte\nci\norg.ci\nor.ci\ncom.ci\nco.ci\nedu.ci\ned.ci\nac.ci\nnet.ci\ngo.ci\nasso.ci\naéroport.ci\nint.ci\npresse.ci\nmd.ci\ngouv.ci\n\n// ck : https://en.wikipedia.org/wiki/.ck\n*.ck\n!www.ck\n\n// cl : https://www.nic.cl\n// Confirmed by .CL registry <hsalgado@nic.cl>\ncl\nco.cl\ngob.cl\ngov.cl\nmil.cl\n\n// cm : https://en.wikipedia.org/wiki/.cm plus bug 981927\ncm\nco.cm\ncom.cm\ngov.cm\nnet.cm\n\n// cn : https://en.wikipedia.org/wiki/.cn\n// Submitted by registry <tanyaling@cnnic.cn>\ncn\nac.cn\ncom.cn\nedu.cn\ngov.cn\nnet.cn\norg.cn\nmil.cn\n公司.cn\n网络.cn\n網絡.cn\n// cn geographic names\nah.cn\nbj.cn\ncq.cn\nfj.cn\ngd.cn\ngs.cn\ngz.cn\ngx.cn\nha.cn\nhb.cn\nhe.cn\nhi.cn\nhl.cn\nhn.cn\njl.cn\njs.cn\njx.cn\nln.cn\nnm.cn\nnx.cn\nqh.cn\nsc.cn\nsd.cn\nsh.cn\nsn.cn\nsx.cn\ntj.cn\nxj.cn\nxz.cn\nyn.cn\nzj.cn\nhk.cn\nmo.cn\ntw.cn\n\n// co : https://en.wikipedia.org/wiki/.co\n// Submitted by registry <tecnico@uniandes.edu.co>\nco\narts.co\ncom.co\nedu.co\nfirm.co\ngov.co\ninfo.co\nint.co\nmil.co\nnet.co\nnom.co\norg.co\nrec.co\nweb.co\n\n// com : https://en.wikipedia.org/wiki/.com\ncom\n\n// coop : https://en.wikipedia.org/wiki/.coop\ncoop\n\n// cr : http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do\ncr\nac.cr\nco.cr\ned.cr\nfi.cr\ngo.cr\nor.cr\nsa.cr\n\n// cu : https://en.wikipedia.org/wiki/.cu\ncu\ncom.cu\nedu.cu\norg.cu\nnet.cu\ngov.cu\ninf.cu\n\n// cv : https://en.wikipedia.org/wiki/.cv\n// cv : http://www.dns.cv/tldcv_portal/do?com=DS;5446457100;111;+PAGE(4000018)+K-CAT-CODIGO(RDOM)+RCNT(100); <- registration rules\ncv\ncom.cv\nedu.cv\nint.cv\nnome.cv\norg.cv\n\n// cw : http://www.una.cw/cw_registry/\n// Confirmed by registry <registry@una.net> 2013-03-26\ncw\ncom.cw\nedu.cw\nnet.cw\norg.cw\n\n// cx : https://en.wikipedia.org/wiki/.cx\n// list of other 2nd level tlds ?\ncx\ngov.cx\n\n// cy : http://www.nic.cy/\n// Submitted by registry Panayiotou Fotia <cydns@ucy.ac.cy>\n// namespace policies URL https://www.nic.cy/portal//sites/default/files/symfonia_gia_eggrafi.pdf\ncy\nac.cy\nbiz.cy\ncom.cy\nekloges.cy\ngov.cy\nltd.cy\nmil.cy\nnet.cy\norg.cy\npress.cy\npro.cy\ntm.cy\n\n// cz : https://en.wikipedia.org/wiki/.cz\ncz\n\n// de : https://en.wikipedia.org/wiki/.de\n// Confirmed by registry <ops@denic.de> (with technical\n// reservations) 2008-07-01\nde\n\n// dj : https://en.wikipedia.org/wiki/.dj\ndj\n\n// dk : https://en.wikipedia.org/wiki/.dk\n// Confirmed by registry <robert@dk-hostmaster.dk> 2008-06-17\ndk\n\n// dm : https://en.wikipedia.org/wiki/.dm\ndm\ncom.dm\nnet.dm\norg.dm\nedu.dm\ngov.dm\n\n// do : https://en.wikipedia.org/wiki/.do\ndo\nart.do\ncom.do\nedu.do\ngob.do\ngov.do\nmil.do\nnet.do\norg.do\nsld.do\nweb.do\n\n// dz : http://www.nic.dz/images/pdf_nic/charte.pdf\ndz\nart.dz\nasso.dz\ncom.dz\nedu.dz\ngov.dz\norg.dz\nnet.dz\npol.dz\nsoc.dz\ntm.dz\n\n// ec : http://www.nic.ec/reg/paso1.asp\n// Submitted by registry <vabboud@nic.ec>\nec\ncom.ec\ninfo.ec\nnet.ec\nfin.ec\nk12.ec\nmed.ec\npro.ec\norg.ec\nedu.ec\ngov.ec\ngob.ec\nmil.ec\n\n// edu : https://en.wikipedia.org/wiki/.edu\nedu\n\n// ee : http://www.eenet.ee/EENet/dom_reeglid.html#lisa_B\nee\nedu.ee\ngov.ee\nriik.ee\nlib.ee\nmed.ee\ncom.ee\npri.ee\naip.ee\norg.ee\nfie.ee\n\n// eg : https://en.wikipedia.org/wiki/.eg\neg\ncom.eg\nedu.eg\neun.eg\ngov.eg\nmil.eg\nname.eg\nnet.eg\norg.eg\nsci.eg\n\n// er : https://en.wikipedia.org/wiki/.er\n*.er\n\n// es : https://www.nic.es/site_ingles/ingles/dominios/index.html\nes\ncom.es\nnom.es\norg.es\ngob.es\nedu.es\n\n// et : https://en.wikipedia.org/wiki/.et\net\ncom.et\ngov.et\norg.et\nedu.et\nbiz.et\nname.et\ninfo.et\nnet.et\n\n// eu : https://en.wikipedia.org/wiki/.eu\neu\n\n// fi : https://en.wikipedia.org/wiki/.fi\nfi\n// aland.fi : https://en.wikipedia.org/wiki/.ax\n// This domain is being phased out in favor of .ax. As there are still many\n// domains under aland.fi, we still keep it on the list until aland.fi is\n// completely removed.\n// TODO: Check for updates (expected to be phased out around Q1/2009)\naland.fi\n\n// fj : http://domains.fj/\n// Submitted by registry <garth.miller@cocca.org.nz> 2020-02-11\nfj\nac.fj\nbiz.fj\ncom.fj\ngov.fj\ninfo.fj\nmil.fj\nname.fj\nnet.fj\norg.fj\npro.fj\n\n// fk : https://en.wikipedia.org/wiki/.fk\n*.fk\n\n// fm : https://en.wikipedia.org/wiki/.fm\ncom.fm\nedu.fm\nnet.fm\norg.fm\nfm\n\n// fo : https://en.wikipedia.org/wiki/.fo\nfo\n\n// fr : https://www.afnic.fr/ https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\nfr\nasso.fr\ncom.fr\ngouv.fr\nnom.fr\nprd.fr\ntm.fr\n// Other SLDs now selfmanaged out of AFNIC range. Former "domaines sectoriels", still registration suffixes\navoues.fr\ncci.fr\ngreta.fr\nhuissier-justice.fr\n\n// ga : https://en.wikipedia.org/wiki/.ga\nga\n\n// gb : This registry is effectively dormant\n// Submitted by registry <Damien.Shaw@ja.net>\ngb\n\n// gd : https://en.wikipedia.org/wiki/.gd\nedu.gd\ngov.gd\ngd\n\n// ge : http://www.nic.net.ge/policy_en.pdf\nge\ncom.ge\nedu.ge\ngov.ge\norg.ge\nmil.ge\nnet.ge\npvt.ge\n\n// gf : https://en.wikipedia.org/wiki/.gf\ngf\n\n// gg : http://www.channelisles.net/register-domains/\n// Confirmed by registry <nigel@channelisles.net> 2013-11-28\ngg\nco.gg\nnet.gg\norg.gg\n\n// gh : https://en.wikipedia.org/wiki/.gh\n// see also: http://www.nic.gh/reg_now.php\n// Although domains directly at second level are not possible at the moment,\n// they have been possible for some time and may come back.\ngh\ncom.gh\nedu.gh\ngov.gh\norg.gh\nmil.gh\n\n// gi : http://www.nic.gi/rules.html\ngi\ncom.gi\nltd.gi\ngov.gi\nmod.gi\nedu.gi\norg.gi\n\n// gl : https://en.wikipedia.org/wiki/.gl\n// http://nic.gl\ngl\nco.gl\ncom.gl\nedu.gl\nnet.gl\norg.gl\n\n// gm : http://www.nic.gm/htmlpages%5Cgm-policy.htm\ngm\n\n// gn : http://psg.com/dns/gn/gn.txt\n// Submitted by registry <randy@psg.com>\ngn\nac.gn\ncom.gn\nedu.gn\ngov.gn\norg.gn\nnet.gn\n\n// gov : https://en.wikipedia.org/wiki/.gov\ngov\n\n// gp : http://www.nic.gp/index.php?lang=en\ngp\ncom.gp\nnet.gp\nmobi.gp\nedu.gp\norg.gp\nasso.gp\n\n// gq : https://en.wikipedia.org/wiki/.gq\ngq\n\n// gr : https://grweb.ics.forth.gr/english/1617-B-2005.html\n// Submitted by registry <segred@ics.forth.gr>\ngr\ncom.gr\nedu.gr\nnet.gr\norg.gr\ngov.gr\n\n// gs : https://en.wikipedia.org/wiki/.gs\ngs\n\n// gt : https://www.gt/sitio/registration_policy.php?lang=en\ngt\ncom.gt\nedu.gt\ngob.gt\nind.gt\nmil.gt\nnet.gt\norg.gt\n\n// gu : http://gadao.gov.gu/register.html\n// University of Guam : https://www.uog.edu\n// Submitted by uognoc@triton.uog.edu\ngu\ncom.gu\nedu.gu\ngov.gu\nguam.gu\ninfo.gu\nnet.gu\norg.gu\nweb.gu\n\n// gw : https://en.wikipedia.org/wiki/.gw\n// gw : https://nic.gw/regras/\ngw\n\n// gy : https://en.wikipedia.org/wiki/.gy\n// http://registry.gy/\ngy\nco.gy\ncom.gy\nedu.gy\ngov.gy\nnet.gy\norg.gy\n\n// hk : https://www.hkirc.hk\n// Submitted by registry <hk.tech@hkirc.hk>\nhk\ncom.hk\nedu.hk\ngov.hk\nidv.hk\nnet.hk\norg.hk\n公司.hk\n教育.hk\n敎育.hk\n政府.hk\n個人.hk\n个人.hk\n箇人.hk\n網络.hk\n网络.hk\n组織.hk\n網絡.hk\n网絡.hk\n组织.hk\n組織.hk\n組织.hk\n\n// hm : https://en.wikipedia.org/wiki/.hm\nhm\n\n// hn : http://www.nic.hn/politicas/ps02,,05.html\nhn\ncom.hn\nedu.hn\norg.hn\nnet.hn\nmil.hn\ngob.hn\n\n// hr : http://www.dns.hr/documents/pdf/HRTLD-regulations.pdf\nhr\niz.hr\nfrom.hr\nname.hr\ncom.hr\n\n// ht : http://www.nic.ht/info/charte.cfm\nht\ncom.ht\nshop.ht\nfirm.ht\ninfo.ht\nadult.ht\nnet.ht\npro.ht\norg.ht\nmed.ht\nart.ht\ncoop.ht\npol.ht\nasso.ht\nedu.ht\nrel.ht\ngouv.ht\nperso.ht\n\n// hu : http://www.domain.hu/domain/English/sld.html\n// Confirmed by registry <pasztor@iszt.hu> 2008-06-12\nhu\nco.hu\ninfo.hu\norg.hu\npriv.hu\nsport.hu\ntm.hu\n2000.hu\nagrar.hu\nbolt.hu\ncasino.hu\ncity.hu\nerotica.hu\nerotika.hu\nfilm.hu\nforum.hu\ngames.hu\nhotel.hu\ningatlan.hu\njogasz.hu\nkonyvelo.hu\nlakas.hu\nmedia.hu\nnews.hu\nreklam.hu\nsex.hu\nshop.hu\nsuli.hu\nszex.hu\ntozsde.hu\nutazas.hu\nvideo.hu\n\n// id : https://pandi.id/en/domain/registration-requirements/\nid\nac.id\nbiz.id\nco.id\ndesa.id\ngo.id\nmil.id\nmy.id\nnet.id\nor.id\nponpes.id\nsch.id\nweb.id\n\n// ie : https://en.wikipedia.org/wiki/.ie\nie\ngov.ie\n\n// il : http://www.isoc.org.il/domains/\n// see also: https://en.isoc.org.il/il-cctld/registration-rules\n// ISOC-IL (operated by .il Registry)\nil\nac.il\nco.il\ngov.il\nidf.il\nk12.il\nmuni.il\nnet.il\norg.il\n// xn--4dbrk0ce ("Israel", Hebrew) : IL\nישראל\n// xn--4dbgdty6c.xn--4dbrk0ce.\nאקדמיה.ישראל\n// xn--5dbhl8d.xn--4dbrk0ce.\nישוב.ישראל\n// xn--8dbq2a.xn--4dbrk0ce.\nצהל.ישראל\n// xn--hebda8b.xn--4dbrk0ce.\nממשל.ישראל\n\n// im : https://www.nic.im/\n// Submitted by registry <info@nic.im>\nim\nac.im\nco.im\ncom.im\nltd.co.im\nnet.im\norg.im\nplc.co.im\ntt.im\ntv.im\n\n// in : https://en.wikipedia.org/wiki/.in\n// see also: https://registry.in/policies\n// Please note, that nic.in is not an official eTLD, but used by most\n// government institutions.\nin\n5g.in\n6g.in\nac.in\nai.in\nam.in\nbihar.in\nbiz.in\nbusiness.in\nca.in\ncn.in\nco.in\ncom.in\ncoop.in\ncs.in\ndelhi.in\ndr.in\nedu.in\ner.in\nfirm.in\ngen.in\ngov.in\ngujarat.in\nind.in\ninfo.in\nint.in\ninternet.in\nio.in\nme.in\nmil.in\nnet.in\nnic.in\norg.in\npg.in\npost.in\npro.in\nres.in\ntravel.in\ntv.in\nuk.in\nup.in\nus.in\n\n// info : https://en.wikipedia.org/wiki/.info\ninfo\n\n// int : https://en.wikipedia.org/wiki/.int\n// Confirmed by registry <iana-questions@icann.org> 2008-06-18\nint\neu.int\n\n// io : http://www.nic.io/rules.htm\n// list of other 2nd level tlds ?\nio\ncom.io\n\n// iq : http://www.cmc.iq/english/iq/iqregister1.htm\niq\ngov.iq\nedu.iq\nmil.iq\ncom.iq\norg.iq\nnet.iq\n\n// ir : http://www.nic.ir/Terms_and_Conditions_ir,_Appendix_1_Domain_Rules\n// Also see http://www.nic.ir/Internationalized_Domain_Names\n// Two <iran>.ir entries added at request of <tech-team@nic.ir>, 2010-04-16\nir\nac.ir\nco.ir\ngov.ir\nid.ir\nnet.ir\norg.ir\nsch.ir\n// xn--mgba3a4f16a.ir (<iran>.ir, Persian YEH)\nایران.ir\n// xn--mgba3a4fra.ir (<iran>.ir, Arabic YEH)\nايران.ir\n\n// is : http://www.isnic.is/domain/rules.php\n// Confirmed by registry <marius@isgate.is> 2008-12-06\nis\nnet.is\ncom.is\nedu.is\ngov.is\norg.is\nint.is\n\n// it : https://en.wikipedia.org/wiki/.it\nit\ngov.it\nedu.it\n// Reserved geo-names (regions and provinces):\n// https://www.nic.it/sites/default/files/archivio/docs/Regulation_assignation_v7.1.pdf\n// Regions\nabr.it\nabruzzo.it\naosta-valley.it\naostavalley.it\nbas.it\nbasilicata.it\ncal.it\ncalabria.it\ncam.it\ncampania.it\nemilia-romagna.it\nemiliaromagna.it\nemr.it\nfriuli-v-giulia.it\nfriuli-ve-giulia.it\nfriuli-vegiulia.it\nfriuli-venezia-giulia.it\nfriuli-veneziagiulia.it\nfriuli-vgiulia.it\nfriuliv-giulia.it\nfriulive-giulia.it\nfriulivegiulia.it\nfriulivenezia-giulia.it\nfriuliveneziagiulia.it\nfriulivgiulia.it\nfvg.it\nlaz.it\nlazio.it\nlig.it\nliguria.it\nlom.it\nlombardia.it\nlombardy.it\nlucania.it\nmar.it\nmarche.it\nmol.it\nmolise.it\npiedmont.it\npiemonte.it\npmn.it\npug.it\npuglia.it\nsar.it\nsardegna.it\nsardinia.it\nsic.it\nsicilia.it\nsicily.it\ntaa.it\ntos.it\ntoscana.it\ntrentin-sud-tirol.it\ntrentin-süd-tirol.it\ntrentin-sudtirol.it\ntrentin-südtirol.it\ntrentin-sued-tirol.it\ntrentin-suedtirol.it\ntrentino-a-adige.it\ntrentino-aadige.it\ntrentino-alto-adige.it\ntrentino-altoadige.it\ntrentino-s-tirol.it\ntrentino-stirol.it\ntrentino-sud-tirol.it\ntrentino-süd-tirol.it\ntrentino-sudtirol.it\ntrentino-südtirol.it\ntrentino-sued-tirol.it\ntrentino-suedtirol.it\ntrentino.it\ntrentinoa-adige.it\ntrentinoaadige.it\ntrentinoalto-adige.it\ntrentinoaltoadige.it\ntrentinos-tirol.it\ntrentinostirol.it\ntrentinosud-tirol.it\ntrentinosüd-tirol.it\ntrentinosudtirol.it\ntrentinosüdtirol.it\ntrentinosued-tirol.it\ntrentinosuedtirol.it\ntrentinsud-tirol.it\ntrentinsüd-tirol.it\ntrentinsudtirol.it\ntrentinsüdtirol.it\ntrentinsued-tirol.it\ntrentinsuedtirol.it\ntuscany.it\numb.it\numbria.it\nval-d-aosta.it\nval-daosta.it\nvald-aosta.it\nvaldaosta.it\nvalle-aosta.it\nvalle-d-aosta.it\nvalle-daosta.it\nvalleaosta.it\nvalled-aosta.it\nvalledaosta.it\nvallee-aoste.it\nvallée-aoste.it\nvallee-d-aoste.it\nvallée-d-aoste.it\nvalleeaoste.it\nvalléeaoste.it\nvalleedaoste.it\nvalléedaoste.it\nvao.it\nvda.it\nven.it\nveneto.it\n// Provinces\nag.it\nagrigento.it\nal.it\nalessandria.it\nalto-adige.it\naltoadige.it\nan.it\nancona.it\nandria-barletta-trani.it\nandria-trani-barletta.it\nandriabarlettatrani.it\nandriatranibarletta.it\nao.it\naosta.it\naoste.it\nap.it\naq.it\naquila.it\nar.it\narezzo.it\nascoli-piceno.it\nascolipiceno.it\nasti.it\nat.it\nav.it\navellino.it\nba.it\nbalsan-sudtirol.it\nbalsan-südtirol.it\nbalsan-suedtirol.it\nbalsan.it\nbari.it\nbarletta-trani-andria.it\nbarlettatraniandria.it\nbelluno.it\nbenevento.it\nbergamo.it\nbg.it\nbi.it\nbiella.it\nbl.it\nbn.it\nbo.it\nbologna.it\nbolzano-altoadige.it\nbolzano.it\nbozen-sudtirol.it\nbozen-südtirol.it\nbozen-suedtirol.it\nbozen.it\nbr.it\nbrescia.it\nbrindisi.it\nbs.it\nbt.it\nbulsan-sudtirol.it\nbulsan-südtirol.it\nbulsan-suedtirol.it\nbulsan.it\nbz.it\nca.it\ncagliari.it\ncaltanissetta.it\ncampidano-medio.it\ncampidanomedio.it\ncampobasso.it\ncarbonia-iglesias.it\ncarboniaiglesias.it\ncarrara-massa.it\ncarraramassa.it\ncaserta.it\ncatania.it\ncatanzaro.it\ncb.it\nce.it\ncesena-forli.it\ncesena-forlì.it\ncesenaforli.it\ncesenaforlì.it\nch.it\nchieti.it\nci.it\ncl.it\ncn.it\nco.it\ncomo.it\ncosenza.it\ncr.it\ncremona.it\ncrotone.it\ncs.it\nct.it\ncuneo.it\ncz.it\ndell-ogliastra.it\ndellogliastra.it\nen.it\nenna.it\nfc.it\nfe.it\nfermo.it\nferrara.it\nfg.it\nfi.it\nfirenze.it\nflorence.it\nfm.it\nfoggia.it\nforli-cesena.it\nforlì-cesena.it\nforlicesena.it\nforlìcesena.it\nfr.it\nfrosinone.it\nge.it\ngenoa.it\ngenova.it\ngo.it\ngorizia.it\ngr.it\ngrosseto.it\niglesias-carbonia.it\niglesiascarbonia.it\nim.it\nimperia.it\nis.it\nisernia.it\nkr.it\nla-spezia.it\nlaquila.it\nlaspezia.it\nlatina.it\nlc.it\nle.it\nlecce.it\nlecco.it\nli.it\nlivorno.it\nlo.it\nlodi.it\nlt.it\nlu.it\nlucca.it\nmacerata.it\nmantova.it\nmassa-carrara.it\nmassacarrara.it\nmatera.it\nmb.it\nmc.it\nme.it\nmedio-campidano.it\nmediocampidano.it\nmessina.it\nmi.it\nmilan.it\nmilano.it\nmn.it\nmo.it\nmodena.it\nmonza-brianza.it\nmonza-e-della-brianza.it\nmonza.it\nmonzabrianza.it\nmonzaebrianza.it\nmonzaedellabrianza.it\nms.it\nmt.it\nna.it\nnaples.it\nnapoli.it\nno.it\nnovara.it\nnu.it\nnuoro.it\nog.it\nogliastra.it\nolbia-tempio.it\nolbiatempio.it\nor.it\noristano.it\not.it\npa.it\npadova.it\npadua.it\npalermo.it\nparma.it\npavia.it\npc.it\npd.it\npe.it\nperugia.it\npesaro-urbino.it\npesarourbino.it\npescara.it\npg.it\npi.it\npiacenza.it\npisa.it\npistoia.it\npn.it\npo.it\npordenone.it\npotenza.it\npr.it\nprato.it\npt.it\npu.it\npv.it\npz.it\nra.it\nragusa.it\nravenna.it\nrc.it\nre.it\nreggio-calabria.it\nreggio-emilia.it\nreggiocalabria.it\nreggioemilia.it\nrg.it\nri.it\nrieti.it\nrimini.it\nrm.it\nrn.it\nro.it\nroma.it\nrome.it\nrovigo.it\nsa.it\nsalerno.it\nsassari.it\nsavona.it\nsi.it\nsiena.it\nsiracusa.it\nso.it\nsondrio.it\nsp.it\nsr.it\nss.it\nsuedtirol.it\nsüdtirol.it\nsv.it\nta.it\ntaranto.it\nte.it\ntempio-olbia.it\ntempioolbia.it\nteramo.it\nterni.it\ntn.it\nto.it\ntorino.it\ntp.it\ntr.it\ntrani-andria-barletta.it\ntrani-barletta-andria.it\ntraniandriabarletta.it\ntranibarlettaandria.it\ntrapani.it\ntrento.it\ntreviso.it\ntrieste.it\nts.it\nturin.it\ntv.it\nud.it\nudine.it\nurbino-pesaro.it\nurbinopesaro.it\nva.it\nvarese.it\nvb.it\nvc.it\nve.it\nvenezia.it\nvenice.it\nverbania.it\nvercelli.it\nverona.it\nvi.it\nvibo-valentia.it\nvibovalentia.it\nvicenza.it\nviterbo.it\nvr.it\nvs.it\nvt.it\nvv.it\n\n// je : http://www.channelisles.net/register-domains/\n// Confirmed by registry <nigel@channelisles.net> 2013-11-28\nje\nco.je\nnet.je\norg.je\n\n// jm : http://www.com.jm/register.html\n*.jm\n\n// jo : http://www.dns.jo/Registration_policy.aspx\njo\ncom.jo\norg.jo\nnet.jo\nedu.jo\nsch.jo\ngov.jo\nmil.jo\nname.jo\n\n// jobs : https://en.wikipedia.org/wiki/.jobs\njobs\n\n// jp : https://en.wikipedia.org/wiki/.jp\n// http://jprs.co.jp/en/jpdomain.html\n// Submitted by registry <info@jprs.jp>\njp\n// jp organizational type names\nac.jp\nad.jp\nco.jp\ned.jp\ngo.jp\ngr.jp\nlg.jp\nne.jp\nor.jp\n// jp prefecture type names\naichi.jp\nakita.jp\naomori.jp\nchiba.jp\nehime.jp\nfukui.jp\nfukuoka.jp\nfukushima.jp\ngifu.jp\ngunma.jp\nhiroshima.jp\nhokkaido.jp\nhyogo.jp\nibaraki.jp\nishikawa.jp\niwate.jp\nkagawa.jp\nkagoshima.jp\nkanagawa.jp\nkochi.jp\nkumamoto.jp\nkyoto.jp\nmie.jp\nmiyagi.jp\nmiyazaki.jp\nnagano.jp\nnagasaki.jp\nnara.jp\nniigata.jp\noita.jp\nokayama.jp\nokinawa.jp\nosaka.jp\nsaga.jp\nsaitama.jp\nshiga.jp\nshimane.jp\nshizuoka.jp\ntochigi.jp\ntokushima.jp\ntokyo.jp\ntottori.jp\ntoyama.jp\nwakayama.jp\nyamagata.jp\nyamaguchi.jp\nyamanashi.jp\n栃木.jp\n愛知.jp\n愛媛.jp\n兵庫.jp\n熊本.jp\n茨城.jp\n北海道.jp\n千葉.jp\n和歌山.jp\n長崎.jp\n長野.jp\n新潟.jp\n青森.jp\n静岡.jp\n東京.jp\n石川.jp\n埼玉.jp\n三重.jp\n京都.jp\n佐賀.jp\n大分.jp\n大阪.jp\n奈良.jp\n宮城.jp\n宮崎.jp\n富山.jp\n山口.jp\n山形.jp\n山梨.jp\n岩手.jp\n岐阜.jp\n岡山.jp\n島根.jp\n広島.jp\n徳島.jp\n沖縄.jp\n滋賀.jp\n神奈川.jp\n福井.jp\n福岡.jp\n福島.jp\n秋田.jp\n群馬.jp\n香川.jp\n高知.jp\n鳥取.jp\n鹿児島.jp\n// jp geographic type names\n// http://jprs.jp/doc/rule/saisoku-1.html\n*.kawasaki.jp\n*.kitakyushu.jp\n*.kobe.jp\n*.nagoya.jp\n*.sapporo.jp\n*.sendai.jp\n*.yokohama.jp\n!city.kawasaki.jp\n!city.kitakyushu.jp\n!city.kobe.jp\n!city.nagoya.jp\n!city.sapporo.jp\n!city.sendai.jp\n!city.yokohama.jp\n// 4th level registration\naisai.aichi.jp\nama.aichi.jp\nanjo.aichi.jp\nasuke.aichi.jp\nchiryu.aichi.jp\nchita.aichi.jp\nfuso.aichi.jp\ngamagori.aichi.jp\nhanda.aichi.jp\nhazu.aichi.jp\nhekinan.aichi.jp\nhigashiura.aichi.jp\nichinomiya.aichi.jp\ninazawa.aichi.jp\ninuyama.aichi.jp\nisshiki.aichi.jp\niwakura.aichi.jp\nkanie.aichi.jp\nkariya.aichi.jp\nkasugai.aichi.jp\nkira.aichi.jp\nkiyosu.aichi.jp\nkomaki.aichi.jp\nkonan.aichi.jp\nkota.aichi.jp\nmihama.aichi.jp\nmiyoshi.aichi.jp\nnishio.aichi.jp\nnisshin.aichi.jp\nobu.aichi.jp\noguchi.aichi.jp\noharu.aichi.jp\nokazaki.aichi.jp\nowariasahi.aichi.jp\nseto.aichi.jp\nshikatsu.aichi.jp\nshinshiro.aichi.jp\nshitara.aichi.jp\ntahara.aichi.jp\ntakahama.aichi.jp\ntobishima.aichi.jp\ntoei.aichi.jp\ntogo.aichi.jp\ntokai.aichi.jp\ntokoname.aichi.jp\ntoyoake.aichi.jp\ntoyohashi.aichi.jp\ntoyokawa.aichi.jp\ntoyone.aichi.jp\ntoyota.aichi.jp\ntsushima.aichi.jp\nyatomi.aichi.jp\nakita.akita.jp\ndaisen.akita.jp\nfujisato.akita.jp\ngojome.akita.jp\nhachirogata.akita.jp\nhappou.akita.jp\nhigashinaruse.akita.jp\nhonjo.akita.jp\nhonjyo.akita.jp\nikawa.akita.jp\nkamikoani.akita.jp\nkamioka.akita.jp\nkatagami.akita.jp\nkazuno.akita.jp\nkitaakita.akita.jp\nkosaka.akita.jp\nkyowa.akita.jp\nmisato.akita.jp\nmitane.akita.jp\nmoriyoshi.akita.jp\nnikaho.akita.jp\nnoshiro.akita.jp\nodate.akita.jp\noga.akita.jp\nogata.akita.jp\nsemboku.akita.jp\nyokote.akita.jp\nyurihonjo.akita.jp\naomori.aomori.jp\ngonohe.aomori.jp\nhachinohe.aomori.jp\nhashikami.aomori.jp\nhiranai.aomori.jp\nhirosaki.aomori.jp\nitayanagi.aomori.jp\nkuroishi.aomori.jp\nmisawa.aomori.jp\nmutsu.aomori.jp\nnakadomari.aomori.jp\nnoheji.aomori.jp\noirase.aomori.jp\nowani.aomori.jp\nrokunohe.aomori.jp\nsannohe.aomori.jp\nshichinohe.aomori.jp\nshingo.aomori.jp\ntakko.aomori.jp\ntowada.aomori.jp\ntsugaru.aomori.jp\ntsuruta.aomori.jp\nabiko.chiba.jp\nasahi.chiba.jp\nchonan.chiba.jp\nchosei.chiba.jp\nchoshi.chiba.jp\nchuo.chiba.jp\nfunabashi.chiba.jp\nfuttsu.chiba.jp\nhanamigawa.chiba.jp\nichihara.chiba.jp\nichikawa.chiba.jp\nichinomiya.chiba.jp\ninzai.chiba.jp\nisumi.chiba.jp\nkamagaya.chiba.jp\nkamogawa.chiba.jp\nkashiwa.chiba.jp\nkatori.chiba.jp\nkatsuura.chiba.jp\nkimitsu.chiba.jp\nkisarazu.chiba.jp\nkozaki.chiba.jp\nkujukuri.chiba.jp\nkyonan.chiba.jp\nmatsudo.chiba.jp\nmidori.chiba.jp\nmihama.chiba.jp\nminamiboso.chiba.jp\nmobara.chiba.jp\nmutsuzawa.chiba.jp\nnagara.chiba.jp\nnagareyama.chiba.jp\nnarashino.chiba.jp\nnarita.chiba.jp\nnoda.chiba.jp\noamishirasato.chiba.jp\nomigawa.chiba.jp\nonjuku.chiba.jp\notaki.chiba.jp\nsakae.chiba.jp\nsakura.chiba.jp\nshimofusa.chiba.jp\nshirako.chiba.jp\nshiroi.chiba.jp\nshisui.chiba.jp\nsodegaura.chiba.jp\nsosa.chiba.jp\ntako.chiba.jp\ntateyama.chiba.jp\ntogane.chiba.jp\ntohnosho.chiba.jp\ntomisato.chiba.jp\nurayasu.chiba.jp\nyachimata.chiba.jp\nyachiyo.chiba.jp\nyokaichiba.chiba.jp\nyokoshibahikari.chiba.jp\nyotsukaido.chiba.jp\nainan.ehime.jp\nhonai.ehime.jp\nikata.ehime.jp\nimabari.ehime.jp\niyo.ehime.jp\nkamijima.ehime.jp\nkihoku.ehime.jp\nkumakogen.ehime.jp\nmasaki.ehime.jp\nmatsuno.ehime.jp\nmatsuyama.ehime.jp\nnamikata.ehime.jp\nniihama.ehime.jp\nozu.ehime.jp\nsaijo.ehime.jp\nseiyo.ehime.jp\nshikokuchuo.ehime.jp\ntobe.ehime.jp\ntoon.ehime.jp\nuchiko.ehime.jp\nuwajima.ehime.jp\nyawatahama.ehime.jp\nechizen.fukui.jp\neiheiji.fukui.jp\nfukui.fukui.jp\nikeda.fukui.jp\nkatsuyama.fukui.jp\nmihama.fukui.jp\nminamiechizen.fukui.jp\nobama.fukui.jp\nohi.fukui.jp\nono.fukui.jp\nsabae.fukui.jp\nsakai.fukui.jp\ntakahama.fukui.jp\ntsuruga.fukui.jp\nwakasa.fukui.jp\nashiya.fukuoka.jp\nbuzen.fukuoka.jp\nchikugo.fukuoka.jp\nchikuho.fukuoka.jp\nchikujo.fukuoka.jp\nchikushino.fukuoka.jp\nchikuzen.fukuoka.jp\nchuo.fukuoka.jp\ndazaifu.fukuoka.jp\nfukuchi.fukuoka.jp\nhakata.fukuoka.jp\nhigashi.fukuoka.jp\nhirokawa.fukuoka.jp\nhisayama.fukuoka.jp\niizuka.fukuoka.jp\ninatsuki.fukuoka.jp\nkaho.fukuoka.jp\nkasuga.fukuoka.jp\nkasuya.fukuoka.jp\nkawara.fukuoka.jp\nkeisen.fukuoka.jp\nkoga.fukuoka.jp\nkurate.fukuoka.jp\nkurogi.fukuoka.jp\nkurume.fukuoka.jp\nminami.fukuoka.jp\nmiyako.fukuoka.jp\nmiyama.fukuoka.jp\nmiyawaka.fukuoka.jp\nmizumaki.fukuoka.jp\nmunakata.fukuoka.jp\nnakagawa.fukuoka.jp\nnakama.fukuoka.jp\nnishi.fukuoka.jp\nnogata.fukuoka.jp\nogori.fukuoka.jp\nokagaki.fukuoka.jp\nokawa.fukuoka.jp\noki.fukuoka.jp\nomuta.fukuoka.jp\nonga.fukuoka.jp\nonojo.fukuoka.jp\noto.fukuoka.jp\nsaigawa.fukuoka.jp\nsasaguri.fukuoka.jp\nshingu.fukuoka.jp\nshinyoshitomi.fukuoka.jp\nshonai.fukuoka.jp\nsoeda.fukuoka.jp\nsue.fukuoka.jp\ntachiarai.fukuoka.jp\ntagawa.fukuoka.jp\ntakata.fukuoka.jp\ntoho.fukuoka.jp\ntoyotsu.fukuoka.jp\ntsuiki.fukuoka.jp\nukiha.fukuoka.jp\numi.fukuoka.jp\nusui.fukuoka.jp\nyamada.fukuoka.jp\nyame.fukuoka.jp\nyanagawa.fukuoka.jp\nyukuhashi.fukuoka.jp\naizubange.fukushima.jp\naizumisato.fukushima.jp\naizuwakamatsu.fukushima.jp\nasakawa.fukushima.jp\nbandai.fukushima.jp\ndate.fukushima.jp\nfukushima.fukushima.jp\nfurudono.fukushima.jp\nfutaba.fukushima.jp\nhanawa.fukushima.jp\nhigashi.fukushima.jp\nhirata.fukushima.jp\nhirono.fukushima.jp\niitate.fukushima.jp\ninawashiro.fukushima.jp\nishikawa.fukushima.jp\niwaki.fukushima.jp\nizumizaki.fukushima.jp\nkagamiishi.fukushima.jp\nkaneyama.fukushima.jp\nkawamata.fukushima.jp\nkitakata.fukushima.jp\nkitashiobara.fukushima.jp\nkoori.fukushima.jp\nkoriyama.fukushima.jp\nkunimi.fukushima.jp\nmiharu.fukushima.jp\nmishima.fukushima.jp\nnamie.fukushima.jp\nnango.fukushima.jp\nnishiaizu.fukushima.jp\nnishigo.fukushima.jp\nokuma.fukushima.jp\nomotego.fukushima.jp\nono.fukushima.jp\notama.fukushima.jp\nsamegawa.fukushima.jp\nshimogo.fukushima.jp\nshirakawa.fukushima.jp\nshowa.fukushima.jp\nsoma.fukushima.jp\nsukagawa.fukushima.jp\ntaishin.fukushima.jp\ntamakawa.fukushima.jp\ntanagura.fukushima.jp\ntenei.fukushima.jp\nyabuki.fukushima.jp\nyamato.fukushima.jp\nyamatsuri.fukushima.jp\nyanaizu.fukushima.jp\nyugawa.fukushima.jp\nanpachi.gifu.jp\nena.gifu.jp\ngifu.gifu.jp\nginan.gifu.jp\ngodo.gifu.jp\ngujo.gifu.jp\nhashima.gifu.jp\nhichiso.gifu.jp\nhida.gifu.jp\nhigashishirakawa.gifu.jp\nibigawa.gifu.jp\nikeda.gifu.jp\nkakamigahara.gifu.jp\nkani.gifu.jp\nkasahara.gifu.jp\nkasamatsu.gifu.jp\nkawaue.gifu.jp\nkitagata.gifu.jp\nmino.gifu.jp\nminokamo.gifu.jp\nmitake.gifu.jp\nmizunami.gifu.jp\nmotosu.gifu.jp\nnakatsugawa.gifu.jp\nogaki.gifu.jp\nsakahogi.gifu.jp\nseki.gifu.jp\nsekigahara.gifu.jp\nshirakawa.gifu.jp\ntajimi.gifu.jp\ntakayama.gifu.jp\ntarui.gifu.jp\ntoki.gifu.jp\ntomika.gifu.jp\nwanouchi.gifu.jp\nyamagata.gifu.jp\nyaotsu.gifu.jp\nyoro.gifu.jp\nannaka.gunma.jp\nchiyoda.gunma.jp\nfujioka.gunma.jp\nhigashiagatsuma.gunma.jp\nisesaki.gunma.jp\nitakura.gunma.jp\nkanna.gunma.jp\nkanra.gunma.jp\nkatashina.gunma.jp\nkawaba.gunma.jp\nkiryu.gunma.jp\nkusatsu.gunma.jp\nmaebashi.gunma.jp\nmeiwa.gunma.jp\nmidori.gunma.jp\nminakami.gunma.jp\nnaganohara.gunma.jp\nnakanojo.gunma.jp\nnanmoku.gunma.jp\nnumata.gunma.jp\noizumi.gunma.jp\nora.gunma.jp\nota.gunma.jp\nshibukawa.gunma.jp\nshimonita.gunma.jp\nshinto.gunma.jp\nshowa.gunma.jp\ntakasaki.gunma.jp\ntakayama.gunma.jp\ntamamura.gunma.jp\ntatebayashi.gunma.jp\ntomioka.gunma.jp\ntsukiyono.gunma.jp\ntsumagoi.gunma.jp\nueno.gunma.jp\nyoshioka.gunma.jp\nasaminami.hiroshima.jp\ndaiwa.hiroshima.jp\netajima.hiroshima.jp\nfuchu.hiroshima.jp\nfukuyama.hiroshima.jp\nhatsukaichi.hiroshima.jp\nhigashihiroshima.hiroshima.jp\nhongo.hiroshima.jp\njinsekikogen.hiroshima.jp\nkaita.hiroshima.jp\nkui.hiroshima.jp\nkumano.hiroshima.jp\nkure.hiroshima.jp\nmihara.hiroshima.jp\nmiyoshi.hiroshima.jp\nnaka.hiroshima.jp\nonomichi.hiroshima.jp\nosakikamijima.hiroshima.jp\notake.hiroshima.jp\nsaka.hiroshima.jp\nsera.hiroshima.jp\nseranishi.hiroshima.jp\nshinichi.hiroshima.jp\nshobara.hiroshima.jp\ntakehara.hiroshima.jp\nabashiri.hokkaido.jp\nabira.hokkaido.jp\naibetsu.hokkaido.jp\nakabira.hokkaido.jp\nakkeshi.hokkaido.jp\nasahikawa.hokkaido.jp\nashibetsu.hokkaido.jp\nashoro.hokkaido.jp\nassabu.hokkaido.jp\natsuma.hokkaido.jp\nbibai.hokkaido.jp\nbiei.hokkaido.jp\nbifuka.hokkaido.jp\nbihoro.hokkaido.jp\nbiratori.hokkaido.jp\nchippubetsu.hokkaido.jp\nchitose.hokkaido.jp\ndate.hokkaido.jp\nebetsu.hokkaido.jp\nembetsu.hokkaido.jp\neniwa.hokkaido.jp\nerimo.hokkaido.jp\nesan.hokkaido.jp\nesashi.hokkaido.jp\nfukagawa.hokkaido.jp\nfukushima.hokkaido.jp\nfurano.hokkaido.jp\nfurubira.hokkaido.jp\nhaboro.hokkaido.jp\nhakodate.hokkaido.jp\nhamatonbetsu.hokkaido.jp\nhidaka.hokkaido.jp\nhigashikagura.hokkaido.jp\nhigashikawa.hokkaido.jp\nhiroo.hokkaido.jp\nhokuryu.hokkaido.jp\nhokuto.hokkaido.jp\nhonbetsu.hokkaido.jp\nhorokanai.hokkaido.jp\nhoronobe.hokkaido.jp\nikeda.hokkaido.jp\nimakane.hokkaido.jp\nishikari.hokkaido.jp\niwamizawa.hokkaido.jp\niwanai.hokkaido.jp\nkamifurano.hokkaido.jp\nkamikawa.hokkaido.jp\nkamishihoro.hokkaido.jp\nkamisunagawa.hokkaido.jp\nkamoenai.hokkaido.jp\nkayabe.hokkaido.jp\nkembuchi.hokkaido.jp\nkikonai.hokkaido.jp\nkimobetsu.hokkaido.jp\nkitahiroshima.hokkaido.jp\nkitami.hokkaido.jp\nkiyosato.hokkaido.jp\nkoshimizu.hokkaido.jp\nkunneppu.hokkaido.jp\nkuriyama.hokkaido.jp\nkuromatsunai.hokkaido.jp\nkushiro.hokkaido.jp\nkutchan.hokkaido.jp\nkyowa.hokkaido.jp\nmashike.hokkaido.jp\nmatsumae.hokkaido.jp\nmikasa.hokkaido.jp\nminamifurano.hokkaido.jp\nmombetsu.hokkaido.jp\nmoseushi.hokkaido.jp\nmukawa.hokkaido.jp\nmuroran.hokkaido.jp\nnaie.hokkaido.jp\nnakagawa.hokkaido.jp\nnakasatsunai.hokkaido.jp\nnakatombetsu.hokkaido.jp\nnanae.hokkaido.jp\nnanporo.hokkaido.jp\nnayoro.hokkaido.jp\nnemuro.hokkaido.jp\nniikappu.hokkaido.jp\nniki.hokkaido.jp\nnishiokoppe.hokkaido.jp\nnoboribetsu.hokkaido.jp\nnumata.hokkaido.jp\nobihiro.hokkaido.jp\nobira.hokkaido.jp\noketo.hokkaido.jp\nokoppe.hokkaido.jp\notaru.hokkaido.jp\notobe.hokkaido.jp\notofuke.hokkaido.jp\notoineppu.hokkaido.jp\noumu.hokkaido.jp\nozora.hokkaido.jp\npippu.hokkaido.jp\nrankoshi.hokkaido.jp\nrebun.hokkaido.jp\nrikubetsu.hokkaido.jp\nrishiri.hokkaido.jp\nrishirifuji.hokkaido.jp\nsaroma.hokkaido.jp\nsarufutsu.hokkaido.jp\nshakotan.hokkaido.jp\nshari.hokkaido.jp\nshibecha.hokkaido.jp\nshibetsu.hokkaido.jp\nshikabe.hokkaido.jp\nshikaoi.hokkaido.jp\nshimamaki.hokkaido.jp\nshimizu.hokkaido.jp\nshimokawa.hokkaido.jp\nshinshinotsu.hokkaido.jp\nshintoku.hokkaido.jp\nshiranuka.hokkaido.jp\nshiraoi.hokkaido.jp\nshiriuchi.hokkaido.jp\nsobetsu.hokkaido.jp\nsunagawa.hokkaido.jp\ntaiki.hokkaido.jp\ntakasu.hokkaido.jp\ntakikawa.hokkaido.jp\ntakinoue.hokkaido.jp\nteshikaga.hokkaido.jp\ntobetsu.hokkaido.jp\ntohma.hokkaido.jp\ntomakomai.hokkaido.jp\ntomari.hokkaido.jp\ntoya.hokkaido.jp\ntoyako.hokkaido.jp\ntoyotomi.hokkaido.jp\ntoyoura.hokkaido.jp\ntsubetsu.hokkaido.jp\ntsukigata.hokkaido.jp\nurakawa.hokkaido.jp\nurausu.hokkaido.jp\nuryu.hokkaido.jp\nutashinai.hokkaido.jp\nwakkanai.hokkaido.jp\nwassamu.hokkaido.jp\nyakumo.hokkaido.jp\nyoichi.hokkaido.jp\naioi.hyogo.jp\nakashi.hyogo.jp\nako.hyogo.jp\namagasaki.hyogo.jp\naogaki.hyogo.jp\nasago.hyogo.jp\nashiya.hyogo.jp\nawaji.hyogo.jp\nfukusaki.hyogo.jp\ngoshiki.hyogo.jp\nharima.hyogo.jp\nhimeji.hyogo.jp\nichikawa.hyogo.jp\ninagawa.hyogo.jp\nitami.hyogo.jp\nkakogawa.hyogo.jp\nkamigori.hyogo.jp\nkamikawa.hyogo.jp\nkasai.hyogo.jp\nkasuga.hyogo.jp\nkawanishi.hyogo.jp\nmiki.hyogo.jp\nminamiawaji.hyogo.jp\nnishinomiya.hyogo.jp\nnishiwaki.hyogo.jp\nono.hyogo.jp\nsanda.hyogo.jp\nsannan.hyogo.jp\nsasayama.hyogo.jp\nsayo.hyogo.jp\nshingu.hyogo.jp\nshinonsen.hyogo.jp\nshiso.hyogo.jp\nsumoto.hyogo.jp\ntaishi.hyogo.jp\ntaka.hyogo.jp\ntakarazuka.hyogo.jp\ntakasago.hyogo.jp\ntakino.hyogo.jp\ntamba.hyogo.jp\ntatsuno.hyogo.jp\ntoyooka.hyogo.jp\nyabu.hyogo.jp\nyashiro.hyogo.jp\nyoka.hyogo.jp\nyokawa.hyogo.jp\nami.ibaraki.jp\nasahi.ibaraki.jp\nbando.ibaraki.jp\nchikusei.ibaraki.jp\ndaigo.ibaraki.jp\nfujishiro.ibaraki.jp\nhitachi.ibaraki.jp\nhitachinaka.ibaraki.jp\nhitachiomiya.ibaraki.jp\nhitachiota.ibaraki.jp\nibaraki.ibaraki.jp\nina.ibaraki.jp\ninashiki.ibaraki.jp\nitako.ibaraki.jp\niwama.ibaraki.jp\njoso.ibaraki.jp\nkamisu.ibaraki.jp\nkasama.ibaraki.jp\nkashima.ibaraki.jp\nkasumigaura.ibaraki.jp\nkoga.ibaraki.jp\nmiho.ibaraki.jp\nmito.ibaraki.jp\nmoriya.ibaraki.jp\nnaka.ibaraki.jp\nnamegata.ibaraki.jp\noarai.ibaraki.jp\nogawa.ibaraki.jp\nomitama.ibaraki.jp\nryugasaki.ibaraki.jp\nsakai.ibaraki.jp\nsakuragawa.ibaraki.jp\nshimodate.ibaraki.jp\nshimotsuma.ibaraki.jp\nshirosato.ibaraki.jp\nsowa.ibaraki.jp\nsuifu.ibaraki.jp\ntakahagi.ibaraki.jp\ntamatsukuri.ibaraki.jp\ntokai.ibaraki.jp\ntomobe.ibaraki.jp\ntone.ibaraki.jp\ntoride.ibaraki.jp\ntsuchiura.ibaraki.jp\ntsukuba.ibaraki.jp\nuchihara.ibaraki.jp\nushiku.ibaraki.jp\nyachiyo.ibaraki.jp\nyamagata.ibaraki.jp\nyawara.ibaraki.jp\nyuki.ibaraki.jp\nanamizu.ishikawa.jp\nhakui.ishikawa.jp\nhakusan.ishikawa.jp\nkaga.ishikawa.jp\nkahoku.ishikawa.jp\nkanazawa.ishikawa.jp\nkawakita.ishikawa.jp\nkomatsu.ishikawa.jp\nnakanoto.ishikawa.jp\nnanao.ishikawa.jp\nnomi.ishikawa.jp\nnonoichi.ishikawa.jp\nnoto.ishikawa.jp\nshika.ishikawa.jp\nsuzu.ishikawa.jp\ntsubata.ishikawa.jp\ntsurugi.ishikawa.jp\nuchinada.ishikawa.jp\nwajima.ishikawa.jp\nfudai.iwate.jp\nfujisawa.iwate.jp\nhanamaki.iwate.jp\nhiraizumi.iwate.jp\nhirono.iwate.jp\nichinohe.iwate.jp\nichinoseki.iwate.jp\niwaizumi.iwate.jp\niwate.iwate.jp\njoboji.iwate.jp\nkamaishi.iwate.jp\nkanegasaki.iwate.jp\nkarumai.iwate.jp\nkawai.iwate.jp\nkitakami.iwate.jp\nkuji.iwate.jp\nkunohe.iwate.jp\nkuzumaki.iwate.jp\nmiyako.iwate.jp\nmizusawa.iwate.jp\nmorioka.iwate.jp\nninohe.iwate.jp\nnoda.iwate.jp\nofunato.iwate.jp\noshu.iwate.jp\notsuchi.iwate.jp\nrikuzentakata.iwate.jp\nshiwa.iwate.jp\nshizukuishi.iwate.jp\nsumita.iwate.jp\ntanohata.iwate.jp\ntono.iwate.jp\nyahaba.iwate.jp\nyamada.iwate.jp\nayagawa.kagawa.jp\nhigashikagawa.kagawa.jp\nkanonji.kagawa.jp\nkotohira.kagawa.jp\nmanno.kagawa.jp\nmarugame.kagawa.jp\nmitoyo.kagawa.jp\nnaoshima.kagawa.jp\nsanuki.kagawa.jp\ntadotsu.kagawa.jp\ntakamatsu.kagawa.jp\ntonosho.kagawa.jp\nuchinomi.kagawa.jp\nutazu.kagawa.jp\nzentsuji.kagawa.jp\nakune.kagoshima.jp\namami.kagoshima.jp\nhioki.kagoshima.jp\nisa.kagoshima.jp\nisen.kagoshima.jp\nizumi.kagoshima.jp\nkagoshima.kagoshima.jp\nkanoya.kagoshima.jp\nkawanabe.kagoshima.jp\nkinko.kagoshima.jp\nkouyama.kagoshima.jp\nmakurazaki.kagoshima.jp\nmatsumoto.kagoshima.jp\nminamitane.kagoshima.jp\nnakatane.kagoshima.jp\nnishinoomote.kagoshima.jp\nsatsumasendai.kagoshima.jp\nsoo.kagoshima.jp\ntarumizu.kagoshima.jp\nyusui.kagoshima.jp\naikawa.kanagawa.jp\natsugi.kanagawa.jp\nayase.kanagawa.jp\nchigasaki.kanagawa.jp\nebina.kanagawa.jp\nfujisawa.kanagawa.jp\nhadano.kanagawa.jp\nhakone.kanagawa.jp\nhiratsuka.kanagawa.jp\nisehara.kanagawa.jp\nkaisei.kanagawa.jp\nkamakura.kanagawa.jp\nkiyokawa.kanagawa.jp\nmatsuda.kanagawa.jp\nminamiashigara.kanagawa.jp\nmiura.kanagawa.jp\nnakai.kanagawa.jp\nninomiya.kanagawa.jp\nodawara.kanagawa.jp\noi.kanagawa.jp\noiso.kanagawa.jp\nsagamihara.kanagawa.jp\nsamukawa.kanagawa.jp\ntsukui.kanagawa.jp\nyamakita.kanagawa.jp\nyamato.kanagawa.jp\nyokosuka.kanagawa.jp\nyugawara.kanagawa.jp\nzama.kanagawa.jp\nzushi.kanagawa.jp\naki.kochi.jp\ngeisei.kochi.jp\nhidaka.kochi.jp\nhigashitsuno.kochi.jp\nino.kochi.jp\nkagami.kochi.jp\nkami.kochi.jp\nkitagawa.kochi.jp\nkochi.kochi.jp\nmihara.kochi.jp\nmotoyama.kochi.jp\nmuroto.kochi.jp\nnahari.kochi.jp\nnakamura.kochi.jp\nnankoku.kochi.jp\nnishitosa.kochi.jp\nniyodogawa.kochi.jp\nochi.kochi.jp\nokawa.kochi.jp\notoyo.kochi.jp\notsuki.kochi.jp\nsakawa.kochi.jp\nsukumo.kochi.jp\nsusaki.kochi.jp\ntosa.kochi.jp\ntosashimizu.kochi.jp\ntoyo.kochi.jp\ntsuno.kochi.jp\numaji.kochi.jp\nyasuda.kochi.jp\nyusuhara.kochi.jp\namakusa.kumamoto.jp\narao.kumamoto.jp\naso.kumamoto.jp\nchoyo.kumamoto.jp\ngyokuto.kumamoto.jp\nkamiamakusa.kumamoto.jp\nkikuchi.kumamoto.jp\nkumamoto.kumamoto.jp\nmashiki.kumamoto.jp\nmifune.kumamoto.jp\nminamata.kumamoto.jp\nminamioguni.kumamoto.jp\nnagasu.kumamoto.jp\nnishihara.kumamoto.jp\noguni.kumamoto.jp\nozu.kumamoto.jp\nsumoto.kumamoto.jp\ntakamori.kumamoto.jp\nuki.kumamoto.jp\nuto.kumamoto.jp\nyamaga.kumamoto.jp\nyamato.kumamoto.jp\nyatsushiro.kumamoto.jp\nayabe.kyoto.jp\nfukuchiyama.kyoto.jp\nhigashiyama.kyoto.jp\nide.kyoto.jp\nine.kyoto.jp\njoyo.kyoto.jp\nkameoka.kyoto.jp\nkamo.kyoto.jp\nkita.kyoto.jp\nkizu.kyoto.jp\nkumiyama.kyoto.jp\nkyotamba.kyoto.jp\nkyotanabe.kyoto.jp\nkyotango.kyoto.jp\nmaizuru.kyoto.jp\nminami.kyoto.jp\nminamiyamashiro.kyoto.jp\nmiyazu.kyoto.jp\nmuko.kyoto.jp\nnagaokakyo.kyoto.jp\nnakagyo.kyoto.jp\nnantan.kyoto.jp\noyamazaki.kyoto.jp\nsakyo.kyoto.jp\nseika.kyoto.jp\ntanabe.kyoto.jp\nuji.kyoto.jp\nujitawara.kyoto.jp\nwazuka.kyoto.jp\nyamashina.kyoto.jp\nyawata.kyoto.jp\nasahi.mie.jp\ninabe.mie.jp\nise.mie.jp\nkameyama.mie.jp\nkawagoe.mie.jp\nkiho.mie.jp\nkisosaki.mie.jp\nkiwa.mie.jp\nkomono.mie.jp\nkumano.mie.jp\nkuwana.mie.jp\nmatsusaka.mie.jp\nmeiwa.mie.jp\nmihama.mie.jp\nminamiise.mie.jp\nmisugi.mie.jp\nmiyama.mie.jp\nnabari.mie.jp\nshima.mie.jp\nsuzuka.mie.jp\ntado.mie.jp\ntaiki.mie.jp\ntaki.mie.jp\ntamaki.mie.jp\ntoba.mie.jp\ntsu.mie.jp\nudono.mie.jp\nureshino.mie.jp\nwatarai.mie.jp\nyokkaichi.mie.jp\nfurukawa.miyagi.jp\nhigashimatsushima.miyagi.jp\nishinomaki.miyagi.jp\niwanuma.miyagi.jp\nkakuda.miyagi.jp\nkami.miyagi.jp\nkawasaki.miyagi.jp\nmarumori.miyagi.jp\nmatsushima.miyagi.jp\nminamisanriku.miyagi.jp\nmisato.miyagi.jp\nmurata.miyagi.jp\nnatori.miyagi.jp\nogawara.miyagi.jp\nohira.miyagi.jp\nonagawa.miyagi.jp\nosaki.miyagi.jp\nrifu.miyagi.jp\nsemine.miyagi.jp\nshibata.miyagi.jp\nshichikashuku.miyagi.jp\nshikama.miyagi.jp\nshiogama.miyagi.jp\nshiroishi.miyagi.jp\ntagajo.miyagi.jp\ntaiwa.miyagi.jp\ntome.miyagi.jp\ntomiya.miyagi.jp\nwakuya.miyagi.jp\nwatari.miyagi.jp\nyamamoto.miyagi.jp\nzao.miyagi.jp\naya.miyazaki.jp\nebino.miyazaki.jp\ngokase.miyazaki.jp\nhyuga.miyazaki.jp\nkadogawa.miyazaki.jp\nkawaminami.miyazaki.jp\nkijo.miyazaki.jp\nkitagawa.miyazaki.jp\nkitakata.miyazaki.jp\nkitaura.miyazaki.jp\nkobayashi.miyazaki.jp\nkunitomi.miyazaki.jp\nkushima.miyazaki.jp\nmimata.miyazaki.jp\nmiyakonojo.miyazaki.jp\nmiyazaki.miyazaki.jp\nmorotsuka.miyazaki.jp\nnichinan.miyazaki.jp\nnishimera.miyazaki.jp\nnobeoka.miyazaki.jp\nsaito.miyazaki.jp\nshiiba.miyazaki.jp\nshintomi.miyazaki.jp\ntakaharu.miyazaki.jp\ntakanabe.miyazaki.jp\ntakazaki.miyazaki.jp\ntsuno.miyazaki.jp\nachi.nagano.jp\nagematsu.nagano.jp\nanan.nagano.jp\naoki.nagano.jp\nasahi.nagano.jp\nazumino.nagano.jp\nchikuhoku.nagano.jp\nchikuma.nagano.jp\nchino.nagano.jp\nfujimi.nagano.jp\nhakuba.nagano.jp\nhara.nagano.jp\nhiraya.nagano.jp\niida.nagano.jp\niijima.nagano.jp\niiyama.nagano.jp\niizuna.nagano.jp\nikeda.nagano.jp\nikusaka.nagano.jp\nina.nagano.jp\nkaruizawa.nagano.jp\nkawakami.nagano.jp\nkiso.nagano.jp\nkisofukushima.nagano.jp\nkitaaiki.nagano.jp\nkomagane.nagano.jp\nkomoro.nagano.jp\nmatsukawa.nagano.jp\nmatsumoto.nagano.jp\nmiasa.nagano.jp\nminamiaiki.nagano.jp\nminamimaki.nagano.jp\nminamiminowa.nagano.jp\nminowa.nagano.jp\nmiyada.nagano.jp\nmiyota.nagano.jp\nmochizuki.nagano.jp\nnagano.nagano.jp\nnagawa.nagano.jp\nnagiso.nagano.jp\nnakagawa.nagano.jp\nnakano.nagano.jp\nnozawaonsen.nagano.jp\nobuse.nagano.jp\nogawa.nagano.jp\nokaya.nagano.jp\nomachi.nagano.jp\nomi.nagano.jp\nookuwa.nagano.jp\nooshika.nagano.jp\notaki.nagano.jp\notari.nagano.jp\nsakae.nagano.jp\nsakaki.nagano.jp\nsaku.nagano.jp\nsakuho.nagano.jp\nshimosuwa.nagano.jp\nshinanomachi.nagano.jp\nshiojiri.nagano.jp\nsuwa.nagano.jp\nsuzaka.nagano.jp\ntakagi.nagano.jp\ntakamori.nagano.jp\ntakayama.nagano.jp\ntateshina.nagano.jp\ntatsuno.nagano.jp\ntogakushi.nagano.jp\ntogura.nagano.jp\ntomi.nagano.jp\nueda.nagano.jp\nwada.nagano.jp\nyamagata.nagano.jp\nyamanouchi.nagano.jp\nyasaka.nagano.jp\nyasuoka.nagano.jp\nchijiwa.nagasaki.jp\nfutsu.nagasaki.jp\ngoto.nagasaki.jp\nhasami.nagasaki.jp\nhirado.nagasaki.jp\niki.nagasaki.jp\nisahaya.nagasaki.jp\nkawatana.nagasaki.jp\nkuchinotsu.nagasaki.jp\nmatsuura.nagasaki.jp\nnagasaki.nagasaki.jp\nobama.nagasaki.jp\nomura.nagasaki.jp\noseto.nagasaki.jp\nsaikai.nagasaki.jp\nsasebo.nagasaki.jp\nseihi.nagasaki.jp\nshimabara.nagasaki.jp\nshinkamigoto.nagasaki.jp\ntogitsu.nagasaki.jp\ntsushima.nagasaki.jp\nunzen.nagasaki.jp\nando.nara.jp\ngose.nara.jp\nheguri.nara.jp\nhigashiyoshino.nara.jp\nikaruga.nara.jp\nikoma.nara.jp\nkamikitayama.nara.jp\nkanmaki.nara.jp\nkashiba.nara.jp\nkashihara.nara.jp\nkatsuragi.nara.jp\nkawai.nara.jp\nkawakami.nara.jp\nkawanishi.nara.jp\nkoryo.nara.jp\nkurotaki.nara.jp\nmitsue.nara.jp\nmiyake.nara.jp\nnara.nara.jp\nnosegawa.nara.jp\noji.nara.jp\nouda.nara.jp\noyodo.nara.jp\nsakurai.nara.jp\nsango.nara.jp\nshimoichi.nara.jp\nshimokitayama.nara.jp\nshinjo.nara.jp\nsoni.nara.jp\ntakatori.nara.jp\ntawaramoto.nara.jp\ntenkawa.nara.jp\ntenri.nara.jp\nuda.nara.jp\nyamatokoriyama.nara.jp\nyamatotakada.nara.jp\nyamazoe.nara.jp\nyoshino.nara.jp\naga.niigata.jp\nagano.niigata.jp\ngosen.niigata.jp\nitoigawa.niigata.jp\nizumozaki.niigata.jp\njoetsu.niigata.jp\nkamo.niigata.jp\nkariwa.niigata.jp\nkashiwazaki.niigata.jp\nminamiuonuma.niigata.jp\nmitsuke.niigata.jp\nmuika.niigata.jp\nmurakami.niigata.jp\nmyoko.niigata.jp\nnagaoka.niigata.jp\nniigata.niigata.jp\nojiya.niigata.jp\nomi.niigata.jp\nsado.niigata.jp\nsanjo.niigata.jp\nseiro.niigata.jp\nseirou.niigata.jp\nsekikawa.niigata.jp\nshibata.niigata.jp\ntagami.niigata.jp\ntainai.niigata.jp\ntochio.niigata.jp\ntokamachi.niigata.jp\ntsubame.niigata.jp\ntsunan.niigata.jp\nuonuma.niigata.jp\nyahiko.niigata.jp\nyoita.niigata.jp\nyuzawa.niigata.jp\nbeppu.oita.jp\nbungoono.oita.jp\nbungotakada.oita.jp\nhasama.oita.jp\nhiji.oita.jp\nhimeshima.oita.jp\nhita.oita.jp\nkamitsue.oita.jp\nkokonoe.oita.jp\nkuju.oita.jp\nkunisaki.oita.jp\nkusu.oita.jp\noita.oita.jp\nsaiki.oita.jp\ntaketa.oita.jp\ntsukumi.oita.jp\nusa.oita.jp\nusuki.oita.jp\nyufu.oita.jp\nakaiwa.okayama.jp\nasakuchi.okayama.jp\nbizen.okayama.jp\nhayashima.okayama.jp\nibara.okayama.jp\nkagamino.okayama.jp\nkasaoka.okayama.jp\nkibichuo.okayama.jp\nkumenan.okayama.jp\nkurashiki.okayama.jp\nmaniwa.okayama.jp\nmisaki.okayama.jp\nnagi.okayama.jp\nniimi.okayama.jp\nnishiawakura.okayama.jp\nokayama.okayama.jp\nsatosho.okayama.jp\nsetouchi.okayama.jp\nshinjo.okayama.jp\nshoo.okayama.jp\nsoja.okayama.jp\ntakahashi.okayama.jp\ntamano.okayama.jp\ntsuyama.okayama.jp\nwake.okayama.jp\nyakage.okayama.jp\naguni.okinawa.jp\nginowan.okinawa.jp\nginoza.okinawa.jp\ngushikami.okinawa.jp\nhaebaru.okinawa.jp\nhigashi.okinawa.jp\nhirara.okinawa.jp\niheya.okinawa.jp\nishigaki.okinawa.jp\nishikawa.okinawa.jp\nitoman.okinawa.jp\nizena.okinawa.jp\nkadena.okinawa.jp\nkin.okinawa.jp\nkitadaito.okinawa.jp\nkitanakagusuku.okinawa.jp\nkumejima.okinawa.jp\nkunigami.okinawa.jp\nminamidaito.okinawa.jp\nmotobu.okinawa.jp\nnago.okinawa.jp\nnaha.okinawa.jp\nnakagusuku.okinawa.jp\nnakijin.okinawa.jp\nnanjo.okinawa.jp\nnishihara.okinawa.jp\nogimi.okinawa.jp\nokinawa.okinawa.jp\nonna.okinawa.jp\nshimoji.okinawa.jp\ntaketomi.okinawa.jp\ntarama.okinawa.jp\ntokashiki.okinawa.jp\ntomigusuku.okinawa.jp\ntonaki.okinawa.jp\nurasoe.okinawa.jp\nuruma.okinawa.jp\nyaese.okinawa.jp\nyomitan.okinawa.jp\nyonabaru.okinawa.jp\nyonaguni.okinawa.jp\nzamami.okinawa.jp\nabeno.osaka.jp\nchihayaakasaka.osaka.jp\nchuo.osaka.jp\ndaito.osaka.jp\nfujiidera.osaka.jp\nhabikino.osaka.jp\nhannan.osaka.jp\nhigashiosaka.osaka.jp\nhigashisumiyoshi.osaka.jp\nhigashiyodogawa.osaka.jp\nhirakata.osaka.jp\nibaraki.osaka.jp\nikeda.osaka.jp\nizumi.osaka.jp\nizumiotsu.osaka.jp\nizumisano.osaka.jp\nkadoma.osaka.jp\nkaizuka.osaka.jp\nkanan.osaka.jp\nkashiwara.osaka.jp\nkatano.osaka.jp\nkawachinagano.osaka.jp\nkishiwada.osaka.jp\nkita.osaka.jp\nkumatori.osaka.jp\nmatsubara.osaka.jp\nminato.osaka.jp\nminoh.osaka.jp\nmisaki.osaka.jp\nmoriguchi.osaka.jp\nneyagawa.osaka.jp\nnishi.osaka.jp\nnose.osaka.jp\nosakasayama.osaka.jp\nsakai.osaka.jp\nsayama.osaka.jp\nsennan.osaka.jp\nsettsu.osaka.jp\nshijonawate.osaka.jp\nshimamoto.osaka.jp\nsuita.osaka.jp\ntadaoka.osaka.jp\ntaishi.osaka.jp\ntajiri.osaka.jp\ntakaishi.osaka.jp\ntakatsuki.osaka.jp\ntondabayashi.osaka.jp\ntoyonaka.osaka.jp\ntoyono.osaka.jp\nyao.osaka.jp\nariake.saga.jp\narita.saga.jp\nfukudomi.saga.jp\ngenkai.saga.jp\nhamatama.saga.jp\nhizen.saga.jp\nimari.saga.jp\nkamimine.saga.jp\nkanzaki.saga.jp\nkaratsu.saga.jp\nkashima.saga.jp\nkitagata.saga.jp\nkitahata.saga.jp\nkiyama.saga.jp\nkouhoku.saga.jp\nkyuragi.saga.jp\nnishiarita.saga.jp\nogi.saga.jp\nomachi.saga.jp\nouchi.saga.jp\nsaga.saga.jp\nshiroishi.saga.jp\ntaku.saga.jp\ntara.saga.jp\ntosu.saga.jp\nyoshinogari.saga.jp\narakawa.saitama.jp\nasaka.saitama.jp\nchichibu.saitama.jp\nfujimi.saitama.jp\nfujimino.saitama.jp\nfukaya.saitama.jp\nhanno.saitama.jp\nhanyu.saitama.jp\nhasuda.saitama.jp\nhatogaya.saitama.jp\nhatoyama.saitama.jp\nhidaka.saitama.jp\nhigashichichibu.saitama.jp\nhigashimatsuyama.saitama.jp\nhonjo.saitama.jp\nina.saitama.jp\niruma.saitama.jp\niwatsuki.saitama.jp\nkamiizumi.saitama.jp\nkamikawa.saitama.jp\nkamisato.saitama.jp\nkasukabe.saitama.jp\nkawagoe.saitama.jp\nkawaguchi.saitama.jp\nkawajima.saitama.jp\nkazo.saitama.jp\nkitamoto.saitama.jp\nkoshigaya.saitama.jp\nkounosu.saitama.jp\nkuki.saitama.jp\nkumagaya.saitama.jp\nmatsubushi.saitama.jp\nminano.saitama.jp\nmisato.saitama.jp\nmiyashiro.saitama.jp\nmiyoshi.saitama.jp\nmoroyama.saitama.jp\nnagatoro.saitama.jp\nnamegawa.saitama.jp\nniiza.saitama.jp\nogano.saitama.jp\nogawa.saitama.jp\nogose.saitama.jp\nokegawa.saitama.jp\nomiya.saitama.jp\notaki.saitama.jp\nranzan.saitama.jp\nryokami.saitama.jp\nsaitama.saitama.jp\nsakado.saitama.jp\nsatte.saitama.jp\nsayama.saitama.jp\nshiki.saitama.jp\nshiraoka.saitama.jp\nsoka.saitama.jp\nsugito.saitama.jp\ntoda.saitama.jp\ntokigawa.saitama.jp\ntokorozawa.saitama.jp\ntsurugashima.saitama.jp\nurawa.saitama.jp\nwarabi.saitama.jp\nyashio.saitama.jp\nyokoze.saitama.jp\nyono.saitama.jp\nyorii.saitama.jp\nyoshida.saitama.jp\nyoshikawa.saitama.jp\nyoshimi.saitama.jp\naisho.shiga.jp\ngamo.shiga.jp\nhigashiomi.shiga.jp\nhikone.shiga.jp\nkoka.shiga.jp\nkonan.shiga.jp\nkosei.shiga.jp\nkoto.shiga.jp\nkusatsu.shiga.jp\nmaibara.shiga.jp\nmoriyama.shiga.jp\nnagahama.shiga.jp\nnishiazai.shiga.jp\nnotogawa.shiga.jp\nomihachiman.shiga.jp\notsu.shiga.jp\nritto.shiga.jp\nryuoh.shiga.jp\ntakashima.shiga.jp\ntakatsuki.shiga.jp\ntorahime.shiga.jp\ntoyosato.shiga.jp\nyasu.shiga.jp\nakagi.shimane.jp\nama.shimane.jp\ngotsu.shimane.jp\nhamada.shimane.jp\nhigashiizumo.shimane.jp\nhikawa.shimane.jp\nhikimi.shimane.jp\nizumo.shimane.jp\nkakinoki.shimane.jp\nmasuda.shimane.jp\nmatsue.shimane.jp\nmisato.shimane.jp\nnishinoshima.shimane.jp\nohda.shimane.jp\nokinoshima.shimane.jp\nokuizumo.shimane.jp\nshimane.shimane.jp\ntamayu.shimane.jp\ntsuwano.shimane.jp\nunnan.shimane.jp\nyakumo.shimane.jp\nyasugi.shimane.jp\nyatsuka.shimane.jp\narai.shizuoka.jp\natami.shizuoka.jp\nfuji.shizuoka.jp\nfujieda.shizuoka.jp\nfujikawa.shizuoka.jp\nfujinomiya.shizuoka.jp\nfukuroi.shizuoka.jp\ngotemba.shizuoka.jp\nhaibara.shizuoka.jp\nhamamatsu.shizuoka.jp\nhigashiizu.shizuoka.jp\nito.shizuoka.jp\niwata.shizuoka.jp\nizu.shizuoka.jp\nizunokuni.shizuoka.jp\nkakegawa.shizuoka.jp\nkannami.shizuoka.jp\nkawanehon.shizuoka.jp\nkawazu.shizuoka.jp\nkikugawa.shizuoka.jp\nkosai.shizuoka.jp\nmakinohara.shizuoka.jp\nmatsuzaki.shizuoka.jp\nminamiizu.shizuoka.jp\nmishima.shizuoka.jp\nmorimachi.shizuoka.jp\nnishiizu.shizuoka.jp\nnumazu.shizuoka.jp\nomaezaki.shizuoka.jp\nshimada.shizuoka.jp\nshimizu.shizuoka.jp\nshimoda.shizuoka.jp\nshizuoka.shizuoka.jp\nsusono.shizuoka.jp\nyaizu.shizuoka.jp\nyoshida.shizuoka.jp\nashikaga.tochigi.jp\nbato.tochigi.jp\nhaga.tochigi.jp\nichikai.tochigi.jp\niwafune.tochigi.jp\nkaminokawa.tochigi.jp\nkanuma.tochigi.jp\nkarasuyama.tochigi.jp\nkuroiso.tochigi.jp\nmashiko.tochigi.jp\nmibu.tochigi.jp\nmoka.tochigi.jp\nmotegi.tochigi.jp\nnasu.tochigi.jp\nnasushiobara.tochigi.jp\nnikko.tochigi.jp\nnishikata.tochigi.jp\nnogi.tochigi.jp\nohira.tochigi.jp\nohtawara.tochigi.jp\noyama.tochigi.jp\nsakura.tochigi.jp\nsano.tochigi.jp\nshimotsuke.tochigi.jp\nshioya.tochigi.jp\ntakanezawa.tochigi.jp\ntochigi.tochigi.jp\ntsuga.tochigi.jp\nujiie.tochigi.jp\nutsunomiya.tochigi.jp\nyaita.tochigi.jp\naizumi.tokushima.jp\nanan.tokushima.jp\nichiba.tokushima.jp\nitano.tokushima.jp\nkainan.tokushima.jp\nkomatsushima.tokushima.jp\nmatsushige.tokushima.jp\nmima.tokushima.jp\nminami.tokushima.jp\nmiyoshi.tokushima.jp\nmugi.tokushima.jp\nnakagawa.tokushima.jp\nnaruto.tokushima.jp\nsanagochi.tokushima.jp\nshishikui.tokushima.jp\ntokushima.tokushima.jp\nwajiki.tokushima.jp\nadachi.tokyo.jp\nakiruno.tokyo.jp\nakishima.tokyo.jp\naogashima.tokyo.jp\narakawa.tokyo.jp\nbunkyo.tokyo.jp\nchiyoda.tokyo.jp\nchofu.tokyo.jp\nchuo.tokyo.jp\nedogawa.tokyo.jp\nfuchu.tokyo.jp\nfussa.tokyo.jp\nhachijo.tokyo.jp\nhachioji.tokyo.jp\nhamura.tokyo.jp\nhigashikurume.tokyo.jp\nhigashimurayama.tokyo.jp\nhigashiyamato.tokyo.jp\nhino.tokyo.jp\nhinode.tokyo.jp\nhinohara.tokyo.jp\ninagi.tokyo.jp\nitabashi.tokyo.jp\nkatsushika.tokyo.jp\nkita.tokyo.jp\nkiyose.tokyo.jp\nkodaira.tokyo.jp\nkoganei.tokyo.jp\nkokubunji.tokyo.jp\nkomae.tokyo.jp\nkoto.tokyo.jp\nkouzushima.tokyo.jp\nkunitachi.tokyo.jp\nmachida.tokyo.jp\nmeguro.tokyo.jp\nminato.tokyo.jp\nmitaka.tokyo.jp\nmizuho.tokyo.jp\nmusashimurayama.tokyo.jp\nmusashino.tokyo.jp\nnakano.tokyo.jp\nnerima.tokyo.jp\nogasawara.tokyo.jp\nokutama.tokyo.jp\nome.tokyo.jp\noshima.tokyo.jp\nota.tokyo.jp\nsetagaya.tokyo.jp\nshibuya.tokyo.jp\nshinagawa.tokyo.jp\nshinjuku.tokyo.jp\nsuginami.tokyo.jp\nsumida.tokyo.jp\ntachikawa.tokyo.jp\ntaito.tokyo.jp\ntama.tokyo.jp\ntoshima.tokyo.jp\nchizu.tottori.jp\nhino.tottori.jp\nkawahara.tottori.jp\nkoge.tottori.jp\nkotoura.tottori.jp\nmisasa.tottori.jp\nnanbu.tottori.jp\nnichinan.tottori.jp\nsakaiminato.tottori.jp\ntottori.tottori.jp\nwakasa.tottori.jp\nyazu.tottori.jp\nyonago.tottori.jp\nasahi.toyama.jp\nfuchu.toyama.jp\nfukumitsu.toyama.jp\nfunahashi.toyama.jp\nhimi.toyama.jp\nimizu.toyama.jp\ninami.toyama.jp\njohana.toyama.jp\nkamiichi.toyama.jp\nkurobe.toyama.jp\nnakaniikawa.toyama.jp\nnamerikawa.toyama.jp\nnanto.toyama.jp\nnyuzen.toyama.jp\noyabe.toyama.jp\ntaira.toyama.jp\ntakaoka.toyama.jp\ntateyama.toyama.jp\ntoga.toyama.jp\ntonami.toyama.jp\ntoyama.toyama.jp\nunazuki.toyama.jp\nuozu.toyama.jp\nyamada.toyama.jp\narida.wakayama.jp\naridagawa.wakayama.jp\ngobo.wakayama.jp\nhashimoto.wakayama.jp\nhidaka.wakayama.jp\nhirogawa.wakayama.jp\ninami.wakayama.jp\niwade.wakayama.jp\nkainan.wakayama.jp\nkamitonda.wakayama.jp\nkatsuragi.wakayama.jp\nkimino.wakayama.jp\nkinokawa.wakayama.jp\nkitayama.wakayama.jp\nkoya.wakayama.jp\nkoza.wakayama.jp\nkozagawa.wakayama.jp\nkudoyama.wakayama.jp\nkushimoto.wakayama.jp\nmihama.wakayama.jp\nmisato.wakayama.jp\nnachikatsuura.wakayama.jp\nshingu.wakayama.jp\nshirahama.wakayama.jp\ntaiji.wakayama.jp\ntanabe.wakayama.jp\nwakayama.wakayama.jp\nyuasa.wakayama.jp\nyura.wakayama.jp\nasahi.yamagata.jp\nfunagata.yamagata.jp\nhigashine.yamagata.jp\niide.yamagata.jp\nkahoku.yamagata.jp\nkaminoyama.yamagata.jp\nkaneyama.yamagata.jp\nkawanishi.yamagata.jp\nmamurogawa.yamagata.jp\nmikawa.yamagata.jp\nmurayama.yamagata.jp\nnagai.yamagata.jp\nnakayama.yamagata.jp\nnanyo.yamagata.jp\nnishikawa.yamagata.jp\nobanazawa.yamagata.jp\noe.yamagata.jp\noguni.yamagata.jp\nohkura.yamagata.jp\noishida.yamagata.jp\nsagae.yamagata.jp\nsakata.yamagata.jp\nsakegawa.yamagata.jp\nshinjo.yamagata.jp\nshirataka.yamagata.jp\nshonai.yamagata.jp\ntakahata.yamagata.jp\ntendo.yamagata.jp\ntozawa.yamagata.jp\ntsuruoka.yamagata.jp\nyamagata.yamagata.jp\nyamanobe.yamagata.jp\nyonezawa.yamagata.jp\nyuza.yamagata.jp\nabu.yamaguchi.jp\nhagi.yamaguchi.jp\nhikari.yamaguchi.jp\nhofu.yamaguchi.jp\niwakuni.yamaguchi.jp\nkudamatsu.yamaguchi.jp\nmitou.yamaguchi.jp\nnagato.yamaguchi.jp\noshima.yamaguchi.jp\nshimonoseki.yamaguchi.jp\nshunan.yamaguchi.jp\ntabuse.yamaguchi.jp\ntokuyama.yamaguchi.jp\ntoyota.yamaguchi.jp\nube.yamaguchi.jp\nyuu.yamaguchi.jp\nchuo.yamanashi.jp\ndoshi.yamanashi.jp\nfuefuki.yamanashi.jp\nfujikawa.yamanashi.jp\nfujikawaguchiko.yamanashi.jp\nfujiyoshida.yamanashi.jp\nhayakawa.yamanashi.jp\nhokuto.yamanashi.jp\nichikawamisato.yamanashi.jp\nkai.yamanashi.jp\nkofu.yamanashi.jp\nkoshu.yamanashi.jp\nkosuge.yamanashi.jp\nminami-alps.yamanashi.jp\nminobu.yamanashi.jp\nnakamichi.yamanashi.jp\nnanbu.yamanashi.jp\nnarusawa.yamanashi.jp\nnirasaki.yamanashi.jp\nnishikatsura.yamanashi.jp\noshino.yamanashi.jp\notsuki.yamanashi.jp\nshowa.yamanashi.jp\ntabayama.yamanashi.jp\ntsuru.yamanashi.jp\nuenohara.yamanashi.jp\nyamanakako.yamanashi.jp\nyamanashi.yamanashi.jp\n\n// ke : http://www.kenic.or.ke/index.php/en/ke-domains/ke-domains\nke\nac.ke\nco.ke\ngo.ke\ninfo.ke\nme.ke\nmobi.ke\nne.ke\nor.ke\nsc.ke\n\n// kg : http://www.domain.kg/dmn_n.html\nkg\norg.kg\nnet.kg\ncom.kg\nedu.kg\ngov.kg\nmil.kg\n\n// kh : http://www.mptc.gov.kh/dns_registration.htm\n*.kh\n\n// ki : http://www.ki/dns/index.html\nki\nedu.ki\nbiz.ki\nnet.ki\norg.ki\ngov.ki\ninfo.ki\ncom.ki\n\n// km : https://en.wikipedia.org/wiki/.km\n// http://www.domaine.km/documents/charte.doc\nkm\norg.km\nnom.km\ngov.km\nprd.km\ntm.km\nedu.km\nmil.km\nass.km\ncom.km\n// These are only mentioned as proposed suggestions at domaine.km, but\n// https://en.wikipedia.org/wiki/.km says they\'re available for registration:\ncoop.km\nasso.km\npresse.km\nmedecin.km\nnotaires.km\npharmaciens.km\nveterinaire.km\ngouv.km\n\n// kn : https://en.wikipedia.org/wiki/.kn\n// http://www.dot.kn/domainRules.html\nkn\nnet.kn\norg.kn\nedu.kn\ngov.kn\n\n// kp : http://www.kcce.kp/en_index.php\nkp\ncom.kp\nedu.kp\ngov.kp\norg.kp\nrep.kp\ntra.kp\n\n// kr : https://en.wikipedia.org/wiki/.kr\n// see also: http://domain.nida.or.kr/eng/registration.jsp\nkr\nac.kr\nco.kr\nes.kr\ngo.kr\nhs.kr\nkg.kr\nmil.kr\nms.kr\nne.kr\nor.kr\npe.kr\nre.kr\nsc.kr\n// kr geographical names\nbusan.kr\nchungbuk.kr\nchungnam.kr\ndaegu.kr\ndaejeon.kr\ngangwon.kr\ngwangju.kr\ngyeongbuk.kr\ngyeonggi.kr\ngyeongnam.kr\nincheon.kr\njeju.kr\njeonbuk.kr\njeonnam.kr\nseoul.kr\nulsan.kr\n\n// kw : https://www.nic.kw/policies/\n// Confirmed by registry <nic.tech@citra.gov.kw>\nkw\ncom.kw\nedu.kw\nemb.kw\ngov.kw\nind.kw\nnet.kw\norg.kw\n\n// ky : http://www.icta.ky/da_ky_reg_dom.php\n// Confirmed by registry <kysupport@perimeterusa.com> 2008-06-17\nky\ncom.ky\nedu.ky\nnet.ky\norg.ky\n\n// kz : https://en.wikipedia.org/wiki/.kz\n// see also: http://www.nic.kz/rules/index.jsp\nkz\norg.kz\nedu.kz\nnet.kz\ngov.kz\nmil.kz\ncom.kz\n\n// la : https://en.wikipedia.org/wiki/.la\n// Submitted by registry <gavin.brown@nic.la>\nla\nint.la\nnet.la\ninfo.la\nedu.la\ngov.la\nper.la\ncom.la\norg.la\n\n// lb : https://en.wikipedia.org/wiki/.lb\n// Submitted by registry <randy@psg.com>\nlb\ncom.lb\nedu.lb\ngov.lb\nnet.lb\norg.lb\n\n// lc : https://en.wikipedia.org/wiki/.lc\n// see also: http://www.nic.lc/rules.htm\nlc\ncom.lc\nnet.lc\nco.lc\norg.lc\nedu.lc\ngov.lc\n\n// li : https://en.wikipedia.org/wiki/.li\nli\n\n// lk : https://www.nic.lk/index.php/domain-registration/lk-domain-naming-structure\nlk\ngov.lk\nsch.lk\nnet.lk\nint.lk\ncom.lk\norg.lk\nedu.lk\nngo.lk\nsoc.lk\nweb.lk\nltd.lk\nassn.lk\ngrp.lk\nhotel.lk\nac.lk\n\n// lr : http://psg.com/dns/lr/lr.txt\n// Submitted by registry <randy@psg.com>\nlr\ncom.lr\nedu.lr\ngov.lr\norg.lr\nnet.lr\n\n// ls : http://www.nic.ls/\n// Confirmed by registry <lsadmin@nic.ls>\nls\nac.ls\nbiz.ls\nco.ls\nedu.ls\ngov.ls\ninfo.ls\nnet.ls\norg.ls\nsc.ls\n\n// lt : https://en.wikipedia.org/wiki/.lt\nlt\n// gov.lt : http://www.gov.lt/index_en.php\ngov.lt\n\n// lu : http://www.dns.lu/en/\nlu\n\n// lv : http://www.nic.lv/DNS/En/generic.php\nlv\ncom.lv\nedu.lv\ngov.lv\norg.lv\nmil.lv\nid.lv\nnet.lv\nasn.lv\nconf.lv\n\n// ly : http://www.nic.ly/regulations.php\nly\ncom.ly\nnet.ly\ngov.ly\nplc.ly\nedu.ly\nsch.ly\nmed.ly\norg.ly\nid.ly\n\n// ma : https://en.wikipedia.org/wiki/.ma\n// http://www.anrt.ma/fr/admin/download/upload/file_fr782.pdf\nma\nco.ma\nnet.ma\ngov.ma\norg.ma\nac.ma\npress.ma\n\n// mc : http://www.nic.mc/\nmc\ntm.mc\nasso.mc\n\n// md : https://en.wikipedia.org/wiki/.md\nmd\n\n// me : https://en.wikipedia.org/wiki/.me\nme\nco.me\nnet.me\norg.me\nedu.me\nac.me\ngov.me\nits.me\npriv.me\n\n// mg : http://nic.mg/nicmg/?page_id=39\nmg\norg.mg\nnom.mg\ngov.mg\nprd.mg\ntm.mg\nedu.mg\nmil.mg\ncom.mg\nco.mg\n\n// mh : https://en.wikipedia.org/wiki/.mh\nmh\n\n// mil : https://en.wikipedia.org/wiki/.mil\nmil\n\n// mk : https://en.wikipedia.org/wiki/.mk\n// see also: http://dns.marnet.net.mk/postapka.php\nmk\ncom.mk\norg.mk\nnet.mk\nedu.mk\ngov.mk\ninf.mk\nname.mk\n\n// ml : http://www.gobin.info/domainname/ml-template.doc\n// see also: https://en.wikipedia.org/wiki/.ml\nml\ncom.ml\nedu.ml\ngouv.ml\ngov.ml\nnet.ml\norg.ml\npresse.ml\n\n// mm : https://en.wikipedia.org/wiki/.mm\n*.mm\n\n// mn : https://en.wikipedia.org/wiki/.mn\nmn\ngov.mn\nedu.mn\norg.mn\n\n// mo : http://www.monic.net.mo/\nmo\ncom.mo\nnet.mo\norg.mo\nedu.mo\ngov.mo\n\n// mobi : https://en.wikipedia.org/wiki/.mobi\nmobi\n\n// mp : http://www.dot.mp/\n// Confirmed by registry <dcamacho@saipan.com> 2008-06-17\nmp\n\n// mq : https://en.wikipedia.org/wiki/.mq\nmq\n\n// mr : https://en.wikipedia.org/wiki/.mr\nmr\ngov.mr\n\n// ms : http://www.nic.ms/pdf/MS_Domain_Name_Rules.pdf\nms\ncom.ms\nedu.ms\ngov.ms\nnet.ms\norg.ms\n\n// mt : https://www.nic.org.mt/go/policy\n// Submitted by registry <help@nic.org.mt>\nmt\ncom.mt\nedu.mt\nnet.mt\norg.mt\n\n// mu : https://en.wikipedia.org/wiki/.mu\nmu\ncom.mu\nnet.mu\norg.mu\ngov.mu\nac.mu\nco.mu\nor.mu\n\n// museum : https://welcome.museum/wp-content/uploads/2018/05/20180525-Registration-Policy-MUSEUM-EN_VF-2.pdf https://welcome.museum/buy-your-dot-museum-2/\nmuseum\n\n// mv : https://en.wikipedia.org/wiki/.mv\n// "mv" included because, contra Wikipedia, google.mv exists.\nmv\naero.mv\nbiz.mv\ncom.mv\ncoop.mv\nedu.mv\ngov.mv\ninfo.mv\nint.mv\nmil.mv\nmuseum.mv\nname.mv\nnet.mv\norg.mv\npro.mv\n\n// mw : http://www.registrar.mw/\nmw\nac.mw\nbiz.mw\nco.mw\ncom.mw\ncoop.mw\nedu.mw\ngov.mw\nint.mw\nmuseum.mw\nnet.mw\norg.mw\n\n// mx : http://www.nic.mx/\n// Submitted by registry <farias@nic.mx>\nmx\ncom.mx\norg.mx\ngob.mx\nedu.mx\nnet.mx\n\n// my : http://www.mynic.my/\n// Available strings: https://mynic.my/resources/domains/buying-a-domain/\nmy\nbiz.my\ncom.my\nedu.my\ngov.my\nmil.my\nname.my\nnet.my\norg.my\n\n// mz : http://www.uem.mz/\n// Submitted by registry <antonio@uem.mz>\nmz\nac.mz\nadv.mz\nco.mz\nedu.mz\ngov.mz\nmil.mz\nnet.mz\norg.mz\n\n// na : http://www.na-nic.com.na/\n// http://www.info.na/domain/\nna\ninfo.na\npro.na\nname.na\nschool.na\nor.na\ndr.na\nus.na\nmx.na\nca.na\nin.na\ncc.na\ntv.na\nws.na\nmobi.na\nco.na\ncom.na\norg.na\n\n// name : has 2nd-level tlds, but there\'s no list of them\nname\n\n// nc : http://www.cctld.nc/\nnc\nasso.nc\nnom.nc\n\n// ne : https://en.wikipedia.org/wiki/.ne\nne\n\n// net : https://en.wikipedia.org/wiki/.net\nnet\n\n// nf : https://en.wikipedia.org/wiki/.nf\nnf\ncom.nf\nnet.nf\nper.nf\nrec.nf\nweb.nf\narts.nf\nfirm.nf\ninfo.nf\nother.nf\nstore.nf\n\n// ng : http://www.nira.org.ng/index.php/join-us/register-ng-domain/189-nira-slds\nng\ncom.ng\nedu.ng\ngov.ng\ni.ng\nmil.ng\nmobi.ng\nname.ng\nnet.ng\norg.ng\nsch.ng\n\n// ni : http://www.nic.ni/\nni\nac.ni\nbiz.ni\nco.ni\ncom.ni\nedu.ni\ngob.ni\nin.ni\ninfo.ni\nint.ni\nmil.ni\nnet.ni\nnom.ni\norg.ni\nweb.ni\n\n// nl : https://en.wikipedia.org/wiki/.nl\n// https://www.sidn.nl/\n// ccTLD for the Netherlands\nnl\n\n// no : https://www.norid.no/en/om-domenenavn/regelverk-for-no/\n// Norid geographical second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-b/\n// Norid category second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/\n// Norid category second-level domains managed by parties other than Norid : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-d/\n// RSS feed: https://teknisk.norid.no/en/feed/\nno\n// Norid category second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/\nfhs.no\nvgs.no\nfylkesbibl.no\nfolkebibl.no\nmuseum.no\nidrett.no\npriv.no\n// Norid category second-level domains managed by parties other than Norid : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-d/\nmil.no\nstat.no\ndep.no\nkommune.no\nherad.no\n// Norid geographical second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-b/\n// counties\naa.no\nah.no\nbu.no\nfm.no\nhl.no\nhm.no\njan-mayen.no\nmr.no\nnl.no\nnt.no\nof.no\nol.no\noslo.no\nrl.no\nsf.no\nst.no\nsvalbard.no\ntm.no\ntr.no\nva.no\nvf.no\n// primary and lower secondary schools per county\ngs.aa.no\ngs.ah.no\ngs.bu.no\ngs.fm.no\ngs.hl.no\ngs.hm.no\ngs.jan-mayen.no\ngs.mr.no\ngs.nl.no\ngs.nt.no\ngs.of.no\ngs.ol.no\ngs.oslo.no\ngs.rl.no\ngs.sf.no\ngs.st.no\ngs.svalbard.no\ngs.tm.no\ngs.tr.no\ngs.va.no\ngs.vf.no\n// cities\nakrehamn.no\nåkrehamn.no\nalgard.no\nålgård.no\narna.no\nbrumunddal.no\nbryne.no\nbronnoysund.no\nbrønnøysund.no\ndrobak.no\ndrøbak.no\negersund.no\nfetsund.no\nfloro.no\nflorø.no\nfredrikstad.no\nhokksund.no\nhonefoss.no\nhønefoss.no\njessheim.no\njorpeland.no\njørpeland.no\nkirkenes.no\nkopervik.no\nkrokstadelva.no\nlangevag.no\nlangevåg.no\nleirvik.no\nmjondalen.no\nmjøndalen.no\nmo-i-rana.no\nmosjoen.no\nmosjøen.no\nnesoddtangen.no\norkanger.no\nosoyro.no\nosøyro.no\nraholt.no\nråholt.no\nsandnessjoen.no\nsandnessjøen.no\nskedsmokorset.no\nslattum.no\nspjelkavik.no\nstathelle.no\nstavern.no\nstjordalshalsen.no\nstjørdalshalsen.no\ntananger.no\ntranby.no\nvossevangen.no\n// communities\nafjord.no\nåfjord.no\nagdenes.no\nal.no\nål.no\nalesund.no\nålesund.no\nalstahaug.no\nalta.no\náltá.no\nalaheadju.no\nálaheadju.no\nalvdal.no\namli.no\nåmli.no\namot.no\nåmot.no\nandebu.no\nandoy.no\nandøy.no\nandasuolo.no\nardal.no\nårdal.no\naremark.no\narendal.no\nås.no\naseral.no\nåseral.no\nasker.no\naskim.no\naskvoll.no\naskoy.no\naskøy.no\nasnes.no\nåsnes.no\naudnedaln.no\naukra.no\naure.no\naurland.no\naurskog-holand.no\naurskog-høland.no\naustevoll.no\naustrheim.no\naveroy.no\naverøy.no\nbalestrand.no\nballangen.no\nbalat.no\nbálát.no\nbalsfjord.no\nbahccavuotna.no\nbáhccavuotna.no\nbamble.no\nbardu.no\nbeardu.no\nbeiarn.no\nbajddar.no\nbájddar.no\nbaidar.no\nbáidár.no\nberg.no\nbergen.no\nberlevag.no\nberlevåg.no\nbearalvahki.no\nbearalváhki.no\nbindal.no\nbirkenes.no\nbjarkoy.no\nbjarkøy.no\nbjerkreim.no\nbjugn.no\nbodo.no\nbodø.no\nbadaddja.no\nbådåddjå.no\nbudejju.no\nbokn.no\nbremanger.no\nbronnoy.no\nbrønnøy.no\nbygland.no\nbykle.no\nbarum.no\nbærum.no\nbo.telemark.no\nbø.telemark.no\nbo.nordland.no\nbø.nordland.no\nbievat.no\nbievát.no\nbomlo.no\nbømlo.no\nbatsfjord.no\nbåtsfjord.no\nbahcavuotna.no\nbáhcavuotna.no\ndovre.no\ndrammen.no\ndrangedal.no\ndyroy.no\ndyrøy.no\ndonna.no\ndønna.no\neid.no\neidfjord.no\neidsberg.no\neidskog.no\neidsvoll.no\neigersund.no\nelverum.no\nenebakk.no\nengerdal.no\netne.no\netnedal.no\nevenes.no\nevenassi.no\nevenášši.no\nevje-og-hornnes.no\nfarsund.no\nfauske.no\nfuossko.no\nfuoisku.no\nfedje.no\nfet.no\nfinnoy.no\nfinnøy.no\nfitjar.no\nfjaler.no\nfjell.no\nflakstad.no\nflatanger.no\nflekkefjord.no\nflesberg.no\nflora.no\nfla.no\nflå.no\nfolldal.no\nforsand.no\nfosnes.no\nfrei.no\nfrogn.no\nfroland.no\nfrosta.no\nfrana.no\nfræna.no\nfroya.no\nfrøya.no\nfusa.no\nfyresdal.no\nforde.no\nførde.no\ngamvik.no\ngangaviika.no\ngáŋgaviika.no\ngaular.no\ngausdal.no\ngildeskal.no\ngildeskål.no\ngiske.no\ngjemnes.no\ngjerdrum.no\ngjerstad.no\ngjesdal.no\ngjovik.no\ngjøvik.no\ngloppen.no\ngol.no\ngran.no\ngrane.no\ngranvin.no\ngratangen.no\ngrimstad.no\ngrong.no\nkraanghke.no\nkråanghke.no\ngrue.no\ngulen.no\nhadsel.no\nhalden.no\nhalsa.no\nhamar.no\nhamaroy.no\nhabmer.no\nhábmer.no\nhapmir.no\nhápmir.no\nhammerfest.no\nhammarfeasta.no\nhámmárfeasta.no\nharam.no\nhareid.no\nharstad.no\nhasvik.no\naknoluokta.no\nákŋoluokta.no\nhattfjelldal.no\naarborte.no\nhaugesund.no\nhemne.no\nhemnes.no\nhemsedal.no\nheroy.more-og-romsdal.no\nherøy.møre-og-romsdal.no\nheroy.nordland.no\nherøy.nordland.no\nhitra.no\nhjartdal.no\nhjelmeland.no\nhobol.no\nhobøl.no\nhof.no\nhol.no\nhole.no\nholmestrand.no\nholtalen.no\nholtålen.no\nhornindal.no\nhorten.no\nhurdal.no\nhurum.no\nhvaler.no\nhyllestad.no\nhagebostad.no\nhægebostad.no\nhoyanger.no\nhøyanger.no\nhoylandet.no\nhøylandet.no\nha.no\nhå.no\nibestad.no\ninderoy.no\ninderøy.no\niveland.no\njevnaker.no\njondal.no\njolster.no\njølster.no\nkarasjok.no\nkarasjohka.no\nkárášjohka.no\nkarlsoy.no\ngalsa.no\ngálsá.no\nkarmoy.no\nkarmøy.no\nkautokeino.no\nguovdageaidnu.no\nklepp.no\nklabu.no\nklæbu.no\nkongsberg.no\nkongsvinger.no\nkragero.no\nkragerø.no\nkristiansand.no\nkristiansund.no\nkrodsherad.no\nkrødsherad.no\nkvalsund.no\nrahkkeravju.no\nráhkkerávju.no\nkvam.no\nkvinesdal.no\nkvinnherad.no\nkviteseid.no\nkvitsoy.no\nkvitsøy.no\nkvafjord.no\nkvæfjord.no\ngiehtavuoatna.no\nkvanangen.no\nkvænangen.no\nnavuotna.no\nnávuotna.no\nkafjord.no\nkåfjord.no\ngaivuotna.no\ngáivuotna.no\nlarvik.no\nlavangen.no\nlavagis.no\nloabat.no\nloabát.no\nlebesby.no\ndavvesiida.no\nleikanger.no\nleirfjord.no\nleka.no\nleksvik.no\nlenvik.no\nleangaviika.no\nleaŋgaviika.no\nlesja.no\nlevanger.no\nlier.no\nlierne.no\nlillehammer.no\nlillesand.no\nlindesnes.no\nlindas.no\nlindås.no\nlom.no\nloppa.no\nlahppi.no\nláhppi.no\nlund.no\nlunner.no\nluroy.no\nlurøy.no\nluster.no\nlyngdal.no\nlyngen.no\nivgu.no\nlardal.no\nlerdal.no\nlærdal.no\nlodingen.no\nlødingen.no\nlorenskog.no\nlørenskog.no\nloten.no\nløten.no\nmalvik.no\nmasoy.no\nmåsøy.no\nmuosat.no\nmuosát.no\nmandal.no\nmarker.no\nmarnardal.no\nmasfjorden.no\nmeland.no\nmeldal.no\nmelhus.no\nmeloy.no\nmeløy.no\nmeraker.no\nmeråker.no\nmoareke.no\nmoåreke.no\nmidsund.no\nmidtre-gauldal.no\nmodalen.no\nmodum.no\nmolde.no\nmoskenes.no\nmoss.no\nmosvik.no\nmalselv.no\nmålselv.no\nmalatvuopmi.no\nmálatvuopmi.no\nnamdalseid.no\naejrie.no\nnamsos.no\nnamsskogan.no\nnaamesjevuemie.no\nnååmesjevuemie.no\nlaakesvuemie.no\nnannestad.no\nnarvik.no\nnarviika.no\nnaustdal.no\nnedre-eiker.no\nnes.akershus.no\nnes.buskerud.no\nnesna.no\nnesodden.no\nnesseby.no\nunjarga.no\nunjárga.no\nnesset.no\nnissedal.no\nnittedal.no\nnord-aurdal.no\nnord-fron.no\nnord-odal.no\nnorddal.no\nnordkapp.no\ndavvenjarga.no\ndavvenjárga.no\nnordre-land.no\nnordreisa.no\nraisa.no\nráisa.no\nnore-og-uvdal.no\nnotodden.no\nnaroy.no\nnærøy.no\nnotteroy.no\nnøtterøy.no\nodda.no\noksnes.no\nøksnes.no\noppdal.no\noppegard.no\noppegård.no\norkdal.no\norland.no\nørland.no\norskog.no\nørskog.no\norsta.no\nørsta.no\nos.hedmark.no\nos.hordaland.no\nosen.no\nosteroy.no\nosterøy.no\nostre-toten.no\nøstre-toten.no\noverhalla.no\novre-eiker.no\nøvre-eiker.no\noyer.no\nøyer.no\noygarden.no\nøygarden.no\noystre-slidre.no\nøystre-slidre.no\nporsanger.no\nporsangu.no\nporsáŋgu.no\nporsgrunn.no\nradoy.no\nradøy.no\nrakkestad.no\nrana.no\nruovat.no\nrandaberg.no\nrauma.no\nrendalen.no\nrennebu.no\nrennesoy.no\nrennesøy.no\nrindal.no\nringebu.no\nringerike.no\nringsaker.no\nrissa.no\nrisor.no\nrisør.no\nroan.no\nrollag.no\nrygge.no\nralingen.no\nrælingen.no\nrodoy.no\nrødøy.no\nromskog.no\nrømskog.no\nroros.no\nrøros.no\nrost.no\nrøst.no\nroyken.no\nrøyken.no\nroyrvik.no\nrøyrvik.no\nrade.no\nråde.no\nsalangen.no\nsiellak.no\nsaltdal.no\nsalat.no\nsálát.no\nsálat.no\nsamnanger.no\nsande.more-og-romsdal.no\nsande.møre-og-romsdal.no\nsande.vestfold.no\nsandefjord.no\nsandnes.no\nsandoy.no\nsandøy.no\nsarpsborg.no\nsauda.no\nsauherad.no\nsel.no\nselbu.no\nselje.no\nseljord.no\nsigdal.no\nsiljan.no\nsirdal.no\nskaun.no\nskedsmo.no\nski.no\nskien.no\nskiptvet.no\nskjervoy.no\nskjervøy.no\nskierva.no\nskiervá.no\nskjak.no\nskjåk.no\nskodje.no\nskanland.no\nskånland.no\nskanit.no\nskánit.no\nsmola.no\nsmøla.no\nsnillfjord.no\nsnasa.no\nsnåsa.no\nsnoasa.no\nsnaase.no\nsnåase.no\nsogndal.no\nsokndal.no\nsola.no\nsolund.no\nsongdalen.no\nsortland.no\nspydeberg.no\nstange.no\nstavanger.no\nsteigen.no\nsteinkjer.no\nstjordal.no\nstjørdal.no\nstokke.no\nstor-elvdal.no\nstord.no\nstordal.no\nstorfjord.no\nomasvuotna.no\nstrand.no\nstranda.no\nstryn.no\nsula.no\nsuldal.no\nsund.no\nsunndal.no\nsurnadal.no\nsveio.no\nsvelvik.no\nsykkylven.no\nsogne.no\nsøgne.no\nsomna.no\nsømna.no\nsondre-land.no\nsøndre-land.no\nsor-aurdal.no\nsør-aurdal.no\nsor-fron.no\nsør-fron.no\nsor-odal.no\nsør-odal.no\nsor-varanger.no\nsør-varanger.no\nmatta-varjjat.no\nmátta-várjjat.no\nsorfold.no\nsørfold.no\nsorreisa.no\nsørreisa.no\nsorum.no\nsørum.no\ntana.no\ndeatnu.no\ntime.no\ntingvoll.no\ntinn.no\ntjeldsund.no\ndielddanuorri.no\ntjome.no\ntjøme.no\ntokke.no\ntolga.no\ntorsken.no\ntranoy.no\ntranøy.no\ntromso.no\ntromsø.no\ntromsa.no\nromsa.no\ntrondheim.no\ntroandin.no\ntrysil.no\ntrana.no\ntræna.no\ntrogstad.no\ntrøgstad.no\ntvedestrand.no\ntydal.no\ntynset.no\ntysfjord.no\ndivtasvuodna.no\ndivttasvuotna.no\ntysnes.no\ntysvar.no\ntysvær.no\ntonsberg.no\ntønsberg.no\nullensaker.no\nullensvang.no\nulvik.no\nutsira.no\nvadso.no\nvadsø.no\ncahcesuolo.no\nčáhcesuolo.no\nvaksdal.no\nvalle.no\nvang.no\nvanylven.no\nvardo.no\nvardø.no\nvarggat.no\nvárggát.no\nvefsn.no\nvaapste.no\nvega.no\nvegarshei.no\nvegårshei.no\nvennesla.no\nverdal.no\nverran.no\nvestby.no\nvestnes.no\nvestre-slidre.no\nvestre-toten.no\nvestvagoy.no\nvestvågøy.no\nvevelstad.no\nvik.no\nvikna.no\nvindafjord.no\nvolda.no\nvoss.no\nvaroy.no\nværøy.no\nvagan.no\nvågan.no\nvoagat.no\nvagsoy.no\nvågsøy.no\nvaga.no\nvågå.no\nvaler.ostfold.no\nvåler.østfold.no\nvaler.hedmark.no\nvåler.hedmark.no\n\n// np : http://www.mos.com.np/register.html\n*.np\n\n// nr : http://cenpac.net.nr/dns/index.html\n// Submitted by registry <technician@cenpac.net.nr>\nnr\nbiz.nr\ninfo.nr\ngov.nr\nedu.nr\norg.nr\nnet.nr\ncom.nr\n\n// nu : https://en.wikipedia.org/wiki/.nu\nnu\n\n// nz : https://en.wikipedia.org/wiki/.nz\n// Submitted by registry <jay@nzrs.net.nz>\nnz\nac.nz\nco.nz\ncri.nz\ngeek.nz\ngen.nz\ngovt.nz\nhealth.nz\niwi.nz\nkiwi.nz\nmaori.nz\nmil.nz\nmāori.nz\nnet.nz\norg.nz\nparliament.nz\nschool.nz\n\n// om : https://en.wikipedia.org/wiki/.om\nom\nco.om\ncom.om\nedu.om\ngov.om\nmed.om\nmuseum.om\nnet.om\norg.om\npro.om\n\n// onion : https://tools.ietf.org/html/rfc7686\nonion\n\n// org : https://en.wikipedia.org/wiki/.org\norg\n\n// pa : http://www.nic.pa/\n// Some additional second level "domains" resolve directly as hostnames, such as\n// pannet.pa, so we add a rule for "pa".\npa\nac.pa\ngob.pa\ncom.pa\norg.pa\nsld.pa\nedu.pa\nnet.pa\ning.pa\nabo.pa\nmed.pa\nnom.pa\n\n// pe : https://www.nic.pe/InformeFinalComision.pdf\npe\nedu.pe\ngob.pe\nnom.pe\nmil.pe\norg.pe\ncom.pe\nnet.pe\n\n// pf : http://www.gobin.info/domainname/formulaire-pf.pdf\npf\ncom.pf\norg.pf\nedu.pf\n\n// pg : https://en.wikipedia.org/wiki/.pg\n*.pg\n\n// ph : http://www.domains.ph/FAQ2.asp\n// Submitted by registry <jed@email.com.ph>\nph\ncom.ph\nnet.ph\norg.ph\ngov.ph\nedu.ph\nngo.ph\nmil.ph\ni.ph\n\n// pk : http://pk5.pknic.net.pk/pk5/msgNamepk.PK\npk\ncom.pk\nnet.pk\nedu.pk\norg.pk\nfam.pk\nbiz.pk\nweb.pk\ngov.pk\ngob.pk\ngok.pk\ngon.pk\ngop.pk\ngos.pk\ninfo.pk\n\n// pl http://www.dns.pl/english/index.html\n// Submitted by registry\npl\ncom.pl\nnet.pl\norg.pl\n// pl functional domains (http://www.dns.pl/english/index.html)\naid.pl\nagro.pl\natm.pl\nauto.pl\nbiz.pl\nedu.pl\ngmina.pl\ngsm.pl\ninfo.pl\nmail.pl\nmiasta.pl\nmedia.pl\nmil.pl\nnieruchomosci.pl\nnom.pl\npc.pl\npowiat.pl\npriv.pl\nrealestate.pl\nrel.pl\nsex.pl\nshop.pl\nsklep.pl\nsos.pl\nszkola.pl\ntargi.pl\ntm.pl\ntourism.pl\ntravel.pl\nturystyka.pl\n// Government domains\ngov.pl\nap.gov.pl\ngriw.gov.pl\nic.gov.pl\nis.gov.pl\nkmpsp.gov.pl\nkonsulat.gov.pl\nkppsp.gov.pl\nkwp.gov.pl\nkwpsp.gov.pl\nmup.gov.pl\nmw.gov.pl\noia.gov.pl\noirm.gov.pl\noke.gov.pl\noow.gov.pl\noschr.gov.pl\noum.gov.pl\npa.gov.pl\npinb.gov.pl\npiw.gov.pl\npo.gov.pl\npr.gov.pl\npsp.gov.pl\npsse.gov.pl\npup.gov.pl\nrzgw.gov.pl\nsa.gov.pl\nsdn.gov.pl\nsko.gov.pl\nso.gov.pl\nsr.gov.pl\nstarostwo.gov.pl\nug.gov.pl\nugim.gov.pl\num.gov.pl\numig.gov.pl\nupow.gov.pl\nuppo.gov.pl\nus.gov.pl\nuw.gov.pl\nuzs.gov.pl\nwif.gov.pl\nwiih.gov.pl\nwinb.gov.pl\nwios.gov.pl\nwitd.gov.pl\nwiw.gov.pl\nwkz.gov.pl\nwsa.gov.pl\nwskr.gov.pl\nwsse.gov.pl\nwuoz.gov.pl\nwzmiuw.gov.pl\nzp.gov.pl\nzpisdn.gov.pl\n// pl regional domains (http://www.dns.pl/english/index.html)\naugustow.pl\nbabia-gora.pl\nbedzin.pl\nbeskidy.pl\nbialowieza.pl\nbialystok.pl\nbielawa.pl\nbieszczady.pl\nboleslawiec.pl\nbydgoszcz.pl\nbytom.pl\ncieszyn.pl\nczeladz.pl\nczest.pl\ndlugoleka.pl\nelblag.pl\nelk.pl\nglogow.pl\ngniezno.pl\ngorlice.pl\ngrajewo.pl\nilawa.pl\njaworzno.pl\njelenia-gora.pl\njgora.pl\nkalisz.pl\nkazimierz-dolny.pl\nkarpacz.pl\nkartuzy.pl\nkaszuby.pl\nkatowice.pl\nkepno.pl\nketrzyn.pl\nklodzko.pl\nkobierzyce.pl\nkolobrzeg.pl\nkonin.pl\nkonskowola.pl\nkutno.pl\nlapy.pl\nlebork.pl\nlegnica.pl\nlezajsk.pl\nlimanowa.pl\nlomza.pl\nlowicz.pl\nlubin.pl\nlukow.pl\nmalbork.pl\nmalopolska.pl\nmazowsze.pl\nmazury.pl\nmielec.pl\nmielno.pl\nmragowo.pl\nnaklo.pl\nnowaruda.pl\nnysa.pl\nolawa.pl\nolecko.pl\nolkusz.pl\nolsztyn.pl\nopoczno.pl\nopole.pl\nostroda.pl\nostroleka.pl\nostrowiec.pl\nostrowwlkp.pl\npila.pl\npisz.pl\npodhale.pl\npodlasie.pl\npolkowice.pl\npomorze.pl\npomorskie.pl\nprochowice.pl\npruszkow.pl\nprzeworsk.pl\npulawy.pl\nradom.pl\nrawa-maz.pl\nrybnik.pl\nrzeszow.pl\nsanok.pl\nsejny.pl\nslask.pl\nslupsk.pl\nsosnowiec.pl\nstalowa-wola.pl\nskoczow.pl\nstarachowice.pl\nstargard.pl\nsuwalki.pl\nswidnica.pl\nswiebodzin.pl\nswinoujscie.pl\nszczecin.pl\nszczytno.pl\ntarnobrzeg.pl\ntgory.pl\nturek.pl\ntychy.pl\nustka.pl\nwalbrzych.pl\nwarmia.pl\nwarszawa.pl\nwaw.pl\nwegrow.pl\nwielun.pl\nwlocl.pl\nwloclawek.pl\nwodzislaw.pl\nwolomin.pl\nwroclaw.pl\nzachpomor.pl\nzagan.pl\nzarow.pl\nzgora.pl\nzgorzelec.pl\n\n// pm : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\npm\n\n// pn : http://www.government.pn/PnRegistry/policies.htm\npn\ngov.pn\nco.pn\norg.pn\nedu.pn\nnet.pn\n\n// post : https://en.wikipedia.org/wiki/.post\npost\n\n// pr : http://www.nic.pr/index.asp?f=1\npr\ncom.pr\nnet.pr\norg.pr\ngov.pr\nedu.pr\nisla.pr\npro.pr\nbiz.pr\ninfo.pr\nname.pr\n// these aren\'t mentioned on nic.pr, but on https://en.wikipedia.org/wiki/.pr\nest.pr\nprof.pr\nac.pr\n\n// pro : http://registry.pro/get-pro\npro\naaa.pro\naca.pro\nacct.pro\navocat.pro\nbar.pro\ncpa.pro\neng.pro\njur.pro\nlaw.pro\nmed.pro\nrecht.pro\n\n// ps : https://en.wikipedia.org/wiki/.ps\n// http://www.nic.ps/registration/policy.html#reg\nps\nedu.ps\ngov.ps\nsec.ps\nplo.ps\ncom.ps\norg.ps\nnet.ps\n\n// pt : https://www.dns.pt/en/domain/pt-terms-and-conditions-registration-rules/\npt\nnet.pt\ngov.pt\norg.pt\nedu.pt\nint.pt\npubl.pt\ncom.pt\nnome.pt\n\n// pw : https://en.wikipedia.org/wiki/.pw\npw\nco.pw\nne.pw\nor.pw\ned.pw\ngo.pw\nbelau.pw\n\n// py : http://www.nic.py/pautas.html#seccion_9\n// Submitted by registry\npy\ncom.py\ncoop.py\nedu.py\ngov.py\nmil.py\nnet.py\norg.py\n\n// qa : http://domains.qa/en/\nqa\ncom.qa\nedu.qa\ngov.qa\nmil.qa\nname.qa\nnet.qa\norg.qa\nsch.qa\n\n// re : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\nre\nasso.re\ncom.re\nnom.re\n\n// ro : http://www.rotld.ro/\nro\narts.ro\ncom.ro\nfirm.ro\ninfo.ro\nnom.ro\nnt.ro\norg.ro\nrec.ro\nstore.ro\ntm.ro\nwww.ro\n\n// rs : https://www.rnids.rs/en/domains/national-domains\nrs\nac.rs\nco.rs\nedu.rs\ngov.rs\nin.rs\norg.rs\n\n// ru : https://cctld.ru/files/pdf/docs/en/rules_ru-rf.pdf\n// Submitted by George Georgievsky <gug@cctld.ru>\nru\n\n// rw : https://www.ricta.org.rw/sites/default/files/resources/registry_registrar_contract_0.pdf\nrw\nac.rw\nco.rw\ncoop.rw\ngov.rw\nmil.rw\nnet.rw\norg.rw\n\n// sa : http://www.nic.net.sa/\nsa\ncom.sa\nnet.sa\norg.sa\ngov.sa\nmed.sa\npub.sa\nedu.sa\nsch.sa\n\n// sb : http://www.sbnic.net.sb/\n// Submitted by registry <lee.humphries@telekom.com.sb>\nsb\ncom.sb\nedu.sb\ngov.sb\nnet.sb\norg.sb\n\n// sc : http://www.nic.sc/\nsc\ncom.sc\ngov.sc\nnet.sc\norg.sc\nedu.sc\n\n// sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm\n// Submitted by registry <admin@isoc.sd>\nsd\ncom.sd\nnet.sd\norg.sd\nedu.sd\nmed.sd\ntv.sd\ngov.sd\ninfo.sd\n\n// se : https://en.wikipedia.org/wiki/.se\n// Submitted by registry <patrik.wallstrom@iis.se>\nse\na.se\nac.se\nb.se\nbd.se\nbrand.se\nc.se\nd.se\ne.se\nf.se\nfh.se\nfhsk.se\nfhv.se\ng.se\nh.se\ni.se\nk.se\nkomforb.se\nkommunalforbund.se\nkomvux.se\nl.se\nlanbib.se\nm.se\nn.se\nnaturbruksgymn.se\no.se\norg.se\np.se\nparti.se\npp.se\npress.se\nr.se\ns.se\nt.se\ntm.se\nu.se\nw.se\nx.se\ny.se\nz.se\n\n// sg : http://www.nic.net.sg/page/registration-policies-procedures-and-guidelines\nsg\ncom.sg\nnet.sg\norg.sg\ngov.sg\nedu.sg\nper.sg\n\n// sh : http://nic.sh/rules.htm\nsh\ncom.sh\nnet.sh\ngov.sh\norg.sh\nmil.sh\n\n// si : https://en.wikipedia.org/wiki/.si\nsi\n\n// sj : No registrations at this time.\n// Submitted by registry <jarle@uninett.no>\nsj\n\n// sk : https://en.wikipedia.org/wiki/.sk\n// list of 2nd level domains ?\nsk\n\n// sl : http://www.nic.sl\n// Submitted by registry <adam@neoip.com>\nsl\ncom.sl\nnet.sl\nedu.sl\ngov.sl\norg.sl\n\n// sm : https://en.wikipedia.org/wiki/.sm\nsm\n\n// sn : https://en.wikipedia.org/wiki/.sn\nsn\nart.sn\ncom.sn\nedu.sn\ngouv.sn\norg.sn\nperso.sn\nuniv.sn\n\n// so : http://sonic.so/policies/\nso\ncom.so\nedu.so\ngov.so\nme.so\nnet.so\norg.so\n\n// sr : https://en.wikipedia.org/wiki/.sr\nsr\n\n// ss : https://registry.nic.ss/\n// Submitted by registry <technical@nic.ss>\nss\nbiz.ss\ncom.ss\nedu.ss\ngov.ss\nme.ss\nnet.ss\norg.ss\nsch.ss\n\n// st : http://www.nic.st/html/policyrules/\nst\nco.st\ncom.st\nconsulado.st\nedu.st\nembaixada.st\nmil.st\nnet.st\norg.st\nprincipe.st\nsaotome.st\nstore.st\n\n// su : https://en.wikipedia.org/wiki/.su\nsu\n\n// sv : http://www.svnet.org.sv/niveldos.pdf\nsv\ncom.sv\nedu.sv\ngob.sv\norg.sv\nred.sv\n\n// sx : https://en.wikipedia.org/wiki/.sx\n// Submitted by registry <jcvignes@openregistry.com>\nsx\ngov.sx\n\n// sy : https://en.wikipedia.org/wiki/.sy\n// see also: http://www.gobin.info/domainname/sy.doc\nsy\nedu.sy\ngov.sy\nnet.sy\nmil.sy\ncom.sy\norg.sy\n\n// sz : https://en.wikipedia.org/wiki/.sz\n// http://www.sispa.org.sz/\nsz\nco.sz\nac.sz\norg.sz\n\n// tc : https://en.wikipedia.org/wiki/.tc\ntc\n\n// td : https://en.wikipedia.org/wiki/.td\ntd\n\n// tel: https://en.wikipedia.org/wiki/.tel\n// http://www.telnic.org/\ntel\n\n// tf : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\ntf\n\n// tg : https://en.wikipedia.org/wiki/.tg\n// http://www.nic.tg/\ntg\n\n// th : https://en.wikipedia.org/wiki/.th\n// Submitted by registry <krit@thains.co.th>\nth\nac.th\nco.th\ngo.th\nin.th\nmi.th\nnet.th\nor.th\n\n// tj : http://www.nic.tj/policy.html\ntj\nac.tj\nbiz.tj\nco.tj\ncom.tj\nedu.tj\ngo.tj\ngov.tj\nint.tj\nmil.tj\nname.tj\nnet.tj\nnic.tj\norg.tj\ntest.tj\nweb.tj\n\n// tk : https://en.wikipedia.org/wiki/.tk\ntk\n\n// tl : https://en.wikipedia.org/wiki/.tl\ntl\ngov.tl\n\n// tm : http://www.nic.tm/local.html\ntm\ncom.tm\nco.tm\norg.tm\nnet.tm\nnom.tm\ngov.tm\nmil.tm\nedu.tm\n\n// tn : http://www.registre.tn/fr/\n// https://whois.ati.tn/\ntn\ncom.tn\nens.tn\nfin.tn\ngov.tn\nind.tn\ninfo.tn\nintl.tn\nmincom.tn\nnat.tn\nnet.tn\norg.tn\nperso.tn\ntourism.tn\n\n// to : https://en.wikipedia.org/wiki/.to\n// Submitted by registry <egullich@colo.to>\nto\ncom.to\ngov.to\nnet.to\norg.to\nedu.to\nmil.to\n\n// tr : https://nic.tr/\n// https://nic.tr/forms/eng/policies.pdf\n// https://nic.tr/index.php?USRACTN=PRICELST\ntr\nav.tr\nbbs.tr\nbel.tr\nbiz.tr\ncom.tr\ndr.tr\nedu.tr\ngen.tr\ngov.tr\ninfo.tr\nmil.tr\nk12.tr\nkep.tr\nname.tr\nnet.tr\norg.tr\npol.tr\ntel.tr\ntsk.tr\ntv.tr\nweb.tr\n// Used by Northern Cyprus\nnc.tr\n// Used by government agencies of Northern Cyprus\ngov.nc.tr\n\n// tt : http://www.nic.tt/\ntt\nco.tt\ncom.tt\norg.tt\nnet.tt\nbiz.tt\ninfo.tt\npro.tt\nint.tt\ncoop.tt\njobs.tt\nmobi.tt\ntravel.tt\nmuseum.tt\naero.tt\nname.tt\ngov.tt\nedu.tt\n\n// tv : https://en.wikipedia.org/wiki/.tv\n// Not listing any 2LDs as reserved since none seem to exist in practice,\n// Wikipedia notwithstanding.\ntv\n\n// tw : https://en.wikipedia.org/wiki/.tw\ntw\nedu.tw\ngov.tw\nmil.tw\ncom.tw\nnet.tw\norg.tw\nidv.tw\ngame.tw\nebiz.tw\nclub.tw\n網路.tw\n組織.tw\n商業.tw\n\n// tz : http://www.tznic.or.tz/index.php/domains\n// Submitted by registry <manager@tznic.or.tz>\ntz\nac.tz\nco.tz\ngo.tz\nhotel.tz\ninfo.tz\nme.tz\nmil.tz\nmobi.tz\nne.tz\nor.tz\nsc.tz\ntv.tz\n\n// ua : https://hostmaster.ua/policy/?ua\n// Submitted by registry <dk@cctld.ua>\nua\n// ua 2LD\ncom.ua\nedu.ua\ngov.ua\nin.ua\nnet.ua\norg.ua\n// ua geographic names\n// https://hostmaster.ua/2ld/\ncherkassy.ua\ncherkasy.ua\nchernigov.ua\nchernihiv.ua\nchernivtsi.ua\nchernovtsy.ua\nck.ua\ncn.ua\ncr.ua\ncrimea.ua\ncv.ua\ndn.ua\ndnepropetrovsk.ua\ndnipropetrovsk.ua\ndonetsk.ua\ndp.ua\nif.ua\nivano-frankivsk.ua\nkh.ua\nkharkiv.ua\nkharkov.ua\nkherson.ua\nkhmelnitskiy.ua\nkhmelnytskyi.ua\nkiev.ua\nkirovograd.ua\nkm.ua\nkr.ua\nkropyvnytskyi.ua\nkrym.ua\nks.ua\nkv.ua\nkyiv.ua\nlg.ua\nlt.ua\nlugansk.ua\nluhansk.ua\nlutsk.ua\nlv.ua\nlviv.ua\nmk.ua\nmykolaiv.ua\nnikolaev.ua\nod.ua\nodesa.ua\nodessa.ua\npl.ua\npoltava.ua\nrivne.ua\nrovno.ua\nrv.ua\nsb.ua\nsebastopol.ua\nsevastopol.ua\nsm.ua\nsumy.ua\nte.ua\nternopil.ua\nuz.ua\nuzhgorod.ua\nuzhhorod.ua\nvinnica.ua\nvinnytsia.ua\nvn.ua\nvolyn.ua\nyalta.ua\nzakarpattia.ua\nzaporizhzhe.ua\nzaporizhzhia.ua\nzhitomir.ua\nzhytomyr.ua\nzp.ua\nzt.ua\n\n// ug : https://www.registry.co.ug/\nug\nco.ug\nor.ug\nac.ug\nsc.ug\ngo.ug\nne.ug\ncom.ug\norg.ug\n\n// uk : https://en.wikipedia.org/wiki/.uk\n// Submitted by registry <Michael.Daly@nominet.org.uk>\nuk\nac.uk\nco.uk\ngov.uk\nltd.uk\nme.uk\nnet.uk\nnhs.uk\norg.uk\nplc.uk\npolice.uk\n*.sch.uk\n\n// us : https://en.wikipedia.org/wiki/.us\nus\ndni.us\nfed.us\nisa.us\nkids.us\nnsn.us\n// us geographic names\nak.us\nal.us\nar.us\nas.us\naz.us\nca.us\nco.us\nct.us\ndc.us\nde.us\nfl.us\nga.us\ngu.us\nhi.us\nia.us\nid.us\nil.us\nin.us\nks.us\nky.us\nla.us\nma.us\nmd.us\nme.us\nmi.us\nmn.us\nmo.us\nms.us\nmt.us\nnc.us\nnd.us\nne.us\nnh.us\nnj.us\nnm.us\nnv.us\nny.us\noh.us\nok.us\nor.us\npa.us\npr.us\nri.us\nsc.us\nsd.us\ntn.us\ntx.us\nut.us\nvi.us\nvt.us\nva.us\nwa.us\nwi.us\nwv.us\nwy.us\n// The registrar notes several more specific domains available in each state,\n// such as state.*.us, dst.*.us, etc., but resolution of these is somewhat\n// haphazard; in some states these domains resolve as addresses, while in others\n// only subdomains are available, or even nothing at all. We include the\n// most common ones where it\'s clear that different sites are different\n// entities.\nk12.ak.us\nk12.al.us\nk12.ar.us\nk12.as.us\nk12.az.us\nk12.ca.us\nk12.co.us\nk12.ct.us\nk12.dc.us\nk12.fl.us\nk12.ga.us\nk12.gu.us\n// k12.hi.us Bug 614565 - Hawaii has a state-wide DOE login\nk12.ia.us\nk12.id.us\nk12.il.us\nk12.in.us\nk12.ks.us\nk12.ky.us\nk12.la.us\nk12.ma.us\nk12.md.us\nk12.me.us\nk12.mi.us\nk12.mn.us\nk12.mo.us\nk12.ms.us\nk12.mt.us\nk12.nc.us\n// k12.nd.us Bug 1028347 - Removed at request of Travis Rosso <trossow@nd.gov>\nk12.ne.us\nk12.nh.us\nk12.nj.us\nk12.nm.us\nk12.nv.us\nk12.ny.us\nk12.oh.us\nk12.ok.us\nk12.or.us\nk12.pa.us\nk12.pr.us\n// k12.ri.us Removed at request of Kim Cournoyer <netsupport@staff.ri.net>\nk12.sc.us\n// k12.sd.us Bug 934131 - Removed at request of James Booze <James.Booze@k12.sd.us>\nk12.tn.us\nk12.tx.us\nk12.ut.us\nk12.vi.us\nk12.vt.us\nk12.va.us\nk12.wa.us\nk12.wi.us\n// k12.wv.us Bug 947705 - Removed at request of Verne Britton <verne@wvnet.edu>\nk12.wy.us\ncc.ak.us\ncc.al.us\ncc.ar.us\ncc.as.us\ncc.az.us\ncc.ca.us\ncc.co.us\ncc.ct.us\ncc.dc.us\ncc.de.us\ncc.fl.us\ncc.ga.us\ncc.gu.us\ncc.hi.us\ncc.ia.us\ncc.id.us\ncc.il.us\ncc.in.us\ncc.ks.us\ncc.ky.us\ncc.la.us\ncc.ma.us\ncc.md.us\ncc.me.us\ncc.mi.us\ncc.mn.us\ncc.mo.us\ncc.ms.us\ncc.mt.us\ncc.nc.us\ncc.nd.us\ncc.ne.us\ncc.nh.us\ncc.nj.us\ncc.nm.us\ncc.nv.us\ncc.ny.us\ncc.oh.us\ncc.ok.us\ncc.or.us\ncc.pa.us\ncc.pr.us\ncc.ri.us\ncc.sc.us\ncc.sd.us\ncc.tn.us\ncc.tx.us\ncc.ut.us\ncc.vi.us\ncc.vt.us\ncc.va.us\ncc.wa.us\ncc.wi.us\ncc.wv.us\ncc.wy.us\nlib.ak.us\nlib.al.us\nlib.ar.us\nlib.as.us\nlib.az.us\nlib.ca.us\nlib.co.us\nlib.ct.us\nlib.dc.us\n// lib.de.us Issue #243 - Moved to Private section at request of Ed Moore <Ed.Moore@lib.de.us>\nlib.fl.us\nlib.ga.us\nlib.gu.us\nlib.hi.us\nlib.ia.us\nlib.id.us\nlib.il.us\nlib.in.us\nlib.ks.us\nlib.ky.us\nlib.la.us\nlib.ma.us\nlib.md.us\nlib.me.us\nlib.mi.us\nlib.mn.us\nlib.mo.us\nlib.ms.us\nlib.mt.us\nlib.nc.us\nlib.nd.us\nlib.ne.us\nlib.nh.us\nlib.nj.us\nlib.nm.us\nlib.nv.us\nlib.ny.us\nlib.oh.us\nlib.ok.us\nlib.or.us\nlib.pa.us\nlib.pr.us\nlib.ri.us\nlib.sc.us\nlib.sd.us\nlib.tn.us\nlib.tx.us\nlib.ut.us\nlib.vi.us\nlib.vt.us\nlib.va.us\nlib.wa.us\nlib.wi.us\n// lib.wv.us Bug 941670 - Removed at request of Larry W Arnold <arnold@wvlc.lib.wv.us>\nlib.wy.us\n// k12.ma.us contains school districts in Massachusetts. The 4LDs are\n// managed independently except for private (PVT), charter (CHTR) and\n// parochial (PAROCH) schools. Those are delegated directly to the\n// 5LD operators. <k12-ma-hostmaster _ at _ rsuc.gweep.net>\npvt.k12.ma.us\nchtr.k12.ma.us\nparoch.k12.ma.us\n// Merit Network, Inc. maintains the registry for =~ /(k12|cc|lib).mi.us/ and the following\n// see also: http://domreg.merit.edu\n// see also: whois -h whois.domreg.merit.edu help\nann-arbor.mi.us\ncog.mi.us\ndst.mi.us\neaton.mi.us\ngen.mi.us\nmus.mi.us\ntec.mi.us\nwashtenaw.mi.us\n\n// uy : http://www.nic.org.uy/\nuy\ncom.uy\nedu.uy\ngub.uy\nmil.uy\nnet.uy\norg.uy\n\n// uz : http://www.reg.uz/\nuz\nco.uz\ncom.uz\nnet.uz\norg.uz\n\n// va : https://en.wikipedia.org/wiki/.va\nva\n\n// vc : https://en.wikipedia.org/wiki/.vc\n// Submitted by registry <kshah@ca.afilias.info>\nvc\ncom.vc\nnet.vc\norg.vc\ngov.vc\nmil.vc\nedu.vc\n\n// ve : https://registro.nic.ve/\n// Submitted by registry nic@nic.ve and nicve@conatel.gob.ve\nve\narts.ve\nbib.ve\nco.ve\ncom.ve\ne12.ve\nedu.ve\nfirm.ve\ngob.ve\ngov.ve\ninfo.ve\nint.ve\nmil.ve\nnet.ve\nnom.ve\norg.ve\nrar.ve\nrec.ve\nstore.ve\ntec.ve\nweb.ve\n\n// vg : https://en.wikipedia.org/wiki/.vg\nvg\n\n// vi : http://www.nic.vi/newdomainform.htm\n// http://www.nic.vi/Domain_Rules/body_domain_rules.html indicates some other\n// TLDs are "reserved", such as edu.vi and gov.vi, but doesn\'t actually say they\n// are available for registration (which they do not seem to be).\nvi\nco.vi\ncom.vi\nk12.vi\nnet.vi\norg.vi\n\n// vn : https://www.vnnic.vn/en/domain/cctld-vn\n// https://vnnic.vn/sites/default/files/tailieu/vn.cctld.domains.txt\nvn\nac.vn\nai.vn\nbiz.vn\ncom.vn\nedu.vn\ngov.vn\nhealth.vn\nid.vn\ninfo.vn\nint.vn\nio.vn\nname.vn\nnet.vn\norg.vn\npro.vn\n\n// vn geographical names\nangiang.vn\nbacgiang.vn\nbackan.vn\nbaclieu.vn\nbacninh.vn\nbaria-vungtau.vn\nbentre.vn\nbinhdinh.vn\nbinhduong.vn\nbinhphuoc.vn\nbinhthuan.vn\ncamau.vn\ncantho.vn\ncaobang.vn\ndaklak.vn\ndaknong.vn\ndanang.vn\ndienbien.vn\ndongnai.vn\ndongthap.vn\ngialai.vn\nhagiang.vn\nhaiduong.vn\nhaiphong.vn\nhanam.vn\nhanoi.vn\nhatinh.vn\nhaugiang.vn\nhoabinh.vn\nhungyen.vn\nkhanhhoa.vn\nkiengiang.vn\nkontum.vn\nlaichau.vn\nlamdong.vn\nlangson.vn\nlaocai.vn\nlongan.vn\nnamdinh.vn\nnghean.vn\nninhbinh.vn\nninhthuan.vn\nphutho.vn\nphuyen.vn\nquangbinh.vn\nquangnam.vn\nquangngai.vn\nquangninh.vn\nquangtri.vn\nsoctrang.vn\nsonla.vn\ntayninh.vn\nthaibinh.vn\nthainguyen.vn\nthanhhoa.vn\nthanhphohochiminh.vn\nthuathienhue.vn\ntiengiang.vn\ntravinh.vn\ntuyenquang.vn\nvinhlong.vn\nvinhphuc.vn\nyenbai.vn\n\n// vu : https://en.wikipedia.org/wiki/.vu\n// http://www.vunic.vu/\nvu\ncom.vu\nedu.vu\nnet.vu\norg.vu\n\n// wf : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\nwf\n\n// ws : https://en.wikipedia.org/wiki/.ws\n// http://samoanic.ws/index.dhtml\nws\ncom.ws\nnet.ws\norg.ws\ngov.ws\nedu.ws\n\n// yt : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\nyt\n\n// IDN ccTLDs\n// When submitting patches, please maintain a sort by ISO 3166 ccTLD, then\n// U-label, and follow this format:\n// // A-Label ("<Latin renderings>", <language name>[, variant info]) : <ISO 3166 ccTLD>\n// // [sponsoring org]\n// U-Label\n\n// xn--mgbaam7a8h ("Emerat", Arabic) : AE\n// http://nic.ae/english/arabicdomain/rules.jsp\nامارات\n\n// xn--y9a3aq ("hye", Armenian) : AM\n// ISOC AM (operated by .am Registry)\nհայ\n\n// xn--54b7fta0cc ("Bangla", Bangla) : BD\nবাংলা\n\n// xn--90ae ("bg", Bulgarian) : BG\nбг\n\n// xn--mgbcpq6gpa1a ("albahrain", Arabic) : BH\nالبحرين\n\n// xn--90ais ("bel", Belarusian/Russian Cyrillic) : BY\n// Operated by .by registry\nбел\n\n// xn--fiqs8s ("Zhongguo/China", Chinese, Simplified) : CN\n// CNNIC\n// http://cnnic.cn/html/Dir/2005/10/11/3218.htm\n中国\n\n// xn--fiqz9s ("Zhongguo/China", Chinese, Traditional) : CN\n// CNNIC\n// http://cnnic.cn/html/Dir/2005/10/11/3218.htm\n中國\n\n// xn--lgbbat1ad8j ("Algeria/Al Jazair", Arabic) : DZ\nالجزائر\n\n// xn--wgbh1c ("Egypt/Masr", Arabic) : EG\n// http://www.dotmasr.eg/\nمصر\n\n// xn--e1a4c ("eu", Cyrillic) : EU\n// https://eurid.eu\nею\n\n// xn--qxa6a ("eu", Greek) : EU\n// https://eurid.eu\nευ\n\n// xn--mgbah1a3hjkrd ("Mauritania", Arabic) : MR\nموريتانيا\n\n// xn--node ("ge", Georgian Mkhedruli) : GE\nგე\n\n// xn--qxam ("el", Greek) : GR\n// Hellenic Ministry of Infrastructure, Transport, and Networks\nελ\n\n// xn--j6w193g ("Hong Kong", Chinese) : HK\n// https://www.hkirc.hk\n// Submitted by registry <hk.tech@hkirc.hk>\n// https://www.hkirc.hk/content.jsp?id=30#!/34\n香港\n公司.香港\n教育.香港\n政府.香港\n個人.香港\n網絡.香港\n組織.香港\n\n// xn--2scrj9c ("Bharat", Kannada) : IN\n// India\nಭಾರತ\n\n// xn--3hcrj9c ("Bharat", Oriya) : IN\n// India\nଭାରତ\n\n// xn--45br5cyl ("Bharatam", Assamese) : IN\n// India\nভাৰত\n\n// xn--h2breg3eve ("Bharatam", Sanskrit) : IN\n// India\nभारतम्\n\n// xn--h2brj9c8c ("Bharot", Santali) : IN\n// India\nभारोत\n\n// xn--mgbgu82a ("Bharat", Sindhi) : IN\n// India\nڀارت\n\n// xn--rvc1e0am3e ("Bharatam", Malayalam) : IN\n// India\nഭാരതം\n\n// xn--h2brj9c ("Bharat", Devanagari) : IN\n// India\nभारत\n\n// xn--mgbbh1a ("Bharat", Kashmiri) : IN\n// India\nبارت\n\n// xn--mgbbh1a71e ("Bharat", Arabic) : IN\n// India\nبھارت\n\n// xn--fpcrj9c3d ("Bharat", Telugu) : IN\n// India\nభారత్\n\n// xn--gecrj9c ("Bharat", Gujarati) : IN\n// India\nભારત\n\n// xn--s9brj9c ("Bharat", Gurmukhi) : IN\n// India\nਭਾਰਤ\n\n// xn--45brj9c ("Bharat", Bengali) : IN\n// India\nভারত\n\n// xn--xkc2dl3a5ee0h ("India", Tamil) : IN\n// India\nஇந்தியா\n\n// xn--mgba3a4f16a ("Iran", Persian) : IR\nایران\n\n// xn--mgba3a4fra ("Iran", Arabic) : IR\nايران\n\n// xn--mgbtx2b ("Iraq", Arabic) : IQ\n// Communications and Media Commission\nعراق\n\n// xn--mgbayh7gpa ("al-Ordon", Arabic) : JO\n// National Information Technology Center (NITC)\n// Royal Scientific Society, Al-Jubeiha\nالاردن\n\n// xn--3e0b707e ("Republic of Korea", Hangul) : KR\n한국\n\n// xn--80ao21a ("Kaz", Kazakh) : KZ\nқаз\n\n// xn--q7ce6a ("Lao", Lao) : LA\nລາວ\n\n// xn--fzc2c9e2c ("Lanka", Sinhalese-Sinhala) : LK\n// https://nic.lk\nලංකා\n\n// xn--xkc2al3hye2a ("Ilangai", Tamil) : LK\n// https://nic.lk\nஇலங்கை\n\n// xn--mgbc0a9azcg ("Morocco/al-Maghrib", Arabic) : MA\nالمغرب\n\n// xn--d1alf ("mkd", Macedonian) : MK\n// MARnet\nмкд\n\n// xn--l1acc ("mon", Mongolian) : MN\nмон\n\n// xn--mix891f ("Macao", Chinese, Traditional) : MO\n// MONIC / HNET Asia (Registry Operator for .mo)\n澳門\n\n// xn--mix082f ("Macao", Chinese, Simplified) : MO\n澳门\n\n// xn--mgbx4cd0ab ("Malaysia", Malay) : MY\nمليسيا\n\n// xn--mgb9awbf ("Oman", Arabic) : OM\nعمان\n\n// xn--mgbai9azgqp6j ("Pakistan", Urdu/Arabic) : PK\nپاکستان\n\n// xn--mgbai9a5eva00b ("Pakistan", Urdu/Arabic, variant) : PK\nپاكستان\n\n// xn--ygbi2ammx ("Falasteen", Arabic) : PS\n// The Palestinian National Internet Naming Authority (PNINA)\n// http://www.pnina.ps\nفلسطين\n\n// xn--90a3ac ("srb", Cyrillic) : RS\n// https://www.rnids.rs/en/domains/national-domains\nсрб\nпр.срб\nорг.срб\nобр.срб\nод.срб\nупр.срб\nак.срб\n\n// xn--p1ai ("rf", Russian-Cyrillic) : RU\n// https://cctld.ru/files/pdf/docs/en/rules_ru-rf.pdf\n// Submitted by George Georgievsky <gug@cctld.ru>\nрф\n\n// xn--wgbl6a ("Qatar", Arabic) : QA\n// http://www.ict.gov.qa/\nقطر\n\n// xn--mgberp4a5d4ar ("AlSaudiah", Arabic) : SA\n// http://www.nic.net.sa/\nالسعودية\n\n// xn--mgberp4a5d4a87g ("AlSaudiah", Arabic, variant) : SA\nالسعودیة\n\n// xn--mgbqly7c0a67fbc ("AlSaudiah", Arabic, variant) : SA\nالسعودیۃ\n\n// xn--mgbqly7cvafr ("AlSaudiah", Arabic, variant) : SA\nالسعوديه\n\n// xn--mgbpl2fh ("sudan", Arabic) : SD\n// Operated by .sd registry\nسودان\n\n// xn--yfro4i67o Singapore ("Singapore", Chinese) : SG\n新加坡\n\n// xn--clchc0ea0b2g2a9gcd ("Singapore", Tamil) : SG\nசிங்கப்பூர்\n\n// xn--ogbpf8fl ("Syria", Arabic) : SY\nسورية\n\n// xn--mgbtf8fl ("Syria", Arabic, variant) : SY\nسوريا\n\n// xn--o3cw4h ("Thai", Thai) : TH\n// http://www.thnic.co.th\nไทย\nศึกษา.ไทย\nธุรกิจ.ไทย\nรัฐบาล.ไทย\nทหาร.ไทย\nเน็ต.ไทย\nองค์กร.ไทย\n\n// xn--pgbs0dh ("Tunisia", Arabic) : TN\n// http://nic.tn\nتونس\n\n// xn--kpry57d ("Taiwan", Chinese, Traditional) : TW\n// http://www.twnic.net/english/dn/dn_07a.htm\n台灣\n\n// xn--kprw13d ("Taiwan", Chinese, Simplified) : TW\n// http://www.twnic.net/english/dn/dn_07a.htm\n台湾\n\n// xn--nnx388a ("Taiwan", Chinese, variant) : TW\n臺灣\n\n// xn--j1amh ("ukr", Cyrillic) : UA\nукр\n\n// xn--mgb2ddes ("AlYemen", Arabic) : YE\nاليمن\n\n// xxx : http://icmregistry.com\nxxx\n\n// ye : http://www.y.net.ye/services/domain_name.htm\nye\ncom.ye\nedu.ye\ngov.ye\nnet.ye\nmil.ye\norg.ye\n\n// za : https://www.zadna.org.za/content/page/domain-information/\nac.za\nagric.za\nalt.za\nco.za\nedu.za\ngov.za\ngrondar.za\nlaw.za\nmil.za\nnet.za\nngo.za\nnic.za\nnis.za\nnom.za\norg.za\nschool.za\ntm.za\nweb.za\n\n// zm : https://zicta.zm/\n// Submitted by registry <info@zicta.zm>\nzm\nac.zm\nbiz.zm\nco.zm\ncom.zm\nedu.zm\ngov.zm\ninfo.zm\nmil.zm\nnet.zm\norg.zm\nsch.zm\n\n// zw : https://www.potraz.gov.zw/\n// Confirmed by registry <bmtengwa@potraz.gov.zw> 2017-01-25\nzw\nac.zw\nco.zw\ngov.zw\nmil.zw\norg.zw\n\n\n// newGTLDs\n\n// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-10-20T15:11:50Z\n// This list is auto-generated, don\'t edit it manually.\n// aaa : American Automobile Association, Inc.\n// https://www.iana.org/domains/root/db/aaa.html\naaa\n\n// aarp : AARP\n// https://www.iana.org/domains/root/db/aarp.html\naarp\n\n// abb : ABB Ltd\n// https://www.iana.org/domains/root/db/abb.html\nabb\n\n// abbott : Abbott Laboratories, Inc.\n// https://www.iana.org/domains/root/db/abbott.html\nabbott\n\n// abbvie : AbbVie Inc.\n// https://www.iana.org/domains/root/db/abbvie.html\nabbvie\n\n// abc : Disney Enterprises, Inc.\n// https://www.iana.org/domains/root/db/abc.html\nabc\n\n// able : Able Inc.\n// https://www.iana.org/domains/root/db/able.html\nable\n\n// abogado : Registry Services, LLC\n// https://www.iana.org/domains/root/db/abogado.html\nabogado\n\n// abudhabi : Abu Dhabi Systems and Information Centre\n// https://www.iana.org/domains/root/db/abudhabi.html\nabudhabi\n\n// academy : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/academy.html\nacademy\n\n// accenture : Accenture plc\n// https://www.iana.org/domains/root/db/accenture.html\naccenture\n\n// accountant : dot Accountant Limited\n// https://www.iana.org/domains/root/db/accountant.html\naccountant\n\n// accountants : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/accountants.html\naccountants\n\n// aco : ACO Severin Ahlmann GmbH & Co. KG\n// https://www.iana.org/domains/root/db/aco.html\naco\n\n// actor : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/actor.html\nactor\n\n// ads : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/ads.html\nads\n\n// adult : ICM Registry AD LLC\n// https://www.iana.org/domains/root/db/adult.html\nadult\n\n// aeg : Aktiebolaget Electrolux\n// https://www.iana.org/domains/root/db/aeg.html\naeg\n\n// aetna : Aetna Life Insurance Company\n// https://www.iana.org/domains/root/db/aetna.html\naetna\n\n// afl : Australian Football League\n// https://www.iana.org/domains/root/db/afl.html\nafl\n\n// africa : ZA Central Registry NPC trading as Registry.Africa\n// https://www.iana.org/domains/root/db/africa.html\nafrica\n\n// agakhan : Fondation Aga Khan (Aga Khan Foundation)\n// https://www.iana.org/domains/root/db/agakhan.html\nagakhan\n\n// agency : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/agency.html\nagency\n\n// aig : American International Group, Inc.\n// https://www.iana.org/domains/root/db/aig.html\naig\n\n// airbus : Airbus S.A.S.\n// https://www.iana.org/domains/root/db/airbus.html\nairbus\n\n// airforce : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/airforce.html\nairforce\n\n// airtel : Bharti Airtel Limited\n// https://www.iana.org/domains/root/db/airtel.html\nairtel\n\n// akdn : Fondation Aga Khan (Aga Khan Foundation)\n// https://www.iana.org/domains/root/db/akdn.html\nakdn\n\n// alibaba : Alibaba Group Holding Limited\n// https://www.iana.org/domains/root/db/alibaba.html\nalibaba\n\n// alipay : Alibaba Group Holding Limited\n// https://www.iana.org/domains/root/db/alipay.html\nalipay\n\n// allfinanz : Allfinanz Deutsche Vermögensberatung Aktiengesellschaft\n// https://www.iana.org/domains/root/db/allfinanz.html\nallfinanz\n\n// allstate : Allstate Fire and Casualty Insurance Company\n// https://www.iana.org/domains/root/db/allstate.html\nallstate\n\n// ally : Ally Financial Inc.\n// https://www.iana.org/domains/root/db/ally.html\nally\n\n// alsace : Region Grand Est\n// https://www.iana.org/domains/root/db/alsace.html\nalsace\n\n// alstom : ALSTOM\n// https://www.iana.org/domains/root/db/alstom.html\nalstom\n\n// amazon : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/amazon.html\namazon\n\n// americanexpress : American Express Travel Related Services Company, Inc.\n// https://www.iana.org/domains/root/db/americanexpress.html\namericanexpress\n\n// americanfamily : AmFam, Inc.\n// https://www.iana.org/domains/root/db/americanfamily.html\namericanfamily\n\n// amex : American Express Travel Related Services Company, Inc.\n// https://www.iana.org/domains/root/db/amex.html\namex\n\n// amfam : AmFam, Inc.\n// https://www.iana.org/domains/root/db/amfam.html\namfam\n\n// amica : Amica Mutual Insurance Company\n// https://www.iana.org/domains/root/db/amica.html\namica\n\n// amsterdam : Gemeente Amsterdam\n// https://www.iana.org/domains/root/db/amsterdam.html\namsterdam\n\n// analytics : Campus IP LLC\n// https://www.iana.org/domains/root/db/analytics.html\nanalytics\n\n// android : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/android.html\nandroid\n\n// anquan : Beijing Qihu Keji Co., Ltd.\n// https://www.iana.org/domains/root/db/anquan.html\nanquan\n\n// anz : Australia and New Zealand Banking Group Limited\n// https://www.iana.org/domains/root/db/anz.html\nanz\n\n// aol : Oath Inc.\n// https://www.iana.org/domains/root/db/aol.html\naol\n\n// apartments : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/apartments.html\napartments\n\n// app : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/app.html\napp\n\n// apple : Apple Inc.\n// https://www.iana.org/domains/root/db/apple.html\napple\n\n// aquarelle : Aquarelle.com\n// https://www.iana.org/domains/root/db/aquarelle.html\naquarelle\n\n// arab : League of Arab States\n// https://www.iana.org/domains/root/db/arab.html\narab\n\n// aramco : Aramco Services Company\n// https://www.iana.org/domains/root/db/aramco.html\naramco\n\n// archi : Identity Digital Limited\n// https://www.iana.org/domains/root/db/archi.html\narchi\n\n// army : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/army.html\narmy\n\n// art : UK Creative Ideas Limited\n// https://www.iana.org/domains/root/db/art.html\nart\n\n// arte : Association Relative à la Télévision Européenne G.E.I.E.\n// https://www.iana.org/domains/root/db/arte.html\narte\n\n// asda : Wal-Mart Stores, Inc.\n// https://www.iana.org/domains/root/db/asda.html\nasda\n\n// associates : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/associates.html\nassociates\n\n// athleta : The Gap, Inc.\n// https://www.iana.org/domains/root/db/athleta.html\nathleta\n\n// attorney : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/attorney.html\nattorney\n\n// auction : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/auction.html\nauction\n\n// audi : AUDI Aktiengesellschaft\n// https://www.iana.org/domains/root/db/audi.html\naudi\n\n// audible : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/audible.html\naudible\n\n// audio : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/audio.html\naudio\n\n// auspost : Australian Postal Corporation\n// https://www.iana.org/domains/root/db/auspost.html\nauspost\n\n// author : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/author.html\nauthor\n\n// auto : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/auto.html\nauto\n\n// autos : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/autos.html\nautos\n\n// avianca : Avianca Inc.\n// https://www.iana.org/domains/root/db/avianca.html\navianca\n\n// aws : AWS Registry LLC\n// https://www.iana.org/domains/root/db/aws.html\naws\n\n// axa : AXA Group Operations SAS\n// https://www.iana.org/domains/root/db/axa.html\naxa\n\n// azure : Microsoft Corporation\n// https://www.iana.org/domains/root/db/azure.html\nazure\n\n// baby : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/baby.html\nbaby\n\n// baidu : Baidu, Inc.\n// https://www.iana.org/domains/root/db/baidu.html\nbaidu\n\n// banamex : Citigroup Inc.\n// https://www.iana.org/domains/root/db/banamex.html\nbanamex\n\n// bananarepublic : The Gap, Inc.\n// https://www.iana.org/domains/root/db/bananarepublic.html\nbananarepublic\n\n// band : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/band.html\nband\n\n// bank : fTLD Registry Services LLC\n// https://www.iana.org/domains/root/db/bank.html\nbank\n\n// bar : Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable\n// https://www.iana.org/domains/root/db/bar.html\nbar\n\n// barcelona : Municipi de Barcelona\n// https://www.iana.org/domains/root/db/barcelona.html\nbarcelona\n\n// barclaycard : Barclays Bank PLC\n// https://www.iana.org/domains/root/db/barclaycard.html\nbarclaycard\n\n// barclays : Barclays Bank PLC\n// https://www.iana.org/domains/root/db/barclays.html\nbarclays\n\n// barefoot : Gallo Vineyards, Inc.\n// https://www.iana.org/domains/root/db/barefoot.html\nbarefoot\n\n// bargains : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/bargains.html\nbargains\n\n// baseball : MLB Advanced Media DH, LLC\n// https://www.iana.org/domains/root/db/baseball.html\nbaseball\n\n// basketball : Fédération Internationale de Basketball (FIBA)\n// https://www.iana.org/domains/root/db/basketball.html\nbasketball\n\n// bauhaus : Werkhaus GmbH\n// https://www.iana.org/domains/root/db/bauhaus.html\nbauhaus\n\n// bayern : Bayern Connect GmbH\n// https://www.iana.org/domains/root/db/bayern.html\nbayern\n\n// bbc : British Broadcasting Corporation\n// https://www.iana.org/domains/root/db/bbc.html\nbbc\n\n// bbt : BB&T Corporation\n// https://www.iana.org/domains/root/db/bbt.html\nbbt\n\n// bbva : BANCO BILBAO VIZCAYA ARGENTARIA, S.A.\n// https://www.iana.org/domains/root/db/bbva.html\nbbva\n\n// bcg : The Boston Consulting Group, Inc.\n// https://www.iana.org/domains/root/db/bcg.html\nbcg\n\n// bcn : Municipi de Barcelona\n// https://www.iana.org/domains/root/db/bcn.html\nbcn\n\n// beats : Beats Electronics, LLC\n// https://www.iana.org/domains/root/db/beats.html\nbeats\n\n// beauty : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/beauty.html\nbeauty\n\n// beer : Registry Services, LLC\n// https://www.iana.org/domains/root/db/beer.html\nbeer\n\n// bentley : Bentley Motors Limited\n// https://www.iana.org/domains/root/db/bentley.html\nbentley\n\n// berlin : dotBERLIN GmbH & Co. KG\n// https://www.iana.org/domains/root/db/berlin.html\nberlin\n\n// best : BestTLD Pty Ltd\n// https://www.iana.org/domains/root/db/best.html\nbest\n\n// bestbuy : BBY Solutions, Inc.\n// https://www.iana.org/domains/root/db/bestbuy.html\nbestbuy\n\n// bet : Identity Digital Limited\n// https://www.iana.org/domains/root/db/bet.html\nbet\n\n// bharti : Bharti Enterprises (Holding) Private Limited\n// https://www.iana.org/domains/root/db/bharti.html\nbharti\n\n// bible : American Bible Society\n// https://www.iana.org/domains/root/db/bible.html\nbible\n\n// bid : dot Bid Limited\n// https://www.iana.org/domains/root/db/bid.html\nbid\n\n// bike : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/bike.html\nbike\n\n// bing : Microsoft Corporation\n// https://www.iana.org/domains/root/db/bing.html\nbing\n\n// bingo : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/bingo.html\nbingo\n\n// bio : Identity Digital Limited\n// https://www.iana.org/domains/root/db/bio.html\nbio\n\n// black : Identity Digital Limited\n// https://www.iana.org/domains/root/db/black.html\nblack\n\n// blackfriday : Registry Services, LLC\n// https://www.iana.org/domains/root/db/blackfriday.html\nblackfriday\n\n// blockbuster : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/blockbuster.html\nblockbuster\n\n// blog : Knock Knock WHOIS There, LLC\n// https://www.iana.org/domains/root/db/blog.html\nblog\n\n// bloomberg : Bloomberg IP Holdings LLC\n// https://www.iana.org/domains/root/db/bloomberg.html\nbloomberg\n\n// blue : Identity Digital Limited\n// https://www.iana.org/domains/root/db/blue.html\nblue\n\n// bms : Bristol-Myers Squibb Company\n// https://www.iana.org/domains/root/db/bms.html\nbms\n\n// bmw : Bayerische Motoren Werke Aktiengesellschaft\n// https://www.iana.org/domains/root/db/bmw.html\nbmw\n\n// bnpparibas : BNP Paribas\n// https://www.iana.org/domains/root/db/bnpparibas.html\nbnpparibas\n\n// boats : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/boats.html\nboats\n\n// boehringer : Boehringer Ingelheim International GmbH\n// https://www.iana.org/domains/root/db/boehringer.html\nboehringer\n\n// bofa : Bank of America Corporation\n// https://www.iana.org/domains/root/db/bofa.html\nbofa\n\n// bom : Núcleo de Informação e Coordenação do Ponto BR - NIC.br\n// https://www.iana.org/domains/root/db/bom.html\nbom\n\n// bond : ShortDot SA\n// https://www.iana.org/domains/root/db/bond.html\nbond\n\n// boo : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/boo.html\nboo\n\n// book : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/book.html\nbook\n\n// booking : Booking.com B.V.\n// https://www.iana.org/domains/root/db/booking.html\nbooking\n\n// bosch : Robert Bosch GMBH\n// https://www.iana.org/domains/root/db/bosch.html\nbosch\n\n// bostik : Bostik SA\n// https://www.iana.org/domains/root/db/bostik.html\nbostik\n\n// boston : Registry Services, LLC\n// https://www.iana.org/domains/root/db/boston.html\nboston\n\n// bot : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/bot.html\nbot\n\n// boutique : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/boutique.html\nboutique\n\n// box : Intercap Registry Inc.\n// https://www.iana.org/domains/root/db/box.html\nbox\n\n// bradesco : Banco Bradesco S.A.\n// https://www.iana.org/domains/root/db/bradesco.html\nbradesco\n\n// bridgestone : Bridgestone Corporation\n// https://www.iana.org/domains/root/db/bridgestone.html\nbridgestone\n\n// broadway : Celebrate Broadway, Inc.\n// https://www.iana.org/domains/root/db/broadway.html\nbroadway\n\n// broker : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/broker.html\nbroker\n\n// brother : Brother Industries, Ltd.\n// https://www.iana.org/domains/root/db/brother.html\nbrother\n\n// brussels : DNS.be vzw\n// https://www.iana.org/domains/root/db/brussels.html\nbrussels\n\n// build : Plan Bee LLC\n// https://www.iana.org/domains/root/db/build.html\nbuild\n\n// builders : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/builders.html\nbuilders\n\n// business : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/business.html\nbusiness\n\n// buy : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/buy.html\nbuy\n\n// buzz : DOTSTRATEGY CO.\n// https://www.iana.org/domains/root/db/buzz.html\nbuzz\n\n// bzh : Association www.bzh\n// https://www.iana.org/domains/root/db/bzh.html\nbzh\n\n// cab : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cab.html\ncab\n\n// cafe : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cafe.html\ncafe\n\n// cal : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/cal.html\ncal\n\n// call : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/call.html\ncall\n\n// calvinklein : PVH gTLD Holdings LLC\n// https://www.iana.org/domains/root/db/calvinklein.html\ncalvinklein\n\n// cam : Cam Connecting SARL\n// https://www.iana.org/domains/root/db/cam.html\ncam\n\n// camera : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/camera.html\ncamera\n\n// camp : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/camp.html\ncamp\n\n// canon : Canon Inc.\n// https://www.iana.org/domains/root/db/canon.html\ncanon\n\n// capetown : ZA Central Registry NPC trading as ZA Central Registry\n// https://www.iana.org/domains/root/db/capetown.html\ncapetown\n\n// capital : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/capital.html\ncapital\n\n// capitalone : Capital One Financial Corporation\n// https://www.iana.org/domains/root/db/capitalone.html\ncapitalone\n\n// car : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/car.html\ncar\n\n// caravan : Caravan International, Inc.\n// https://www.iana.org/domains/root/db/caravan.html\ncaravan\n\n// cards : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cards.html\ncards\n\n// care : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/care.html\ncare\n\n// career : dotCareer LLC\n// https://www.iana.org/domains/root/db/career.html\ncareer\n\n// careers : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/careers.html\ncareers\n\n// cars : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/cars.html\ncars\n\n// casa : Registry Services, LLC\n// https://www.iana.org/domains/root/db/casa.html\ncasa\n\n// case : Digity, LLC\n// https://www.iana.org/domains/root/db/case.html\ncase\n\n// cash : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cash.html\ncash\n\n// casino : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/casino.html\ncasino\n\n// catering : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/catering.html\ncatering\n\n// catholic : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n// https://www.iana.org/domains/root/db/catholic.html\ncatholic\n\n// cba : COMMONWEALTH BANK OF AUSTRALIA\n// https://www.iana.org/domains/root/db/cba.html\ncba\n\n// cbn : The Christian Broadcasting Network, Inc.\n// https://www.iana.org/domains/root/db/cbn.html\ncbn\n\n// cbre : CBRE, Inc.\n// https://www.iana.org/domains/root/db/cbre.html\ncbre\n\n// cbs : CBS Domains Inc.\n// https://www.iana.org/domains/root/db/cbs.html\ncbs\n\n// center : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/center.html\ncenter\n\n// ceo : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/ceo.html\nceo\n\n// cern : European Organization for Nuclear Research ("CERN")\n// https://www.iana.org/domains/root/db/cern.html\ncern\n\n// cfa : CFA Institute\n// https://www.iana.org/domains/root/db/cfa.html\ncfa\n\n// cfd : ShortDot SA\n// https://www.iana.org/domains/root/db/cfd.html\ncfd\n\n// chanel : Chanel International B.V.\n// https://www.iana.org/domains/root/db/chanel.html\nchanel\n\n// channel : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/channel.html\nchannel\n\n// charity : Public Interest Registry\n// https://www.iana.org/domains/root/db/charity.html\ncharity\n\n// chase : JPMorgan Chase Bank, National Association\n// https://www.iana.org/domains/root/db/chase.html\nchase\n\n// chat : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/chat.html\nchat\n\n// cheap : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cheap.html\ncheap\n\n// chintai : CHINTAI Corporation\n// https://www.iana.org/domains/root/db/chintai.html\nchintai\n\n// christmas : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/christmas.html\nchristmas\n\n// chrome : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/chrome.html\nchrome\n\n// church : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/church.html\nchurch\n\n// cipriani : Hotel Cipriani Srl\n// https://www.iana.org/domains/root/db/cipriani.html\ncipriani\n\n// circle : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/circle.html\ncircle\n\n// cisco : Cisco Technology, Inc.\n// https://www.iana.org/domains/root/db/cisco.html\ncisco\n\n// citadel : Citadel Domain LLC\n// https://www.iana.org/domains/root/db/citadel.html\ncitadel\n\n// citi : Citigroup Inc.\n// https://www.iana.org/domains/root/db/citi.html\nciti\n\n// citic : CITIC Group Corporation\n// https://www.iana.org/domains/root/db/citic.html\ncitic\n\n// city : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/city.html\ncity\n\n// claims : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/claims.html\nclaims\n\n// cleaning : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cleaning.html\ncleaning\n\n// click : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/click.html\nclick\n\n// clinic : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/clinic.html\nclinic\n\n// clinique : The Estée Lauder Companies Inc.\n// https://www.iana.org/domains/root/db/clinique.html\nclinique\n\n// clothing : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/clothing.html\nclothing\n\n// cloud : Aruba PEC S.p.A.\n// https://www.iana.org/domains/root/db/cloud.html\ncloud\n\n// club : Registry Services, LLC\n// https://www.iana.org/domains/root/db/club.html\nclub\n\n// clubmed : Club Méditerranée S.A.\n// https://www.iana.org/domains/root/db/clubmed.html\nclubmed\n\n// coach : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/coach.html\ncoach\n\n// codes : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/codes.html\ncodes\n\n// coffee : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/coffee.html\ncoffee\n\n// college : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/college.html\ncollege\n\n// cologne : dotKoeln GmbH\n// https://www.iana.org/domains/root/db/cologne.html\ncologne\n\n// comcast : Comcast IP Holdings I, LLC\n// https://www.iana.org/domains/root/db/comcast.html\ncomcast\n\n// commbank : COMMONWEALTH BANK OF AUSTRALIA\n// https://www.iana.org/domains/root/db/commbank.html\ncommbank\n\n// community : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/community.html\ncommunity\n\n// company : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/company.html\ncompany\n\n// compare : Registry Services, LLC\n// https://www.iana.org/domains/root/db/compare.html\ncompare\n\n// computer : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/computer.html\ncomputer\n\n// comsec : VeriSign, Inc.\n// https://www.iana.org/domains/root/db/comsec.html\ncomsec\n\n// condos : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/condos.html\ncondos\n\n// construction : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/construction.html\nconstruction\n\n// consulting : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/consulting.html\nconsulting\n\n// contact : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/contact.html\ncontact\n\n// contractors : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/contractors.html\ncontractors\n\n// cooking : Registry Services, LLC\n// https://www.iana.org/domains/root/db/cooking.html\ncooking\n\n// cool : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cool.html\ncool\n\n// corsica : Collectivité de Corse\n// https://www.iana.org/domains/root/db/corsica.html\ncorsica\n\n// country : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/country.html\ncountry\n\n// coupon : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/coupon.html\ncoupon\n\n// coupons : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/coupons.html\ncoupons\n\n// courses : Registry Services, LLC\n// https://www.iana.org/domains/root/db/courses.html\ncourses\n\n// cpa : American Institute of Certified Public Accountants\n// https://www.iana.org/domains/root/db/cpa.html\ncpa\n\n// credit : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/credit.html\ncredit\n\n// creditcard : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/creditcard.html\ncreditcard\n\n// creditunion : DotCooperation LLC\n// https://www.iana.org/domains/root/db/creditunion.html\ncreditunion\n\n// cricket : dot Cricket Limited\n// https://www.iana.org/domains/root/db/cricket.html\ncricket\n\n// crown : Crown Equipment Corporation\n// https://www.iana.org/domains/root/db/crown.html\ncrown\n\n// crs : Federated Co-operatives Limited\n// https://www.iana.org/domains/root/db/crs.html\ncrs\n\n// cruise : Viking River Cruises (Bermuda) Ltd.\n// https://www.iana.org/domains/root/db/cruise.html\ncruise\n\n// cruises : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cruises.html\ncruises\n\n// cuisinella : SCHMIDT GROUPE S.A.S.\n// https://www.iana.org/domains/root/db/cuisinella.html\ncuisinella\n\n// cymru : Nominet UK\n// https://www.iana.org/domains/root/db/cymru.html\ncymru\n\n// cyou : ShortDot SA\n// https://www.iana.org/domains/root/db/cyou.html\ncyou\n\n// dabur : Dabur India Limited\n// https://www.iana.org/domains/root/db/dabur.html\ndabur\n\n// dad : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/dad.html\ndad\n\n// dance : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/dance.html\ndance\n\n// data : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/data.html\ndata\n\n// date : dot Date Limited\n// https://www.iana.org/domains/root/db/date.html\ndate\n\n// dating : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/dating.html\ndating\n\n// datsun : NISSAN MOTOR CO., LTD.\n// https://www.iana.org/domains/root/db/datsun.html\ndatsun\n\n// day : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/day.html\nday\n\n// dclk : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/dclk.html\ndclk\n\n// dds : Registry Services, LLC\n// https://www.iana.org/domains/root/db/dds.html\ndds\n\n// deal : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/deal.html\ndeal\n\n// dealer : Intercap Registry Inc.\n// https://www.iana.org/domains/root/db/dealer.html\ndealer\n\n// deals : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/deals.html\ndeals\n\n// degree : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/degree.html\ndegree\n\n// delivery : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/delivery.html\ndelivery\n\n// dell : Dell Inc.\n// https://www.iana.org/domains/root/db/dell.html\ndell\n\n// deloitte : Deloitte Touche Tohmatsu\n// https://www.iana.org/domains/root/db/deloitte.html\ndeloitte\n\n// delta : Delta Air Lines, Inc.\n// https://www.iana.org/domains/root/db/delta.html\ndelta\n\n// democrat : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/democrat.html\ndemocrat\n\n// dental : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/dental.html\ndental\n\n// dentist : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/dentist.html\ndentist\n\n// desi : Desi Networks LLC\n// https://www.iana.org/domains/root/db/desi.html\ndesi\n\n// design : Registry Services, LLC\n// https://www.iana.org/domains/root/db/design.html\ndesign\n\n// dev : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/dev.html\ndev\n\n// dhl : Deutsche Post AG\n// https://www.iana.org/domains/root/db/dhl.html\ndhl\n\n// diamonds : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/diamonds.html\ndiamonds\n\n// diet : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/diet.html\ndiet\n\n// digital : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/digital.html\ndigital\n\n// direct : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/direct.html\ndirect\n\n// directory : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/directory.html\ndirectory\n\n// discount : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/discount.html\ndiscount\n\n// discover : Discover Financial Services\n// https://www.iana.org/domains/root/db/discover.html\ndiscover\n\n// dish : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/dish.html\ndish\n\n// diy : Lifestyle Domain Holdings, Inc.\n// https://www.iana.org/domains/root/db/diy.html\ndiy\n\n// dnp : Dai Nippon Printing Co., Ltd.\n// https://www.iana.org/domains/root/db/dnp.html\ndnp\n\n// docs : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/docs.html\ndocs\n\n// doctor : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/doctor.html\ndoctor\n\n// dog : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/dog.html\ndog\n\n// domains : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/domains.html\ndomains\n\n// dot : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/dot.html\ndot\n\n// download : dot Support Limited\n// https://www.iana.org/domains/root/db/download.html\ndownload\n\n// drive : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/drive.html\ndrive\n\n// dtv : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/dtv.html\ndtv\n\n// dubai : Dubai Smart Government Department\n// https://www.iana.org/domains/root/db/dubai.html\ndubai\n\n// dunlop : The Goodyear Tire & Rubber Company\n// https://www.iana.org/domains/root/db/dunlop.html\ndunlop\n\n// dupont : DuPont Specialty Products USA, LLC\n// https://www.iana.org/domains/root/db/dupont.html\ndupont\n\n// durban : ZA Central Registry NPC trading as ZA Central Registry\n// https://www.iana.org/domains/root/db/durban.html\ndurban\n\n// dvag : Deutsche Vermögensberatung Aktiengesellschaft DVAG\n// https://www.iana.org/domains/root/db/dvag.html\ndvag\n\n// dvr : DISH Technologies L.L.C.\n// https://www.iana.org/domains/root/db/dvr.html\ndvr\n\n// earth : Interlink Systems Innovation Institute K.K.\n// https://www.iana.org/domains/root/db/earth.html\nearth\n\n// eat : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/eat.html\neat\n\n// eco : Big Room Inc.\n// https://www.iana.org/domains/root/db/eco.html\neco\n\n// edeka : EDEKA Verband kaufmännischer Genossenschaften e.V.\n// https://www.iana.org/domains/root/db/edeka.html\nedeka\n\n// education : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/education.html\neducation\n\n// email : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/email.html\nemail\n\n// emerck : Merck KGaA\n// https://www.iana.org/domains/root/db/emerck.html\nemerck\n\n// energy : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/energy.html\nenergy\n\n// engineer : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/engineer.html\nengineer\n\n// engineering : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/engineering.html\nengineering\n\n// enterprises : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/enterprises.html\nenterprises\n\n// epson : Seiko Epson Corporation\n// https://www.iana.org/domains/root/db/epson.html\nepson\n\n// equipment : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/equipment.html\nequipment\n\n// ericsson : Telefonaktiebolaget L M Ericsson\n// https://www.iana.org/domains/root/db/ericsson.html\nericsson\n\n// erni : ERNI Group Holding AG\n// https://www.iana.org/domains/root/db/erni.html\nerni\n\n// esq : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/esq.html\nesq\n\n// estate : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/estate.html\nestate\n\n// etisalat : Emirates Telecommunications Corporation (trading as Etisalat)\n// https://www.iana.org/domains/root/db/etisalat.html\netisalat\n\n// eurovision : European Broadcasting Union (EBU)\n// https://www.iana.org/domains/root/db/eurovision.html\neurovision\n\n// eus : Puntueus Fundazioa\n// https://www.iana.org/domains/root/db/eus.html\neus\n\n// events : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/events.html\nevents\n\n// exchange : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/exchange.html\nexchange\n\n// expert : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/expert.html\nexpert\n\n// exposed : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/exposed.html\nexposed\n\n// express : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/express.html\nexpress\n\n// extraspace : Extra Space Storage LLC\n// https://www.iana.org/domains/root/db/extraspace.html\nextraspace\n\n// fage : Fage International S.A.\n// https://www.iana.org/domains/root/db/fage.html\nfage\n\n// fail : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/fail.html\nfail\n\n// fairwinds : FairWinds Partners, LLC\n// https://www.iana.org/domains/root/db/fairwinds.html\nfairwinds\n\n// faith : dot Faith Limited\n// https://www.iana.org/domains/root/db/faith.html\nfaith\n\n// family : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/family.html\nfamily\n\n// fan : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/fan.html\nfan\n\n// fans : ZDNS International Limited\n// https://www.iana.org/domains/root/db/fans.html\nfans\n\n// farm : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/farm.html\nfarm\n\n// farmers : Farmers Insurance Exchange\n// https://www.iana.org/domains/root/db/farmers.html\nfarmers\n\n// fashion : Registry Services, LLC\n// https://www.iana.org/domains/root/db/fashion.html\nfashion\n\n// fast : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/fast.html\nfast\n\n// fedex : Federal Express Corporation\n// https://www.iana.org/domains/root/db/fedex.html\nfedex\n\n// feedback : Top Level Spectrum, Inc.\n// https://www.iana.org/domains/root/db/feedback.html\nfeedback\n\n// ferrari : Fiat Chrysler Automobiles N.V.\n// https://www.iana.org/domains/root/db/ferrari.html\nferrari\n\n// ferrero : Ferrero Trading Lux S.A.\n// https://www.iana.org/domains/root/db/ferrero.html\nferrero\n\n// fidelity : Fidelity Brokerage Services LLC\n// https://www.iana.org/domains/root/db/fidelity.html\nfidelity\n\n// fido : Rogers Communications Canada Inc.\n// https://www.iana.org/domains/root/db/fido.html\nfido\n\n// film : Motion Picture Domain Registry Pty Ltd\n// https://www.iana.org/domains/root/db/film.html\nfilm\n\n// final : Núcleo de Informação e Coordenação do Ponto BR - NIC.br\n// https://www.iana.org/domains/root/db/final.html\nfinal\n\n// finance : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/finance.html\nfinance\n\n// financial : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/financial.html\nfinancial\n\n// fire : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/fire.html\nfire\n\n// firestone : Bridgestone Licensing Services, Inc\n// https://www.iana.org/domains/root/db/firestone.html\nfirestone\n\n// firmdale : Firmdale Holdings Limited\n// https://www.iana.org/domains/root/db/firmdale.html\nfirmdale\n\n// fish : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/fish.html\nfish\n\n// fishing : Registry Services, LLC\n// https://www.iana.org/domains/root/db/fishing.html\nfishing\n\n// fit : Registry Services, LLC\n// https://www.iana.org/domains/root/db/fit.html\nfit\n\n// fitness : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/fitness.html\nfitness\n\n// flickr : Flickr, Inc.\n// https://www.iana.org/domains/root/db/flickr.html\nflickr\n\n// flights : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/flights.html\nflights\n\n// flir : FLIR Systems, Inc.\n// https://www.iana.org/domains/root/db/flir.html\nflir\n\n// florist : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/florist.html\nflorist\n\n// flowers : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/flowers.html\nflowers\n\n// fly : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/fly.html\nfly\n\n// foo : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/foo.html\nfoo\n\n// food : Lifestyle Domain Holdings, Inc.\n// https://www.iana.org/domains/root/db/food.html\nfood\n\n// football : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/football.html\nfootball\n\n// ford : Ford Motor Company\n// https://www.iana.org/domains/root/db/ford.html\nford\n\n// forex : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/forex.html\nforex\n\n// forsale : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/forsale.html\nforsale\n\n// forum : Fegistry, LLC\n// https://www.iana.org/domains/root/db/forum.html\nforum\n\n// foundation : Public Interest Registry\n// https://www.iana.org/domains/root/db/foundation.html\nfoundation\n\n// fox : FOX Registry, LLC\n// https://www.iana.org/domains/root/db/fox.html\nfox\n\n// free : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/free.html\nfree\n\n// fresenius : Fresenius Immobilien-Verwaltungs-GmbH\n// https://www.iana.org/domains/root/db/fresenius.html\nfresenius\n\n// frl : FRLregistry B.V.\n// https://www.iana.org/domains/root/db/frl.html\nfrl\n\n// frogans : OP3FT\n// https://www.iana.org/domains/root/db/frogans.html\nfrogans\n\n// frontier : Frontier Communications Corporation\n// https://www.iana.org/domains/root/db/frontier.html\nfrontier\n\n// ftr : Frontier Communications Corporation\n// https://www.iana.org/domains/root/db/ftr.html\nftr\n\n// fujitsu : Fujitsu Limited\n// https://www.iana.org/domains/root/db/fujitsu.html\nfujitsu\n\n// fun : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/fun.html\nfun\n\n// fund : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/fund.html\nfund\n\n// furniture : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/furniture.html\nfurniture\n\n// futbol : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/futbol.html\nfutbol\n\n// fyi : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/fyi.html\nfyi\n\n// gal : Asociación puntoGAL\n// https://www.iana.org/domains/root/db/gal.html\ngal\n\n// gallery : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gallery.html\ngallery\n\n// gallo : Gallo Vineyards, Inc.\n// https://www.iana.org/domains/root/db/gallo.html\ngallo\n\n// gallup : Gallup, Inc.\n// https://www.iana.org/domains/root/db/gallup.html\ngallup\n\n// game : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/game.html\ngame\n\n// games : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/games.html\ngames\n\n// gap : The Gap, Inc.\n// https://www.iana.org/domains/root/db/gap.html\ngap\n\n// garden : Registry Services, LLC\n// https://www.iana.org/domains/root/db/garden.html\ngarden\n\n// gay : Registry Services, LLC\n// https://www.iana.org/domains/root/db/gay.html\ngay\n\n// gbiz : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/gbiz.html\ngbiz\n\n// gdn : Joint Stock Company "Navigation-information systems"\n// https://www.iana.org/domains/root/db/gdn.html\ngdn\n\n// gea : GEA Group Aktiengesellschaft\n// https://www.iana.org/domains/root/db/gea.html\ngea\n\n// gent : Easyhost BV\n// https://www.iana.org/domains/root/db/gent.html\ngent\n\n// genting : Resorts World Inc Pte. Ltd.\n// https://www.iana.org/domains/root/db/genting.html\ngenting\n\n// george : Wal-Mart Stores, Inc.\n// https://www.iana.org/domains/root/db/george.html\ngeorge\n\n// ggee : GMO Internet, Inc.\n// https://www.iana.org/domains/root/db/ggee.html\nggee\n\n// gift : DotGift, LLC\n// https://www.iana.org/domains/root/db/gift.html\ngift\n\n// gifts : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gifts.html\ngifts\n\n// gives : Public Interest Registry\n// https://www.iana.org/domains/root/db/gives.html\ngives\n\n// giving : Public Interest Registry\n// https://www.iana.org/domains/root/db/giving.html\ngiving\n\n// glass : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/glass.html\nglass\n\n// gle : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/gle.html\ngle\n\n// global : Identity Digital Limited\n// https://www.iana.org/domains/root/db/global.html\nglobal\n\n// globo : Globo Comunicação e Participações S.A\n// https://www.iana.org/domains/root/db/globo.html\nglobo\n\n// gmail : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/gmail.html\ngmail\n\n// gmbh : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gmbh.html\ngmbh\n\n// gmo : GMO Internet, Inc.\n// https://www.iana.org/domains/root/db/gmo.html\ngmo\n\n// gmx : 1&1 Mail & Media GmbH\n// https://www.iana.org/domains/root/db/gmx.html\ngmx\n\n// godaddy : Go Daddy East, LLC\n// https://www.iana.org/domains/root/db/godaddy.html\ngodaddy\n\n// gold : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gold.html\ngold\n\n// goldpoint : YODOBASHI CAMERA CO.,LTD.\n// https://www.iana.org/domains/root/db/goldpoint.html\ngoldpoint\n\n// golf : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/golf.html\ngolf\n\n// goo : NTT Resonant Inc.\n// https://www.iana.org/domains/root/db/goo.html\ngoo\n\n// goodyear : The Goodyear Tire & Rubber Company\n// https://www.iana.org/domains/root/db/goodyear.html\ngoodyear\n\n// goog : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/goog.html\ngoog\n\n// google : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/google.html\ngoogle\n\n// gop : Republican State Leadership Committee, Inc.\n// https://www.iana.org/domains/root/db/gop.html\ngop\n\n// got : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/got.html\ngot\n\n// grainger : Grainger Registry Services, LLC\n// https://www.iana.org/domains/root/db/grainger.html\ngrainger\n\n// graphics : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/graphics.html\ngraphics\n\n// gratis : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gratis.html\ngratis\n\n// green : Identity Digital Limited\n// https://www.iana.org/domains/root/db/green.html\ngreen\n\n// gripe : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gripe.html\ngripe\n\n// grocery : Wal-Mart Stores, Inc.\n// https://www.iana.org/domains/root/db/grocery.html\ngrocery\n\n// group : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/group.html\ngroup\n\n// guardian : The Guardian Life Insurance Company of America\n// https://www.iana.org/domains/root/db/guardian.html\nguardian\n\n// gucci : Guccio Gucci S.p.a.\n// https://www.iana.org/domains/root/db/gucci.html\ngucci\n\n// guge : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/guge.html\nguge\n\n// guide : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/guide.html\nguide\n\n// guitars : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/guitars.html\nguitars\n\n// guru : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/guru.html\nguru\n\n// hair : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/hair.html\nhair\n\n// hamburg : Hamburg Top-Level-Domain GmbH\n// https://www.iana.org/domains/root/db/hamburg.html\nhamburg\n\n// hangout : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/hangout.html\nhangout\n\n// haus : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/haus.html\nhaus\n\n// hbo : HBO Registry Services, Inc.\n// https://www.iana.org/domains/root/db/hbo.html\nhbo\n\n// hdfc : HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED\n// https://www.iana.org/domains/root/db/hdfc.html\nhdfc\n\n// hdfcbank : HDFC Bank Limited\n// https://www.iana.org/domains/root/db/hdfcbank.html\nhdfcbank\n\n// health : Registry Services, LLC\n// https://www.iana.org/domains/root/db/health.html\nhealth\n\n// healthcare : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/healthcare.html\nhealthcare\n\n// help : Innovation service Limited\n// https://www.iana.org/domains/root/db/help.html\nhelp\n\n// helsinki : City of Helsinki\n// https://www.iana.org/domains/root/db/helsinki.html\nhelsinki\n\n// here : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/here.html\nhere\n\n// hermes : HERMES INTERNATIONAL\n// https://www.iana.org/domains/root/db/hermes.html\nhermes\n\n// hiphop : Dot Hip Hop, LLC\n// https://www.iana.org/domains/root/db/hiphop.html\nhiphop\n\n// hisamitsu : Hisamitsu Pharmaceutical Co.,Inc.\n// https://www.iana.org/domains/root/db/hisamitsu.html\nhisamitsu\n\n// hitachi : Hitachi, Ltd.\n// https://www.iana.org/domains/root/db/hitachi.html\nhitachi\n\n// hiv : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/hiv.html\nhiv\n\n// hkt : PCCW-HKT DataCom Services Limited\n// https://www.iana.org/domains/root/db/hkt.html\nhkt\n\n// hockey : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/hockey.html\nhockey\n\n// holdings : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/holdings.html\nholdings\n\n// holiday : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/holiday.html\nholiday\n\n// homedepot : Home Depot Product Authority, LLC\n// https://www.iana.org/domains/root/db/homedepot.html\nhomedepot\n\n// homegoods : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/homegoods.html\nhomegoods\n\n// homes : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/homes.html\nhomes\n\n// homesense : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/homesense.html\nhomesense\n\n// honda : Honda Motor Co., Ltd.\n// https://www.iana.org/domains/root/db/honda.html\nhonda\n\n// horse : Registry Services, LLC\n// https://www.iana.org/domains/root/db/horse.html\nhorse\n\n// hospital : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/hospital.html\nhospital\n\n// host : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/host.html\nhost\n\n// hosting : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/hosting.html\nhosting\n\n// hot : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/hot.html\nhot\n\n// hotels : Booking.com B.V.\n// https://www.iana.org/domains/root/db/hotels.html\nhotels\n\n// hotmail : Microsoft Corporation\n// https://www.iana.org/domains/root/db/hotmail.html\nhotmail\n\n// house : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/house.html\nhouse\n\n// how : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/how.html\nhow\n\n// hsbc : HSBC Global Services (UK) Limited\n// https://www.iana.org/domains/root/db/hsbc.html\nhsbc\n\n// hughes : Hughes Satellite Systems Corporation\n// https://www.iana.org/domains/root/db/hughes.html\nhughes\n\n// hyatt : Hyatt GTLD, L.L.C.\n// https://www.iana.org/domains/root/db/hyatt.html\nhyatt\n\n// hyundai : Hyundai Motor Company\n// https://www.iana.org/domains/root/db/hyundai.html\nhyundai\n\n// ibm : International Business Machines Corporation\n// https://www.iana.org/domains/root/db/ibm.html\nibm\n\n// icbc : Industrial and Commercial Bank of China Limited\n// https://www.iana.org/domains/root/db/icbc.html\nicbc\n\n// ice : IntercontinentalExchange, Inc.\n// https://www.iana.org/domains/root/db/ice.html\nice\n\n// icu : ShortDot SA\n// https://www.iana.org/domains/root/db/icu.html\nicu\n\n// ieee : IEEE Global LLC\n// https://www.iana.org/domains/root/db/ieee.html\nieee\n\n// ifm : ifm electronic gmbh\n// https://www.iana.org/domains/root/db/ifm.html\nifm\n\n// ikano : Ikano S.A.\n// https://www.iana.org/domains/root/db/ikano.html\nikano\n\n// imamat : Fondation Aga Khan (Aga Khan Foundation)\n// https://www.iana.org/domains/root/db/imamat.html\nimamat\n\n// imdb : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/imdb.html\nimdb\n\n// immo : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/immo.html\nimmo\n\n// immobilien : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/immobilien.html\nimmobilien\n\n// inc : Intercap Registry Inc.\n// https://www.iana.org/domains/root/db/inc.html\ninc\n\n// industries : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/industries.html\nindustries\n\n// infiniti : NISSAN MOTOR CO., LTD.\n// https://www.iana.org/domains/root/db/infiniti.html\ninfiniti\n\n// ing : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/ing.html\ning\n\n// ink : Registry Services, LLC\n// https://www.iana.org/domains/root/db/ink.html\nink\n\n// institute : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/institute.html\ninstitute\n\n// insurance : fTLD Registry Services LLC\n// https://www.iana.org/domains/root/db/insurance.html\ninsurance\n\n// insure : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/insure.html\ninsure\n\n// international : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/international.html\ninternational\n\n// intuit : Intuit Administrative Services, Inc.\n// https://www.iana.org/domains/root/db/intuit.html\nintuit\n\n// investments : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/investments.html\ninvestments\n\n// ipiranga : Ipiranga Produtos de Petroleo S.A.\n// https://www.iana.org/domains/root/db/ipiranga.html\nipiranga\n\n// irish : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/irish.html\nirish\n\n// ismaili : Fondation Aga Khan (Aga Khan Foundation)\n// https://www.iana.org/domains/root/db/ismaili.html\nismaili\n\n// ist : Istanbul Metropolitan Municipality\n// https://www.iana.org/domains/root/db/ist.html\nist\n\n// istanbul : Istanbul Metropolitan Municipality\n// https://www.iana.org/domains/root/db/istanbul.html\nistanbul\n\n// itau : Itau Unibanco Holding S.A.\n// https://www.iana.org/domains/root/db/itau.html\nitau\n\n// itv : ITV Services Limited\n// https://www.iana.org/domains/root/db/itv.html\nitv\n\n// jaguar : Jaguar Land Rover Ltd\n// https://www.iana.org/domains/root/db/jaguar.html\njaguar\n\n// java : Oracle Corporation\n// https://www.iana.org/domains/root/db/java.html\njava\n\n// jcb : JCB Co., Ltd.\n// https://www.iana.org/domains/root/db/jcb.html\njcb\n\n// jeep : FCA US LLC.\n// https://www.iana.org/domains/root/db/jeep.html\njeep\n\n// jetzt : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/jetzt.html\njetzt\n\n// jewelry : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/jewelry.html\njewelry\n\n// jio : Reliance Industries Limited\n// https://www.iana.org/domains/root/db/jio.html\njio\n\n// jll : Jones Lang LaSalle Incorporated\n// https://www.iana.org/domains/root/db/jll.html\njll\n\n// jmp : Matrix IP LLC\n// https://www.iana.org/domains/root/db/jmp.html\njmp\n\n// jnj : Johnson & Johnson Services, Inc.\n// https://www.iana.org/domains/root/db/jnj.html\njnj\n\n// joburg : ZA Central Registry NPC trading as ZA Central Registry\n// https://www.iana.org/domains/root/db/joburg.html\njoburg\n\n// jot : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/jot.html\njot\n\n// joy : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/joy.html\njoy\n\n// jpmorgan : JPMorgan Chase Bank, National Association\n// https://www.iana.org/domains/root/db/jpmorgan.html\njpmorgan\n\n// jprs : Japan Registry Services Co., Ltd.\n// https://www.iana.org/domains/root/db/jprs.html\njprs\n\n// juegos : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/juegos.html\njuegos\n\n// juniper : JUNIPER NETWORKS, INC.\n// https://www.iana.org/domains/root/db/juniper.html\njuniper\n\n// kaufen : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/kaufen.html\nkaufen\n\n// kddi : KDDI CORPORATION\n// https://www.iana.org/domains/root/db/kddi.html\nkddi\n\n// kerryhotels : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/kerryhotels.html\nkerryhotels\n\n// kerrylogistics : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/kerrylogistics.html\nkerrylogistics\n\n// kerryproperties : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/kerryproperties.html\nkerryproperties\n\n// kfh : Kuwait Finance House\n// https://www.iana.org/domains/root/db/kfh.html\nkfh\n\n// kia : KIA MOTORS CORPORATION\n// https://www.iana.org/domains/root/db/kia.html\nkia\n\n// kids : DotKids Foundation Limited\n// https://www.iana.org/domains/root/db/kids.html\nkids\n\n// kim : Identity Digital Limited\n// https://www.iana.org/domains/root/db/kim.html\nkim\n\n// kinder : Ferrero Trading Lux S.A.\n// https://www.iana.org/domains/root/db/kinder.html\nkinder\n\n// kindle : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/kindle.html\nkindle\n\n// kitchen : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/kitchen.html\nkitchen\n\n// kiwi : DOT KIWI LIMITED\n// https://www.iana.org/domains/root/db/kiwi.html\nkiwi\n\n// koeln : dotKoeln GmbH\n// https://www.iana.org/domains/root/db/koeln.html\nkoeln\n\n// komatsu : Komatsu Ltd.\n// https://www.iana.org/domains/root/db/komatsu.html\nkomatsu\n\n// kosher : Kosher Marketing Assets LLC\n// https://www.iana.org/domains/root/db/kosher.html\nkosher\n\n// kpmg : KPMG International Cooperative (KPMG International Genossenschaft)\n// https://www.iana.org/domains/root/db/kpmg.html\nkpmg\n\n// kpn : Koninklijke KPN N.V.\n// https://www.iana.org/domains/root/db/kpn.html\nkpn\n\n// krd : KRG Department of Information Technology\n// https://www.iana.org/domains/root/db/krd.html\nkrd\n\n// kred : KredTLD Pty Ltd\n// https://www.iana.org/domains/root/db/kred.html\nkred\n\n// kuokgroup : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/kuokgroup.html\nkuokgroup\n\n// kyoto : Academic Institution: Kyoto Jyoho Gakuen\n// https://www.iana.org/domains/root/db/kyoto.html\nkyoto\n\n// lacaixa : Fundación Bancaria Caixa d’Estalvis i Pensions de Barcelona, “la Caixa”\n// https://www.iana.org/domains/root/db/lacaixa.html\nlacaixa\n\n// lamborghini : Automobili Lamborghini S.p.A.\n// https://www.iana.org/domains/root/db/lamborghini.html\nlamborghini\n\n// lamer : The Estée Lauder Companies Inc.\n// https://www.iana.org/domains/root/db/lamer.html\nlamer\n\n// lancaster : LANCASTER\n// https://www.iana.org/domains/root/db/lancaster.html\nlancaster\n\n// land : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/land.html\nland\n\n// landrover : Jaguar Land Rover Ltd\n// https://www.iana.org/domains/root/db/landrover.html\nlandrover\n\n// lanxess : LANXESS Corporation\n// https://www.iana.org/domains/root/db/lanxess.html\nlanxess\n\n// lasalle : Jones Lang LaSalle Incorporated\n// https://www.iana.org/domains/root/db/lasalle.html\nlasalle\n\n// lat : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/lat.html\nlat\n\n// latino : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/latino.html\nlatino\n\n// latrobe : La Trobe University\n// https://www.iana.org/domains/root/db/latrobe.html\nlatrobe\n\n// law : Registry Services, LLC\n// https://www.iana.org/domains/root/db/law.html\nlaw\n\n// lawyer : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/lawyer.html\nlawyer\n\n// lds : IRI Domain Management, LLC\n// https://www.iana.org/domains/root/db/lds.html\nlds\n\n// lease : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/lease.html\nlease\n\n// leclerc : A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc\n// https://www.iana.org/domains/root/db/leclerc.html\nleclerc\n\n// lefrak : LeFrak Organization, Inc.\n// https://www.iana.org/domains/root/db/lefrak.html\nlefrak\n\n// legal : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/legal.html\nlegal\n\n// lego : LEGO Juris A/S\n// https://www.iana.org/domains/root/db/lego.html\nlego\n\n// lexus : TOYOTA MOTOR CORPORATION\n// https://www.iana.org/domains/root/db/lexus.html\nlexus\n\n// lgbt : Identity Digital Limited\n// https://www.iana.org/domains/root/db/lgbt.html\nlgbt\n\n// lidl : Schwarz Domains und Services GmbH & Co. KG\n// https://www.iana.org/domains/root/db/lidl.html\nlidl\n\n// life : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/life.html\nlife\n\n// lifeinsurance : American Council of Life Insurers\n// https://www.iana.org/domains/root/db/lifeinsurance.html\nlifeinsurance\n\n// lifestyle : Lifestyle Domain Holdings, Inc.\n// https://www.iana.org/domains/root/db/lifestyle.html\nlifestyle\n\n// lighting : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/lighting.html\nlighting\n\n// like : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/like.html\nlike\n\n// lilly : Eli Lilly and Company\n// https://www.iana.org/domains/root/db/lilly.html\nlilly\n\n// limited : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/limited.html\nlimited\n\n// limo : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/limo.html\nlimo\n\n// lincoln : Ford Motor Company\n// https://www.iana.org/domains/root/db/lincoln.html\nlincoln\n\n// link : Nova Registry Ltd\n// https://www.iana.org/domains/root/db/link.html\nlink\n\n// lipsy : Lipsy Ltd\n// https://www.iana.org/domains/root/db/lipsy.html\nlipsy\n\n// live : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/live.html\nlive\n\n// living : Lifestyle Domain Holdings, Inc.\n// https://www.iana.org/domains/root/db/living.html\nliving\n\n// llc : Identity Digital Limited\n// https://www.iana.org/domains/root/db/llc.html\nllc\n\n// llp : Intercap Registry Inc.\n// https://www.iana.org/domains/root/db/llp.html\nllp\n\n// loan : dot Loan Limited\n// https://www.iana.org/domains/root/db/loan.html\nloan\n\n// loans : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/loans.html\nloans\n\n// locker : Orange Domains LLC\n// https://www.iana.org/domains/root/db/locker.html\nlocker\n\n// locus : Locus Analytics LLC\n// https://www.iana.org/domains/root/db/locus.html\nlocus\n\n// lol : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/lol.html\nlol\n\n// london : Dot London Domains Limited\n// https://www.iana.org/domains/root/db/london.html\nlondon\n\n// lotte : Lotte Holdings Co., Ltd.\n// https://www.iana.org/domains/root/db/lotte.html\nlotte\n\n// lotto : Identity Digital Limited\n// https://www.iana.org/domains/root/db/lotto.html\nlotto\n\n// love : Merchant Law Group LLP\n// https://www.iana.org/domains/root/db/love.html\nlove\n\n// lpl : LPL Holdings, Inc.\n// https://www.iana.org/domains/root/db/lpl.html\nlpl\n\n// lplfinancial : LPL Holdings, Inc.\n// https://www.iana.org/domains/root/db/lplfinancial.html\nlplfinancial\n\n// ltd : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/ltd.html\nltd\n\n// ltda : InterNetX, Corp\n// https://www.iana.org/domains/root/db/ltda.html\nltda\n\n// lundbeck : H. Lundbeck A/S\n// https://www.iana.org/domains/root/db/lundbeck.html\nlundbeck\n\n// luxe : Registry Services, LLC\n// https://www.iana.org/domains/root/db/luxe.html\nluxe\n\n// luxury : Luxury Partners, LLC\n// https://www.iana.org/domains/root/db/luxury.html\nluxury\n\n// madrid : Comunidad de Madrid\n// https://www.iana.org/domains/root/db/madrid.html\nmadrid\n\n// maif : Mutuelle Assurance Instituteur France (MAIF)\n// https://www.iana.org/domains/root/db/maif.html\nmaif\n\n// maison : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/maison.html\nmaison\n\n// makeup : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/makeup.html\nmakeup\n\n// man : MAN SE\n// https://www.iana.org/domains/root/db/man.html\nman\n\n// management : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/management.html\nmanagement\n\n// mango : PUNTO FA S.L.\n// https://www.iana.org/domains/root/db/mango.html\nmango\n\n// map : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/map.html\nmap\n\n// market : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/market.html\nmarket\n\n// marketing : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/marketing.html\nmarketing\n\n// markets : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/markets.html\nmarkets\n\n// marriott : Marriott Worldwide Corporation\n// https://www.iana.org/domains/root/db/marriott.html\nmarriott\n\n// marshalls : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/marshalls.html\nmarshalls\n\n// mattel : Mattel Sites, Inc.\n// https://www.iana.org/domains/root/db/mattel.html\nmattel\n\n// mba : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/mba.html\nmba\n\n// mckinsey : McKinsey Holdings, Inc.\n// https://www.iana.org/domains/root/db/mckinsey.html\nmckinsey\n\n// med : Medistry LLC\n// https://www.iana.org/domains/root/db/med.html\nmed\n\n// media : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/media.html\nmedia\n\n// meet : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/meet.html\nmeet\n\n// melbourne : The Crown in right of the State of Victoria, represented by its Department of State Development, Business and Innovation\n// https://www.iana.org/domains/root/db/melbourne.html\nmelbourne\n\n// meme : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/meme.html\nmeme\n\n// memorial : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/memorial.html\nmemorial\n\n// men : Exclusive Registry Limited\n// https://www.iana.org/domains/root/db/men.html\nmen\n\n// menu : Dot Menu Registry, LLC\n// https://www.iana.org/domains/root/db/menu.html\nmenu\n\n// merckmsd : MSD Registry Holdings, Inc.\n// https://www.iana.org/domains/root/db/merckmsd.html\nmerckmsd\n\n// miami : Registry Services, LLC\n// https://www.iana.org/domains/root/db/miami.html\nmiami\n\n// microsoft : Microsoft Corporation\n// https://www.iana.org/domains/root/db/microsoft.html\nmicrosoft\n\n// mini : Bayerische Motoren Werke Aktiengesellschaft\n// https://www.iana.org/domains/root/db/mini.html\nmini\n\n// mint : Intuit Administrative Services, Inc.\n// https://www.iana.org/domains/root/db/mint.html\nmint\n\n// mit : Massachusetts Institute of Technology\n// https://www.iana.org/domains/root/db/mit.html\nmit\n\n// mitsubishi : Mitsubishi Corporation\n// https://www.iana.org/domains/root/db/mitsubishi.html\nmitsubishi\n\n// mlb : MLB Advanced Media DH, LLC\n// https://www.iana.org/domains/root/db/mlb.html\nmlb\n\n// mls : The Canadian Real Estate Association\n// https://www.iana.org/domains/root/db/mls.html\nmls\n\n// mma : MMA IARD\n// https://www.iana.org/domains/root/db/mma.html\nmma\n\n// mobile : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/mobile.html\nmobile\n\n// moda : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/moda.html\nmoda\n\n// moe : Interlink Systems Innovation Institute K.K.\n// https://www.iana.org/domains/root/db/moe.html\nmoe\n\n// moi : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/moi.html\nmoi\n\n// mom : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/mom.html\nmom\n\n// monash : Monash University\n// https://www.iana.org/domains/root/db/monash.html\nmonash\n\n// money : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/money.html\nmoney\n\n// monster : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/monster.html\nmonster\n\n// mormon : IRI Domain Management, LLC\n// https://www.iana.org/domains/root/db/mormon.html\nmormon\n\n// mortgage : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/mortgage.html\nmortgage\n\n// moscow : Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID)\n// https://www.iana.org/domains/root/db/moscow.html\nmoscow\n\n// moto : Motorola Trademark Holdings, LLC\n// https://www.iana.org/domains/root/db/moto.html\nmoto\n\n// motorcycles : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/motorcycles.html\nmotorcycles\n\n// mov : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/mov.html\nmov\n\n// movie : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/movie.html\nmovie\n\n// msd : MSD Registry Holdings, Inc.\n// https://www.iana.org/domains/root/db/msd.html\nmsd\n\n// mtn : MTN Dubai Limited\n// https://www.iana.org/domains/root/db/mtn.html\nmtn\n\n// mtr : MTR Corporation Limited\n// https://www.iana.org/domains/root/db/mtr.html\nmtr\n\n// music : DotMusic Limited\n// https://www.iana.org/domains/root/db/music.html\nmusic\n\n// nab : National Australia Bank Limited\n// https://www.iana.org/domains/root/db/nab.html\nnab\n\n// nagoya : GMO Registry, Inc.\n// https://www.iana.org/domains/root/db/nagoya.html\nnagoya\n\n// natura : NATURA COSMÉTICOS S.A.\n// https://www.iana.org/domains/root/db/natura.html\nnatura\n\n// navy : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/navy.html\nnavy\n\n// nba : NBA REGISTRY, LLC\n// https://www.iana.org/domains/root/db/nba.html\nnba\n\n// nec : NEC Corporation\n// https://www.iana.org/domains/root/db/nec.html\nnec\n\n// netbank : COMMONWEALTH BANK OF AUSTRALIA\n// https://www.iana.org/domains/root/db/netbank.html\nnetbank\n\n// netflix : Netflix, Inc.\n// https://www.iana.org/domains/root/db/netflix.html\nnetflix\n\n// network : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/network.html\nnetwork\n\n// neustar : NeuStar, Inc.\n// https://www.iana.org/domains/root/db/neustar.html\nneustar\n\n// new : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/new.html\nnew\n\n// news : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/news.html\nnews\n\n// next : Next plc\n// https://www.iana.org/domains/root/db/next.html\nnext\n\n// nextdirect : Next plc\n// https://www.iana.org/domains/root/db/nextdirect.html\nnextdirect\n\n// nexus : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/nexus.html\nnexus\n\n// nfl : NFL Reg Ops LLC\n// https://www.iana.org/domains/root/db/nfl.html\nnfl\n\n// ngo : Public Interest Registry\n// https://www.iana.org/domains/root/db/ngo.html\nngo\n\n// nhk : Japan Broadcasting Corporation (NHK)\n// https://www.iana.org/domains/root/db/nhk.html\nnhk\n\n// nico : DWANGO Co., Ltd.\n// https://www.iana.org/domains/root/db/nico.html\nnico\n\n// nike : NIKE, Inc.\n// https://www.iana.org/domains/root/db/nike.html\nnike\n\n// nikon : NIKON CORPORATION\n// https://www.iana.org/domains/root/db/nikon.html\nnikon\n\n// ninja : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/ninja.html\nninja\n\n// nissan : NISSAN MOTOR CO., LTD.\n// https://www.iana.org/domains/root/db/nissan.html\nnissan\n\n// nissay : Nippon Life Insurance Company\n// https://www.iana.org/domains/root/db/nissay.html\nnissay\n\n// nokia : Nokia Corporation\n// https://www.iana.org/domains/root/db/nokia.html\nnokia\n\n// norton : NortonLifeLock Inc.\n// https://www.iana.org/domains/root/db/norton.html\nnorton\n\n// now : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/now.html\nnow\n\n// nowruz : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n// https://www.iana.org/domains/root/db/nowruz.html\nnowruz\n\n// nowtv : Starbucks (HK) Limited\n// https://www.iana.org/domains/root/db/nowtv.html\nnowtv\n\n// nra : NRA Holdings Company, INC.\n// https://www.iana.org/domains/root/db/nra.html\nnra\n\n// nrw : Minds + Machines GmbH\n// https://www.iana.org/domains/root/db/nrw.html\nnrw\n\n// ntt : NIPPON TELEGRAPH AND TELEPHONE CORPORATION\n// https://www.iana.org/domains/root/db/ntt.html\nntt\n\n// nyc : The City of New York by and through the New York City Department of Information Technology & Telecommunications\n// https://www.iana.org/domains/root/db/nyc.html\nnyc\n\n// obi : OBI Group Holding SE & Co. KGaA\n// https://www.iana.org/domains/root/db/obi.html\nobi\n\n// observer : Fegistry, LLC\n// https://www.iana.org/domains/root/db/observer.html\nobserver\n\n// office : Microsoft Corporation\n// https://www.iana.org/domains/root/db/office.html\noffice\n\n// okinawa : BRregistry, Inc.\n// https://www.iana.org/domains/root/db/okinawa.html\nokinawa\n\n// olayan : Competrol (Luxembourg) Sarl\n// https://www.iana.org/domains/root/db/olayan.html\nolayan\n\n// olayangroup : Competrol (Luxembourg) Sarl\n// https://www.iana.org/domains/root/db/olayangroup.html\nolayangroup\n\n// oldnavy : The Gap, Inc.\n// https://www.iana.org/domains/root/db/oldnavy.html\noldnavy\n\n// ollo : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/ollo.html\nollo\n\n// omega : The Swatch Group Ltd\n// https://www.iana.org/domains/root/db/omega.html\nomega\n\n// one : One.com A/S\n// https://www.iana.org/domains/root/db/one.html\none\n\n// ong : Public Interest Registry\n// https://www.iana.org/domains/root/db/ong.html\nong\n\n// onl : iRegistry GmbH\n// https://www.iana.org/domains/root/db/onl.html\nonl\n\n// online : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/online.html\nonline\n\n// ooo : INFIBEAM AVENUES LIMITED\n// https://www.iana.org/domains/root/db/ooo.html\nooo\n\n// open : American Express Travel Related Services Company, Inc.\n// https://www.iana.org/domains/root/db/open.html\nopen\n\n// oracle : Oracle Corporation\n// https://www.iana.org/domains/root/db/oracle.html\noracle\n\n// orange : Orange Brand Services Limited\n// https://www.iana.org/domains/root/db/orange.html\norange\n\n// organic : Identity Digital Limited\n// https://www.iana.org/domains/root/db/organic.html\norganic\n\n// origins : The Estée Lauder Companies Inc.\n// https://www.iana.org/domains/root/db/origins.html\norigins\n\n// osaka : Osaka Registry Co., Ltd.\n// https://www.iana.org/domains/root/db/osaka.html\nosaka\n\n// otsuka : Otsuka Holdings Co., Ltd.\n// https://www.iana.org/domains/root/db/otsuka.html\notsuka\n\n// ott : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/ott.html\nott\n\n// ovh : MédiaBC\n// https://www.iana.org/domains/root/db/ovh.html\novh\n\n// page : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/page.html\npage\n\n// panasonic : Panasonic Holdings Corporation\n// https://www.iana.org/domains/root/db/panasonic.html\npanasonic\n\n// paris : City of Paris\n// https://www.iana.org/domains/root/db/paris.html\nparis\n\n// pars : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n// https://www.iana.org/domains/root/db/pars.html\npars\n\n// partners : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/partners.html\npartners\n\n// parts : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/parts.html\nparts\n\n// party : Blue Sky Registry Limited\n// https://www.iana.org/domains/root/db/party.html\nparty\n\n// pay : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/pay.html\npay\n\n// pccw : PCCW Enterprises Limited\n// https://www.iana.org/domains/root/db/pccw.html\npccw\n\n// pet : Identity Digital Limited\n// https://www.iana.org/domains/root/db/pet.html\npet\n\n// pfizer : Pfizer Inc.\n// https://www.iana.org/domains/root/db/pfizer.html\npfizer\n\n// pharmacy : National Association of Boards of Pharmacy\n// https://www.iana.org/domains/root/db/pharmacy.html\npharmacy\n\n// phd : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/phd.html\nphd\n\n// philips : Koninklijke Philips N.V.\n// https://www.iana.org/domains/root/db/philips.html\nphilips\n\n// phone : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/phone.html\nphone\n\n// photo : Registry Services, LLC\n// https://www.iana.org/domains/root/db/photo.html\nphoto\n\n// photography : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/photography.html\nphotography\n\n// photos : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/photos.html\nphotos\n\n// physio : PhysBiz Pty Ltd\n// https://www.iana.org/domains/root/db/physio.html\nphysio\n\n// pics : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/pics.html\npics\n\n// pictet : Pictet Europe S.A.\n// https://www.iana.org/domains/root/db/pictet.html\npictet\n\n// pictures : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/pictures.html\npictures\n\n// pid : Top Level Spectrum, Inc.\n// https://www.iana.org/domains/root/db/pid.html\npid\n\n// pin : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/pin.html\npin\n\n// ping : Ping Registry Provider, Inc.\n// https://www.iana.org/domains/root/db/ping.html\nping\n\n// pink : Identity Digital Limited\n// https://www.iana.org/domains/root/db/pink.html\npink\n\n// pioneer : Pioneer Corporation\n// https://www.iana.org/domains/root/db/pioneer.html\npioneer\n\n// pizza : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/pizza.html\npizza\n\n// place : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/place.html\nplace\n\n// play : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/play.html\nplay\n\n// playstation : Sony Interactive Entertainment Inc.\n// https://www.iana.org/domains/root/db/playstation.html\nplaystation\n\n// plumbing : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/plumbing.html\nplumbing\n\n// plus : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/plus.html\nplus\n\n// pnc : PNC Domain Co., LLC\n// https://www.iana.org/domains/root/db/pnc.html\npnc\n\n// pohl : Deutsche Vermögensberatung Aktiengesellschaft DVAG\n// https://www.iana.org/domains/root/db/pohl.html\npohl\n\n// poker : Identity Digital Limited\n// https://www.iana.org/domains/root/db/poker.html\npoker\n\n// politie : Politie Nederland\n// https://www.iana.org/domains/root/db/politie.html\npolitie\n\n// porn : ICM Registry PN LLC\n// https://www.iana.org/domains/root/db/porn.html\nporn\n\n// pramerica : Prudential Financial, Inc.\n// https://www.iana.org/domains/root/db/pramerica.html\npramerica\n\n// praxi : Praxi S.p.A.\n// https://www.iana.org/domains/root/db/praxi.html\npraxi\n\n// press : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/press.html\npress\n\n// prime : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/prime.html\nprime\n\n// prod : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/prod.html\nprod\n\n// productions : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/productions.html\nproductions\n\n// prof : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/prof.html\nprof\n\n// progressive : Progressive Casualty Insurance Company\n// https://www.iana.org/domains/root/db/progressive.html\nprogressive\n\n// promo : Identity Digital Limited\n// https://www.iana.org/domains/root/db/promo.html\npromo\n\n// properties : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/properties.html\nproperties\n\n// property : Digital Property Infrastructure Limited\n// https://www.iana.org/domains/root/db/property.html\nproperty\n\n// protection : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/protection.html\nprotection\n\n// pru : Prudential Financial, Inc.\n// https://www.iana.org/domains/root/db/pru.html\npru\n\n// prudential : Prudential Financial, Inc.\n// https://www.iana.org/domains/root/db/prudential.html\nprudential\n\n// pub : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/pub.html\npub\n\n// pwc : PricewaterhouseCoopers LLP\n// https://www.iana.org/domains/root/db/pwc.html\npwc\n\n// qpon : dotQPON LLC\n// https://www.iana.org/domains/root/db/qpon.html\nqpon\n\n// quebec : PointQuébec Inc\n// https://www.iana.org/domains/root/db/quebec.html\nquebec\n\n// quest : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/quest.html\nquest\n\n// racing : Premier Registry Limited\n// https://www.iana.org/domains/root/db/racing.html\nracing\n\n// radio : European Broadcasting Union (EBU)\n// https://www.iana.org/domains/root/db/radio.html\nradio\n\n// read : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/read.html\nread\n\n// realestate : dotRealEstate LLC\n// https://www.iana.org/domains/root/db/realestate.html\nrealestate\n\n// realtor : Real Estate Domains LLC\n// https://www.iana.org/domains/root/db/realtor.html\nrealtor\n\n// realty : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/realty.html\nrealty\n\n// recipes : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/recipes.html\nrecipes\n\n// red : Identity Digital Limited\n// https://www.iana.org/domains/root/db/red.html\nred\n\n// redstone : Redstone Haute Couture Co., Ltd.\n// https://www.iana.org/domains/root/db/redstone.html\nredstone\n\n// redumbrella : Travelers TLD, LLC\n// https://www.iana.org/domains/root/db/redumbrella.html\nredumbrella\n\n// rehab : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/rehab.html\nrehab\n\n// reise : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/reise.html\nreise\n\n// reisen : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/reisen.html\nreisen\n\n// reit : National Association of Real Estate Investment Trusts, Inc.\n// https://www.iana.org/domains/root/db/reit.html\nreit\n\n// reliance : Reliance Industries Limited\n// https://www.iana.org/domains/root/db/reliance.html\nreliance\n\n// ren : ZDNS International Limited\n// https://www.iana.org/domains/root/db/ren.html\nren\n\n// rent : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/rent.html\nrent\n\n// rentals : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/rentals.html\nrentals\n\n// repair : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/repair.html\nrepair\n\n// report : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/report.html\nreport\n\n// republican : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/republican.html\nrepublican\n\n// rest : Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable\n// https://www.iana.org/domains/root/db/rest.html\nrest\n\n// restaurant : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/restaurant.html\nrestaurant\n\n// review : dot Review Limited\n// https://www.iana.org/domains/root/db/review.html\nreview\n\n// reviews : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/reviews.html\nreviews\n\n// rexroth : Robert Bosch GMBH\n// https://www.iana.org/domains/root/db/rexroth.html\nrexroth\n\n// rich : iRegistry GmbH\n// https://www.iana.org/domains/root/db/rich.html\nrich\n\n// richardli : Pacific Century Asset Management (HK) Limited\n// https://www.iana.org/domains/root/db/richardli.html\nrichardli\n\n// ricoh : Ricoh Company, Ltd.\n// https://www.iana.org/domains/root/db/ricoh.html\nricoh\n\n// ril : Reliance Industries Limited\n// https://www.iana.org/domains/root/db/ril.html\nril\n\n// rio : Empresa Municipal de Informática SA - IPLANRIO\n// https://www.iana.org/domains/root/db/rio.html\nrio\n\n// rip : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/rip.html\nrip\n\n// rocher : Ferrero Trading Lux S.A.\n// https://www.iana.org/domains/root/db/rocher.html\nrocher\n\n// rocks : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/rocks.html\nrocks\n\n// rodeo : Registry Services, LLC\n// https://www.iana.org/domains/root/db/rodeo.html\nrodeo\n\n// rogers : Rogers Communications Canada Inc.\n// https://www.iana.org/domains/root/db/rogers.html\nrogers\n\n// room : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/room.html\nroom\n\n// rsvp : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/rsvp.html\nrsvp\n\n// rugby : World Rugby Strategic Developments Limited\n// https://www.iana.org/domains/root/db/rugby.html\nrugby\n\n// ruhr : dotSaarland GmbH\n// https://www.iana.org/domains/root/db/ruhr.html\nruhr\n\n// run : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/run.html\nrun\n\n// rwe : RWE AG\n// https://www.iana.org/domains/root/db/rwe.html\nrwe\n\n// ryukyu : BRregistry, Inc.\n// https://www.iana.org/domains/root/db/ryukyu.html\nryukyu\n\n// saarland : dotSaarland GmbH\n// https://www.iana.org/domains/root/db/saarland.html\nsaarland\n\n// safe : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/safe.html\nsafe\n\n// safety : Safety Registry Services, LLC.\n// https://www.iana.org/domains/root/db/safety.html\nsafety\n\n// sakura : SAKURA Internet Inc.\n// https://www.iana.org/domains/root/db/sakura.html\nsakura\n\n// sale : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/sale.html\nsale\n\n// salon : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/salon.html\nsalon\n\n// samsclub : Wal-Mart Stores, Inc.\n// https://www.iana.org/domains/root/db/samsclub.html\nsamsclub\n\n// samsung : SAMSUNG SDS CO., LTD\n// https://www.iana.org/domains/root/db/samsung.html\nsamsung\n\n// sandvik : Sandvik AB\n// https://www.iana.org/domains/root/db/sandvik.html\nsandvik\n\n// sandvikcoromant : Sandvik AB\n// https://www.iana.org/domains/root/db/sandvikcoromant.html\nsandvikcoromant\n\n// sanofi : Sanofi\n// https://www.iana.org/domains/root/db/sanofi.html\nsanofi\n\n// sap : SAP AG\n// https://www.iana.org/domains/root/db/sap.html\nsap\n\n// sarl : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/sarl.html\nsarl\n\n// sas : Research IP LLC\n// https://www.iana.org/domains/root/db/sas.html\nsas\n\n// save : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/save.html\nsave\n\n// saxo : Saxo Bank A/S\n// https://www.iana.org/domains/root/db/saxo.html\nsaxo\n\n// sbi : STATE BANK OF INDIA\n// https://www.iana.org/domains/root/db/sbi.html\nsbi\n\n// sbs : ShortDot SA\n// https://www.iana.org/domains/root/db/sbs.html\nsbs\n\n// sca : SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ)\n// https://www.iana.org/domains/root/db/sca.html\nsca\n\n// scb : The Siam Commercial Bank Public Company Limited ("SCB")\n// https://www.iana.org/domains/root/db/scb.html\nscb\n\n// schaeffler : Schaeffler Technologies AG & Co. KG\n// https://www.iana.org/domains/root/db/schaeffler.html\nschaeffler\n\n// schmidt : SCHMIDT GROUPE S.A.S.\n// https://www.iana.org/domains/root/db/schmidt.html\nschmidt\n\n// scholarships : Scholarships.com, LLC\n// https://www.iana.org/domains/root/db/scholarships.html\nscholarships\n\n// school : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/school.html\nschool\n\n// schule : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/schule.html\nschule\n\n// schwarz : Schwarz Domains und Services GmbH & Co. KG\n// https://www.iana.org/domains/root/db/schwarz.html\nschwarz\n\n// science : dot Science Limited\n// https://www.iana.org/domains/root/db/science.html\nscience\n\n// scot : Dot Scot Registry Limited\n// https://www.iana.org/domains/root/db/scot.html\nscot\n\n// search : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/search.html\nsearch\n\n// seat : SEAT, S.A. (Sociedad Unipersonal)\n// https://www.iana.org/domains/root/db/seat.html\nseat\n\n// secure : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/secure.html\nsecure\n\n// security : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/security.html\nsecurity\n\n// seek : Seek Limited\n// https://www.iana.org/domains/root/db/seek.html\nseek\n\n// select : Registry Services, LLC\n// https://www.iana.org/domains/root/db/select.html\nselect\n\n// sener : Sener Ingeniería y Sistemas, S.A.\n// https://www.iana.org/domains/root/db/sener.html\nsener\n\n// services : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/services.html\nservices\n\n// seven : Seven West Media Ltd\n// https://www.iana.org/domains/root/db/seven.html\nseven\n\n// sew : SEW-EURODRIVE GmbH & Co KG\n// https://www.iana.org/domains/root/db/sew.html\nsew\n\n// sex : ICM Registry SX LLC\n// https://www.iana.org/domains/root/db/sex.html\nsex\n\n// sexy : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/sexy.html\nsexy\n\n// sfr : Societe Francaise du Radiotelephone - SFR\n// https://www.iana.org/domains/root/db/sfr.html\nsfr\n\n// shangrila : Shangri‐La International Hotel Management Limited\n// https://www.iana.org/domains/root/db/shangrila.html\nshangrila\n\n// sharp : Sharp Corporation\n// https://www.iana.org/domains/root/db/sharp.html\nsharp\n\n// shaw : Shaw Cablesystems G.P.\n// https://www.iana.org/domains/root/db/shaw.html\nshaw\n\n// shell : Shell Information Technology International Inc\n// https://www.iana.org/domains/root/db/shell.html\nshell\n\n// shia : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n// https://www.iana.org/domains/root/db/shia.html\nshia\n\n// shiksha : Identity Digital Limited\n// https://www.iana.org/domains/root/db/shiksha.html\nshiksha\n\n// shoes : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/shoes.html\nshoes\n\n// shop : GMO Registry, Inc.\n// https://www.iana.org/domains/root/db/shop.html\nshop\n\n// shopping : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/shopping.html\nshopping\n\n// shouji : Beijing Qihu Keji Co., Ltd.\n// https://www.iana.org/domains/root/db/shouji.html\nshouji\n\n// show : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/show.html\nshow\n\n// showtime : CBS Domains Inc.\n// https://www.iana.org/domains/root/db/showtime.html\nshowtime\n\n// silk : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/silk.html\nsilk\n\n// sina : Sina Corporation\n// https://www.iana.org/domains/root/db/sina.html\nsina\n\n// singles : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/singles.html\nsingles\n\n// site : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/site.html\nsite\n\n// ski : Identity Digital Limited\n// https://www.iana.org/domains/root/db/ski.html\nski\n\n// skin : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/skin.html\nskin\n\n// sky : Sky International AG\n// https://www.iana.org/domains/root/db/sky.html\nsky\n\n// skype : Microsoft Corporation\n// https://www.iana.org/domains/root/db/skype.html\nskype\n\n// sling : DISH Technologies L.L.C.\n// https://www.iana.org/domains/root/db/sling.html\nsling\n\n// smart : Smart Communications, Inc. (SMART)\n// https://www.iana.org/domains/root/db/smart.html\nsmart\n\n// smile : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/smile.html\nsmile\n\n// sncf : Société Nationale SNCF\n// https://www.iana.org/domains/root/db/sncf.html\nsncf\n\n// soccer : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/soccer.html\nsoccer\n\n// social : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/social.html\nsocial\n\n// softbank : SoftBank Group Corp.\n// https://www.iana.org/domains/root/db/softbank.html\nsoftbank\n\n// software : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/software.html\nsoftware\n\n// sohu : Sohu.com Limited\n// https://www.iana.org/domains/root/db/sohu.html\nsohu\n\n// solar : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/solar.html\nsolar\n\n// solutions : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/solutions.html\nsolutions\n\n// song : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/song.html\nsong\n\n// sony : Sony Corporation\n// https://www.iana.org/domains/root/db/sony.html\nsony\n\n// soy : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/soy.html\nsoy\n\n// spa : Asia Spa and Wellness Promotion Council Limited\n// https://www.iana.org/domains/root/db/spa.html\nspa\n\n// space : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/space.html\nspace\n\n// sport : SportAccord\n// https://www.iana.org/domains/root/db/sport.html\nsport\n\n// spot : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/spot.html\nspot\n\n// srl : InterNetX, Corp\n// https://www.iana.org/domains/root/db/srl.html\nsrl\n\n// stada : STADA Arzneimittel AG\n// https://www.iana.org/domains/root/db/stada.html\nstada\n\n// staples : Staples, Inc.\n// https://www.iana.org/domains/root/db/staples.html\nstaples\n\n// star : Star India Private Limited\n// https://www.iana.org/domains/root/db/star.html\nstar\n\n// statebank : STATE BANK OF INDIA\n// https://www.iana.org/domains/root/db/statebank.html\nstatebank\n\n// statefarm : State Farm Mutual Automobile Insurance Company\n// https://www.iana.org/domains/root/db/statefarm.html\nstatefarm\n\n// stc : Saudi Telecom Company\n// https://www.iana.org/domains/root/db/stc.html\nstc\n\n// stcgroup : Saudi Telecom Company\n// https://www.iana.org/domains/root/db/stcgroup.html\nstcgroup\n\n// stockholm : Stockholms kommun\n// https://www.iana.org/domains/root/db/stockholm.html\nstockholm\n\n// storage : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/storage.html\nstorage\n\n// store : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/store.html\nstore\n\n// stream : dot Stream Limited\n// https://www.iana.org/domains/root/db/stream.html\nstream\n\n// studio : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/studio.html\nstudio\n\n// study : Registry Services, LLC\n// https://www.iana.org/domains/root/db/study.html\nstudy\n\n// style : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/style.html\nstyle\n\n// sucks : Vox Populi Registry Ltd.\n// https://www.iana.org/domains/root/db/sucks.html\nsucks\n\n// supplies : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/supplies.html\nsupplies\n\n// supply : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/supply.html\nsupply\n\n// support : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/support.html\nsupport\n\n// surf : Registry Services, LLC\n// https://www.iana.org/domains/root/db/surf.html\nsurf\n\n// surgery : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/surgery.html\nsurgery\n\n// suzuki : SUZUKI MOTOR CORPORATION\n// https://www.iana.org/domains/root/db/suzuki.html\nsuzuki\n\n// swatch : The Swatch Group Ltd\n// https://www.iana.org/domains/root/db/swatch.html\nswatch\n\n// swiss : Swiss Confederation\n// https://www.iana.org/domains/root/db/swiss.html\nswiss\n\n// sydney : State of New South Wales, Department of Premier and Cabinet\n// https://www.iana.org/domains/root/db/sydney.html\nsydney\n\n// systems : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/systems.html\nsystems\n\n// tab : Tabcorp Holdings Limited\n// https://www.iana.org/domains/root/db/tab.html\ntab\n\n// taipei : Taipei City Government\n// https://www.iana.org/domains/root/db/taipei.html\ntaipei\n\n// talk : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/talk.html\ntalk\n\n// taobao : Alibaba Group Holding Limited\n// https://www.iana.org/domains/root/db/taobao.html\ntaobao\n\n// target : Target Domain Holdings, LLC\n// https://www.iana.org/domains/root/db/target.html\ntarget\n\n// tatamotors : Tata Motors Ltd\n// https://www.iana.org/domains/root/db/tatamotors.html\ntatamotors\n\n// tatar : Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic"\n// https://www.iana.org/domains/root/db/tatar.html\ntatar\n\n// tattoo : Registry Services, LLC\n// https://www.iana.org/domains/root/db/tattoo.html\ntattoo\n\n// tax : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tax.html\ntax\n\n// taxi : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/taxi.html\ntaxi\n\n// tci : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n// https://www.iana.org/domains/root/db/tci.html\ntci\n\n// tdk : TDK Corporation\n// https://www.iana.org/domains/root/db/tdk.html\ntdk\n\n// team : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/team.html\nteam\n\n// tech : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/tech.html\ntech\n\n// technology : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/technology.html\ntechnology\n\n// temasek : Temasek Holdings (Private) Limited\n// https://www.iana.org/domains/root/db/temasek.html\ntemasek\n\n// tennis : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tennis.html\ntennis\n\n// teva : Teva Pharmaceutical Industries Limited\n// https://www.iana.org/domains/root/db/teva.html\nteva\n\n// thd : Home Depot Product Authority, LLC\n// https://www.iana.org/domains/root/db/thd.html\nthd\n\n// theater : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/theater.html\ntheater\n\n// theatre : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/theatre.html\ntheatre\n\n// tiaa : Teachers Insurance and Annuity Association of America\n// https://www.iana.org/domains/root/db/tiaa.html\ntiaa\n\n// tickets : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/tickets.html\ntickets\n\n// tienda : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tienda.html\ntienda\n\n// tips : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tips.html\ntips\n\n// tires : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tires.html\ntires\n\n// tirol : punkt Tirol GmbH\n// https://www.iana.org/domains/root/db/tirol.html\ntirol\n\n// tjmaxx : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/tjmaxx.html\ntjmaxx\n\n// tjx : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/tjx.html\ntjx\n\n// tkmaxx : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/tkmaxx.html\ntkmaxx\n\n// tmall : Alibaba Group Holding Limited\n// https://www.iana.org/domains/root/db/tmall.html\ntmall\n\n// today : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/today.html\ntoday\n\n// tokyo : GMO Registry, Inc.\n// https://www.iana.org/domains/root/db/tokyo.html\ntokyo\n\n// tools : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tools.html\ntools\n\n// top : .TOP Registry\n// https://www.iana.org/domains/root/db/top.html\ntop\n\n// toray : Toray Industries, Inc.\n// https://www.iana.org/domains/root/db/toray.html\ntoray\n\n// toshiba : TOSHIBA Corporation\n// https://www.iana.org/domains/root/db/toshiba.html\ntoshiba\n\n// total : TotalEnergies SE\n// https://www.iana.org/domains/root/db/total.html\ntotal\n\n// tours : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tours.html\ntours\n\n// town : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/town.html\ntown\n\n// toyota : TOYOTA MOTOR CORPORATION\n// https://www.iana.org/domains/root/db/toyota.html\ntoyota\n\n// toys : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/toys.html\ntoys\n\n// trade : Elite Registry Limited\n// https://www.iana.org/domains/root/db/trade.html\ntrade\n\n// trading : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/trading.html\ntrading\n\n// training : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/training.html\ntraining\n\n// travel : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/travel.html\ntravel\n\n// travelers : Travelers TLD, LLC\n// https://www.iana.org/domains/root/db/travelers.html\ntravelers\n\n// travelersinsurance : Travelers TLD, LLC\n// https://www.iana.org/domains/root/db/travelersinsurance.html\ntravelersinsurance\n\n// trust : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/trust.html\ntrust\n\n// trv : Travelers TLD, LLC\n// https://www.iana.org/domains/root/db/trv.html\ntrv\n\n// tube : Latin American Telecom LLC\n// https://www.iana.org/domains/root/db/tube.html\ntube\n\n// tui : TUI AG\n// https://www.iana.org/domains/root/db/tui.html\ntui\n\n// tunes : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/tunes.html\ntunes\n\n// tushu : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/tushu.html\ntushu\n\n// tvs : T V SUNDRAM IYENGAR & SONS LIMITED\n// https://www.iana.org/domains/root/db/tvs.html\ntvs\n\n// ubank : National Australia Bank Limited\n// https://www.iana.org/domains/root/db/ubank.html\nubank\n\n// ubs : UBS AG\n// https://www.iana.org/domains/root/db/ubs.html\nubs\n\n// unicom : China United Network Communications Corporation Limited\n// https://www.iana.org/domains/root/db/unicom.html\nunicom\n\n// university : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/university.html\nuniversity\n\n// uno : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/uno.html\nuno\n\n// uol : UBN INTERNET LTDA.\n// https://www.iana.org/domains/root/db/uol.html\nuol\n\n// ups : UPS Market Driver, Inc.\n// https://www.iana.org/domains/root/db/ups.html\nups\n\n// vacations : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/vacations.html\nvacations\n\n// vana : Lifestyle Domain Holdings, Inc.\n// https://www.iana.org/domains/root/db/vana.html\nvana\n\n// vanguard : The Vanguard Group, Inc.\n// https://www.iana.org/domains/root/db/vanguard.html\nvanguard\n\n// vegas : Dot Vegas, Inc.\n// https://www.iana.org/domains/root/db/vegas.html\nvegas\n\n// ventures : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/ventures.html\nventures\n\n// verisign : VeriSign, Inc.\n// https://www.iana.org/domains/root/db/verisign.html\nverisign\n\n// versicherung : tldbox GmbH\n// https://www.iana.org/domains/root/db/versicherung.html\nversicherung\n\n// vet : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/vet.html\nvet\n\n// viajes : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/viajes.html\nviajes\n\n// video : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/video.html\nvideo\n\n// vig : VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe\n// https://www.iana.org/domains/root/db/vig.html\nvig\n\n// viking : Viking River Cruises (Bermuda) Ltd.\n// https://www.iana.org/domains/root/db/viking.html\nviking\n\n// villas : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/villas.html\nvillas\n\n// vin : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/vin.html\nvin\n\n// vip : Registry Services, LLC\n// https://www.iana.org/domains/root/db/vip.html\nvip\n\n// virgin : Virgin Enterprises Limited\n// https://www.iana.org/domains/root/db/virgin.html\nvirgin\n\n// visa : Visa Worldwide Pte. Limited\n// https://www.iana.org/domains/root/db/visa.html\nvisa\n\n// vision : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/vision.html\nvision\n\n// viva : Saudi Telecom Company\n// https://www.iana.org/domains/root/db/viva.html\nviva\n\n// vivo : Telefonica Brasil S.A.\n// https://www.iana.org/domains/root/db/vivo.html\nvivo\n\n// vlaanderen : DNS.be vzw\n// https://www.iana.org/domains/root/db/vlaanderen.html\nvlaanderen\n\n// vodka : Registry Services, LLC\n// https://www.iana.org/domains/root/db/vodka.html\nvodka\n\n// volkswagen : Volkswagen Group of America Inc.\n// https://www.iana.org/domains/root/db/volkswagen.html\nvolkswagen\n\n// volvo : Volvo Holding Sverige Aktiebolag\n// https://www.iana.org/domains/root/db/volvo.html\nvolvo\n\n// vote : Monolith Registry LLC\n// https://www.iana.org/domains/root/db/vote.html\nvote\n\n// voting : Valuetainment Corp.\n// https://www.iana.org/domains/root/db/voting.html\nvoting\n\n// voto : Monolith Registry LLC\n// https://www.iana.org/domains/root/db/voto.html\nvoto\n\n// voyage : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/voyage.html\nvoyage\n\n// wales : Nominet UK\n// https://www.iana.org/domains/root/db/wales.html\nwales\n\n// walmart : Wal-Mart Stores, Inc.\n// https://www.iana.org/domains/root/db/walmart.html\nwalmart\n\n// walter : Sandvik AB\n// https://www.iana.org/domains/root/db/walter.html\nwalter\n\n// wang : Zodiac Wang Limited\n// https://www.iana.org/domains/root/db/wang.html\nwang\n\n// wanggou : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/wanggou.html\nwanggou\n\n// watch : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/watch.html\nwatch\n\n// watches : Identity Digital Limited\n// https://www.iana.org/domains/root/db/watches.html\nwatches\n\n// weather : International Business Machines Corporation\n// https://www.iana.org/domains/root/db/weather.html\nweather\n\n// weatherchannel : International Business Machines Corporation\n// https://www.iana.org/domains/root/db/weatherchannel.html\nweatherchannel\n\n// webcam : dot Webcam Limited\n// https://www.iana.org/domains/root/db/webcam.html\nwebcam\n\n// weber : Saint-Gobain Weber SA\n// https://www.iana.org/domains/root/db/weber.html\nweber\n\n// website : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/website.html\nwebsite\n\n// wedding : Registry Services, LLC\n// https://www.iana.org/domains/root/db/wedding.html\nwedding\n\n// weibo : Sina Corporation\n// https://www.iana.org/domains/root/db/weibo.html\nweibo\n\n// weir : Weir Group IP Limited\n// https://www.iana.org/domains/root/db/weir.html\nweir\n\n// whoswho : Who\'s Who Registry\n// https://www.iana.org/domains/root/db/whoswho.html\nwhoswho\n\n// wien : punkt.wien GmbH\n// https://www.iana.org/domains/root/db/wien.html\nwien\n\n// wiki : Registry Services, LLC\n// https://www.iana.org/domains/root/db/wiki.html\nwiki\n\n// williamhill : William Hill Organization Limited\n// https://www.iana.org/domains/root/db/williamhill.html\nwilliamhill\n\n// win : First Registry Limited\n// https://www.iana.org/domains/root/db/win.html\nwin\n\n// windows : Microsoft Corporation\n// https://www.iana.org/domains/root/db/windows.html\nwindows\n\n// wine : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/wine.html\nwine\n\n// winners : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/winners.html\nwinners\n\n// wme : William Morris Endeavor Entertainment, LLC\n// https://www.iana.org/domains/root/db/wme.html\nwme\n\n// wolterskluwer : Wolters Kluwer N.V.\n// https://www.iana.org/domains/root/db/wolterskluwer.html\nwolterskluwer\n\n// woodside : Woodside Petroleum Limited\n// https://www.iana.org/domains/root/db/woodside.html\nwoodside\n\n// work : Registry Services, LLC\n// https://www.iana.org/domains/root/db/work.html\nwork\n\n// works : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/works.html\nworks\n\n// world : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/world.html\nworld\n\n// wow : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/wow.html\nwow\n\n// wtc : World Trade Centers Association, Inc.\n// https://www.iana.org/domains/root/db/wtc.html\nwtc\n\n// wtf : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/wtf.html\nwtf\n\n// xbox : Microsoft Corporation\n// https://www.iana.org/domains/root/db/xbox.html\nxbox\n\n// xerox : Xerox DNHC LLC\n// https://www.iana.org/domains/root/db/xerox.html\nxerox\n\n// xfinity : Comcast IP Holdings I, LLC\n// https://www.iana.org/domains/root/db/xfinity.html\nxfinity\n\n// xihuan : Beijing Qihu Keji Co., Ltd.\n// https://www.iana.org/domains/root/db/xihuan.html\nxihuan\n\n// xin : Elegant Leader Limited\n// https://www.iana.org/domains/root/db/xin.html\nxin\n\n// xn--11b4c3d : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--11b4c3d.html\nकॉम\n\n// xn--1ck2e1b : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--1ck2e1b.html\nセール\n\n// xn--1qqw23a : Guangzhou YU Wei Information Technology Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--1qqw23a.html\n佛山\n\n// xn--30rr7y : Excellent First Limited\n// https://www.iana.org/domains/root/db/xn--30rr7y.html\n慈善\n\n// xn--3bst00m : Eagle Horizon Limited\n// https://www.iana.org/domains/root/db/xn--3bst00m.html\n集团\n\n// xn--3ds443g : TLD REGISTRY LIMITED OY\n// https://www.iana.org/domains/root/db/xn--3ds443g.html\n在线\n\n// xn--3pxu8k : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--3pxu8k.html\n点看\n\n// xn--42c2d9a : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--42c2d9a.html\nคอม\n\n// xn--45q11c : Zodiac Gemini Ltd\n// https://www.iana.org/domains/root/db/xn--45q11c.html\n八卦\n\n// xn--4gbrim : Helium TLDs Ltd\n// https://www.iana.org/domains/root/db/xn--4gbrim.html\nموقع\n\n// xn--55qw42g : China Organizational Name Administration Center\n// https://www.iana.org/domains/root/db/xn--55qw42g.html\n公益\n\n// xn--55qx5d : China Internet Network Information Center (CNNIC)\n// https://www.iana.org/domains/root/db/xn--55qx5d.html\n公司\n\n// xn--5su34j936bgsg : Shangri‐La International Hotel Management Limited\n// https://www.iana.org/domains/root/db/xn--5su34j936bgsg.html\n香格里拉\n\n// xn--5tzm5g : Global Website TLD Asia Limited\n// https://www.iana.org/domains/root/db/xn--5tzm5g.html\n网站\n\n// xn--6frz82g : Identity Digital Limited\n// https://www.iana.org/domains/root/db/xn--6frz82g.html\n移动\n\n// xn--6qq986b3xl : Tycoon Treasure Limited\n// https://www.iana.org/domains/root/db/xn--6qq986b3xl.html\n我爱你\n\n// xn--80adxhks : Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID)\n// https://www.iana.org/domains/root/db/xn--80adxhks.html\nмосква\n\n// xn--80aqecdr1a : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n// https://www.iana.org/domains/root/db/xn--80aqecdr1a.html\nкатолик\n\n// xn--80asehdb : CORE Association\n// https://www.iana.org/domains/root/db/xn--80asehdb.html\nонлайн\n\n// xn--80aswg : CORE Association\n// https://www.iana.org/domains/root/db/xn--80aswg.html\nсайт\n\n// xn--8y0a063a : China United Network Communications Corporation Limited\n// https://www.iana.org/domains/root/db/xn--8y0a063a.html\n联通\n\n// xn--9dbq2a : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--9dbq2a.html\nקום\n\n// xn--9et52u : RISE VICTORY LIMITED\n// https://www.iana.org/domains/root/db/xn--9et52u.html\n时尚\n\n// xn--9krt00a : Sina Corporation\n// https://www.iana.org/domains/root/db/xn--9krt00a.html\n微博\n\n// xn--b4w605ferd : Temasek Holdings (Private) Limited\n// https://www.iana.org/domains/root/db/xn--b4w605ferd.html\n淡马锡\n\n// xn--bck1b9a5dre4c : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--bck1b9a5dre4c.html\nファッション\n\n// xn--c1avg : Public Interest Registry\n// https://www.iana.org/domains/root/db/xn--c1avg.html\nорг\n\n// xn--c2br7g : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--c2br7g.html\nनेट\n\n// xn--cck2b3b : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--cck2b3b.html\nストア\n\n// xn--cckwcxetd : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--cckwcxetd.html\nアマゾン\n\n// xn--cg4bki : SAMSUNG SDS CO., LTD\n// https://www.iana.org/domains/root/db/xn--cg4bki.html\n삼성\n\n// xn--czr694b : Internet DotTrademark Organisation Limited\n// https://www.iana.org/domains/root/db/xn--czr694b.html\n商标\n\n// xn--czrs0t : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/xn--czrs0t.html\n商店\n\n// xn--czru2d : Zodiac Aquarius Limited\n// https://www.iana.org/domains/root/db/xn--czru2d.html\n商城\n\n// xn--d1acj3b : The Foundation for Network Initiatives “The Smart Internet”\n// https://www.iana.org/domains/root/db/xn--d1acj3b.html\nдети\n\n// xn--eckvdtc9d : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--eckvdtc9d.html\nポイント\n\n// xn--efvy88h : Guangzhou YU Wei Information Technology Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--efvy88h.html\n新闻\n\n// xn--fct429k : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--fct429k.html\n家電\n\n// xn--fhbei : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--fhbei.html\nكوم\n\n// xn--fiq228c5hs : TLD REGISTRY LIMITED OY\n// https://www.iana.org/domains/root/db/xn--fiq228c5hs.html\n中文网\n\n// xn--fiq64b : CITIC Group Corporation\n// https://www.iana.org/domains/root/db/xn--fiq64b.html\n中信\n\n// xn--fjq720a : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/xn--fjq720a.html\n娱乐\n\n// xn--flw351e : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/xn--flw351e.html\n谷歌\n\n// xn--fzys8d69uvgm : PCCW Enterprises Limited\n// https://www.iana.org/domains/root/db/xn--fzys8d69uvgm.html\n電訊盈科\n\n// xn--g2xx48c : Nawang Heli(Xiamen) Network Service Co., LTD.\n// https://www.iana.org/domains/root/db/xn--g2xx48c.html\n购物\n\n// xn--gckr3f0f : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--gckr3f0f.html\nクラウド\n\n// xn--gk3at1e : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--gk3at1e.html\n通販\n\n// xn--hxt814e : Zodiac Taurus Limited\n// https://www.iana.org/domains/root/db/xn--hxt814e.html\n网店\n\n// xn--i1b6b1a6a2e : Public Interest Registry\n// https://www.iana.org/domains/root/db/xn--i1b6b1a6a2e.html\nसंगठन\n\n// xn--imr513n : Internet DotTrademark Organisation Limited\n// https://www.iana.org/domains/root/db/xn--imr513n.html\n餐厅\n\n// xn--io0a7i : China Internet Network Information Center (CNNIC)\n// https://www.iana.org/domains/root/db/xn--io0a7i.html\n网络\n\n// xn--j1aef : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--j1aef.html\nком\n\n// xn--jlq480n2rg : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--jlq480n2rg.html\n亚马逊\n\n// xn--jvr189m : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--jvr189m.html\n食品\n\n// xn--kcrx77d1x4a : Koninklijke Philips N.V.\n// https://www.iana.org/domains/root/db/xn--kcrx77d1x4a.html\n飞利浦\n\n// xn--kput3i : Beijing RITT-Net Technology Development Co., Ltd\n// https://www.iana.org/domains/root/db/xn--kput3i.html\n手机\n\n// xn--mgba3a3ejt : Aramco Services Company\n// https://www.iana.org/domains/root/db/xn--mgba3a3ejt.html\nارامكو\n\n// xn--mgba7c0bbn0a : Competrol (Luxembourg) Sarl\n// https://www.iana.org/domains/root/db/xn--mgba7c0bbn0a.html\nالعليان\n\n// xn--mgbaakc7dvf : Emirates Telecommunications Corporation (trading as Etisalat)\n// https://www.iana.org/domains/root/db/xn--mgbaakc7dvf.html\nاتصالات\n\n// xn--mgbab2bd : CORE Association\n// https://www.iana.org/domains/root/db/xn--mgbab2bd.html\nبازار\n\n// xn--mgbca7dzdo : Abu Dhabi Systems and Information Centre\n// https://www.iana.org/domains/root/db/xn--mgbca7dzdo.html\nابوظبي\n\n// xn--mgbi4ecexp : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n// https://www.iana.org/domains/root/db/xn--mgbi4ecexp.html\nكاثوليك\n\n// xn--mgbt3dhd : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n// https://www.iana.org/domains/root/db/xn--mgbt3dhd.html\nهمراه\n\n// xn--mk1bu44c : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--mk1bu44c.html\n닷컴\n\n// xn--mxtq1m : Net-Chinese Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--mxtq1m.html\n政府\n\n// xn--ngbc5azd : International Domain Registry Pty. Ltd.\n// https://www.iana.org/domains/root/db/xn--ngbc5azd.html\nشبكة\n\n// xn--ngbe9e0a : Kuwait Finance House\n// https://www.iana.org/domains/root/db/xn--ngbe9e0a.html\nبيتك\n\n// xn--ngbrx : League of Arab States\n// https://www.iana.org/domains/root/db/xn--ngbrx.html\nعرب\n\n// xn--nqv7f : Public Interest Registry\n// https://www.iana.org/domains/root/db/xn--nqv7f.html\n机构\n\n// xn--nqv7fs00ema : Public Interest Registry\n// https://www.iana.org/domains/root/db/xn--nqv7fs00ema.html\n组织机构\n\n// xn--nyqy26a : Stable Tone Limited\n// https://www.iana.org/domains/root/db/xn--nyqy26a.html\n健康\n\n// xn--otu796d : Jiang Yu Liang Cai Technology Company Limited\n// https://www.iana.org/domains/root/db/xn--otu796d.html\n招聘\n\n// xn--p1acf : Rusnames Limited\n// https://www.iana.org/domains/root/db/xn--p1acf.html\nрус\n\n// xn--pssy2u : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--pssy2u.html\n大拿\n\n// xn--q9jyb4c : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/xn--q9jyb4c.html\nみんな\n\n// xn--qcka1pmc : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/xn--qcka1pmc.html\nグーグル\n\n// xn--rhqv96g : Stable Tone Limited\n// https://www.iana.org/domains/root/db/xn--rhqv96g.html\n世界\n\n// xn--rovu88b : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--rovu88b.html\n書籍\n\n// xn--ses554g : KNET Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--ses554g.html\n网址\n\n// xn--t60b56a : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--t60b56a.html\n닷넷\n\n// xn--tckwe : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--tckwe.html\nコム\n\n// xn--tiq49xqyj : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n// https://www.iana.org/domains/root/db/xn--tiq49xqyj.html\n天主教\n\n// xn--unup4y : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/xn--unup4y.html\n游戏\n\n// xn--vermgensberater-ctb : Deutsche Vermögensberatung Aktiengesellschaft DVAG\n// https://www.iana.org/domains/root/db/xn--vermgensberater-ctb.html\nvermögensberater\n\n// xn--vermgensberatung-pwb : Deutsche Vermögensberatung Aktiengesellschaft DVAG\n// https://www.iana.org/domains/root/db/xn--vermgensberatung-pwb.html\nvermögensberatung\n\n// xn--vhquv : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/xn--vhquv.html\n企业\n\n// xn--vuq861b : Beijing Tele-info Technology Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--vuq861b.html\n信息\n\n// xn--w4r85el8fhu5dnra : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/xn--w4r85el8fhu5dnra.html\n嘉里大酒店\n\n// xn--w4rs40l : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/xn--w4rs40l.html\n嘉里\n\n// xn--xhq521b : Guangzhou YU Wei Information Technology Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--xhq521b.html\n广东\n\n// xn--zfr164b : China Organizational Name Administration Center\n// https://www.iana.org/domains/root/db/xn--zfr164b.html\n政务\n\n// xyz : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/xyz.html\nxyz\n\n// yachts : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/yachts.html\nyachts\n\n// yahoo : Oath Inc.\n// https://www.iana.org/domains/root/db/yahoo.html\nyahoo\n\n// yamaxun : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/yamaxun.html\nyamaxun\n\n// yandex : Yandex Europe B.V.\n// https://www.iana.org/domains/root/db/yandex.html\nyandex\n\n// yodobashi : YODOBASHI CAMERA CO.,LTD.\n// https://www.iana.org/domains/root/db/yodobashi.html\nyodobashi\n\n// yoga : Registry Services, LLC\n// https://www.iana.org/domains/root/db/yoga.html\nyoga\n\n// yokohama : GMO Registry, Inc.\n// https://www.iana.org/domains/root/db/yokohama.html\nyokohama\n\n// you : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/you.html\nyou\n\n// youtube : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/youtube.html\nyoutube\n\n// yun : Beijing Qihu Keji Co., Ltd.\n// https://www.iana.org/domains/root/db/yun.html\nyun\n\n// zappos : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/zappos.html\nzappos\n\n// zara : Industria de Diseño Textil, S.A. (INDITEX, S.A.)\n// https://www.iana.org/domains/root/db/zara.html\nzara\n\n// zero : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/zero.html\nzero\n\n// zip : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/zip.html\nzip\n\n// zone : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/zone.html\nzone\n\n// zuerich : Kanton Zürich (Canton of Zurich)\n// https://www.iana.org/domains/root/db/zuerich.html\nzuerich\n\n\n// ===END ICANN DOMAINS===\n// ===BEGIN PRIVATE DOMAINS===\n// (Note: these are in alphabetical order by company name)\n\n// 1GB LLC : https://www.1gb.ua/\n// Submitted by 1GB LLC <noc@1gb.com.ua>\ncc.ua\ninf.ua\nltd.ua\n\n// 611coin : https://611project.org/\n611.to\n\n// Aaron Marais\' Gitlab pages: https://lab.aaronleem.co.za\n// Submitted by Aaron Marais <its_me@aaronleem.co.za>\ngraphox.us\n\n// accesso Technology Group, plc. : https://accesso.com/\n// Submitted by accesso Team <accessoecommerce@accesso.com>\n*.devcdnaccesso.com\n\n// Acorn Labs : https://acorn.io\n// Submitted by Craig Jellick <domains@acorn.io>\n*.on-acorn.io\n\n// ActiveTrail: https://www.activetrail.biz/\n// Submitted by Ofer Kalaora <postmaster@activetrail.com>\nactivetrail.biz\n\n// Adobe : https://www.adobe.com/\n// Submitted by Ian Boston <boston@adobe.com> and Lars Trieloff <trieloff@adobe.com>\nadobeaemcloud.com\n*.dev.adobeaemcloud.com\nhlx.live\nadobeaemcloud.net\nhlx.page\nhlx3.page\n\n// Adobe Developer Platform : https://developer.adobe.com\n// Submitted by Jesse MacFadyen<jessem@adobe.com>\nadobeio-static.net\nadobeioruntime.net\n\n// Agnat sp. z o.o. : https://domena.pl\n// Submitted by Przemyslaw Plewa <it-admin@domena.pl>\nbeep.pl\n\n// Airkit : https://www.airkit.com/\n// Submitted by Grant Cooksey <security@airkit.com>\nairkitapps.com\nairkitapps-au.com\nairkitapps.eu\n\n// Aiven: https://aiven.io/\n// Submitted by Etienne Stalmans <security@aiven.io>\naivencloud.com\n\n// Akamai : https://www.akamai.com/\n// Submitted by Akamai Team <publicsuffixlist@akamai.com>\nakadns.net\nakamai.net\nakamai-staging.net\nakamaiedge.net\nakamaiedge-staging.net\nakamaihd.net\nakamaihd-staging.net\nakamaiorigin.net\nakamaiorigin-staging.net\nakamaized.net\nakamaized-staging.net\nedgekey.net\nedgekey-staging.net\nedgesuite.net\nedgesuite-staging.net\n\n// alboto.ca : http://alboto.ca\n// Submitted by Anton Avramov <avramov@alboto.ca>\nbarsy.ca\n\n// Alces Software Ltd : http://alces-software.com\n// Submitted by Mark J. Titorenko <mark.titorenko@alces-software.com>\n*.compute.estate\n*.alces.network\n\n// all-inkl.com : https://all-inkl.com\n// Submitted by Werner Kaltofen <wk@all-inkl.com>\nkasserver.com\n\n// Altervista: https://www.altervista.org\n// Submitted by Carlo Cannas <tech_staff@altervista.it>\naltervista.org\n\n// alwaysdata : https://www.alwaysdata.com\n// Submitted by Cyril <admin@alwaysdata.com>\nalwaysdata.net\n\n// Amaze Software : https://amaze.co\n// Submitted by Domain Admin <domainadmin@amaze.co>\nmyamaze.net\n\n// Amazon : https://www.amazon.com/\n// Submitted by AWS Security <psl-maintainers@amazon.com>\n// Subsections of Amazon/subsidiaries will appear until "concludes" tag\n\n// Amazon CloudFront\n// Submitted by Donavan Miller <donavanm@amazon.com>\n// Reference: 54144616-fd49-4435-8535-19c6a601bdb3\ncloudfront.net\n\n// Amazon EC2\n// Submitted by Luke Wells <psl-maintainers@amazon.com>\n// Reference: 4c38fa71-58ac-4768-99e5-689c1767e537\n*.compute.amazonaws.com\n*.compute-1.amazonaws.com\n*.compute.amazonaws.com.cn\nus-east-1.amazonaws.com\n\n// Amazon S3\n// Submitted by Luke Wells <psl-maintainers@amazon.com>\n// Reference: d068bd97-f0a9-4838-a6d8-954b622ef4ae\ns3.cn-north-1.amazonaws.com.cn\ns3.dualstack.ap-northeast-1.amazonaws.com\ns3.dualstack.ap-northeast-2.amazonaws.com\ns3.ap-northeast-2.amazonaws.com\ns3-website.ap-northeast-2.amazonaws.com\ns3.dualstack.ap-south-1.amazonaws.com\ns3.ap-south-1.amazonaws.com\ns3-website.ap-south-1.amazonaws.com\ns3.dualstack.ap-southeast-1.amazonaws.com\ns3.dualstack.ap-southeast-2.amazonaws.com\ns3.dualstack.ca-central-1.amazonaws.com\ns3.ca-central-1.amazonaws.com\ns3-website.ca-central-1.amazonaws.com\ns3.dualstack.eu-central-1.amazonaws.com\ns3.eu-central-1.amazonaws.com\ns3-website.eu-central-1.amazonaws.com\ns3.dualstack.eu-west-1.amazonaws.com\ns3.dualstack.eu-west-2.amazonaws.com\ns3.eu-west-2.amazonaws.com\ns3-website.eu-west-2.amazonaws.com\ns3.dualstack.eu-west-3.amazonaws.com\ns3.eu-west-3.amazonaws.com\ns3-website.eu-west-3.amazonaws.com\ns3.amazonaws.com\ns3-ap-northeast-1.amazonaws.com\ns3-ap-northeast-2.amazonaws.com\ns3-ap-south-1.amazonaws.com\ns3-ap-southeast-1.amazonaws.com\ns3-ap-southeast-2.amazonaws.com\ns3-ca-central-1.amazonaws.com\ns3-eu-central-1.amazonaws.com\ns3-eu-west-1.amazonaws.com\ns3-eu-west-2.amazonaws.com\ns3-eu-west-3.amazonaws.com\ns3-external-1.amazonaws.com\ns3-fips-us-gov-west-1.amazonaws.com\ns3-sa-east-1.amazonaws.com\ns3-us-east-2.amazonaws.com\ns3-us-gov-west-1.amazonaws.com\ns3-us-west-1.amazonaws.com\ns3-us-west-2.amazonaws.com\ns3-website-ap-northeast-1.amazonaws.com\ns3-website-ap-southeast-1.amazonaws.com\ns3-website-ap-southeast-2.amazonaws.com\ns3-website-eu-west-1.amazonaws.com\ns3-website-sa-east-1.amazonaws.com\ns3-website-us-east-1.amazonaws.com\ns3-website-us-west-1.amazonaws.com\ns3-website-us-west-2.amazonaws.com\ns3.dualstack.sa-east-1.amazonaws.com\ns3.dualstack.us-east-1.amazonaws.com\ns3.dualstack.us-east-2.amazonaws.com\ns3.us-east-2.amazonaws.com\ns3-website.us-east-2.amazonaws.com\n\n// Analytics on AWS\n// Submitted by AWS Security <psl-maintainers@amazon.com>\n// Reference: c02c3a80-f8a0-4fd2-b719-48ea8b7c28de\nanalytics-gateway.ap-northeast-1.amazonaws.com\nanalytics-gateway.eu-west-1.amazonaws.com\nanalytics-gateway.us-east-1.amazonaws.com\nanalytics-gateway.us-east-2.amazonaws.com\nanalytics-gateway.us-west-2.amazonaws.com\n\n// AWS Cloud9\n// Submitted by: AWS Security <psl-maintainers@amazon.com>\n// Reference: 05c44955-977c-4b57-938a-f2af92733f9f\nwebview-assets.aws-cloud9.af-south-1.amazonaws.com\nvfs.cloud9.af-south-1.amazonaws.com\nwebview-assets.cloud9.af-south-1.amazonaws.com\nwebview-assets.aws-cloud9.ap-east-1.amazonaws.com\nvfs.cloud9.ap-east-1.amazonaws.com\nwebview-assets.cloud9.ap-east-1.amazonaws.com\nwebview-assets.aws-cloud9.ap-northeast-1.amazonaws.com\nvfs.cloud9.ap-northeast-1.amazonaws.com\nwebview-assets.cloud9.ap-northeast-1.amazonaws.com\nwebview-assets.aws-cloud9.ap-northeast-2.amazonaws.com\nvfs.cloud9.ap-northeast-2.amazonaws.com\nwebview-assets.cloud9.ap-northeast-2.amazonaws.com\nwebview-assets.aws-cloud9.ap-northeast-3.amazonaws.com\nvfs.cloud9.ap-northeast-3.amazonaws.com\nwebview-assets.cloud9.ap-northeast-3.amazonaws.com\nwebview-assets.aws-cloud9.ap-south-1.amazonaws.com\nvfs.cloud9.ap-south-1.amazonaws.com\nwebview-assets.cloud9.ap-south-1.amazonaws.com\nwebview-assets.aws-cloud9.ap-southeast-1.amazonaws.com\nvfs.cloud9.ap-southeast-1.amazonaws.com\nwebview-assets.cloud9.ap-southeast-1.amazonaws.com\nwebview-assets.aws-cloud9.ap-southeast-2.amazonaws.com\nvfs.cloud9.ap-southeast-2.amazonaws.com\nwebview-assets.cloud9.ap-southeast-2.amazonaws.com\nwebview-assets.aws-cloud9.ca-central-1.amazonaws.com\nvfs.cloud9.ca-central-1.amazonaws.com\nwebview-assets.cloud9.ca-central-1.amazonaws.com\nwebview-assets.aws-cloud9.eu-central-1.amazonaws.com\nvfs.cloud9.eu-central-1.amazonaws.com\nwebview-assets.cloud9.eu-central-1.amazonaws.com\nwebview-assets.aws-cloud9.eu-north-1.amazonaws.com\nvfs.cloud9.eu-north-1.amazonaws.com\nwebview-assets.cloud9.eu-north-1.amazonaws.com\nwebview-assets.aws-cloud9.eu-south-1.amazonaws.com\nvfs.cloud9.eu-south-1.amazonaws.com\nwebview-assets.cloud9.eu-south-1.amazonaws.com\nwebview-assets.aws-cloud9.eu-west-1.amazonaws.com\nvfs.cloud9.eu-west-1.amazonaws.com\nwebview-assets.cloud9.eu-west-1.amazonaws.com\nwebview-assets.aws-cloud9.eu-west-2.amazonaws.com\nvfs.cloud9.eu-west-2.amazonaws.com\nwebview-assets.cloud9.eu-west-2.amazonaws.com\nwebview-assets.aws-cloud9.eu-west-3.amazonaws.com\nvfs.cloud9.eu-west-3.amazonaws.com\nwebview-assets.cloud9.eu-west-3.amazonaws.com\nwebview-assets.aws-cloud9.me-south-1.amazonaws.com\nvfs.cloud9.me-south-1.amazonaws.com\nwebview-assets.cloud9.me-south-1.amazonaws.com\nwebview-assets.aws-cloud9.sa-east-1.amazonaws.com\nvfs.cloud9.sa-east-1.amazonaws.com\nwebview-assets.cloud9.sa-east-1.amazonaws.com\nwebview-assets.aws-cloud9.us-east-1.amazonaws.com\nvfs.cloud9.us-east-1.amazonaws.com\nwebview-assets.cloud9.us-east-1.amazonaws.com\nwebview-assets.aws-cloud9.us-east-2.amazonaws.com\nvfs.cloud9.us-east-2.amazonaws.com\nwebview-assets.cloud9.us-east-2.amazonaws.com\nwebview-assets.aws-cloud9.us-west-1.amazonaws.com\nvfs.cloud9.us-west-1.amazonaws.com\nwebview-assets.cloud9.us-west-1.amazonaws.com\nwebview-assets.aws-cloud9.us-west-2.amazonaws.com\nvfs.cloud9.us-west-2.amazonaws.com\nwebview-assets.cloud9.us-west-2.amazonaws.com\n\n// AWS Elastic Beanstalk\n// Submitted by Luke Wells <psl-maintainers@amazon.com>\n// Reference: aa202394-43a0-4857-b245-8db04549137e\ncn-north-1.eb.amazonaws.com.cn\ncn-northwest-1.eb.amazonaws.com.cn\nelasticbeanstalk.com\nap-northeast-1.elasticbeanstalk.com\nap-northeast-2.elasticbeanstalk.com\nap-northeast-3.elasticbeanstalk.com\nap-south-1.elasticbeanstalk.com\nap-southeast-1.elasticbeanstalk.com\nap-southeast-2.elasticbeanstalk.com\nca-central-1.elasticbeanstalk.com\neu-central-1.elasticbeanstalk.com\neu-west-1.elasticbeanstalk.com\neu-west-2.elasticbeanstalk.com\neu-west-3.elasticbeanstalk.com\nsa-east-1.elasticbeanstalk.com\nus-east-1.elasticbeanstalk.com\nus-east-2.elasticbeanstalk.com\nus-gov-west-1.elasticbeanstalk.com\nus-west-1.elasticbeanstalk.com\nus-west-2.elasticbeanstalk.com\n\n// (AWS) Elastic Load Balancing\n// Submitted by Luke Wells <psl-maintainers@amazon.com>\n// Reference: 12a3d528-1bac-4433-a359-a395867ffed2\n*.elb.amazonaws.com.cn\n*.elb.amazonaws.com\n\n// AWS Global Accelerator\n// Submitted by Daniel Massaguer <psl-maintainers@amazon.com>\n// Reference: d916759d-a08b-4241-b536-4db887383a6a\nawsglobalaccelerator.com\n\n// eero\n// Submitted by Yue Kang <eero-dynamic-dns@amazon.com>\n// Reference: 264afe70-f62c-4c02-8ab9-b5281ed24461\neero.online\neero-stage.online\n\n// concludes Amazon\n\n// Amune : https://amune.org/\n// Submitted by Team Amune <cert@amune.org>\nt3l3p0rt.net\ntele.amune.org\n\n// Apigee : https://apigee.com/\n// Submitted by Apigee Security Team <security@apigee.com>\napigee.io\n\n// Apphud : https://apphud.com\n// Submitted by Alexander Selivanov <alex@apphud.com>\nsiiites.com\n\n// Appspace : https://www.appspace.com\n// Submitted by Appspace Security Team <security@appspace.com>\nappspacehosted.com\nappspaceusercontent.com\n\n// Appudo UG (haftungsbeschränkt) : https://www.appudo.com\n// Submitted by Alexander Hochbaum <admin@appudo.com>\nappudo.net\n\n// Aptible : https://www.aptible.com/\n// Submitted by Thomas Orozco <thomas@aptible.com>\non-aptible.com\n\n// ASEINet : https://www.aseinet.com/\n// Submitted by Asei SEKIGUCHI <mail@aseinet.com>\nuser.aseinet.ne.jp\ngv.vc\nd.gv.vc\n\n// Asociación Amigos de la Informática "Euskalamiga" : http://encounter.eus/\n// Submitted by Hector Martin <marcan@euskalencounter.org>\nuser.party.eus\n\n// Association potager.org : https://potager.org/\n// Submitted by Lunar <jardiniers@potager.org>\npimienta.org\npoivron.org\npotager.org\nsweetpepper.org\n\n// ASUSTOR Inc. : http://www.asustor.com\n// Submitted by Vincent Tseng <vincenttseng@asustor.com>\nmyasustor.com\n\n// Atlassian : https://atlassian.com\n// Submitted by Sam Smyth <devloop@atlassian.com>\ncdn.prod.atlassian-dev.net\n\n// Authentick UG (haftungsbeschränkt) : https://authentick.net\n// Submitted by Lukas Reschke <lukas@authentick.net>\ntranslated.page\n\n// Autocode : https://autocode.com\n// Submitted by Jacob Lee <jacob@autocode.com>\nautocode.dev\n\n// AVM : https://avm.de\n// Submitted by Andreas Weise <a.weise@avm.de>\nmyfritz.net\n\n// AVStack Pte. Ltd. : https://avstack.io\n// Submitted by Jasper Hugo <jasper@avstack.io>\nonavstack.net\n\n// AW AdvisorWebsites.com Software Inc : https://advisorwebsites.com\n// Submitted by James Kennedy <domains@advisorwebsites.com>\n*.awdev.ca\n*.advisor.ws\n\n// AZ.pl sp. z.o.o: https://az.pl\n// Submitted by Krzysztof Wolski <krzysztof.wolski@home.eu>\necommerce-shop.pl\n\n// b-data GmbH : https://www.b-data.io\n// Submitted by Olivier Benz <olivier.benz@b-data.ch>\nb-data.io\n\n// backplane : https://www.backplane.io\n// Submitted by Anthony Voutas <anthony@backplane.io>\nbackplaneapp.io\n\n// Balena : https://www.balena.io\n// Submitted by Petros Angelatos <petrosagg@balena.io>\nbalena-devices.com\n\n// University of Banja Luka : https://unibl.org\n// Domains for Republic of Srpska administrative entity.\n// Submitted by Marko Ivanovic <kormang@hotmail.rs>\nrs.ba\n\n// Banzai Cloud\n// Submitted by Janos Matyas <info@banzaicloud.com>\n*.banzai.cloud\napp.banzaicloud.io\n*.backyards.banzaicloud.io\n\n// BASE, Inc. : https://binc.jp\n// Submitted by Yuya NAGASAWA <public-suffix-list@binc.jp>\nbase.ec\nofficial.ec\nbuyshop.jp\nfashionstore.jp\nhandcrafted.jp\nkawaiishop.jp\nsupersale.jp\ntheshop.jp\nshopselect.net\nbase.shop\n\n// BeagleBoard.org Foundation : https://beagleboard.org\n// Submitted by Jason Kridner <jkridner@beagleboard.org>\nbeagleboard.io\n\n// Beget Ltd\n// Submitted by Lev Nekrasov <lnekrasov@beget.com>\n*.beget.app\n\n// BetaInABox\n// Submitted by Adrian <adrian@betainabox.com>\nbetainabox.com\n\n// BinaryLane : http://www.binarylane.com\n// Submitted by Nathan O\'Sullivan <nathan@mammoth.com.au>\nbnr.la\n\n// Bitbucket : http://bitbucket.org\n// Submitted by Andy Ortlieb <aortlieb@atlassian.com>\nbitbucket.io\n\n// Blackbaud, Inc. : https://www.blackbaud.com\n// Submitted by Paul Crowder <paul.crowder@blackbaud.com>\nblackbaudcdn.net\n\n// Blatech : http://www.blatech.net\n// Submitted by Luke Bratch <luke@bratch.co.uk>\nof.je\n\n// Blue Bite, LLC : https://bluebite.com\n// Submitted by Joshua Weiss <admin.engineering@bluebite.com>\nbluebite.io\n\n// Boomla : https://boomla.com\n// Submitted by Tibor Halter <thalter@boomla.com>\nboomla.net\n\n// Boutir : https://www.boutir.com\n// Submitted by Eric Ng Ka Ka <ngkaka@boutir.com>\nboutir.com\n\n// Boxfuse : https://boxfuse.com\n// Submitted by Axel Fontaine <axel@boxfuse.com>\nboxfuse.io\n\n// bplaced : https://www.bplaced.net/\n// Submitted by Miroslav Bozic <security@bplaced.net>\nsquare7.ch\nbplaced.com\nbplaced.de\nsquare7.de\nbplaced.net\nsquare7.net\n\n// Brendly : https://brendly.rs\n// Submitted by Dusan Radovanovic <dusan.radovanovic@brendly.rs>\nshop.brendly.rs\n\n// BrowserSafetyMark\n// Submitted by Dave Tharp <browsersafetymark.io@quicinc.com>\nbrowsersafetymark.io\n\n// Bytemark Hosting : https://www.bytemark.co.uk\n// Submitted by Paul Cammish <paul.cammish@bytemark.co.uk>\nuk0.bigv.io\ndh.bytemark.co.uk\nvm.bytemark.co.uk\n\n// Caf.js Labs LLC : https://www.cafjs.com\n// Submitted by Antonio Lain <antlai@cafjs.com>\ncafjs.com\n\n// callidomus : https://www.callidomus.com/\n// Submitted by Marcus Popp <admin@callidomus.com>\nmycd.eu\n\n// Canva Pty Ltd : https://canva.com/\n// Submitted by Joel Aquilina <publicsuffixlist@canva.com>\ncanva-apps.cn\ncanva-apps.com\n\n// Carrd : https://carrd.co\n// Submitted by AJ <aj@carrd.co>\ndrr.ac\nuwu.ai\ncarrd.co\ncrd.co\nju.mp\n\n// CentralNic : http://www.centralnic.com/names/domains\n// Submitted by registry <gavin.brown@centralnic.com>\nae.org\nbr.com\ncn.com\ncom.de\ncom.se\nde.com\neu.com\ngb.net\nhu.net\njp.net\njpn.com\nmex.com\nru.com\nsa.com\nse.net\nuk.com\nuk.net\nus.com\nza.bz\nza.com\n\n// No longer operated by CentralNic, these entries should be adopted and/or removed by current operators\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nar.com\nhu.com\nkr.com\nno.com\nqc.com\nuy.com\n\n// Africa.com Web Solutions Ltd : https://registry.africa.com\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nafrica.com\n\n// iDOT Services Limited : http://www.domain.gr.com\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\ngr.com\n\n// Radix FZC : http://domains.in.net\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nin.net\nweb.in\n\n// US REGISTRY LLC : http://us.org\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nus.org\n\n// co.com Registry, LLC : https://registry.co.com\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nco.com\n\n// Roar Domains LLC : https://roar.basketball/\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\naus.basketball\nnz.basketball\n\n// BRS Media : https://brsmedia.com/\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nradio.am\nradio.fm\n\n// c.la : http://www.c.la/\nc.la\n\n// certmgr.org : https://certmgr.org\n// Submitted by B. Blechschmidt <hostmaster@certmgr.org>\ncertmgr.org\n\n// Cityhost LLC : https://cityhost.ua\n// Submitted by Maksym Rivtin <support@cityhost.net.ua>\ncx.ua\n\n// Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/\n// Submitted by Rishabh Nambiar & Michael Brown <team@discourse.org>\ndiscourse.group\ndiscourse.team\n\n// Clever Cloud : https://www.clever-cloud.com/\n// Submitted by Quentin Adam <noc@clever-cloud.com>\ncleverapps.io\n\n// Clerk : https://www.clerk.dev\n// Submitted by Colin Sidoti <systems@clerk.dev>\nclerk.app\nclerkstage.app\n*.lcl.dev\n*.lclstage.dev\n*.stg.dev\n*.stgstage.dev\n\n// ClickRising : https://clickrising.com/\n// Submitted by Umut Gumeli <infrastructure-publicsuffixlist@clickrising.com>\nclickrising.net\n\n// Cloud66 : https://www.cloud66.com/\n// Submitted by Khash Sajadi <khash@cloud66.com>\nc66.me\ncloud66.ws\ncloud66.zone\n\n// CloudAccess.net : https://www.cloudaccess.net/\n// Submitted by Pawel Panek <noc@cloudaccess.net>\njdevcloud.com\nwpdevcloud.com\ncloudaccess.host\nfreesite.host\ncloudaccess.net\n\n// cloudControl : https://www.cloudcontrol.com/\n// Submitted by Tobias Wilken <tw@cloudcontrol.com>\ncloudcontrolled.com\ncloudcontrolapp.com\n\n// Cloudera, Inc. : https://www.cloudera.com/\n// Submitted by Kedarnath Waikar <security@cloudera.com>\n*.cloudera.site\n\n// Cloudflare, Inc. : https://www.cloudflare.com/\n// Submitted by Cloudflare Team <publicsuffixlist@cloudflare.com>\ncf-ipfs.com\ncloudflare-ipfs.com\ntrycloudflare.com\npages.dev\nr2.dev\nworkers.dev\n\n// Clovyr : https://clovyr.io\n// Submitted by Patrick Nielsen <patrick@clovyr.io>\nwnext.app\n\n// co.ca : http://registry.co.ca/\nco.ca\n\n// Co & Co : https://co-co.nl/\n// Submitted by Govert Versluis <govert@co-co.nl>\n*.otap.co\n\n// i-registry s.r.o. : http://www.i-registry.cz/\n// Submitted by Martin Semrad <semrad@i-registry.cz>\nco.cz\n\n// CDN77.com : http://www.cdn77.com\n// Submitted by Jan Krpes <jan.krpes@cdn77.com>\nc.cdn77.org\ncdn77-ssl.net\nr.cdn77.net\nrsc.cdn77.org\nssl.origin.cdn77-secure.org\n\n// Cloud DNS Ltd : http://www.cloudns.net\n// Submitted by Aleksander Hristov <noc@cloudns.net>\ncloudns.asia\ncloudns.biz\ncloudns.club\ncloudns.cc\ncloudns.eu\ncloudns.in\ncloudns.info\ncloudns.org\ncloudns.pro\ncloudns.pw\ncloudns.us\n\n// CNPY : https://cnpy.gdn\n// Submitted by Angelo Gladding <angelo@lahacker.net>\ncnpy.gdn\n\n// Codeberg e. V. : https://codeberg.org\n// Submitted by Moritz Marquardt <git@momar.de>\ncodeberg.page\n\n// CoDNS B.V.\nco.nl\nco.no\n\n// Combell.com : https://www.combell.com\n// Submitted by Thomas Wouters <thomas.wouters@combellgroup.com>\nwebhosting.be\nhosting-cluster.nl\n\n// Coordination Center for TLD RU and XN--P1AI : https://cctld.ru/en/domains/domens_ru/reserved/\n// Submitted by George Georgievsky <gug@cctld.ru>\nac.ru\nedu.ru\ngov.ru\nint.ru\nmil.ru\ntest.ru\n\n// COSIMO GmbH : http://www.cosimo.de\n// Submitted by Rene Marticke <rmarticke@cosimo.de>\ndyn.cosidns.de\ndynamisches-dns.de\ndnsupdater.de\ninternet-dns.de\nl-o-g-i-n.de\ndynamic-dns.info\nfeste-ip.net\nknx-server.net\nstatic-access.net\n\n// Craynic, s.r.o. : http://www.craynic.com/\n// Submitted by Ales Krajnik <ales.krajnik@craynic.com>\nrealm.cz\n\n// Cryptonomic : https://cryptonomic.net/\n// Submitted by Andrew Cady <public-suffix-list@cryptonomic.net>\n*.cryptonomic.net\n\n// Cupcake : https://cupcake.io/\n// Submitted by Jonathan Rudenberg <jonathan@cupcake.io>\ncupcake.is\n\n// Curv UG : https://curv-labs.de/\n// Submitted by Marvin Wiesner <Marvin@curv-labs.de>\ncurv.dev\n\n// Customer OCI - Oracle Dyn https://cloud.oracle.com/home https://dyn.com/dns/\n// Submitted by Gregory Drake <support@dyn.com>\n// Note: This is intended to also include customer-oci.com due to wildcards implicitly including the current label\n*.customer-oci.com\n*.oci.customer-oci.com\n*.ocp.customer-oci.com\n*.ocs.customer-oci.com\n\n// cyon GmbH : https://www.cyon.ch/\n// Submitted by Dominic Luechinger <dol@cyon.ch>\ncyon.link\ncyon.site\n\n// Danger Science Group: https://dangerscience.com/\n// Submitted by Skylar MacDonald <skylar@dangerscience.com>\nfnwk.site\nfolionetwork.site\nplatform0.app\n\n// Daplie, Inc : https://daplie.com\n// Submitted by AJ ONeal <aj@daplie.com>\ndaplie.me\nlocalhost.daplie.me\n\n// Datto, Inc. : https://www.datto.com/\n// Submitted by Philipp Heckel <ph@datto.com>\ndattolocal.com\ndattorelay.com\ndattoweb.com\nmydatto.com\ndattolocal.net\nmydatto.net\n\n// Dansk.net : http://www.dansk.net/\n// Submitted by Anani Voule <digital@digital.co.dk>\nbiz.dk\nco.dk\nfirm.dk\nreg.dk\nstore.dk\n\n// dappnode.io : https://dappnode.io/\n// Submitted by Abel Boldu / DAppNode Team <community@dappnode.io>\ndyndns.dappnode.io\n\n// dapps.earth : https://dapps.earth/\n// Submitted by Daniil Burdakov <icqkill@gmail.com>\n*.dapps.earth\n*.bzz.dapps.earth\n\n// Dark, Inc. : https://darklang.com\n// Submitted by Paul Biggar <ops@darklang.com>\nbuiltwithdark.com\n\n// DataDetect, LLC. : https://datadetect.com\n// Submitted by Andrew Banchich <abanchich@sceven.com>\ndemo.datadetect.com\ninstance.datadetect.com\n\n// Datawire, Inc : https://www.datawire.io\n// Submitted by Richard Li <secalert@datawire.io>\nedgestack.me\n\n// DDNS5 : https://ddns5.com\n// Submitted by Cameron Elliott <cameron@cameronelliott.com>\nddns5.com\n\n// Debian : https://www.debian.org/\n// Submitted by Peter Palfrader / Debian Sysadmin Team <dsa-publicsuffixlist@debian.org>\ndebian.net\n\n// Deno Land Inc : https://deno.com/\n// Submitted by Luca Casonato <hostmaster@deno.com>\ndeno.dev\ndeno-staging.dev\n\n// deSEC : https://desec.io/\n// Submitted by Peter Thomassen <peter@desec.io>\ndedyn.io\n\n// Deta: https://www.deta.sh/\n// Submitted by Aavash Shrestha <aavash@deta.sh>\ndeta.app\ndeta.dev\n\n// Diher Solutions : https://diher.solutions\n// Submitted by Didi Hermawan <mail@diher.solutions>\n*.rss.my.id\n*.diher.solutions\n\n// Discord Inc : https://discord.com\n// Submitted by Sahn Lam <slam@discordapp.com>\ndiscordsays.com\ndiscordsez.com\n\n// DNS Africa Ltd https://dns.business\n// Submitted by Calvin Browne <calvin@dns.business>\njozi.biz\n\n// DNShome : https://www.dnshome.de/\n// Submitted by Norbert Auler <mail@dnshome.de>\ndnshome.de\n\n// DotArai : https://www.dotarai.com/\n// Submitted by Atsadawat Netcharadsang <atsadawat@dotarai.co.th>\nonline.th\nshop.th\n\n// DrayTek Corp. : https://www.draytek.com/\n// Submitted by Paul Fang <mis@draytek.com>\ndrayddns.com\n\n// DreamCommerce : https://shoper.pl/\n// Submitted by Konrad Kotarba <konrad.kotarba@dreamcommerce.com>\nshoparena.pl\n\n// DreamHost : http://www.dreamhost.com/\n// Submitted by Andrew Farmer <andrew.farmer@dreamhost.com>\ndreamhosters.com\n\n// Drobo : http://www.drobo.com/\n// Submitted by Ricardo Padilha <rpadilha@drobo.com>\nmydrobo.com\n\n// Drud Holdings, LLC. : https://www.drud.com/\n// Submitted by Kevin Bridges <kevin@drud.com>\ndrud.io\ndrud.us\n\n// DuckDNS : http://www.duckdns.org/\n// Submitted by Richard Harper <richard@duckdns.org>\nduckdns.org\n\n// Bip : https://bip.sh\n// Submitted by Joel Kennedy <joel@bip.sh>\nbip.sh\n\n// bitbridge.net : Submitted by Craig Welch, abeliidev@gmail.com\nbitbridge.net\n\n// dy.fi : http://dy.fi/\n// Submitted by Heikki Hannikainen <hessu@hes.iki.fi>\ndy.fi\ntunk.org\n\n// DynDNS.com : http://www.dyndns.com/services/dns/dyndns/\ndyndns-at-home.com\ndyndns-at-work.com\ndyndns-blog.com\ndyndns-free.com\ndyndns-home.com\ndyndns-ip.com\ndyndns-mail.com\ndyndns-office.com\ndyndns-pics.com\ndyndns-remote.com\ndyndns-server.com\ndyndns-web.com\ndyndns-wiki.com\ndyndns-work.com\ndyndns.biz\ndyndns.info\ndyndns.org\ndyndns.tv\nat-band-camp.net\nath.cx\nbarrel-of-knowledge.info\nbarrell-of-knowledge.info\nbetter-than.tv\nblogdns.com\nblogdns.net\nblogdns.org\nblogsite.org\nboldlygoingnowhere.org\nbroke-it.net\nbuyshouses.net\ncechire.com\ndnsalias.com\ndnsalias.net\ndnsalias.org\ndnsdojo.com\ndnsdojo.net\ndnsdojo.org\ndoes-it.net\ndoesntexist.com\ndoesntexist.org\ndontexist.com\ndontexist.net\ndontexist.org\ndoomdns.com\ndoomdns.org\ndvrdns.org\ndyn-o-saur.com\ndynalias.com\ndynalias.net\ndynalias.org\ndynathome.net\ndyndns.ws\nendofinternet.net\nendofinternet.org\nendoftheinternet.org\nest-a-la-maison.com\nest-a-la-masion.com\nest-le-patron.com\nest-mon-blogueur.com\nfor-better.biz\nfor-more.biz\nfor-our.info\nfor-some.biz\nfor-the.biz\nforgot.her.name\nforgot.his.name\nfrom-ak.com\nfrom-al.com\nfrom-ar.com\nfrom-az.net\nfrom-ca.com\nfrom-co.net\nfrom-ct.com\nfrom-dc.com\nfrom-de.com\nfrom-fl.com\nfrom-ga.com\nfrom-hi.com\nfrom-ia.com\nfrom-id.com\nfrom-il.com\nfrom-in.com\nfrom-ks.com\nfrom-ky.com\nfrom-la.net\nfrom-ma.com\nfrom-md.com\nfrom-me.org\nfrom-mi.com\nfrom-mn.com\nfrom-mo.com\nfrom-ms.com\nfrom-mt.com\nfrom-nc.com\nfrom-nd.com\nfrom-ne.com\nfrom-nh.com\nfrom-nj.com\nfrom-nm.com\nfrom-nv.com\nfrom-ny.net\nfrom-oh.com\nfrom-ok.com\nfrom-or.com\nfrom-pa.com\nfrom-pr.com\nfrom-ri.com\nfrom-sc.com\nfrom-sd.com\nfrom-tn.com\nfrom-tx.com\nfrom-ut.com\nfrom-va.com\nfrom-vt.com\nfrom-wa.com\nfrom-wi.com\nfrom-wv.com\nfrom-wy.com\nftpaccess.cc\nfuettertdasnetz.de\ngame-host.org\ngame-server.cc\ngetmyip.com\ngets-it.net\ngo.dyndns.org\ngotdns.com\ngotdns.org\ngroks-the.info\ngroks-this.info\nham-radio-op.net\nhere-for-more.info\nhobby-site.com\nhobby-site.org\nhome.dyndns.org\nhomedns.org\nhomeftp.net\nhomeftp.org\nhomeip.net\nhomelinux.com\nhomelinux.net\nhomelinux.org\nhomeunix.com\nhomeunix.net\nhomeunix.org\niamallama.com\nin-the-band.net\nis-a-anarchist.com\nis-a-blogger.com\nis-a-bookkeeper.com\nis-a-bruinsfan.org\nis-a-bulls-fan.com\nis-a-candidate.org\nis-a-caterer.com\nis-a-celticsfan.org\nis-a-chef.com\nis-a-chef.net\nis-a-chef.org\nis-a-conservative.com\nis-a-cpa.com\nis-a-cubicle-slave.com\nis-a-democrat.com\nis-a-designer.com\nis-a-doctor.com\nis-a-financialadvisor.com\nis-a-geek.com\nis-a-geek.net\nis-a-geek.org\nis-a-green.com\nis-a-guru.com\nis-a-hard-worker.com\nis-a-hunter.com\nis-a-knight.org\nis-a-landscaper.com\nis-a-lawyer.com\nis-a-liberal.com\nis-a-libertarian.com\nis-a-linux-user.org\nis-a-llama.com\nis-a-musician.com\nis-a-nascarfan.com\nis-a-nurse.com\nis-a-painter.com\nis-a-patsfan.org\nis-a-personaltrainer.com\nis-a-photographer.com\nis-a-player.com\nis-a-republican.com\nis-a-rockstar.com\nis-a-socialist.com\nis-a-soxfan.org\nis-a-student.com\nis-a-teacher.com\nis-a-techie.com\nis-a-therapist.com\nis-an-accountant.com\nis-an-actor.com\nis-an-actress.com\nis-an-anarchist.com\nis-an-artist.com\nis-an-engineer.com\nis-an-entertainer.com\nis-by.us\nis-certified.com\nis-found.org\nis-gone.com\nis-into-anime.com\nis-into-cars.com\nis-into-cartoons.com\nis-into-games.com\nis-leet.com\nis-lost.org\nis-not-certified.com\nis-saved.org\nis-slick.com\nis-uberleet.com\nis-very-bad.org\nis-very-evil.org\nis-very-good.org\nis-very-nice.org\nis-very-sweet.org\nis-with-theband.com\nisa-geek.com\nisa-geek.net\nisa-geek.org\nisa-hockeynut.com\nissmarterthanyou.com\nisteingeek.de\nistmein.de\nkicks-ass.net\nkicks-ass.org\nknowsitall.info\nland-4-sale.us\nlebtimnetz.de\nleitungsen.de\nlikes-pie.com\nlikescandy.com\nmerseine.nu\nmine.nu\nmisconfused.org\nmypets.ws\nmyphotos.cc\nneat-url.com\noffice-on-the.net\non-the-web.tv\npodzone.net\npodzone.org\nreadmyblog.org\nsaves-the-whales.com\nscrapper-site.net\nscrapping.cc\nselfip.biz\nselfip.com\nselfip.info\nselfip.net\nselfip.org\nsells-for-less.com\nsells-for-u.com\nsells-it.net\nsellsyourhome.org\nservebbs.com\nservebbs.net\nservebbs.org\nserveftp.net\nserveftp.org\nservegame.org\nshacknet.nu\nsimple-url.com\nspace-to-rent.com\nstuff-4-sale.org\nstuff-4-sale.us\nteaches-yoga.com\nthruhere.net\ntraeumtgerade.de\nwebhop.biz\nwebhop.info\nwebhop.net\nwebhop.org\nworse-than.tv\nwritesthisblog.com\n\n// ddnss.de : https://www.ddnss.de/\n// Submitted by Robert Niedziela <webmaster@ddnss.de>\nddnss.de\ndyn.ddnss.de\ndyndns.ddnss.de\ndyndns1.de\ndyn-ip24.de\nhome-webserver.de\ndyn.home-webserver.de\nmyhome-server.de\nddnss.org\n\n// Definima : http://www.definima.com/\n// Submitted by Maxence Bitterli <maxence@definima.com>\ndefinima.net\ndefinima.io\n\n// DigitalOcean App Platform : https://www.digitalocean.com/products/app-platform/\n// Submitted by Braxton Huggins <psl-maintainers@digitalocean.com>\nondigitalocean.app\n\n// DigitalOcean Spaces : https://www.digitalocean.com/products/spaces/\n// Submitted by Robin H. Johnson <psl-maintainers@digitalocean.com>\n*.digitaloceanspaces.com\n\n// dnstrace.pro : https://dnstrace.pro/\n// Submitted by Chris Partridge <chris@partridge.tech>\nbci.dnstrace.pro\n\n// Dynu.com : https://www.dynu.com/\n// Submitted by Sue Ye <sue@dynu.com>\nddnsfree.com\nddnsgeek.com\ngiize.com\ngleeze.com\nkozow.com\nloseyourip.com\nooguy.com\ntheworkpc.com\ncasacam.net\ndynu.net\naccesscam.org\ncamdvr.org\nfreeddns.org\nmywire.org\nwebredirect.org\nmyddns.rocks\nblogsite.xyz\n\n// dynv6 : https://dynv6.com\n// Submitted by Dominik Menke <dom@digineo.de>\ndynv6.net\n\n// E4YOU spol. s.r.o. : https://e4you.cz/\n// Submitted by Vladimir Dudr <info@e4you.cz>\ne4.cz\n\n// Easypanel : https://easypanel.io\n// Submitted by Andrei Canta <andrei@easypanel.io>\neasypanel.app\neasypanel.host\n\n// Elementor : Elementor Ltd.\n// Submitted by Anton Barkan <antonb@elementor.com>\nelementor.cloud\nelementor.cool\n\n// En root‽ : https://en-root.org\n// Submitted by Emmanuel Raviart <emmanuel@raviart.com>\nen-root.fr\n\n// Enalean SAS: https://www.enalean.com\n// Submitted by Thomas Cottier <thomas.cottier@enalean.com>\nmytuleap.com\ntuleap-partners.com\n\n// Encoretivity AB: https://encore.dev\n// Submitted by André Eriksson <andre@encore.dev>\nencr.app\nencoreapi.com\n\n// ECG Robotics, Inc: https://ecgrobotics.org\n// Submitted by <frc1533@ecgrobotics.org>\nonred.one\nstaging.onred.one\n\n// encoway GmbH : https://www.encoway.de\n// Submitted by Marcel Daus <cloudops@encoway.de>\neu.encoway.cloud\n\n// EU.org https://eu.org/\n// Submitted by Pierre Beyssac <hostmaster@eu.org>\neu.org\nal.eu.org\nasso.eu.org\nat.eu.org\nau.eu.org\nbe.eu.org\nbg.eu.org\nca.eu.org\ncd.eu.org\nch.eu.org\ncn.eu.org\ncy.eu.org\ncz.eu.org\nde.eu.org\ndk.eu.org\nedu.eu.org\nee.eu.org\nes.eu.org\nfi.eu.org\nfr.eu.org\ngr.eu.org\nhr.eu.org\nhu.eu.org\nie.eu.org\nil.eu.org\nin.eu.org\nint.eu.org\nis.eu.org\nit.eu.org\njp.eu.org\nkr.eu.org\nlt.eu.org\nlu.eu.org\nlv.eu.org\nmc.eu.org\nme.eu.org\nmk.eu.org\nmt.eu.org\nmy.eu.org\nnet.eu.org\nng.eu.org\nnl.eu.org\nno.eu.org\nnz.eu.org\nparis.eu.org\npl.eu.org\npt.eu.org\nq-a.eu.org\nro.eu.org\nru.eu.org\nse.eu.org\nsi.eu.org\nsk.eu.org\ntr.eu.org\nuk.eu.org\nus.eu.org\n\n// Eurobyte : https://eurobyte.ru\n// Submitted by Evgeniy Subbotin <e.subbotin@eurobyte.ru>\neurodir.ru\n\n// Evennode : http://www.evennode.com/\n// Submitted by Michal Kralik <support@evennode.com>\neu-1.evennode.com\neu-2.evennode.com\neu-3.evennode.com\neu-4.evennode.com\nus-1.evennode.com\nus-2.evennode.com\nus-3.evennode.com\nus-4.evennode.com\n\n// eDirect Corp. : https://hosting.url.com.tw/\n// Submitted by C.S. chang <cschang@corp.url.com.tw>\ntwmail.cc\ntwmail.net\ntwmail.org\nmymailer.com.tw\nurl.tw\n\n// Fabrica Technologies, Inc. : https://www.fabrica.dev/\n// Submitted by Eric Jiang <eric@fabrica.dev>\nonfabrica.com\n\n// Facebook, Inc.\n// Submitted by Peter Ruibal <public-suffix@fb.com>\napps.fbsbx.com\n\n// FAITID : https://faitid.org/\n// Submitted by Maxim Alzoba <tech.contact@faitid.org>\n// https://www.flexireg.net/stat_info\nru.net\nadygeya.ru\nbashkiria.ru\nbir.ru\ncbg.ru\ncom.ru\ndagestan.ru\ngrozny.ru\nkalmykia.ru\nkustanai.ru\nmarine.ru\nmordovia.ru\nmsk.ru\nmytis.ru\nnalchik.ru\nnov.ru\npyatigorsk.ru\nspb.ru\nvladikavkaz.ru\nvladimir.ru\nabkhazia.su\nadygeya.su\naktyubinsk.su\narkhangelsk.su\narmenia.su\nashgabad.su\nazerbaijan.su\nbalashov.su\nbashkiria.su\nbryansk.su\nbukhara.su\nchimkent.su\ndagestan.su\neast-kazakhstan.su\nexnet.su\ngeorgia.su\ngrozny.su\nivanovo.su\njambyl.su\nkalmykia.su\nkaluga.su\nkaracol.su\nkaraganda.su\nkarelia.su\nkhakassia.su\nkrasnodar.su\nkurgan.su\nkustanai.su\nlenug.su\nmangyshlak.su\nmordovia.su\nmsk.su\nmurmansk.su\nnalchik.su\nnavoi.su\nnorth-kazakhstan.su\nnov.su\nobninsk.su\npenza.su\npokrovsk.su\nsochi.su\nspb.su\ntashkent.su\ntermez.su\ntogliatti.su\ntroitsk.su\ntselinograd.su\ntula.su\ntuva.su\nvladikavkaz.su\nvladimir.su\nvologda.su\n\n// Fancy Bits, LLC : http://getchannels.com\n// Submitted by Aman Gupta <aman@getchannels.com>\nchannelsdvr.net\nu.channelsdvr.net\n\n// Fastly Inc. : http://www.fastly.com/\n// Submitted by Fastly Security <security@fastly.com>\nedgecompute.app\nfastly-edge.com\nfastly-terrarium.com\nfastlylb.net\nmap.fastlylb.net\nfreetls.fastly.net\nmap.fastly.net\na.prod.fastly.net\nglobal.prod.fastly.net\na.ssl.fastly.net\nb.ssl.fastly.net\nglobal.ssl.fastly.net\n\n// Fastmail : https://www.fastmail.com/\n// Submitted by Marc Bradshaw <marc@fastmailteam.com>\n*.user.fm\n\n// FASTVPS EESTI OU : https://fastvps.ru/\n// Submitted by Likhachev Vasiliy <lihachev@fastvps.ru>\nfastvps-server.com\nfastvps.host\nmyfast.host\nfastvps.site\nmyfast.space\n\n// Fedora : https://fedoraproject.org/\n// submitted by Patrick Uiterwijk <puiterwijk@fedoraproject.org>\nfedorainfracloud.org\nfedorapeople.org\ncloud.fedoraproject.org\napp.os.fedoraproject.org\napp.os.stg.fedoraproject.org\n\n// FearWorks Media Ltd. : https://fearworksmedia.co.uk\n// submitted by Keith Fairley <domains@fearworksmedia.co.uk>\nconn.uk\ncopro.uk\nhosp.uk\n\n// Fermax : https://fermax.com/\n// submitted by Koen Van Isterdael <k.vanisterdael@fermax.be>\nmydobiss.com\n\n// FH Muenster : https://www.fh-muenster.de\n// Submitted by Robin Naundorf <r.naundorf@fh-muenster.de>\nfh-muenster.io\n\n// Filegear Inc. : https://www.filegear.com\n// Submitted by Jason Zhu <jason@owtware.com>\nfilegear.me\nfilegear-au.me\nfilegear-de.me\nfilegear-gb.me\nfilegear-ie.me\nfilegear-jp.me\nfilegear-sg.me\n\n// Firebase, Inc.\n// Submitted by Chris Raynor <chris@firebase.com>\nfirebaseapp.com\n\n// Firewebkit : https://www.firewebkit.com\n// Submitted by Majid Qureshi <mqureshi@amrayn.com>\nfireweb.app\n\n// FLAP : https://www.flap.cloud\n// Submitted by Louis Chemineau <louis@chmn.me>\nflap.id\n\n// FlashDrive : https://flashdrive.io\n// Submitted by Eric Chan <support@flashdrive.io>\nonflashdrive.app\nfldrv.com\n\n// fly.io: https://fly.io\n// Submitted by Kurt Mackey <kurt@fly.io>\nfly.dev\nedgeapp.net\nshw.io\n\n// Flynn : https://flynn.io\n// Submitted by Jonathan Rudenberg <jonathan@flynn.io>\nflynnhosting.net\n\n// Forgerock : https://www.forgerock.com\n// Submitted by Roderick Parr <roderick.parr@forgerock.com>\nforgeblocks.com\nid.forgerock.io\n\n// Framer : https://www.framer.com\n// Submitted by Koen Rouwhorst <koenrh@framer.com>\nframer.app\nframercanvas.com\nframer.media\nframer.photos\nframer.website\nframer.wiki\n\n// Frusky MEDIA&PR : https://www.frusky.de\n// Submitted by Victor Pupynin <hallo@frusky.de>\n*.frusky.de\n\n// RavPage : https://www.ravpage.co.il\n// Submitted by Roni Horowitz <roni@responder.co.il>\nravpage.co.il\n\n// Frederik Braun https://frederik-braun.com\n// Submitted by Frederik Braun <fb@frederik-braun.com>\n0e.vc\n\n// Freebox : http://www.freebox.fr\n// Submitted by Romain Fliedel <rfliedel@freebox.fr>\nfreebox-os.com\nfreeboxos.com\nfbx-os.fr\nfbxos.fr\nfreebox-os.fr\nfreeboxos.fr\n\n// freedesktop.org : https://www.freedesktop.org\n// Submitted by Daniel Stone <daniel@fooishbar.org>\nfreedesktop.org\n\n// freemyip.com : https://freemyip.com\n// Submitted by Cadence <contact@freemyip.com>\nfreemyip.com\n\n// FunkFeuer - Verein zur Förderung freier Netze : https://www.funkfeuer.at\n// Submitted by Daniel A. Maierhofer <vorstand@funkfeuer.at>\nwien.funkfeuer.at\n\n// Futureweb OG : http://www.futureweb.at\n// Submitted by Andreas Schnederle-Wagner <schnederle@futureweb.at>\n*.futurecms.at\n*.ex.futurecms.at\n*.in.futurecms.at\nfuturehosting.at\nfuturemailing.at\n*.ex.ortsinfo.at\n*.kunden.ortsinfo.at\n*.statics.cloud\n\n// GDS : https://www.gov.uk/service-manual/technology/managing-domain-names\n// Submitted by Stephen Ford <hostmaster@digital.cabinet-office.gov.uk>\nindependent-commission.uk\nindependent-inquest.uk\nindependent-inquiry.uk\nindependent-panel.uk\nindependent-review.uk\npublic-inquiry.uk\nroyal-commission.uk\ncampaign.gov.uk\nservice.gov.uk\n\n// CDDO : https://www.gov.uk/guidance/get-an-api-domain-on-govuk\n// Submitted by Jamie Tanna <jamie.tanna@digital.cabinet-office.gov.uk>\napi.gov.uk\n\n// Gehirn Inc. : https://www.gehirn.co.jp/\n// Submitted by Kohei YOSHIDA <tech@gehirn.co.jp>\ngehirn.ne.jp\nusercontent.jp\n\n// Gentlent, Inc. : https://www.gentlent.com\n// Submitted by Tom Klein <tom@gentlent.com>\ngentapps.com\ngentlentapis.com\nlab.ms\ncdn-edges.net\n\n// Ghost Foundation : https://ghost.org\n// Submitted by Matt Hanley <security@ghost.org>\nghost.io\n\n// GignoSystemJapan: http://gsj.bz\n// Submitted by GignoSystemJapan <kakutou-ec@gsj.bz>\ngsj.bz\n\n// GitHub, Inc.\n// Submitted by Patrick Toomey <security@github.com>\ngithubusercontent.com\ngithubpreview.dev\ngithub.io\n\n// GitLab, Inc.\n// Submitted by Alex Hanselka <alex@gitlab.com>\ngitlab.io\n\n// Gitplac.si - https://gitplac.si\n// Submitted by Aljaž Starc <me@aljaxus.eu>\ngitapp.si\ngitpage.si\n\n// Glitch, Inc : https://glitch.com\n// Submitted by Mads Hartmann <mads@glitch.com>\nglitch.me\n\n// Global NOG Alliance : https://nogalliance.org/\n// Submitted by Sander Steffann <sander@nogalliance.org>\nnog.community\n\n// Globe Hosting SRL : https://www.globehosting.com/\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nco.ro\nshop.ro\n\n// GMO Pepabo, Inc. : https://pepabo.com/\n// Submitted by Hosting Div <admin@pepabo.com>\nlolipop.io\nangry.jp\nbabyblue.jp\nbabymilk.jp\nbackdrop.jp\nbambina.jp\nbitter.jp\nblush.jp\nboo.jp\nboy.jp\nboyfriend.jp\nbut.jp\ncandypop.jp\ncapoo.jp\ncatfood.jp\ncheap.jp\nchicappa.jp\nchillout.jp\nchips.jp\nchowder.jp\nchu.jp\nciao.jp\ncocotte.jp\ncoolblog.jp\ncranky.jp\ncutegirl.jp\ndaa.jp\ndeca.jp\ndeci.jp\ndigick.jp\negoism.jp\nfakefur.jp\nfem.jp\nflier.jp\nfloppy.jp\nfool.jp\nfrenchkiss.jp\ngirlfriend.jp\ngirly.jp\ngloomy.jp\ngonna.jp\ngreater.jp\nhacca.jp\nheavy.jp\nher.jp\nhiho.jp\nhippy.jp\nholy.jp\nhungry.jp\nicurus.jp\nitigo.jp\njellybean.jp\nkikirara.jp\nkill.jp\nkilo.jp\nkuron.jp\nlittlestar.jp\nlolipopmc.jp\nlolitapunk.jp\nlomo.jp\nlovepop.jp\nlovesick.jp\nmain.jp\nmods.jp\nmond.jp\nmongolian.jp\nmoo.jp\nnamaste.jp\nnikita.jp\nnobushi.jp\nnoor.jp\noops.jp\nparallel.jp\nparasite.jp\npecori.jp\npeewee.jp\npenne.jp\npepper.jp\nperma.jp\npigboat.jp\npinoko.jp\npunyu.jp\npupu.jp\npussycat.jp\npya.jp\nraindrop.jp\nreadymade.jp\nsadist.jp\nschoolbus.jp\nsecret.jp\nstaba.jp\nstripper.jp\nsub.jp\nsunnyday.jp\nthick.jp\ntonkotsu.jp\nunder.jp\nupper.jp\nvelvet.jp\nverse.jp\nversus.jp\nvivian.jp\nwatson.jp\nweblike.jp\nwhitesnow.jp\nzombie.jp\nheteml.net\n\n// GOV.UK Platform as a Service : https://www.cloud.service.gov.uk/\n// Submitted by Tom Whitwell <gov-uk-paas-support@digital.cabinet-office.gov.uk>\ncloudapps.digital\nlondon.cloudapps.digital\n\n// GOV.UK Pay : https://www.payments.service.gov.uk/\n// Submitted by Richard Baker <richard.baker@digital.cabinet-office.gov.uk>\npymnt.uk\n\n// UKHomeOffice : https://www.gov.uk/government/organisations/home-office\n// Submitted by Jon Shanks <jon.shanks@digital.homeoffice.gov.uk>\nhomeoffice.gov.uk\n\n// GlobeHosting, Inc.\n// Submitted by Zoltan Egresi <egresi@globehosting.com>\nro.im\n\n// GoIP DNS Services : http://www.goip.de\n// Submitted by Christian Poulter <milchstrasse@goip.de>\ngoip.de\n\n// Google, Inc.\n// Submitted by Eduardo Vela <evn@google.com>\nrun.app\na.run.app\nweb.app\n*.0emm.com\nappspot.com\n*.r.appspot.com\ncodespot.com\ngoogleapis.com\ngooglecode.com\npagespeedmobilizer.com\npublishproxy.com\nwithgoogle.com\nwithyoutube.com\n*.gateway.dev\ncloud.goog\ntranslate.goog\n*.usercontent.goog\ncloudfunctions.net\nblogspot.ae\nblogspot.al\nblogspot.am\nblogspot.ba\nblogspot.be\nblogspot.bg\nblogspot.bj\nblogspot.ca\nblogspot.cf\nblogspot.ch\nblogspot.cl\nblogspot.co.at\nblogspot.co.id\nblogspot.co.il\nblogspot.co.ke\nblogspot.co.nz\nblogspot.co.uk\nblogspot.co.za\nblogspot.com\nblogspot.com.ar\nblogspot.com.au\nblogspot.com.br\nblogspot.com.by\nblogspot.com.co\nblogspot.com.cy\nblogspot.com.ee\nblogspot.com.eg\nblogspot.com.es\nblogspot.com.mt\nblogspot.com.ng\nblogspot.com.tr\nblogspot.com.uy\nblogspot.cv\nblogspot.cz\nblogspot.de\nblogspot.dk\nblogspot.fi\nblogspot.fr\nblogspot.gr\nblogspot.hk\nblogspot.hr\nblogspot.hu\nblogspot.ie\nblogspot.in\nblogspot.is\nblogspot.it\nblogspot.jp\nblogspot.kr\nblogspot.li\nblogspot.lt\nblogspot.lu\nblogspot.md\nblogspot.mk\nblogspot.mr\nblogspot.mx\nblogspot.my\nblogspot.nl\nblogspot.no\nblogspot.pe\nblogspot.pt\nblogspot.qa\nblogspot.re\nblogspot.ro\nblogspot.rs\nblogspot.ru\nblogspot.se\nblogspot.sg\nblogspot.si\nblogspot.sk\nblogspot.sn\nblogspot.td\nblogspot.tw\nblogspot.ug\nblogspot.vn\n\n// Goupile : https://goupile.fr\n// Submitted by Niels Martignene <hello@goupile.fr>\ngoupile.fr\n\n// Government of the Netherlands: https://www.government.nl\n// Submitted by <domeinnaam@minaz.nl>\ngov.nl\n\n// Group 53, LLC : https://www.group53.com\n// Submitted by Tyler Todd <noc@nova53.net>\nawsmppl.com\n\n// GünstigBestellen : https://günstigbestellen.de\n// Submitted by Furkan Akkoc <info@hendelzon.de>\ngünstigbestellen.de\ngünstigliefern.de\n\n// Hakaran group: http://hakaran.cz\n// Submitted by Arseniy Sokolov <security@hakaran.cz>\nfin.ci\nfree.hr\ncaa.li\nua.rs\nconf.se\n\n// Handshake : https://handshake.org\n// Submitted by Mike Damm <md@md.vc>\nhs.zone\nhs.run\n\n// Hashbang : https://hashbang.sh\nhashbang.sh\n\n// Hasura : https://hasura.io\n// Submitted by Shahidh K Muhammed <shahidh@hasura.io>\nhasura.app\nhasura-app.io\n\n// Heilbronn University of Applied Sciences - Faculty Informatics (GitLab Pages): https://www.hs-heilbronn.de\n// Submitted by Richard Zowalla <mi-admin@hs-heilbronn.de>\npages.it.hs-heilbronn.de\n\n// Hepforge : https://www.hepforge.org\n// Submitted by David Grellscheid <admin@hepforge.org>\nhepforge.org\n\n// Heroku : https://www.heroku.com/\n// Submitted by Tom Maher <tmaher@heroku.com>\nherokuapp.com\nherokussl.com\n\n// Hibernating Rhinos\n// Submitted by Oren Eini <oren@ravendb.net>\nravendb.cloud\nravendb.community\nravendb.me\ndevelopment.run\nravendb.run\n\n// home.pl S.A.: https://home.pl\n// Submitted by Krzysztof Wolski <krzysztof.wolski@home.eu>\nhomesklep.pl\n\n// Hong Kong Productivity Council: https://www.hkpc.org/\n// Submitted by SECaaS Team <summchan@hkpc.org>\nsecaas.hk\n\n// Hoplix : https://www.hoplix.com\n// Submitted by Danilo De Franco<info@hoplix.shop>\nhoplix.shop\n\n\n// HOSTBIP REGISTRY : https://www.hostbip.com/\n// Submitted by Atanunu Igbunuroghene <publicsuffixlist@hostbip.com>\norx.biz\nbiz.gl\ncol.ng\nfirm.ng\ngen.ng\nltd.ng\nngo.ng\nedu.scot\nsch.so\n\n// HostFly : https://www.ie.ua\n// Submitted by Bohdan Dub <support@hostfly.com.ua>\nie.ua\n\n// HostyHosting (hostyhosting.com)\nhostyhosting.io\n\n// Häkkinen.fi\n// Submitted by Eero Häkkinen <Eero+psl@Häkkinen.fi>\nhäkkinen.fi\n\n// Ici la Lune : http://www.icilalune.com/\n// Submitted by Simon Morvan <simon@icilalune.com>\n*.moonscale.io\nmoonscale.net\n\n// iki.fi\n// Submitted by Hannu Aronsson <haa@iki.fi>\niki.fi\n\n// iliad italia: https://www.iliad.it\n// Submitted by Marios Makassikis <mmakassikis@freebox.fr>\nibxos.it\niliadboxos.it\n\n// Impertrix Solutions : <https://impertrixcdn.com>\n// Submitted by Zhixiang Zhao <csuite@impertrix.com>\nimpertrixcdn.com\nimpertrix.com\n\n// Incsub, LLC: https://incsub.com/\n// Submitted by Aaron Edwards <sysadmins@incsub.com>\nsmushcdn.com\nwphostedmail.com\nwpmucdn.com\ntempurl.host\nwpmudev.host\n\n// Individual Network Berlin e.V. : https://www.in-berlin.de/\n// Submitted by Christian Seitz <chris@in-berlin.de>\ndyn-berlin.de\nin-berlin.de\nin-brb.de\nin-butter.de\nin-dsl.de\nin-dsl.net\nin-dsl.org\nin-vpn.de\nin-vpn.net\nin-vpn.org\n\n// info.at : http://www.info.at/\nbiz.at\ninfo.at\n\n// info.cx : http://info.cx\n// Submitted by Jacob Slater <whois@igloo.to>\ninfo.cx\n\n// Interlegis : http://www.interlegis.leg.br\n// Submitted by Gabriel Ferreira <registrobr@interlegis.leg.br>\nac.leg.br\nal.leg.br\nam.leg.br\nap.leg.br\nba.leg.br\nce.leg.br\ndf.leg.br\nes.leg.br\ngo.leg.br\nma.leg.br\nmg.leg.br\nms.leg.br\nmt.leg.br\npa.leg.br\npb.leg.br\npe.leg.br\npi.leg.br\npr.leg.br\nrj.leg.br\nrn.leg.br\nro.leg.br\nrr.leg.br\nrs.leg.br\nsc.leg.br\nse.leg.br\nsp.leg.br\nto.leg.br\n\n// intermetrics GmbH : https://pixolino.com/\n// Submitted by Wolfgang Schwarz <admin@intermetrics.de>\npixolino.com\n\n// Internet-Pro, LLP: https://netangels.ru/\n// Submitted by Vasiliy Sheredeko <piphon@gmail.com>\nna4u.ru\n\n// iopsys software solutions AB : https://iopsys.eu/\n// Submitted by Roman Azarenko <roman.azarenko@iopsys.eu>\niopsys.se\n\n// IPiFony Systems, Inc. : https://www.ipifony.com/\n// Submitted by Matthew Hardeman <mhardeman@ipifony.com>\nipifony.net\n\n// IServ GmbH : https://iserv.de\n// Submitted by Mario Hoberg <info@iserv.de>\niservschule.de\nmein-iserv.de\nschulplattform.de\nschulserver.de\ntest-iserv.de\niserv.dev\n\n// I-O DATA DEVICE, INC. : http://www.iodata.com/\n// Submitted by Yuji Minagawa <domains-admin@iodata.jp>\niobb.net\n\n// Jelastic, Inc. : https://jelastic.com/\n// Submitted by Ihor Kolodyuk <ik@jelastic.com>\nmel.cloudlets.com.au\ncloud.interhostsolutions.be\nmycloud.by\nalp1.ae.flow.ch\nappengine.flow.ch\nes-1.axarnet.cloud\ndiadem.cloud\nvip.jelastic.cloud\njele.cloud\nit1.eur.aruba.jenv-aruba.cloud\nit1.jenv-aruba.cloud\nkeliweb.cloud\ncs.keliweb.cloud\noxa.cloud\ntn.oxa.cloud\nuk.oxa.cloud\nprimetel.cloud\nuk.primetel.cloud\nca.reclaim.cloud\nuk.reclaim.cloud\nus.reclaim.cloud\nch.trendhosting.cloud\nde.trendhosting.cloud\njele.club\namscompute.com\ndopaas.com\npaas.hosted-by-previder.com\nrag-cloud.hosteur.com\nrag-cloud-ch.hosteur.com\njcloud.ik-server.com\njcloud-ver-jpc.ik-server.com\ndemo.jelastic.com\nkilatiron.com\npaas.massivegrid.com\njed.wafaicloud.com\nlon.wafaicloud.com\nryd.wafaicloud.com\nj.scaleforce.com.cy\njelastic.dogado.eu\nfi.cloudplatform.fi\ndemo.datacenter.fi\npaas.datacenter.fi\njele.host\nmircloud.host\npaas.beebyte.io\nsekd1.beebyteapp.io\njele.io\ncloud-fr1.unispace.io\njc.neen.it\ncloud.jelastic.open.tim.it\njcloud.kz\nupaas.kazteleport.kz\ncloudjiffy.net\nfra1-de.cloudjiffy.net\nwest1-us.cloudjiffy.net\njls-sto1.elastx.net\njls-sto2.elastx.net\njls-sto3.elastx.net\nfaststacks.net\nfr-1.paas.massivegrid.net\nlon-1.paas.massivegrid.net\nlon-2.paas.massivegrid.net\nny-1.paas.massivegrid.net\nny-2.paas.massivegrid.net\nsg-1.paas.massivegrid.net\njelastic.saveincloud.net\nnordeste-idc.saveincloud.net\nj.scaleforce.net\njelastic.tsukaeru.net\nsdscloud.pl\nunicloud.pl\nmircloud.ru\njelastic.regruhosting.ru\nenscaled.sg\njele.site\njelastic.team\norangecloud.tn\nj.layershift.co.uk\nphx.enscaled.us\nmircloud.us\n\n// Jino : https://www.jino.ru\n// Submitted by Sergey Ulyashin <ulyashin@jino.ru>\nmyjino.ru\n*.hosting.myjino.ru\n*.landing.myjino.ru\n*.spectrum.myjino.ru\n*.vps.myjino.ru\n\n// Jotelulu S.L. : https://jotelulu.com\n// Submitted by Daniel Fariña <ingenieria@jotelulu.com>\njotelulu.cloud\n\n// Joyent : https://www.joyent.com/\n// Submitted by Brian Bennett <brian.bennett@joyent.com>\n*.triton.zone\n*.cns.joyent.com\n\n// JS.ORG : http://dns.js.org\n// Submitted by Stefan Keim <admin@js.org>\njs.org\n\n// KaasHosting : http://www.kaashosting.nl/\n// Submitted by Wouter Bakker <hostmaster@kaashosting.nl>\nkaas.gg\nkhplay.nl\n\n// Kakao : https://www.kakaocorp.com/\n// Submitted by JaeYoong Lee <cec@kakaocorp.com>\nktistory.com\n\n// Kapsi : https://kapsi.fi\n// Submitted by Tomi Juntunen <erani@kapsi.fi>\nkapsi.fi\n\n// Keyweb AG : https://www.keyweb.de\n// Submitted by Martin Dannehl <postmaster@keymachine.de>\nkeymachine.de\n\n// KingHost : https://king.host\n// Submitted by Felipe Keller Braz <felipebraz@kinghost.com.br>\nkinghost.net\nuni5.net\n\n// KnightPoint Systems, LLC : http://www.knightpoint.com/\n// Submitted by Roy Keene <rkeene@knightpoint.com>\nknightpoint.systems\n\n// KoobinEvent, SL: https://www.koobin.com\n// Submitted by Iván Oliva <ivan.oliva@koobin.com>\nkoobin.events\n\n// KUROKU LTD : https://kuroku.ltd/\n// Submitted by DisposaBoy <security@oya.to>\noya.to\n\n// Katholieke Universiteit Leuven: https://www.kuleuven.be\n// Submitted by Abuse KU Leuven <abuse@kuleuven.be>\nkuleuven.cloud\nezproxy.kuleuven.be\n\n// .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf\nco.krd\nedu.krd\n\n// Krellian Ltd. : https://krellian.com\n// Submitted by Ben Francis <ben@krellian.com>\nkrellian.net\nwebthings.io\n\n// LCube - Professional hosting e.K. : https://www.lcube-webhosting.de\n// Submitted by Lars Laehn <info@lcube.de>\ngit-repos.de\nlcube-server.de\nsvn-repos.de\n\n// Leadpages : https://www.leadpages.net\n// Submitted by Greg Dallavalle <domains@leadpages.net>\nleadpages.co\nlpages.co\nlpusercontent.com\n\n// Lelux.fi : https://lelux.fi/\n// Submitted by Lelux Admin <publisuffix@lelux.site>\nlelux.site\n\n// Lifetime Hosting : https://Lifetime.Hosting/\n// Submitted by Mike Fillator <support@lifetime.hosting>\nco.business\nco.education\nco.events\nco.financial\nco.network\nco.place\nco.technology\n\n// Lightmaker Property Manager, Inc. : https://app.lmpm.com/\n// Submitted by Greg Holland <greg.holland@lmpm.com>\napp.lmpm.com\n\n// linkyard ldt: https://www.linkyard.ch/\n// Submitted by Mario Siegenthaler <mario.siegenthaler@linkyard.ch>\nlinkyard.cloud\nlinkyard-cloud.ch\n\n// Linode : https://linode.com\n// Submitted by <security@linode.com>\nmembers.linode.com\n*.nodebalancer.linode.com\n*.linodeobjects.com\nip.linodeusercontent.com\n\n// LiquidNet Ltd : http://www.liquidnetlimited.com/\n// Submitted by Victor Velchev <admin@liquidnetlimited.com>\nwe.bs\n\n// Localcert : https://localcert.dev\n// Submitted by Lann Martin <security@localcert.dev>\n*.user.localcert.dev\n\n// localzone.xyz\n// Submitted by Kenny Niehage <hello@yahe.sh>\nlocalzone.xyz\n\n// Log\'in Line : https://www.loginline.com/\n// Submitted by Rémi Mach <remi.mach@loginline.com>\nloginline.app\nloginline.dev\nloginline.io\nloginline.services\nloginline.site\n\n// Lokalized : https://lokalized.nl\n// Submitted by Noah Taheij <noah@lokalized.nl>\nservers.run\n\n// Lõhmus Family, The\n// Submitted by Heiki Lõhmus <hostmaster at lohmus dot me>\nlohmus.me\n\n// LubMAN UMCS Sp. z o.o : https://lubman.pl/\n// Submitted by Ireneusz Maliszewski <ireneusz.maliszewski@lubman.pl>\nkrasnik.pl\nleczna.pl\nlubartow.pl\nlublin.pl\nponiatowa.pl\nswidnik.pl\n\n// Lug.org.uk : https://lug.org.uk\n// Submitted by Jon Spriggs <admin@lug.org.uk>\nglug.org.uk\nlug.org.uk\nlugs.org.uk\n\n// Lukanet Ltd : https://lukanet.com\n// Submitted by Anton Avramov <register@lukanet.com>\nbarsy.bg\nbarsy.co.uk\nbarsyonline.co.uk\nbarsycenter.com\nbarsyonline.com\nbarsy.club\nbarsy.de\nbarsy.eu\nbarsy.in\nbarsy.info\nbarsy.io\nbarsy.me\nbarsy.menu\nbarsy.mobi\nbarsy.net\nbarsy.online\nbarsy.org\nbarsy.pro\nbarsy.pub\nbarsy.ro\nbarsy.shop\nbarsy.site\nbarsy.support\nbarsy.uk\n\n// Magento Commerce\n// Submitted by Damien Tournoud <dtournoud@magento.cloud>\n*.magentosite.cloud\n\n// May First - People Link : https://mayfirst.org/\n// Submitted by Jamie McClelland <info@mayfirst.org>\nmayfirst.info\nmayfirst.org\n\n// Mail.Ru Group : https://hb.cldmail.ru\n// Submitted by Ilya Zaretskiy <zaretskiy@corp.mail.ru>\nhb.cldmail.ru\n\n// Mail Transfer Platform : https://www.neupeer.com\n// Submitted by Li Hui <lihui@neupeer.com>\ncn.vu\n\n// Maze Play: https://www.mazeplay.com\n// Submitted by Adam Humpherys <adam@mws.dev>\nmazeplay.com\n\n// mcpe.me : https://mcpe.me\n// Submitted by Noa Heyl <hi@noa.dev>\nmcpe.me\n\n// McHost : https://mchost.ru\n// Submitted by Evgeniy Subbotin <e.subbotin@mchost.ru>\nmcdir.me\nmcdir.ru\nmcpre.ru\nvps.mcdir.ru\n\n// Mediatech : https://mediatech.by\n// Submitted by Evgeniy Kozhuhovskiy <ugenk@mediatech.by>\nmediatech.by\nmediatech.dev\n\n// Medicom Health : https://medicomhealth.com\n// Submitted by Michael Olson <molson@medicomhealth.com>\nhra.health\n\n// Memset hosting : https://www.memset.com\n// Submitted by Tom Whitwell <domains@memset.com>\nminiserver.com\nmemset.net\n\n// Messerli Informatik AG : https://www.messerli.ch/\n// Submitted by Ruben Schmidmeister <psl-maintainers@messerli.ch>\nmesserli.app\n\n// MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/\n// Submitted by Zdeněk Šustr <zdenek.sustr@cesnet.cz>\n*.cloud.metacentrum.cz\ncustom.metacentrum.cz\n\n// MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/\n// Submitted by Radim Janča <janca@cesnet.cz>\nflt.cloud.muni.cz\nusr.cloud.muni.cz\n\n// Meteor Development Group : https://www.meteor.com/hosting\n// Submitted by Pierre Carrier <pierre@meteor.com>\nmeteorapp.com\neu.meteorapp.com\n\n// Michau Enterprises Limited : http://www.co.pl/\nco.pl\n\n// Microsoft Corporation : http://microsoft.com\n// Submitted by Public Suffix List Admin <msftpsladmin@microsoft.com>\n*.azurecontainer.io\nazurewebsites.net\nazure-mobile.net\ncloudapp.net\nazurestaticapps.net\n1.azurestaticapps.net\n2.azurestaticapps.net\n3.azurestaticapps.net\ncentralus.azurestaticapps.net\neastasia.azurestaticapps.net\neastus2.azurestaticapps.net\nwesteurope.azurestaticapps.net\nwestus2.azurestaticapps.net\n\n// minion.systems : http://minion.systems\n// Submitted by Robert Böttinger <r@minion.systems>\ncsx.cc\n\n// Mintere : https://mintere.com/\n// Submitted by Ben Aubin <security@mintere.com>\nmintere.site\n\n// MobileEducation, LLC : https://joinforte.com\n// Submitted by Grayson Martin <grayson.martin@mobileeducation.us>\nforte.id\n\n// Mozilla Corporation : https://mozilla.com\n// Submitted by Ben Francis <bfrancis@mozilla.com>\nmozilla-iot.org\n\n// Mozilla Foundation : https://mozilla.org/\n// Submitted by glob <glob@mozilla.com>\nbmoattachments.org\n\n// MSK-IX : https://www.msk-ix.ru/\n// Submitted by Khannanov Roman <r.khannanov@msk-ix.ru>\nnet.ru\norg.ru\npp.ru\n\n// Mythic Beasts : https://www.mythic-beasts.com\n// Submitted by Paul Cammish <kelduum@mythic-beasts.com>\nhostedpi.com\ncustomer.mythic-beasts.com\ncaracal.mythic-beasts.com\nfentiger.mythic-beasts.com\nlynx.mythic-beasts.com\nocelot.mythic-beasts.com\noncilla.mythic-beasts.com\nonza.mythic-beasts.com\nsphinx.mythic-beasts.com\nvs.mythic-beasts.com\nx.mythic-beasts.com\nyali.mythic-beasts.com\ncust.retrosnub.co.uk\n\n// Nabu Casa : https://www.nabucasa.com\n// Submitted by Paulus Schoutsen <infra@nabucasa.com>\nui.nabu.casa\n\n// Net at Work Gmbh : https://www.netatwork.de\n// Submitted by Jan Jaeschke <jan.jaeschke@netatwork.de>\ncloud.nospamproxy.com\n\n// Netlify : https://www.netlify.com\n// Submitted by Jessica Parsons <jessica@netlify.com>\nnetlify.app\n\n// Neustar Inc.\n// Submitted by Trung Tran <Trung.Tran@neustar.biz>\n4u.com\n\n// ngrok : https://ngrok.com/\n// Submitted by Alan Shreve <alan@ngrok.com>\nngrok.app\nngrok-free.app\nngrok.dev\nngrok-free.dev\nngrok.io\nap.ngrok.io\nau.ngrok.io\neu.ngrok.io\nin.ngrok.io\njp.ngrok.io\nsa.ngrok.io\nus.ngrok.io\nngrok.pizza\n\n// Nimbus Hosting Ltd. : https://www.nimbushosting.co.uk/\n// Submitted by Nicholas Ford <nick@nimbushosting.co.uk>\nnh-serv.co.uk\n\n// NFSN, Inc. : https://www.NearlyFreeSpeech.NET/\n// Submitted by Jeff Wheelhouse <support@nearlyfreespeech.net>\nnfshost.com\n\n// Noop : https://noop.app\n// Submitted by Nathaniel Schweinberg <noop@rearc.io>\n*.developer.app\nnoop.app\n\n// Northflank Ltd. : https://northflank.com/\n// Submitted by Marco Suter <marco@northflank.com>\n*.northflank.app\n*.build.run\n*.code.run\n*.database.run\n*.migration.run\n\n// Noticeable : https://noticeable.io\n// Submitted by Laurent Pellegrino <security@noticeable.io>\nnoticeable.news\n\n// Now-DNS : https://now-dns.com\n// Submitted by Steve Russell <steve@now-dns.com>\ndnsking.ch\nmypi.co\nn4t.co\n001www.com\nddnslive.com\nmyiphost.com\nforumz.info\n16-b.it\n32-b.it\n64-b.it\nsoundcast.me\ntcp4.me\ndnsup.net\nhicam.net\nnow-dns.net\nownip.net\nvpndns.net\ndynserv.org\nnow-dns.org\nx443.pw\nnow-dns.top\nntdll.top\nfreeddns.us\ncrafting.xyz\nzapto.xyz\n\n// nsupdate.info : https://www.nsupdate.info/\n// Submitted by Thomas Waldmann <info@nsupdate.info>\nnsupdate.info\nnerdpol.ovh\n\n// No-IP.com : https://noip.com/\n// Submitted by Deven Reza <publicsuffixlist@noip.com>\nblogsyte.com\nbrasilia.me\ncable-modem.org\nciscofreak.com\ncollegefan.org\ncouchpotatofries.org\ndamnserver.com\nddns.me\nditchyourip.com\ndnsfor.me\ndnsiskinky.com\ndvrcam.info\ndynns.com\neating-organic.net\nfantasyleague.cc\ngeekgalaxy.com\ngolffan.us\nhealth-carereform.com\nhomesecuritymac.com\nhomesecuritypc.com\nhopto.me\nilovecollege.info\nloginto.me\nmlbfan.org\nmmafan.biz\nmyactivedirectory.com\nmydissent.net\nmyeffect.net\nmymediapc.net\nmypsx.net\nmysecuritycamera.com\nmysecuritycamera.net\nmysecuritycamera.org\nnet-freaks.com\nnflfan.org\nnhlfan.net\nno-ip.ca\nno-ip.co.uk\nno-ip.net\nnoip.us\nonthewifi.com\npgafan.net\npoint2this.com\npointto.us\nprivatizehealthinsurance.net\nquicksytes.com\nread-books.org\nsecuritytactics.com\nserveexchange.com\nservehumour.com\nservep2p.com\nservesarcasm.com\nstufftoread.com\nufcfan.org\nunusualperson.com\nworkisboring.com\n3utilities.com\nbounceme.net\nddns.net\nddnsking.com\ngotdns.ch\nhopto.org\nmyftp.biz\nmyftp.org\nmyvnc.com\nno-ip.biz\nno-ip.info\nno-ip.org\nnoip.me\nredirectme.net\nservebeer.com\nserveblog.net\nservecounterstrike.com\nserveftp.com\nservegame.com\nservehalflife.com\nservehttp.com\nserveirc.com\nserveminecraft.net\nservemp3.com\nservepics.com\nservequake.com\nsytes.net\nwebhop.me\nzapto.org\n\n// NodeArt : https://nodeart.io\n// Submitted by Konstantin Nosov <Nosov@nodeart.io>\nstage.nodeart.io\n\n// Nucleos Inc. : https://nucleos.com\n// Submitted by Piotr Zduniak <piotr@nucleos.com>\npcloud.host\n\n// NYC.mn : http://www.information.nyc.mn\n// Submitted by Matthew Brown <mattbrown@nyc.mn>\nnyc.mn\n\n// Observable, Inc. : https://observablehq.com\n// Submitted by Mike Bostock <dns@observablehq.com>\nstatic.observableusercontent.com\n\n// Octopodal Solutions, LLC. : https://ulterius.io/\n// Submitted by Andrew Sampson <andrew@ulterius.io>\ncya.gg\n\n// OMG.LOL : <https://omg.lol>\n// Submitted by Adam Newbold <adam@omg.lol>\nomg.lol\n\n// Omnibond Systems, LLC. : https://www.omnibond.com\n// Submitted by Cole Estep <cole@omnibond.com>\ncloudycluster.net\n\n// OmniWe Limited: https://omniwe.com\n// Submitted by Vicary Archangel <vicary@omniwe.com>\nomniwe.site\n\n// One.com: https://www.one.com/\n// Submitted by Jacob Bunk Nielsen <jbn@one.com>\n123hjemmeside.dk\n123hjemmeside.no\n123homepage.it\n123kotisivu.fi\n123minsida.se\n123miweb.es\n123paginaweb.pt\n123sait.ru\n123siteweb.fr\n123webseite.at\n123webseite.de\n123website.be\n123website.ch\n123website.lu\n123website.nl\nservice.one\nsimplesite.com\nsimplesite.com.br\nsimplesite.gr\nsimplesite.pl\n\n// One Fold Media : http://www.onefoldmedia.com/\n// Submitted by Eddie Jones <eddie@onefoldmedia.com>\nnid.io\n\n// Open Social : https://www.getopensocial.com/\n// Submitted by Alexander Varwijk <security@getopensocial.com>\nopensocial.site\n\n// OpenCraft GmbH : http://opencraft.com/\n// Submitted by Sven Marnach <sven@opencraft.com>\nopencraft.hosting\n\n// OpenResearch GmbH: https://openresearch.com/\n// Submitted by Philipp Schmid <ops@openresearch.com>\norsites.com\n\n// Opera Software, A.S.A.\n// Submitted by Yngve Pettersen <yngve@opera.com>\noperaunite.com\n\n// Orange : https://www.orange.com\n// Submitted by Alexandre Linte <alexandre.linte@orange.com>\ntech.orange\n\n// Oursky Limited : https://authgear.com/, https://skygear.io/\n// Submitted by Authgear Team <hello@authgear.com>, Skygear Developer <hello@skygear.io>\nauthgear-staging.com\nauthgearapps.com\nskygearapp.com\n\n// OutSystems\n// Submitted by Duarte Santos <domain-admin@outsystemscloud.com>\noutsystemscloud.com\n\n// OVHcloud: https://ovhcloud.com\n// Submitted by Vincent Cassé <vincent.casse@ovhcloud.com>\n*.webpaas.ovh.net\n*.hosting.ovh.net\n\n// OwnProvider GmbH: http://www.ownprovider.com\n// Submitted by Jan Moennich <jan.moennich@ownprovider.com>\nownprovider.com\nown.pm\n\n// OwO : https://whats-th.is/\n// Submitted by Dean Sheather <dean@deansheather.com>\n*.owo.codes\n\n// OX : http://www.ox.rs\n// Submitted by Adam Grand <webmaster@mail.ox.rs>\nox.rs\n\n// oy.lc\n// Submitted by Charly Coste <changaco@changaco.oy.lc>\noy.lc\n\n// Pagefog : https://pagefog.com/\n// Submitted by Derek Myers <derek@pagefog.com>\npgfog.com\n\n// Pagefront : https://www.pagefronthq.com/\n// Submitted by Jason Kriss <jason@pagefronthq.com>\npagefrontapp.com\n\n// PageXL : https://pagexl.com\n// Submitted by Yann Guichard <yann@pagexl.com>\npagexl.com\n\n// Paywhirl, Inc : https://paywhirl.com/\n// Submitted by Daniel Netzer <dan@paywhirl.com>\n*.paywhirl.com\n\n// pcarrier.ca Software Inc: https://pcarrier.ca/\n// Submitted by Pierre Carrier <pc@rrier.ca>\nbar0.net\nbar1.net\nbar2.net\nrdv.to\n\n// .pl domains (grandfathered)\nart.pl\ngliwice.pl\nkrakow.pl\npoznan.pl\nwroc.pl\nzakopane.pl\n\n// Pantheon Systems, Inc. : https://pantheon.io/\n// Submitted by Gary Dylina <gary@pantheon.io>\npantheonsite.io\ngotpantheon.com\n\n// Peplink | Pepwave : http://peplink.com/\n// Submitted by Steve Leung <steveleung@peplink.com>\nmypep.link\n\n// Perspecta : https://perspecta.com/\n// Submitted by Kenneth Van Alstyne <kvanalstyne@perspecta.com>\nperspecta.cloud\n\n// PE Ulyanov Kirill Sergeevich : https://airy.host\n// Submitted by Kirill Ulyanov <k.ulyanov@airy.host>\nlk3.ru\n\n// Planet-Work : https://www.planet-work.com/\n// Submitted by Frédéric VANNIÈRE <f.vanniere@planet-work.com>\non-web.fr\n\n// Platform.sh : https://platform.sh\n// Submitted by Nikola Kotur <nikola@platform.sh>\nbc.platform.sh\nent.platform.sh\neu.platform.sh\nus.platform.sh\n*.platformsh.site\n*.tst.site\n\n// Platter: https://platter.dev\n// Submitted by Patrick Flor <patrick@platter.dev>\nplatter-app.com\nplatter-app.dev\nplatterp.us\n\n// Plesk : https://www.plesk.com/\n// Submitted by Anton Akhtyamov <program-managers@plesk.com>\npdns.page\nplesk.page\npleskns.com\n\n// Port53 : https://port53.io/\n// Submitted by Maximilian Schieder <maxi@zeug.co>\ndyn53.io\n\n// Porter : https://porter.run/\n// Submitted by Rudraksh MK <rudi@porter.run>\nonporter.run\n\n// Positive Codes Technology Company : http://co.bn/faq.html\n// Submitted by Zulfais <pc@co.bn>\nco.bn\n\n// Postman, Inc : https://postman.com\n// Submitted by Rahul Dhawan <security@postman.com>\npostman-echo.com\npstmn.io\nmock.pstmn.io\nhttpbin.org\n\n//prequalifyme.today : https://prequalifyme.today\n//Submitted by DeepakTiwari deepak@ivylead.io\nprequalifyme.today\n\n// prgmr.com : https://prgmr.com/\n// Submitted by Sarah Newman <owner@prgmr.com>\nxen.prgmr.com\n\n// priv.at : http://www.nic.priv.at/\n// Submitted by registry <lendl@nic.at>\npriv.at\n\n// privacytools.io : https://www.privacytools.io/\n// Submitted by Jonah Aragon <jonah@privacytools.io>\nprvcy.page\n\n// Protocol Labs : https://protocol.ai/\n// Submitted by Michael Burns <noc@protocol.ai>\n*.dweb.link\n\n// Protonet GmbH : http://protonet.io\n// Submitted by Martin Meier <admin@protonet.io>\nprotonet.io\n\n// Publication Presse Communication SARL : https://ppcom.fr\n// Submitted by Yaacov Akiba Slama <admin@chirurgiens-dentistes-en-france.fr>\nchirurgiens-dentistes-en-france.fr\nbyen.site\n\n// pubtls.org: https://www.pubtls.org\n// Submitted by Kor Nielsen <kor@pubtls.org>\npubtls.org\n\n// PythonAnywhere LLP: https://www.pythonanywhere.com\n// Submitted by Giles Thomas <giles@pythonanywhere.com>\npythonanywhere.com\neu.pythonanywhere.com\n\n// QOTO, Org.\n// Submitted by Jeffrey Phillips Freeman <jeffrey.freeman@qoto.org>\nqoto.io\n\n// Qualifio : https://qualifio.com/\n// Submitted by Xavier De Cock <xdecock@gmail.com>\nqualifioapp.com\n\n// Quality Unit: https://qualityunit.com\n// Submitted by Vasyl Tsalko <vtsalko@qualityunit.com>\nladesk.com\n\n// QuickBackend: https://www.quickbackend.com\n// Submitted by Dani Biro <dani@pymet.com>\nqbuser.com\n\n// Rad Web Hosting: https://radwebhosting.com\n// Submitted by Scott Claeys <s.claeys@radwebhosting.com>\ncloudsite.builders\n\n// Redgate Software: https://red-gate.com\n// Submitted by Andrew Farries <andrew.farries@red-gate.com>\ninstances.spawn.cc\n\n// Redstar Consultants : https://www.redstarconsultants.com/\n// Submitted by Jons Slemmer <jons@redstarconsultants.com>\ninstantcloud.cn\n\n// Russian Academy of Sciences\n// Submitted by Tech Support <support@rasnet.ru>\nras.ru\n\n// QA2\n// Submitted by Daniel Dent (https://www.danieldent.com/)\nqa2.com\n\n// QCX\n// Submitted by Cassandra Beelen <cassandra@beelen.one>\nqcx.io\n*.sys.qcx.io\n\n// QNAP System Inc : https://www.qnap.com\n// Submitted by Nick Chang <nickchang@qnap.com>\ndev-myqnapcloud.com\nalpha-myqnapcloud.com\nmyqnapcloud.com\n\n// Quip : https://quip.com\n// Submitted by Patrick Linehan <plinehan@quip.com>\n*.quipelements.com\n\n// Qutheory LLC : http://qutheory.io\n// Submitted by Jonas Schwartz <jonas@qutheory.io>\nvapor.cloud\nvaporcloud.io\n\n// Rackmaze LLC : https://www.rackmaze.com\n// Submitted by Kirill Pertsev <kika@rackmaze.com>\nrackmaze.com\nrackmaze.net\n\n// Rakuten Games, Inc : https://dev.viberplay.io\n// Submitted by Joshua Zhang <public-suffix@rgames.jp>\ng.vbrplsbx.io\n\n// Rancher Labs, Inc : https://rancher.com\n// Submitted by Vincent Fiduccia <domains@rancher.com>\n*.on-k3s.io\n*.on-rancher.cloud\n*.on-rio.io\n\n// Read The Docs, Inc : https://www.readthedocs.org\n// Submitted by David Fischer <team@readthedocs.org>\nreadthedocs.io\n\n// Red Hat, Inc. OpenShift : https://openshift.redhat.com/\n// Submitted by Tim Kramer <tkramer@rhcloud.com>\nrhcloud.com\n\n// Render : https://render.com\n// Submitted by Anurag Goel <dev@render.com>\napp.render.com\nonrender.com\n\n// Repl.it : https://repl.it\n// Submitted by Lincoln Bergeson <lincoln@replit.com>\nfirewalledreplit.co\nid.firewalledreplit.co\nrepl.co\nid.repl.co\nrepl.run\n\n// Resin.io : https://resin.io\n// Submitted by Tim Perry <tim@resin.io>\nresindevice.io\ndevices.resinstaging.io\n\n// RethinkDB : https://www.rethinkdb.com/\n// Submitted by Chris Kastorff <info@rethinkdb.com>\nhzc.io\n\n// Revitalised Limited : http://www.revitalised.co.uk\n// Submitted by Jack Price <jack@revitalised.co.uk>\nwellbeingzone.eu\nwellbeingzone.co.uk\n\n// Rico Developments Limited : https://adimo.co\n// Submitted by Colin Brown <hello@adimo.co>\nadimo.co.uk\n\n// Riseup Networks : https://riseup.net\n// Submitted by Micah Anderson <micah@riseup.net>\nitcouldbewor.se\n\n// Rochester Institute of Technology : http://www.rit.edu/\n// Submitted by Jennifer Herting <jchits@rit.edu>\ngit-pages.rit.edu\n\n// Rocky Enterprise Software Foundation : https://resf.org\n// Submitted by Neil Hanlon <neil@resf.org>\nrocky.page\n\n// Rusnames Limited: http://rusnames.ru/\n// Submitted by Sergey Zotov <admin@rusnames.ru>\nбиз.рус\nком.рус\nкрым.рус\nмир.рус\nмск.рус\nорг.рус\nсамара.рус\nсочи.рус\nспб.рус\nя.рус\n\n// SAKURA Internet Inc. : https://www.sakura.ad.jp/\n// Submitted by Internet Service Department <rs-vendor-ml@sakura.ad.jp>\n180r.com\ndojin.com\nsakuratan.com\nsakuraweb.com\nx0.com\n2-d.jp\nbona.jp\ncrap.jp\ndaynight.jp\neek.jp\nflop.jp\nhalfmoon.jp\njeez.jp\nmatrix.jp\nmimoza.jp\nivory.ne.jp\nmail-box.ne.jp\nmints.ne.jp\nmokuren.ne.jp\nopal.ne.jp\nsakura.ne.jp\nsumomo.ne.jp\ntopaz.ne.jp\nnetgamers.jp\nnyanta.jp\no0o0.jp\nrdy.jp\nrgr.jp\nrulez.jp\ns3.isk01.sakurastorage.jp\ns3.isk02.sakurastorage.jp\nsaloon.jp\nsblo.jp\nskr.jp\ntank.jp\nuh-oh.jp\nundo.jp\nrs.webaccel.jp\nuser.webaccel.jp\nwebsozai.jp\nxii.jp\nsquares.net\njpn.org\nkirara.st\nx0.to\nfrom.tv\nsakura.tv\n\n// Salesforce.com, Inc. https://salesforce.com/\n// Submitted by Michael Biven <mbiven@salesforce.com>\n*.builder.code.com\n*.dev-builder.code.com\n*.stg-builder.code.com\n\n// Sandstorm Development Group, Inc. : https://sandcats.io/\n// Submitted by Asheesh Laroia <asheesh@sandstorm.io>\nsandcats.io\n\n// SBE network solutions GmbH : https://www.sbe.de/\n// Submitted by Norman Meilick <nm@sbe.de>\nlogoip.de\nlogoip.com\n\n// Scaleway : https://www.scaleway.com/\n// Submitted by Rémy Léone <rleone@scaleway.com>\nfr-par-1.baremetal.scw.cloud\nfr-par-2.baremetal.scw.cloud\nnl-ams-1.baremetal.scw.cloud\nfnc.fr-par.scw.cloud\nfunctions.fnc.fr-par.scw.cloud\nk8s.fr-par.scw.cloud\nnodes.k8s.fr-par.scw.cloud\ns3.fr-par.scw.cloud\ns3-website.fr-par.scw.cloud\nwhm.fr-par.scw.cloud\npriv.instances.scw.cloud\npub.instances.scw.cloud\nk8s.scw.cloud\nk8s.nl-ams.scw.cloud\nnodes.k8s.nl-ams.scw.cloud\ns3.nl-ams.scw.cloud\ns3-website.nl-ams.scw.cloud\nwhm.nl-ams.scw.cloud\nk8s.pl-waw.scw.cloud\nnodes.k8s.pl-waw.scw.cloud\ns3.pl-waw.scw.cloud\ns3-website.pl-waw.scw.cloud\nscalebook.scw.cloud\nsmartlabeling.scw.cloud\ndedibox.fr\n\n// schokokeks.org GbR : https://schokokeks.org/\n// Submitted by Hanno Böck <hanno@schokokeks.org>\nschokokeks.net\n\n// Scottish Government: https://www.gov.scot\n// Submitted by Martin Ellis <martin.ellis@gov.scot>\ngov.scot\nservice.gov.scot\n\n// Scry Security : http://www.scrysec.com\n// Submitted by Shante Adam <shante@skyhat.io>\nscrysec.com\n\n// Securepoint GmbH : https://www.securepoint.de\n// Submitted by Erik Anders <erik.anders@securepoint.de>\nfirewall-gateway.com\nfirewall-gateway.de\nmy-gateway.de\nmy-router.de\nspdns.de\nspdns.eu\nfirewall-gateway.net\nmy-firewall.org\nmyfirewall.org\nspdns.org\n\n// Seidat : https://www.seidat.com\n// Submitted by Artem Kondratev <accounts@seidat.com>\nseidat.net\n\n// Sellfy : https://sellfy.com\n// Submitted by Yuriy Romadin <contact@sellfy.com>\nsellfy.store\n\n// Senseering GmbH : https://www.senseering.de\n// Submitted by Felix Mönckemeyer <f.moenckemeyer@senseering.de>\nsenseering.net\n\n// Sendmsg: https://www.sendmsg.co.il\n// Submitted by Assaf Stern <domains@comstar.co.il>\nminisite.ms\n\n// Service Magnet : https://myservicemagnet.com\n// Submitted by Dave Sanders <dave@myservicemagnet.com>\nmagnet.page\n\n// Service Online LLC : http://drs.ua/\n// Submitted by Serhii Bulakh <support@drs.ua>\nbiz.ua\nco.ua\npp.ua\n\n// Shift Crypto AG : https://shiftcrypto.ch\n// Submitted by alex <alex@shiftcrypto.ch>\nshiftcrypto.dev\nshiftcrypto.io\n\n// ShiftEdit : https://shiftedit.net/\n// Submitted by Adam Jimenez <adam@shiftcreate.com>\nshiftedit.io\n\n// Shopblocks : http://www.shopblocks.com/\n// Submitted by Alex Bowers <alex@shopblocks.com>\nmyshopblocks.com\n\n// Shopify : https://www.shopify.com\n// Submitted by Alex Richter <alex.richter@shopify.com>\nmyshopify.com\n\n// Shopit : https://www.shopitcommerce.com/\n// Submitted by Craig McMahon <craig@shopitcommerce.com>\nshopitsite.com\n\n// shopware AG : https://shopware.com\n// Submitted by Jens Küper <cloud@shopware.com>\nshopware.store\n\n// Siemens Mobility GmbH\n// Submitted by Oliver Graebner <security@mo-siemens.io>\nmo-siemens.io\n\n// SinaAppEngine : http://sae.sina.com.cn/\n// Submitted by SinaAppEngine <saesupport@sinacloud.com>\n1kapp.com\nappchizi.com\napplinzi.com\nsinaapp.com\nvipsinaapp.com\n\n// Siteleaf : https://www.siteleaf.com/\n// Submitted by Skylar Challand <support@siteleaf.com>\nsiteleaf.net\n\n// Skyhat : http://www.skyhat.io\n// Submitted by Shante Adam <shante@skyhat.io>\nbounty-full.com\nalpha.bounty-full.com\nbeta.bounty-full.com\n\n// Smallregistry by Promopixel SARL: https://www.smallregistry.net\n// Former AFNIC\'s SLDs \n// Submitted by Jérôme Lipowicz <support@promopixel.com>\naeroport.fr\navocat.fr\nchambagri.fr\nchirurgiens-dentistes.fr\nexperts-comptables.fr\nmedecin.fr\nnotaires.fr\npharmacien.fr\nport.fr\nveterinaire.fr\n\n// Small Technology Foundation : https://small-tech.org\n// Submitted by Aral Balkan <aral@small-tech.org>\nsmall-web.org\n\n// Smoove.io : https://www.smoove.io/\n// Submitted by Dan Kozak <dan@smoove.io>\nvp4.me\n\n// Snowflake Inc : https://www.snowflake.com/\n// Submitted by Faith Olapade <faith.olapade@snowflake.com>\nsnowflake.app\nprivatelink.snowflake.app\nstreamlit.app\nstreamlitapp.com\n\n// Snowplow Analytics : https://snowplowanalytics.com/\n// Submitted by Ian Streeter <ian@snowplowanalytics.com>\ntry-snowplow.com\n\n// SourceHut : https://sourcehut.org\n// Submitted by Drew DeVault <sir@cmpwn.com>\nsrht.site\n\n// Stackhero : https://www.stackhero.io\n// Submitted by Adrien Gillon <adrien+public-suffix-list@stackhero.io>\nstackhero-network.com\n\n// Staclar : https://staclar.com\n// Submitted by Q Misell <q@staclar.com>\nmusician.io\n// Submitted by Matthias Merkel <matthias.merkel@staclar.com>\nnovecore.site\n\n// staticland : https://static.land\n// Submitted by Seth Vincent <sethvincent@gmail.com>\nstatic.land\ndev.static.land\nsites.static.land\n\n// Storebase : https://www.storebase.io\n// Submitted by Tony Schirmer <tony@storebase.io>\nstorebase.store\n\n// Strategic System Consulting (eApps Hosting): https://www.eapps.com/\n// Submitted by Alex Oancea <aoancea@cloudscale365.com>\nvps-host.net\natl.jelastic.vps-host.net\nnjs.jelastic.vps-host.net\nric.jelastic.vps-host.net\n\n// Sony Interactive Entertainment LLC : https://sie.com/\n// Submitted by David Coles <david.coles@sony.com>\nplaystation-cloud.com\n\n// SourceLair PC : https://www.sourcelair.com\n// Submitted by Antonis Kalipetis <akalipetis@sourcelair.com>\napps.lair.io\n*.stolos.io\n\n// SpaceKit : https://www.spacekit.io/\n// Submitted by Reza Akhavan <spacekit.io@gmail.com>\nspacekit.io\n\n// SpeedPartner GmbH: https://www.speedpartner.de/\n// Submitted by Stefan Neufeind <info@speedpartner.de>\ncustomer.speedpartner.de\n\n// Spreadshop (sprd.net AG) : https://www.spreadshop.com/\n// Submitted by Martin Breest <security@spreadshop.com>\nmyspreadshop.at\nmyspreadshop.com.au\nmyspreadshop.be\nmyspreadshop.ca\nmyspreadshop.ch\nmyspreadshop.com\nmyspreadshop.de\nmyspreadshop.dk\nmyspreadshop.es\nmyspreadshop.fi\nmyspreadshop.fr\nmyspreadshop.ie\nmyspreadshop.it\nmyspreadshop.net\nmyspreadshop.nl\nmyspreadshop.no\nmyspreadshop.pl\nmyspreadshop.se\nmyspreadshop.co.uk\n\n// Standard Library : https://stdlib.com\n// Submitted by Jacob Lee <jacob@stdlib.com>\napi.stdlib.com\n\n// Storipress : https://storipress.com\n// Submitted by Benno Liu <benno@storipress.com>\nstoripress.app\n\n// Storj Labs Inc. : https://storj.io/\n// Submitted by Philip Hutchins <hostmaster@storj.io>\nstorj.farm\n\n// Studenten Net Twente : http://www.snt.utwente.nl/\n// Submitted by Silke Hofstra <syscom@snt.utwente.nl>\nutwente.io\n\n// Student-Run Computing Facility : https://www.srcf.net/\n// Submitted by Edwin Balani <sysadmins@srcf.net>\nsoc.srcf.net\nuser.srcf.net\n\n// Sub 6 Limited: http://www.sub6.com\n// Submitted by Dan Miller <dm@sub6.com>\ntemp-dns.com\n\n// Supabase : https://supabase.io\n// Submitted by Inian Parameshwaran <security@supabase.io>\nsupabase.co\nsupabase.in\nsupabase.net\nsu.paba.se\n\n// Symfony, SAS : https://symfony.com/\n// Submitted by Fabien Potencier <fabien@symfony.com>\n*.s5y.io\n*.sensiosite.cloud\n\n// Syncloud : https://syncloud.org\n// Submitted by Boris Rybalkin <syncloud@syncloud.it>\nsyncloud.it\n\n// Synology, Inc. : https://www.synology.com/\n// Submitted by Rony Weng <ronyweng@synology.com>\ndscloud.biz\ndirect.quickconnect.cn\ndsmynas.com\nfamilyds.com\ndiskstation.me\ndscloud.me\ni234.me\nmyds.me\nsynology.me\ndscloud.mobi\ndsmynas.net\nfamilyds.net\ndsmynas.org\nfamilyds.org\nvpnplus.to\ndirect.quickconnect.to\n\n// Tabit Technologies Ltd. : https://tabit.cloud/\n// Submitted by Oren Agiv <oren@tabit.cloud>\ntabitorder.co.il\nmytabit.co.il\nmytabit.com\n\n// TAIFUN Software AG : http://taifun-software.de\n// Submitted by Bjoern Henke <dev-server@taifun-software.de>\ntaifun-dns.de\n\n// Tailscale Inc. : https://www.tailscale.com\n// Submitted by David Anderson <danderson@tailscale.com>\nbeta.tailscale.net\nts.net\n\n// TASK geographical domains (www.task.gda.pl/uslugi/dns)\ngda.pl\ngdansk.pl\ngdynia.pl\nmed.pl\nsopot.pl\n\n// team.blue https://team.blue\n// Submitted by Cedric Dubois <cedric.dubois@team.blue>\nsite.tb-hosting.com\n\n// Teckids e.V. : https://www.teckids.org\n// Submitted by Dominik George <dominik.george@teckids.org>\nedugit.io\ns3.teckids.org\n\n// Telebit : https://telebit.cloud\n// Submitted by AJ ONeal <aj@telebit.cloud>\ntelebit.app\ntelebit.io\n*.telebit.xyz\n\n// Thingdust AG : https://thingdust.com/\n// Submitted by Adrian Imboden <adi@thingdust.com>\n*.firenet.ch\n*.svc.firenet.ch\nreservd.com\nthingdustdata.com\ncust.dev.thingdust.io\ncust.disrec.thingdust.io\ncust.prod.thingdust.io\ncust.testing.thingdust.io\nreservd.dev.thingdust.io\nreservd.disrec.thingdust.io\nreservd.testing.thingdust.io\n\n// ticket i/O GmbH : https://ticket.io\n// Submitted by Christian Franke <it@ticket.io>\ntickets.io\n\n// Tlon.io : https://tlon.io\n// Submitted by Mark Staarink <mark@tlon.io>\narvo.network\nazimuth.network\ntlon.network\n\n// Tor Project, Inc. : https://torproject.org\n// Submitted by Antoine Beaupré <anarcat@torproject.org\ntorproject.net\npages.torproject.net\n\n// TownNews.com : http://www.townnews.com\n// Submitted by Dustin Ward <dward@townnews.com>\nbloxcms.com\ntownnews-staging.com\n\n// TrafficPlex GmbH : https://www.trafficplex.de/\n// Submitted by Phillipp Röll <phillipp.roell@trafficplex.de>\n12hp.at\n2ix.at\n4lima.at\nlima-city.at\n12hp.ch\n2ix.ch\n4lima.ch\nlima-city.ch\ntrafficplex.cloud\nde.cool\n12hp.de\n2ix.de\n4lima.de\nlima-city.de\n1337.pictures\nclan.rip\nlima-city.rocks\nwebspace.rocks\nlima.zone\n\n// TransIP : https://www.transip.nl\n// Submitted by Rory Breuk <rbreuk@transip.nl>\n*.transurl.be\n*.transurl.eu\n*.transurl.nl\n\n// TransIP: https://www.transip.nl\n// Submitted by Cedric Dubois <cedric.dubois@team.blue>\nsite.transip.me\n\n// TuxFamily : http://tuxfamily.org\n// Submitted by TuxFamily administrators <adm@staff.tuxfamily.org>\ntuxfamily.org\n\n// TwoDNS : https://www.twodns.de/\n// Submitted by TwoDNS-Support <support@two-dns.de>\ndd-dns.de\ndiskstation.eu\ndiskstation.org\ndray-dns.de\ndraydns.de\ndyn-vpn.de\ndynvpn.de\nmein-vigor.de\nmy-vigor.de\nmy-wan.de\nsyno-ds.de\nsynology-diskstation.de\nsynology-ds.de\n\n// Typedream : https://typedream.com\n// Submitted by Putri Karunia <putri@typedream.com>\ntypedream.app\n\n// Typeform : https://www.typeform.com\n// Submitted by Sergi Ferriz <sergi.ferriz@typeform.com>\npro.typeform.com\n\n// Uberspace : https://uberspace.de\n// Submitted by Moritz Werner <mwerner@jonaspasche.com>\nuber.space\n*.uberspace.de\n\n// UDR Limited : http://www.udr.hk.com\n// Submitted by registry <hostmaster@udr.hk.com>\nhk.com\nhk.org\nltd.hk\ninc.hk\n\n// UK Intis Telecom LTD : https://it.com\n// Submitted by ITComdomains <to@it.com>\nit.com\n\n// UNIVERSAL DOMAIN REGISTRY : https://www.udr.org.yt/\n// see also: whois -h whois.udr.org.yt help\n// Submitted by Atanunu Igbunuroghene <publicsuffixlist@udr.org.yt>\nname.pm\nsch.tf\nbiz.wf\nsch.wf\norg.yt\n\n// United Gameserver GmbH : https://united-gameserver.de\n// Submitted by Stefan Schwarz <sysadm@united-gameserver.de>\nvirtualuser.de\nvirtual-user.de\n\n// Upli : https://upli.io\n// Submitted by Lenny Bakkalian <lenny.bakkalian@gmail.com>\nupli.io\n\n// urown.net : https://urown.net\n// Submitted by Hostmaster <hostmaster@urown.net>\nurown.cloud\ndnsupdate.info\n\n// .US\n// Submitted by Ed Moore <Ed.Moore@lib.de.us>\nlib.de.us\n\n// VeryPositive SIA : http://very.lv\n// Submitted by Danko Aleksejevs <danko@very.lv>\n2038.io\n\n// Vercel, Inc : https://vercel.com/\n// Submitted by Connor Davis <security@vercel.com>\nvercel.app\nvercel.dev\nnow.sh\n\n// Viprinet Europe GmbH : http://www.viprinet.com\n// Submitted by Simon Kissel <hostmaster@viprinet.com>\nrouter.management\n\n// Virtual-Info : https://www.virtual-info.info/\n// Submitted by Adnan RIHAN <hostmaster@v-info.info>\nv-info.info\n\n// Voorloper.com: https://voorloper.com\n// Submitted by Nathan van Bakel <info@voorloper.com>\nvoorloper.cloud\n\n// Voxel.sh DNS : https://voxel.sh/dns/\n// Submitted by Mia Rehlinger <dns@voxel.sh>\nneko.am\nnyaa.am\nbe.ax\ncat.ax\nes.ax\neu.ax\ngg.ax\nmc.ax\nus.ax\nxy.ax\nnl.ci\nxx.gl\napp.gp\nblog.gt\nde.gt\nto.gt\nbe.gy\ncc.hn\nblog.kg\nio.kg\njp.kg\ntv.kg\nuk.kg\nus.kg\nde.ls\nat.md\nde.md\njp.md\nto.md\nindie.porn\nvxl.sh\nch.tc\nme.tc\nwe.tc\nnyan.to\nat.vg\nblog.vu\ndev.vu\nme.vu\n\n// V.UA Domain Administrator : https://domain.v.ua/\n// Submitted by Serhii Rostilo <sergey@rostilo.kiev.ua>\nv.ua\n\n// Vultr Objects : https://www.vultr.com/products/object-storage/\n// Submitted by Niels Maumenee <storage@vultr.com>\n*.vultrobjects.com\n\n// Waffle Computer Inc., Ltd. : https://docs.waffleinfo.com\n// Submitted by Masayuki Note <masa@blade.wafflecell.com>\nwafflecell.com\n\n// WebHare bv: https://www.webhare.com/\n// Submitted by Arnold Hendriks <info@webhare.com>\n*.webhare.dev\n\n// WebHotelier Technologies Ltd: https://www.webhotelier.net/\n// Submitted by Apostolos Tsakpinis <apostolos.tsakpinis@gmail.com>\nreserve-online.net\nreserve-online.com\nbookonline.app\nhotelwithflight.com\n\n// WeDeploy by Liferay, Inc. : https://www.wedeploy.com\n// Submitted by Henrique Vicente <security@wedeploy.com>\nwedeploy.io\nwedeploy.me\nwedeploy.sh\n\n// Western Digital Technologies, Inc : https://www.wdc.com\n// Submitted by Jung Jin <jungseok.jin@wdc.com>\nremotewd.com\n\n// WIARD Enterprises : https://wiardweb.com\n// Submitted by Kidd Hustle <kiddhustle@wiardweb.com>\npages.wiardweb.com\n\n// Wikimedia Labs : https://wikitech.wikimedia.org\n// Submitted by Arturo Borrero Gonzalez <aborrero@wikimedia.org>\nwmflabs.org\ntoolforge.org\nwmcloud.org\n\n// WISP : https://wisp.gg\n// Submitted by Stepan Fedotov <stepan@wisp.gg>\npanel.gg\ndaemon.panel.gg\n\n// Wizard Zines : https://wizardzines.com\n// Submitted by Julia Evans <julia@wizardzines.com>\nmesswithdns.com\n\n// WoltLab GmbH : https://www.woltlab.com\n// Submitted by Tim Düsterhus <security@woltlab.cloud>\nwoltlab-demo.com\nmyforum.community\ncommunity-pro.de\ndiskussionsbereich.de\ncommunity-pro.net\nmeinforum.net\n\n// Woods Valldata : https://www.woodsvalldata.co.uk/\n// Submitted by Chris Whittle <chris.whittle@woodsvalldata.co.uk>\naffinitylottery.org.uk\nraffleentry.org.uk\nweeklylottery.org.uk\n\n// WP Engine : https://wpengine.com/\n// Submitted by Michael Smith <michael.smith@wpengine.com>\n// Submitted by Brandon DuRette <brandon.durette@wpengine.com>\nwpenginepowered.com\njs.wpenginepowered.com\n\n// Wix.com, Inc. : https://www.wix.com\n// Submitted by Shahar Talmi <shahar@wix.com>\nwixsite.com\neditorx.io\nwixstudio.io\nwix.run\n\n// XenonCloud GbR: https://xenoncloud.net\n// Submitted by Julian Uphoff <publicsuffixlist@xenoncloud.net>\nhalf.host\n\n// XnBay Technology : http://www.xnbay.com/\n// Submitted by XnBay Developer <developer.xncloud@gmail.com>\nxnbay.com\nu2.xnbay.com\nu2-local.xnbay.com\n\n// XS4ALL Internet bv : https://www.xs4all.nl/\n// Submitted by Daniel Mostertman <unixbeheer+publicsuffix@xs4all.net>\ncistron.nl\ndemon.nl\nxs4all.space\n\n// Yandex.Cloud LLC: https://cloud.yandex.com\n// Submitted by Alexander Lodin <security+psl@yandex-team.ru>\nyandexcloud.net\nstorage.yandexcloud.net\nwebsite.yandexcloud.net\n\n// YesCourse Pty Ltd : https://yescourse.com\n// Submitted by Atul Bhouraskar <atul@yescourse.com>\nofficial.academy\n\n// Yola : https://www.yola.com/\n// Submitted by Stefano Rivera <stefano@yola.com>\nyolasite.com\n\n// Yombo : https://yombo.net\n// Submitted by Mitch Schwenk <mitch@yombo.net>\nybo.faith\nyombo.me\nhomelink.one\nybo.party\nybo.review\nybo.science\nybo.trade\n\n// Yunohost : https://yunohost.org\n// Submitted by Valentin Grimaud <security@yunohost.org>\nynh.fr\nnohost.me\nnoho.st\n\n// ZaNiC : http://www.za.net/\n// Submitted by registry <hostmaster@nic.za.net>\nza.net\nza.org\n\n// Zine EOOD : https://zine.bg/\n// Submitted by Martin Angelov <martin@zine.bg>\nbss.design\n\n// Zitcom A/S : https://www.zitcom.dk\n// Submitted by Emil Stahl <esp@zitcom.dk>\nbasicserver.io\nvirtualserver.io\nenterprisecloud.nu\n\n// ===END PRIVATE DOMAINS===\n'.split("\n").filter((n=>!n.startsWith("//")&&n.trim().length>0)).sort(((n,e)=>e.length-n.length));async function Gn(n,e,t){let a=await Wn(t.filenameTemplate,t,n,e)||"";a=a.trim(),t.replaceEmojisInFilename&&Un.forEach((n=>a=Vn(a,n," _"+qn[n]+"_ ")));const o=t.filenameReplacementCharacter;if(a=function(n,e=On,t=_n){return e.forEach((e=>n=n.replace(new RegExp("["+e+"]+","g"),t))),n=n.replace(/\.\.\//g,"").replace(/^\/+/,"").replace(/\/+/g,"/").replace(/\/$/,"").replace(/\.$/,"").replace(/\.\//g,"."+t).replace(/\/\./g,"/"+t),n}(a,t.filenameReplacedCharacters,o),t.backgroundSave||(a=a.replace(/\//g,o)),!t.keepFilename&&("bytes"==t.filenameMaxLengthUnit&&An(a)>t.filenameMaxLength||a.length>t.filenameMaxLength)){const n=a.match(/(\.[^.]{3,4})$/),e=n&&n[0]&&n[0].length>1?n[0]:"";a="bytes"==t.filenameMaxLengthUnit?await Zn(a,t.filenameMaxLength-e.length):a.substring(0,t.filenameMaxLength-e.length),a=a+"…"+e}return a||(a="Unnamed page"),a.startsWith(".")&&(a="Unnamed page"+a),a.trim()}async function Wn(n="",e,t,a,o={}){const{dontReplaceSlash:i}=o;o.currentDate=new Date;const r=new Mn(e.saveUrl),s=Jn(r.href),l=Array.from(new Nn(r.search)),c=e.bookmarkFolders&&e.bookmarkFolders.join("/")||"",m=void 0===i||i,d=Hn.find((n=>r.hostname.endsWith("."+n)&&n)),h=d?r.hostname.substring(0,r.hostname.length-d.length-1):r.hostname,u=h.lastIndexOf(".");let g=h.substring(0,-1==u?0:u);const w=h.substring(g.length?g.length+1:0),b=w+"."+d;g.startsWith("www.")?g=g.substring(4):"www"==g&&(g="");const f={"navigator-language":{getter:()=>Pn.language},"page-title":{getter:()=>e.title},"page-heading":{getter:()=>e.info.heading},"page-language":{getter:()=>e.info.lang},"page-description":{getter:()=>e.info.description},"page-author":{getter:()=>e.info.author},"page-creator":{getter:()=>e.info.creator},"page-publisher":{getter:()=>e.info.publisher},"url-hash":{getter:()=>r.hash.substring(1)},"url-host":{getter:()=>r.host.replace(/\/$/,"")},"url-hostname":{getter:()=>r.hostname.replace(/\/$/,"")},"url-hostname-suffix":{getter:()=>d},"url-hostname-domain":{getter:()=>w},"url-hostname-root":{getter:()=>b},"url-hostname-subdomains":{getter:()=>g},"url-href":{getter:()=>s,dontReplaceSlash:m},"url-href-digest-sha-1":{getter:s?async()=>In("SHA-1",s):""},"url-href-flat":{getter:()=>Jn(r.href),dontReplaceSlash:!1},"url-referrer":{getter:()=>Jn(e.referrer),dontReplaceSlash:m},"url-referrer-flat":{getter:()=>Jn(e.referrer),dontReplaceSlash:!1},"url-password":{getter:()=>r.password},"url-pathname":{getter:()=>Jn(r.pathname).replace(/^\//,"").replace(/\/$/,""),dontReplaceSlash:m},"url-pathname-flat":{getter:()=>Jn(r.pathname),dontReplaceSlash:!1},"url-port":{getter:()=>r.port},"url-protocol":{getter:()=>r.protocol},"url-search":{getter:()=>r.search.substring(1)},"url-username":{getter:()=>r.username},"tab-id":{getter:()=>String(e.tabId)},"tab-index":{getter:()=>String(e.tabIndex)},"url-last-segment":{getter:()=>Jn(Yn(r,e.filenameReplacementCharacter))},"bookmark-pathname":{getter:()=>c,dontReplaceSlash:m},"bookmark-pathname-flat":{getter:()=>c,dontReplaceSlash:!1},"profile-name":{getter:()=>e.profileName},"filename-extension":{getter:()=>function(n){return n.compressContent?n.selfExtractingArchive?n.extractDataFromPage?"u.zip.html":"zip.html":"zip":"html"}(e)},"save-action":{getter:()=>e.selected?"selection":"page"}};t&&(f["digest-sha-256"]={getter:async()=>In("SHA-256",t)},f["digest-sha-384"]={getter:async()=>In("SHA-384",t)},f["digest-sha-512"]={getter:async()=>In("SHA-512",t)}),e.saveDate&&v(e.saveDate),e.visitDate&&v(e.visitDate,"visit-");const k={"if-empty":(...n)=>{const e=n.pop(),t=n.find((n=>n));return t||e},"if-not-empty":(...n)=>{const e=n.pop(),t=n.find((n=>n));return t?e:t},"if-equals":(n,e,t,a)=>n==e?t:a,"if-not-equals":(n,e,t,a)=>n!=e?t:a,"if-contains":(n,e,t,a)=>e&&n.includes(e)?t:a,"if-not-contains":(n,e,t,a)=>e&&!n.includes(e)?t:a,substring:(n,e,t)=>n.substring(e,t),lowercase:n=>n.toLowerCase(),uppercase:n=>n.toUpperCase(),capitalize:n=>n.charAt(0).toUpperCase()+n.slice(1),replace:(n,e,t)=>e&&t?Vn(n,e,t):n,trim:n=>n.trim(),"trim-left":n=>n.trimLeft(),"trim-right":n=>n.trimRight(),"pad-left":(n,e,t)=>e>0?n.padStart(e,t):n,"pad-right":(n,e,t)=>e>0?n.padEnd(e,t):n,repeat:(n,e)=>e>0?n.repeat(e):"","index-of":(n,e,t)=>n.indexOf(e,t),"last-index-of":(n,e,t)=>n.lastIndexOf(e,t),length:n=>n.length,"url-search-name":(n=0)=>l[n]&&l[n][0],"url-search-value":(n=0)=>l[n]&&l[n][1],"url-search-named-value":n=>{const e=l.find((e=>e[0]==n));return e&&e[1]},"url-search":n=>{const e=l.find((e=>e[0]==n));return e&&e[1]},"url-segment":(n=0)=>{const t=Jn(r.pathname).split("/");return t.pop(),t.push(Yn(r,e.filenameReplacementCharacter)),t[n]},"url-hostname-subdomain":(n=0)=>{const e=g.split(".");return e[e.length-n-1]},stringify:n=>{try{return JSON.stringify(n)}catch(e){return n}},"encode-uri":n=>{try{return encodeURI(n)}catch(e){return n}},"decode-uri":n=>{try{return decodeURI(n)}catch(e){return n}},"encode-uri-component":n=>{try{return encodeURIComponent(n)}catch(e){return n}},"decode-uri-component":n=>{try{return decodeURIComponent(n)}catch(e){return n}},"date-locale":n=>o.currentDate.toLocaleDateString(n),"time-locale":n=>o.currentDate.toLocaleTimeString(n),"datetime-locale":n=>o.currentDate.toLocaleString(n),"datetime-custom":(n,e,t,a,i,r,s,l,c,m,d,h,p,u,g)=>{const w=o.currentDate,b={};return f(b,"year",e),f(b,"month",t),f(b,"day",a),f(b,"weekday",i),f(b,"hour",r),f(b,"minute",s),f(b,"second",l),f(b,"hour12",c),b.hour12="true"==c,f(b,"timeZone",m),f(b,"fractionalSecondDigits",d),f(b,"timeZoneName",h),f(b,"dayPeriod",p),f(b,"era",u),f(b,"localeMatcher",g),new Bn.DateTimeFormat(n,b).format(w);function f(n,e,t){" "==t?n[e]=void 0:t&&(n[e]=t)}}};k["date-locale"].dontReplaceSlash=!1,k["time-locale"].dontReplaceSlash=!1,k["datetime-locale"].dontReplaceSlash=!1,k["datetime-custom"].dontReplaceSlash=!1,a&&(k["page-element-text"]=n=>{const e=a.querySelector(n);return e&&e.textContent},k["page-element-attribute"]=(n,e)=>{const t=a.querySelector(n);return t&&t.getAttribute(e)}),n=Vn(n,"\\%","\\\\%"),n=Vn(n,"\\{","\\\\{"),n=Vn(n,"\\|","\\\\|"),n=Vn(n,"\\>","\\\\>");let y=await p(n,{async callFunction(n,[t,a],o){const i=k[n];if(!i)return"";if(t=t.replace(/\\\\(.)/g,"$1"),a||(a=[]),a=a.map((n=>n.replace(/\\\\(.)/g,"$1"))).filter((n=>null!=n&&null!=n&&""!=n)),!(null!=t&&null!=t&&""!=t||a.length>0))return"";try{const n=void 0===i.dontReplaceSlash||i.dontReplaceSlash;return await Kn((()=>i(t,...a)),n,e.filenameReplacementCharacter,o)}catch(n){return""}},getVariableValue(n,t){const a=f[n];return a?Kn(a.getter,a.dontReplaceSlash,e.filenameReplacementCharacter,t):""}});return y=Vn(y,"\\\\%","%"),y=Vn(y,"\\\\{","{"),y=Vn(y,"\\\\|","|"),y=Vn(y,"\\\\>",">"),y;function v(n,e=""){f[e+"datetime-iso"]={getter:()=>n.toISOString()},f[e+"date-iso"]={getter:()=>n.toISOString().split("T")[0]},f[e+"time-iso"]={getter:()=>n.toISOString().split("T")[1].split("Z")[0]},f[e+"date-locale"]={getter:()=>n.toLocaleDateString()},f[e+"time-locale"]={getter:()=>n.toLocaleTimeString()},f[e+"day-locale"]={getter:()=>String(n.getDate()).padStart(2,"0")},f[e+"month-locale"]={getter:()=>String(n.getMonth()+1).padStart(2,"0")},f[e+"year-locale"]={getter:()=>String(n.getFullYear())},f[e+"datetime-locale"]={getter:()=>n.toLocaleString()},f[e+"datetime-utc"]={getter:()=>n.toUTCString()},f[e+"day-utc"]={getter:()=>String(n.getUTCDate()).padStart(2,"0")},f[e+"month-utc"]={getter:()=>String(n.getUTCMonth()+1).padStart(2,"0")},f[e+"year-utc"]={getter:()=>String(n.getUTCFullYear())},f[e+"hours-locale"]={getter:()=>String(n.getHours()).padStart(2,"0")},f[e+"minutes-locale"]={getter:()=>String(n.getMinutes()).padStart(2,"0")},f[e+"seconds-locale"]={getter:()=>String(n.getSeconds()).padStart(2,"0")},f[e+"hours-utc"]={getter:()=>String(n.getUTCHours()).padStart(2,"0")},f[e+"minutes-utc"]={getter:()=>String(n.getUTCMinutes()).padStart(2,"0")},f[e+"seconds-utc"]={getter:()=>String(n.getUTCSeconds()).padStart(2,"0")},f[e+"time-ms"]={getter:()=>String(n.getTime())}}}function Vn(n,e,t){if("function"==typeof n.replaceAll)return n.replaceAll(e,t);{const a=new RegExp(e.replace(Fn,"\\$1"),"g");return n.replace(a,t)}}async function Kn(n,e,t,a){const{maxLength:o,maxCharLength:i}=function(n){if(n){const{unit:e,length:t}=n;let a,o;return"char"==e?o=t:a=t,{maxLength:a,maxCharLength:o}}return{}}(a);let r=await n()||"";return e||(r=r.replace(/\/+/g,t)),o?r=await Zn(r,o):i&&(r=r.substring(0,i)),r}function Jn(n){try{return decodeURI(n)}catch(e){return n}}function Yn(n,e){let t=n.pathname.match(/\/([^/]+)$/),a=t&&t[0];return a||(t=n.href.match(/([^/]+)\/?$/),a=t&&t[0]),a||(t=a.match(/(.*)\.[^.]+$/),a=t&&t[0]),a||(a=n.hostname.replace(/\/+/g,e).replace(/\/$/,"")),t=a.match(/(.*)\.[^.]+$/),t&&t[1]&&(a=t[1]),a=a.replace(/\/$/,"").replace(/^\//,""),a}function Zn(n,e){const t=new En([n]),a=new Dn;return a.readAsText(t.slice(0,e)),new Promise(((t,o)=>{a.addEventListener("load",(()=>{n.startsWith(a.result)?t(a.result):Zn(n,e-1).then(t).catch(o)}),!1),a.addEventListener("error",o,!1)}))}const{Array:$n,Object:Xn,String:Qn,Number:ne,BigInt:ee,Math:te,Date:ae,Map:oe,Set:ie,Response:re,URL:se,Error:le,Uint8Array:ce,Uint16Array:me,Uint32Array:de,DataView:he,Blob:pe,Promise:ue,TextEncoder:ge,TextDecoder:we,crypto:be,btoa:fe,TransformStream:ke,ReadableStream:ye,WritableStream:ve,CompressionStream:je,DecompressionStream:Se,navigator:xe,Worker:Ce}=globalThis,ze=4294967295,Le=65535,Ae=8,Ie=0,Te=99,Re=67324752,Ee=134695760,De=Ee,Me=33639248,Be=101010256,Ne=101075792,Pe=117853008,Oe=22,_e=1,Fe=39169,qe=10,Ue=1,He=21589,Ge=6534,We=1,Ve=8,Ke=2048,Je=45,Ye=51,Ze="/",$e=new ae(2107,11,31),Xe=new ae(1980,0,1),Qe=void 0,nt="undefined",et="function";class tt{constructor(n){return class extends ke{constructor(e,t){const a=new n(t);super({transform(n,e){e.enqueue(a.append(n))},flush(n){const e=a.flush();e&&n.enqueue(e)}})}}}}const at=64;let ot=2;try{typeof xe!=nt&&xe.hardwareConcurrency&&(ot=xe.hardwareConcurrency)}catch(n){}const it={chunkSize:524288,maxWorkers:ot,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Qe,CompressionStreamNative:typeof je!=nt&&je,DecompressionStreamNative:typeof Se!=nt&&Se},rt=Xn.assign({},it);function st(){return rt}function lt(n){return te.max(n.chunkSize,at)}function ct(n){const{baseURL:e,chunkSize:t,maxWorkers:a,terminateWorkerTimeout:o,useCompressionStream:i,useWebWorkers:r,Deflate:s,Inflate:l,CompressionStream:c,DecompressionStream:m,workerScripts:d}=n;if(mt("baseURL",e),mt("chunkSize",t),mt("maxWorkers",a),mt("terminateWorkerTimeout",o),mt("useCompressionStream",i),mt("useWebWorkers",r),s&&(rt.CompressionStream=new tt(s)),l&&(rt.DecompressionStream=new tt(l)),mt("CompressionStream",c),mt("DecompressionStream",m),d!==Qe){const{deflate:n,inflate:e}=d;if((n||e)&&(rt.workerScripts||(rt.workerScripts={})),n){if(!$n.isArray(n))throw new le("workerScripts.deflate must be an array");rt.workerScripts.deflate=n}if(e){if(!$n.isArray(e))throw new le("workerScripts.inflate must be an array");rt.workerScripts.inflate=e}}}function mt(n,e){e!==Qe&&(rt[n]=e)}function dt(n,e,t){return class{constructor(a){const o=this;var i,r;i=a,r="level",(typeof Xn.hasOwn===et?Xn.hasOwn(i,r):i.hasOwnProperty(r))&&a.level===Qe&&delete a.level,o.codec=new n(Xn.assign({},e,a)),t(o.codec,(n=>{if(o.pendingData){const e=o.pendingData;o.pendingData=new ce(e.length+n.length);const{pendingData:t}=o;t.set(e,0),t.set(n,e.length)}else o.pendingData=new ce(n)}))}append(n){return this.codec.push(n),a(this)}flush(){return this.codec.push(new ce,!0),a(this)}};function a(n){if(n.pendingData){const e=n.pendingData;return n.pendingData=null,e}return new ce}}const ht=[];for(let n=0;n<256;n++){let e=n;for(let n=0;n<8;n++)1&e?e=e>>>1^3988292384:e>>>=1;ht[n]=e}class pt{constructor(n){this.crc=n||-1}append(n){let e=0|this.crc;for(let t=0,a=0|n.length;t<a;t++)e=e>>>8^ht[255&(e^n[t])];this.crc=e}get(){return~this.crc}}class ut extends ke{constructor(){let n;const e=new pt;super({transform(n,t){e.append(n),t.enqueue(n)},flush(){const t=new ce(4);new he(t.buffer).setUint32(0,e.get()),n.value=t}}),n=this}}function gt(n){if(typeof ge==nt){n=unescape(encodeURIComponent(n));const e=new ce(n.length);for(let t=0;t<e.length;t++)e[t]=n.charCodeAt(t);return e}return(new ge).encode(n)}const wt={concat(n,e){if(0===n.length||0===e.length)return n.concat(e);const t=n[n.length-1],a=wt.getPartial(t);return 32===a?n.concat(e):wt._shiftRight(e,a,0|t,n.slice(0,n.length-1))},bitLength(n){const e=n.length;if(0===e)return 0;const t=n[e-1];return 32*(e-1)+wt.getPartial(t)},clamp(n,e){if(32*n.length<e)return n;const t=(n=n.slice(0,te.ceil(e/32))).length;return e&=31,t>0&&e&&(n[t-1]=wt.partial(e,n[t-1]&2147483648>>e-1,1)),n},partial:(n,e,t)=>32===n?e:(t?0|e:e<<32-n)+1099511627776*n,getPartial:n=>te.round(n/1099511627776)||32,_shiftRight(n,e,t,a){for(void 0===a&&(a=[]);e>=32;e-=32)a.push(t),t=0;if(0===e)return a.concat(n);for(let o=0;o<n.length;o++)a.push(t|n[o]>>>e),t=n[o]<<32-e;const o=n.length?n[n.length-1]:0,i=wt.getPartial(o);return a.push(wt.partial(e+i&31,e+i>32?t:a.pop(),1)),a}},bt={bytes:{fromBits(n){const e=wt.bitLength(n)/8,t=new ce(e);let a;for(let o=0;o<e;o++)3&o||(a=n[o/4]),t[o]=a>>>24,a<<=8;return t},toBits(n){const e=[];let t,a=0;for(t=0;t<n.length;t++)a=a<<8|n[t],3&~t||(e.push(a),a=0);return 3&t&&e.push(wt.partial(8*(3&t),a)),e}}},ft={sha1:class{constructor(n){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],n?(e._h=n._h.slice(0),e._buffer=n._buffer.slice(0),e._length=n._length):e.reset()}reset(){const n=this;return n._h=n._init.slice(0),n._buffer=[],n._length=0,n}update(n){const e=this;"string"==typeof n&&(n=bt.utf8String.toBits(n));const t=e._buffer=wt.concat(e._buffer,n),a=e._length,o=e._length=a+wt.bitLength(n);if(o>9007199254740991)throw new le("Cannot hash more than 2^53 - 1 bits");const i=new de(t);let r=0;for(let n=e.blockSize+a-(e.blockSize+a&e.blockSize-1);n<=o;n+=e.blockSize)e._block(i.subarray(16*r,16*(r+1))),r+=1;return t.splice(0,16*r),e}finalize(){const n=this;let e=n._buffer;const t=n._h;e=wt.concat(e,[wt.partial(1,1)]);for(let n=e.length+2;15&n;n++)e.push(0);for(e.push(te.floor(n._length/4294967296)),e.push(0|n._length);e.length;)n._block(e.splice(0,16));return n.reset(),t}_f(n,e,t,a){return n<=19?e&t|~e&a:n<=39?e^t^a:n<=59?e&t|e&a|t&a:n<=79?e^t^a:void 0}_S(n,e){return e<<n|e>>>32-n}_block(n){const e=this,t=e._h,a=$n(80);for(let e=0;e<16;e++)a[e]=n[e];let o=t[0],i=t[1],r=t[2],s=t[3],l=t[4];for(let n=0;n<=79;n++){n>=16&&(a[n]=e._S(1,a[n-3]^a[n-8]^a[n-14]^a[n-16]));const t=e._S(5,o)+e._f(n,i,r,s)+l+a[n]+e._key[te.floor(n/20)]|0;l=s,s=r,r=e._S(30,i),i=o,o=t}t[0]=t[0]+o|0,t[1]=t[1]+i|0,t[2]=t[2]+r|0,t[3]=t[3]+s|0,t[4]=t[4]+l|0}}},kt={aes:class{constructor(n){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const t=e._tables[0][4],a=e._tables[1],o=n.length;let i,r,s,l=1;if(4!==o&&6!==o&&8!==o)throw new le("invalid aes key size");for(e._key=[r=n.slice(0),s=[]],i=o;i<4*o+28;i++){let n=r[i-1];(i%o==0||8===o&&i%o==4)&&(n=t[n>>>24]<<24^t[n>>16&255]<<16^t[n>>8&255]<<8^t[255&n],i%o==0&&(n=n<<8^n>>>24^l<<24,l=l<<1^283*(l>>7))),r[i]=r[i-o]^n}for(let n=0;i;n++,i--){const e=r[3&n?i:i-4];s[n]=i<=4||n<4?e:a[0][t[e>>>24]]^a[1][t[e>>16&255]]^a[2][t[e>>8&255]]^a[3][t[255&e]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){const n=this._tables[0],e=this._tables[1],t=n[4],a=e[4],o=[],i=[];let r,s,l,c;for(let n=0;n<256;n++)i[(o[n]=n<<1^283*(n>>7))^n]=n;for(let m=r=0;!t[m];m^=s||1,r=i[r]||1){let i=r^r<<1^r<<2^r<<3^r<<4;i=i>>8^255&i^99,t[m]=i,a[i]=m,c=o[l=o[s=o[m]]];let d=16843009*c^65537*l^257*s^16843008*m,h=257*o[i]^16843008*i;for(let t=0;t<4;t++)n[t][m]=h=h<<24^h>>>8,e[t][i]=d=d<<24^d>>>8}for(let t=0;t<5;t++)n[t]=n[t].slice(0),e[t]=e[t].slice(0)}_crypt(n,e){if(4!==n.length)throw new le("invalid aes block size");const t=this._key[e],a=t.length/4-2,o=[0,0,0,0],i=this._tables[e],r=i[0],s=i[1],l=i[2],c=i[3],m=i[4];let d,h,p,u=n[0]^t[0],g=n[e?3:1]^t[1],w=n[2]^t[2],b=n[e?1:3]^t[3],f=4;for(let n=0;n<a;n++)d=r[u>>>24]^s[g>>16&255]^l[w>>8&255]^c[255&b]^t[f],h=r[g>>>24]^s[w>>16&255]^l[b>>8&255]^c[255&u]^t[f+1],p=r[w>>>24]^s[b>>16&255]^l[u>>8&255]^c[255&g]^t[f+2],b=r[b>>>24]^s[u>>16&255]^l[g>>8&255]^c[255&w]^t[f+3],f+=4,u=d,g=h,w=p;for(let n=0;n<4;n++)o[e?3&-n:n]=m[u>>>24]<<24^m[g>>16&255]<<16^m[w>>8&255]<<8^m[255&b]^t[f++],d=u,u=g,g=w,w=b,b=d;return o}}},yt={getRandomValues(n){const e=new de(n.buffer),t=n=>{let e=987654321;const t=4294967295;return function(){e=36969*(65535&e)+(e>>16)&t;return(((e<<16)+(n=18e3*(65535&n)+(n>>16)&t)&t)/4294967296+.5)*(te.random()>.5?1:-1)}};for(let a,o=0;o<n.length;o+=4){const n=t(4294967296*(a||te.random()));a=987654071*n(),e[o/4]=4294967296*n()|0}return n}},vt={ctrGladman:class{constructor(n,e){this._prf=n,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(n){return this.calculate(this._prf,n,this._iv)}incWord(n){if(255&~(n>>24))n+=1<<24;else{let e=n>>16&255,t=n>>8&255,a=255&n;255===e?(e=0,255===t?(t=0,255===a?a=0:++a):++t):++e,n=0,n+=e<<16,n+=t<<8,n+=a}return n}incCounter(n){0===(n[0]=this.incWord(n[0]))&&(n[1]=this.incWord(n[1]))}calculate(n,e,t){let a;if(!(a=e.length))return[];const o=wt.bitLength(e);for(let o=0;o<a;o+=4){this.incCounter(t);const a=n.encrypt(t);e[o]^=a[0],e[o+1]^=a[1],e[o+2]^=a[2],e[o+3]^=a[3]}return wt.clamp(e,o)}}},jt={importKey:n=>new jt.hmacSha1(bt.bytes.toBits(n)),pbkdf2(n,e,t,a){if(t=t||1e4,a<0||t<0)throw new le("invalid params to pbkdf2");const o=1+(a>>5)<<2;let i,r,s,l,c;const m=new ArrayBuffer(o),d=new he(m);let h=0;const p=wt;for(e=bt.bytes.toBits(e),c=1;h<(o||1);c++){for(i=r=n.encrypt(p.concat(e,[c])),s=1;s<t;s++)for(r=n.encrypt(r),l=0;l<r.length;l++)i[l]^=r[l];for(s=0;h<(o||1)&&s<i.length;s++)d.setInt32(h,i[s]),h+=4}return m.slice(0,a/8)},hmacSha1:class{constructor(n){const e=this,t=e._hash=ft.sha1,a=[[],[]];e._baseHash=[new t,new t];const o=e._baseHash[0].blockSize/32;n.length>o&&(n=(new t).update(n).finalize());for(let e=0;e<o;e++)a[0][e]=909522486^n[e],a[1][e]=1549556828^n[e];e._baseHash[0].update(a[0]),e._baseHash[1].update(a[1]),e._resultHash=new t(e._baseHash[0])}reset(){const n=this;n._resultHash=new n._hash(n._baseHash[0]),n._updated=!1}update(n){this._updated=!0,this._resultHash.update(n)}digest(){const n=this,e=n._resultHash.finalize(),t=new n._hash(n._baseHash[1]).update(e).finalize();return n.reset(),t}encrypt(n){if(this._updated)throw new le("encrypt on already updated hmac called!");return this.update(n),this.digest(n)}}},St=typeof be!=nt&&typeof be.getRandomValues==et,xt="Invalid password",Ct="Invalid signature",zt="zipjs-abort-check-password";function Lt(n){return St?be.getRandomValues(n):yt.getRandomValues(n)}const At=16,It="raw",Tt={name:"PBKDF2"},Rt=Xn.assign({hash:{name:"HMAC"}},Tt),Et=Xn.assign({iterations:1e3,hash:{name:"SHA-1"}},Tt),Dt=["deriveBits"],Mt=[8,12,16],Bt=[16,24,32],Nt=10,Pt=[0,0,0,0],Ot=typeof be!=nt,_t=Ot&&be.subtle,Ft=Ot&&typeof _t!=nt,qt=bt.bytes,Ut=kt.aes,Ht=vt.ctrGladman,Gt=jt.hmacSha1;let Wt=Ot&&Ft&&typeof _t.importKey==et,Vt=Ot&&Ft&&typeof _t.deriveBits==et;class Kt extends ke{constructor({password:n,rawPassword:e,signed:t,encryptionStrength:a,checkPasswordOnly:o}){super({start(){Xn.assign(this,{ready:new ue((n=>this.resolveReady=n)),password:$t(n,e),signed:t,strength:a-1,pending:new ce})},async transform(n,e){const t=this,{password:a,strength:i,resolveReady:r,ready:s}=t;a?(await async function(n,e,t,a){const o=await Zt(n,e,t,Qt(a,0,Mt[e])),i=Qt(a,Mt[e]);if(o[0]!=i[0]||o[1]!=i[1])throw new le(xt)}(t,i,a,Qt(n,0,Mt[i]+2)),n=Qt(n,Mt[i]+2),o?e.error(new le(zt)):r()):await s;const l=new ce(n.length-Nt-(n.length-Nt)%At);e.enqueue(Yt(t,n,l,0,Nt,!0))},async flush(n){const{signed:e,ctr:t,hmac:a,pending:o,ready:i}=this;if(a&&t){await i;const r=Qt(o,0,o.length-Nt),s=Qt(o,o.length-Nt);let l=new ce;if(r.length){const n=ea(qt,r);a.update(n);const e=t.update(n);l=na(qt,e)}if(e){const n=Qt(na(qt,a.digest()),0,Nt);for(let e=0;e<Nt;e++)if(n[e]!=s[e])throw new le(Ct)}n.enqueue(l)}}})}}class Jt extends ke{constructor({password:n,rawPassword:e,encryptionStrength:t}){let a;super({start(){Xn.assign(this,{ready:new ue((n=>this.resolveReady=n)),password:$t(n,e),strength:t-1,pending:new ce})},async transform(n,e){const t=this,{password:a,strength:o,resolveReady:i,ready:r}=t;let s=new ce;a?(s=await async function(n,e,t){const a=Lt(new ce(Mt[e])),o=await Zt(n,e,t,a);return Xt(a,o)}(t,o,a),i()):await r;const l=new ce(s.length+n.length-n.length%At);l.set(s,0),e.enqueue(Yt(t,n,l,s.length,0))},async flush(n){const{ctr:e,hmac:t,pending:o,ready:i}=this;if(t&&e){await i;let r=new ce;if(o.length){const n=e.update(ea(qt,o));t.update(n),r=na(qt,n)}a.signature=na(qt,t.digest()).slice(0,Nt),n.enqueue(Xt(r,a.signature))}}}),a=this}}function Yt(n,e,t,a,o,i){const{ctr:r,hmac:s,pending:l}=n,c=e.length-o;let m;for(l.length&&(e=Xt(l,e),t=function(n,e){if(e&&e>n.length){const t=n;(n=new ce(e)).set(t,0)}return n}(t,c-c%At)),m=0;m<=c-At;m+=At){const n=ea(qt,Qt(e,m,m+At));i&&s.update(n);const o=r.update(n);i||s.update(o),t.set(na(qt,o),m+a)}return n.pending=Qt(e,m),t}async function Zt(n,e,t,a){n.password=null;const o=await async function(n,e,t,a,o){if(!Wt)return jt.importKey(e);try{return await _t.importKey(n,e,t,a,o)}catch(n){return Wt=!1,jt.importKey(e)}}(It,t,Rt,!1,Dt),i=await async function(n,e,t){if(!Vt)return jt.pbkdf2(e,n.salt,Et.iterations,t);try{return await _t.deriveBits(n,e,t)}catch(a){return Vt=!1,jt.pbkdf2(e,n.salt,Et.iterations,t)}}(Xn.assign({salt:a},Et),o,8*(2*Bt[e]+2)),r=new ce(i),s=ea(qt,Qt(r,0,Bt[e])),l=ea(qt,Qt(r,Bt[e],2*Bt[e])),c=Qt(r,2*Bt[e]);return Xn.assign(n,{keys:{key:s,authentication:l,passwordVerification:c},ctr:new Ht(new Ut(s),$n.from(Pt)),hmac:new Gt(l)}),c}function $t(n,e){return e===Qe?gt(n):e}function Xt(n,e){let t=n;return n.length+e.length&&(t=new ce(n.length+e.length),t.set(n,0),t.set(e,n.length)),t}function Qt(n,e,t){return n.subarray(e,t)}function na(n,e){return n.fromBits(e)}function ea(n,e){return n.toBits(e)}const ta=12;class aa extends ke{constructor({password:n,passwordVerification:e,checkPasswordOnly:t}){super({start(){Xn.assign(this,{password:n,passwordVerification:e}),sa(this,n)},transform(n,e){const a=this;if(a.password){const e=ia(a,n.subarray(0,ta));if(a.password=null,e[11]!=a.passwordVerification)throw new le(xt);n=n.subarray(ta)}t?e.error(new le(zt)):e.enqueue(ia(a,n))}})}}class oa extends ke{constructor({password:n,passwordVerification:e}){super({start(){Xn.assign(this,{password:n,passwordVerification:e}),sa(this,n)},transform(n,e){const t=this;let a,o;if(t.password){t.password=null;const e=Lt(new ce(ta));e[11]=t.passwordVerification,a=new ce(n.length+e.length),a.set(ra(t,e),0),o=ta}else a=new ce(n.length),o=0;a.set(ra(t,n),o),e.enqueue(a)}})}}function ia(n,e){const t=new ce(e.length);for(let a=0;a<e.length;a++)t[a]=ca(n)^e[a],la(n,t[a]);return t}function ra(n,e){const t=new ce(e.length);for(let a=0;a<e.length;a++)t[a]=ca(n)^e[a],la(n,e[a]);return t}function sa(n,e){const t=[305419896,591751049,878082192];Xn.assign(n,{keys:t,crcKey0:new pt(t[0]),crcKey2:new pt(t[2])});for(let t=0;t<e.length;t++)la(n,e.charCodeAt(t))}function la(n,e){let[t,a,o]=n.keys;n.crcKey0.append([e]),t=~n.crcKey0.get(),a=da(te.imul(da(a+ma(t)),134775813)+1),n.crcKey2.append([a>>>24]),o=~n.crcKey2.get(),n.keys=[t,a,o]}function ca(n){const e=2|n.keys[2];return ma(te.imul(e,1^e)>>>8)}function ma(n){return 255&n}function da(n){return 4294967295&n}const ha="deflate-raw";class pa extends ke{constructor(n,{chunkSize:e,CompressionStream:t,CompressionStreamNative:a}){super({});const{compressed:o,encrypted:i,useCompressionStream:r,zipCrypto:s,signed:l,level:c}=n,m=this;let d,h,p=ga(super.readable);i&&!s||!l||(d=new ut,p=fa(p,d)),o&&(p=ba(p,r,{level:c,chunkSize:e},a,t)),i&&(s?p=fa(p,new oa(n)):(h=new Jt(n),p=fa(p,h))),wa(m,p,(()=>{let n;i&&!s&&(n=h.signature),i&&!s||!l||(n=new he(d.value.buffer).getUint32(0)),m.signature=n}))}}class ua extends ke{constructor(n,{chunkSize:e,DecompressionStream:t,DecompressionStreamNative:a}){super({});const{zipCrypto:o,encrypted:i,signed:r,signature:s,compressed:l,useCompressionStream:c}=n;let m,d,h=ga(super.readable);i&&(o?h=fa(h,new aa(n)):(d=new Kt(n),h=fa(h,d))),l&&(h=ba(h,c,{chunkSize:e},a,t)),i&&!o||!r||(m=new ut,h=fa(h,m)),wa(this,h,(()=>{if((!i||o)&&r){const n=new he(m.value.buffer);if(s!=n.getUint32(0,!1))throw new le(Ct)}}))}}function ga(n){return fa(n,new ke({transform(n,e){n&&n.length&&e.enqueue(n)}}))}function wa(n,e,t){e=fa(e,new ke({flush:t})),Xn.defineProperty(n,"readable",{get:()=>e})}function ba(n,e,t,a,o){try{n=fa(n,new(e&&a?a:o)(ha,t))}catch(a){if(!e)return n;try{n=fa(n,new o(ha,t))}catch(e){return n}}return n}function fa(n,e){return n.pipeThrough(e)}const ka="message",ya="start",va="pull",ja="data",Sa="ack",xa="close",Ca="deflate",za="inflate";class La extends ke{constructor(n,e){super({});const t=this,{codecType:a}=n;let o;a.startsWith(Ca)?o=pa:a.startsWith(za)&&(o=ua);let i=0,r=0;const s=new o(n,e),l=super.readable,c=new ke({transform(n,e){n&&n.length&&(r+=n.length,e.enqueue(n))},flush(){Xn.assign(t,{inputSize:r})}}),m=new ke({transform(n,e){n&&n.length&&(i+=n.length,e.enqueue(n))},flush(){const{signature:n}=s;Xn.assign(t,{signature:n,outputSize:i,inputSize:r})}});Xn.defineProperty(t,"readable",{get:()=>l.pipeThrough(c).pipeThrough(s).pipeThrough(m)})}}class Aa extends ke{constructor(n){let e;super({transform:function t(a,o){if(e){const n=new ce(e.length+a.length);n.set(e),n.set(a,e.length),a=n,e=null}a.length>n?(o.enqueue(a.slice(0,n)),t(a.slice(n),o)):e=a},flush(n){e&&e.length&&n.enqueue(e)}})}}let Ia=typeof Ce!=nt;class Ta{constructor(n,{readable:e,writable:t},{options:a,config:o,streamOptions:i,useWebWorkers:r,transferStreams:s,scripts:l},c){const{signal:m}=i;return Xn.assign(n,{busy:!0,readable:e.pipeThrough(new Aa(o.chunkSize)).pipeThrough(new Ra(e,i),{signal:m}),writable:t,options:Xn.assign({},a),scripts:l,transferStreams:s,terminate:()=>new ue((e=>{const{worker:t,busy:a}=n;t?(a?n.resolveTerminated=e:(t.terminate(),e()),n.interface=null):e()})),onTaskFinished(){const{resolveTerminated:e}=n;e&&(n.resolveTerminated=null,n.terminated=!0,n.worker.terminate(),e()),n.busy=!1,c(n)}}),(r&&Ia?Ma:Da)(n,o)}}class Ra extends ke{constructor(n,{onstart:e,onprogress:t,size:a,onend:o}){let i=0;super({async start(){e&&await Ea(e,a)},async transform(n,e){i+=n.length,t&&await Ea(t,i,a),e.enqueue(n)},async flush(){n.size=i,o&&await Ea(o,i)}})}}async function Ea(n,...e){try{await n(...e)}catch(n){}}function Da(n,e){return{run:()=>async function({options:n,readable:e,writable:t,onTaskFinished:a},o){try{const a=new La(n,o);await e.pipeThrough(a).pipeTo(t,{preventClose:!0,preventAbort:!0});const{signature:i,inputSize:r,outputSize:s}=a;return{signature:i,inputSize:r,outputSize:s}}finally{a()}}(n,e)}}function Ma(n,e){const{baseURL:t,chunkSize:a}=e;if(!n.interface){let o;try{o=function(n,e,t){const a={type:"module"};let o,i;typeof n==et&&(n=n());try{o=new se(n,e)}catch(e){o=n}if(Ba)try{i=new Ce(o)}catch(n){Ba=!1,i=new Ce(o,a)}else i=new Ce(o,a);return i.addEventListener(ka,(n=>async function({data:n},e){const{type:t,value:a,messageId:o,result:i,error:r}=n,{reader:s,writer:l,resolveResult:c,rejectResult:m,onTaskFinished:d}=e;try{if(r){const{message:n,stack:e,code:t,name:a}=r,o=new le(n);Xn.assign(o,{stack:e,code:t,name:a}),h(o)}else{if(t==va){const{value:n,done:t}=await s.read();Pa({type:ja,value:n,done:t,messageId:o},e)}t==ja&&(await l.ready,await l.write(new ce(a)),Pa({type:Sa,messageId:o},e)),t==xa&&h(null,i)}}catch(r){Pa({type:xa,messageId:o},e),h(r)}function h(n,e){n?m(n):c(e),l&&l.releaseLock(),d()}}(n,t))),i}(n.scripts[0],t,n)}catch(t){return Ia=!1,Da(n,e)}Xn.assign(n,{worker:o,interface:{run:()=>async function(n,e){let t,a;const o=new ue(((n,e)=>{t=n,a=e}));Xn.assign(n,{reader:null,writer:null,resolveResult:t,rejectResult:a,result:o});const{readable:i,options:r,scripts:s}=n,{writable:l,closed:c}=function(n){let e;const t=new ue((n=>e=n)),a=new ve({async write(e){const t=n.getWriter();await t.ready,await t.write(e),t.releaseLock()},close(){e()},abort:e=>n.getWriter().abort(e)});return{writable:a,closed:t}}(n.writable),m=Pa({type:ya,scripts:s.slice(1),options:r,config:e,readable:i,writable:l},n);m||Xn.assign(n,{reader:i.getReader(),writer:l.getWriter()});const d=await o;m||await l.getWriter().close();return await c,d}(n,{chunkSize:a})}})}return n.interface}let Ba=!0,Na=!0;function Pa(n,{worker:e,writer:t,onTaskFinished:a,transferStreams:o}){try{let{value:t,readable:a,writable:i}=n;const r=[];if(t&&(t.byteLength<t.buffer.byteLength?n.value=t.buffer.slice(0,t.byteLength):n.value=t.buffer,r.push(n.value)),o&&Na?(a&&r.push(a),i&&r.push(i)):n.readable=n.writable=null,r.length)try{return e.postMessage(n,r),!0}catch(t){Na=!1,n.readable=n.writable=null,e.postMessage(n)}else e.postMessage(n)}catch(n){throw t&&t.releaseLock(),a(),n}}let Oa=[];const _a=[];let Fa=0;async function qa(n,e){const{options:t,config:a}=e,{transferStreams:o,useWebWorkers:i,useCompressionStream:r,codecType:s,compressed:l,signed:c,encrypted:m}=t,{workerScripts:d,maxWorkers:h}=a;e.transferStreams=o||o===Qe;const p=!(l||c||m||e.transferStreams);return e.useWebWorkers=!p&&(i||i===Qe&&a.useWebWorkers),e.scripts=e.useWebWorkers&&d?d[s]:[],t.useCompressionStream=r||r===Qe&&a.useCompressionStream,(await async function(){const t=Oa.find((n=>!n.busy));if(t)return Ua(t),new Ta(t,n,e,u);if(Oa.length<h){const t={indexWorker:Fa};return Fa++,Oa.push(t),new Ta(t,n,e,u)}return new ue((t=>_a.push({resolve:t,stream:n,workerOptions:e})))}()).run();function u(n){if(_a.length){const[{resolve:e,stream:t,workerOptions:a}]=_a.splice(0,1);e(new Ta(n,t,a,u))}else n.worker?(Ua(n),function(n,e){const{config:t}=e,{terminateWorkerTimeout:a}=t;ne.isFinite(a)&&a>=0&&(n.terminated?n.terminated=!1:n.terminateTimeout=setTimeout((async()=>{Oa=Oa.filter((e=>e!=n));try{await n.terminate()}catch(n){}}),a))}(n,e)):Oa=Oa.filter((e=>e!=n))}}function Ua(n){const{terminateTimeout:e}=n;e&&(clearTimeout(e),n.terminateTimeout=null)}const Ha="HTTP error ",Ga="HTTP Range not supported",Wa="Writer iterator completed too soon",Va="Content-Length",Ka="Range",Ja="HEAD",Ya="GET",Za="bytes",$a=65536,Xa="writable";class Qa{constructor(){this.size=0}init(){this.initialized=!0}}class no extends Qa{get readable(){const n=this,{chunkSize:e=$a}=n,t=new ye({start(){this.chunkOffset=0},async pull(a){const{offset:o=0,size:i,diskNumberStart:r}=t,{chunkOffset:s}=this;a.enqueue(await xo(n,o+s,te.min(e,i-s),r)),s+e>i?a.close():this.chunkOffset+=e}});return t}}class eo extends Qa{constructor(){super();const n=this,e=new ve({write:e=>n.writeUint8Array(e)});Xn.defineProperty(n,Xa,{get:()=>e})}writeUint8Array(){}}class to extends no{constructor(n){super(),Xn.assign(this,{blob:n,size:n.size})}async readUint8Array(n,e){const t=this,a=n+e,o=n||a<t.size?t.blob.slice(n,a):t.blob;let i=await o.arrayBuffer();return i.byteLength>e&&(i=i.slice(n,a)),new ce(i)}}class ao extends Qa{constructor(n){super();const e=new ke,t=[];n&&t.push(["Content-Type",n]),Xn.defineProperty(this,Xa,{get:()=>e.writable}),this.blob=new re(e.readable,{headers:t}).blob()}getData(){return this.blob}}class oo extends no{constructor(n,e){super(),ro(this,n,e)}async init(){await so(this,wo,ho),super.init()}readUint8Array(n,e){return lo(this,n,e,wo,ho)}}class io extends no{constructor(n,e){super(),ro(this,n,e)}async init(){await so(this,bo,po),super.init()}readUint8Array(n,e){return lo(this,n,e,bo,po)}}function ro(n,e,t){const{preventHeadRequest:a,useRangeHeader:o,forceRangeRequests:i,combineSizeEocd:r}=t;delete(t=Xn.assign({},t)).preventHeadRequest,delete t.useRangeHeader,delete t.forceRangeRequests,delete t.combineSizeEocd,delete t.useXHR,Xn.assign(n,{url:e,options:t,preventHeadRequest:a,useRangeHeader:o,forceRangeRequests:i,combineSizeEocd:r})}async function so(n,e,t){const{url:a,preventHeadRequest:o,useRangeHeader:i,forceRangeRequests:r,combineSizeEocd:s}=n;if(function(n){const{baseURL:e}=st(),{protocol:t}=new se(n,e);return"http:"==t||"https:"==t}(a)&&(i||r)&&(void 0===o||o)){const a=await e(Ya,n,co(n,s?-22:void 0));if(!r&&a.headers.get("Accept-Ranges")!=Za)throw new le(Ga);{let o;s&&(n.eocdCache=new ce(await a.arrayBuffer()));const i=a.headers.get("Content-Range");if(i){const n=i.trim().split(/\s*\/\s*/);if(n.length){const e=n[1];e&&"*"!=e&&(o=ne(e))}}o===Qe?await go(n,e,t):n.size=o}}else await go(n,e,t)}async function lo(n,e,t,a,o){const{useRangeHeader:i,forceRangeRequests:r,eocdCache:s,size:l,options:c}=n;if(i||r){if(s&&e==l-Oe&&t==Oe)return s;const o=await a(Ya,n,co(n,e,t));if(206!=o.status)throw new le(Ga);return new ce(await o.arrayBuffer())}{const{data:a}=n;return a||await o(n,c),new ce(n.data.subarray(e,e+t))}}function co(n,e=0,t=1){return Xn.assign({},mo(n),{[Ka]:Za+"="+(e<0?e:e+"-"+(e+t-1))})}function mo({options:n}){const{headers:e}=n;if(e)return Symbol.iterator in e?Xn.fromEntries(e):e}async function ho(n){await uo(n,wo)}async function po(n){await uo(n,bo)}async function uo(n,e){const t=await e(Ya,n,mo(n));n.data=new ce(await t.arrayBuffer()),n.size||(n.size=n.data.length)}async function go(n,e,t){if(n.preventHeadRequest)await t(n,n.options);else{const a=(await e(Ja,n,mo(n))).headers.get(Va);a?n.size=ne(a):await t(n,n.options)}}async function wo(n,{options:e,url:t},a){const o=await fetch(t,Xn.assign({},e,{method:n,headers:a}));if(o.status<400)return o;throw 416==o.status?new le(Ga):new le(Ha+(o.statusText||o.status))}function bo(n,{url:e},t){return new ue(((a,o)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",(()=>{if(i.status<400){const n=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach((e=>{const t=e.trim().split(/\s*:\s*/);t[0]=t[0].trim().replace(/^[a-z]|-[a-z]/g,(n=>n.toUpperCase())),n.push(t)})),a({status:i.status,arrayBuffer:()=>i.response,headers:new oe(n)})}else o(416==i.status?new le(Ga):new le(Ha+(i.statusText||i.status)))}),!1),i.addEventListener("error",(n=>o(n.detail?n.detail.error:new le("Network error"))),!1),i.open(n,e),t)for(const n of Xn.entries(t))i.setRequestHeader(n[0],n[1]);i.responseType="arraybuffer",i.send()}))}class fo extends no{constructor(n,e={}){super(),Xn.assign(this,{url:n,reader:e.useXHR?new io(n,e):new oo(n,e)})}set size(n){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(n,e){return this.reader.readUint8Array(n,e)}}class ko extends no{constructor(n){super(),this.readers=n}async init(){const n=this,{readers:e}=n;n.lastDiskNumber=0,n.lastDiskOffset=0,await ue.all(e.map((async(t,a)=>{await t.init(),a!=e.length-1&&(n.lastDiskOffset+=t.size),n.size+=t.size}))),super.init()}async readUint8Array(n,e,t=0){const a=this,{readers:o}=this;let i,r=t;-1==r&&(r=o.length-1);let s=n;for(;s>=o[r].size;)s-=o[r].size,r++;const l=o[r],c=l.size;if(s+e<=c)i=await xo(l,s,e);else{const o=c-s;i=new ce(e),i.set(await xo(l,s,o)),i.set(await a.readUint8Array(n+o,e-o,t),o)}return a.lastDiskNumber=te.max(r,a.lastDiskNumber),i}}class yo extends Qa{constructor(n,e=4294967295){super();const t=this;let a,o,i;Xn.assign(t,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const r=new ve({async write(e){const{availableSize:r}=t;if(i)e.length>=r?(await s(e.slice(0,r)),await l(),t.diskOffset+=a.size,t.diskNumber++,i=null,await this.write(e.slice(r))):await s(e);else{const{value:r,done:s}=await n.next();if(s&&!r)throw new le(Wa);a=r,a.size=0,a.maxSize&&(t.maxSize=a.maxSize),t.availableSize=t.maxSize,await vo(a),o=r.writable,i=o.getWriter(),await this.write(e)}},async close(){await i.ready,await l()}});async function s(n){const e=n.length;e&&(await i.ready,await i.write(n),a.size+=e,t.size+=e,t.availableSize-=e)}async function l(){o.size=a.size,await i.close()}Xn.defineProperty(t,Xa,{get:()=>r})}}async function vo(n,e){if(!n.init||n.initialized)return ue.resolve();await n.init(e)}function jo(n){return $n.isArray(n)&&(n=new ko(n)),n instanceof ye&&(n={readable:n}),n}function So(n){n.writable===Qe&&typeof n.next==et&&(n=new yo(n)),n instanceof ve&&(n={writable:n});const{writable:e}=n;return e.size===Qe&&(e.size=0),n instanceof yo||Xn.assign(n,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),n}function xo(n,e,t,a){return n.readUint8Array(e,t,a)}const Co=ko,zo=yo,Lo="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),Ao=256==Lo.length;function Io(n,e){return e&&"cp437"==e.trim().toLowerCase()?function(n){if(Ao){let e="";for(let t=0;t<n.length;t++)e+=Lo[n[t]];return e}return(new we).decode(n)}(n):new we(e).decode(n)}const To="filename",Ro="rawFilename",Eo="comment",Do="rawComment",Mo="uncompressedSize",Bo="compressedSize",No="offset",Po="diskNumberStart",Oo="lastModDate",_o="rawLastModDate",Fo="lastAccessDate",qo="rawLastAccessDate",Uo="creationDate",Ho="rawCreationDate",Go="internalFileAttribute",Wo="externalFileAttribute",Vo="msDosCompatible",Ko="zip64",Jo=[To,Ro,Bo,Mo,Oo,_o,Eo,Do,Fo,Uo,No,Po,Po,Go,Wo,Vo,Ko,"directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Yo{constructor(n){Jo.forEach((e=>this[e]=n[e]))}}const Zo="File format is not recognized",$o="End of central directory not found",Xo="End of Zip64 central directory locator not found",Qo="Central directory header not found",ni="Local file header not found",ei="Zip64 extra field not found",ti="File contains encrypted entry",ai="Encryption method not supported",oi="Compression method not supported",ii="Split zip file",ri="utf-8",si="cp437",li=[[Mo,ze],[Bo,ze],[No,ze],[Po,Le]],ci={[Le]:{getValue:yi,bytes:4},[ze]:{getValue:vi,bytes:8}};class mi{constructor(n,e={}){Xn.assign(this,{reader:jo(n),options:e,config:st()})}async*getEntriesGenerator(n={}){const e=this;let{reader:t}=e;const{config:a}=e;if(await vo(t),t.size!==Qe&&t.readUint8Array||(t=new to(await new re(t.readable).blob()),await vo(t)),t.size<Oe)throw new le(Zo);t.chunkSize=lt(a);const o=await async function(n,e,t,a,o){const i=new ce(4);!function(n,e,t){n.setUint32(e,t,!0)}(ji(i),0,e);const r=a+o;return await s(a)||await s(te.min(r,t));async function s(e){const o=t-e,r=await xo(n,o,e);for(let n=r.length-a;n>=0;n--)if(r[n]==i[0]&&r[n+1]==i[1]&&r[n+2]==i[2]&&r[n+3]==i[3])return{offset:o+n,buffer:r.slice(n,n+a).buffer}}}(t,Be,t.size,Oe,1048560);if(!o){throw yi(ji(await xo(t,0,4)))==Ee?new le(ii):new le($o)}const i=ji(o);let r=yi(i,12),s=yi(i,16);const l=o.offset,c=ki(i,20),m=l+Oe+c;let d=ki(i,4);const h=t.lastDiskNumber||0;let p=ki(i,6),u=ki(i,8),g=0,w=0;if(s==ze||r==ze||u==Le||p==Le){const n=ji(await xo(t,o.offset-20,20));if(yi(n,0)==Pe){s=vi(n,8);let e=await xo(t,s,56,-1),a=ji(e);const i=o.offset-20-56;if(yi(a,0)!=Ne&&s!=i){const n=s;s=i,g=s-n,e=await xo(t,s,56,-1),a=ji(e)}if(yi(a,0)!=Ne)throw new le(Xo);d==Le&&(d=yi(a,16)),p==Le&&(p=yi(a,20)),u==Le&&(u=vi(a,32)),r==ze&&(r=vi(a,40)),s-=r}}if(s>=t.size&&(g=t.size-s-r-Oe,s=t.size-r-Oe),h!=d)throw new le(ii);if(s<0)throw new le(Zo);let b=0,f=await xo(t,s,r,p),k=ji(f);if(r){const n=o.offset-r;if(yi(k,b)!=Me&&s!=n){const e=s;s=n,g+=s-e,f=await xo(t,s,r,p),k=ji(f)}}const y=o.offset-s-(t.lastDiskOffset||0);if(r!=y&&y>=0&&(r=y,f=await xo(t,s,r,p),k=ji(f)),s<0||s>=t.size)throw new le(Zo);const v=gi(e,n,"filenameEncoding"),j=gi(e,n,"commentEncoding");for(let o=0;o<u;o++){const i=new di(t,a,e.options);if(yi(k,b)!=Me)throw new le(Qo);hi(i,k,b+6);const r=Boolean(i.bitFlag.languageEncodingFlag),s=b+46,l=s+i.filenameLength,c=l+i.extraFieldLength,m=ki(k,b+4),d=!0,h=f.subarray(s,l),p=ki(k,b+32),y=c+p,S=f.subarray(c,y),x=r,C=r,z=d&&!(16&~fi(k,b+38)),L=yi(k,b+42)+g;Xn.assign(i,{versionMadeBy:m,msDosCompatible:d,compressedSize:0,uncompressedSize:0,commentLength:p,directory:z,offset:L,diskNumberStart:ki(k,b+34),internalFileAttribute:ki(k,b+36),externalFileAttribute:yi(k,b+38),rawFilename:h,filenameUTF8:x,commentUTF8:C,rawExtraField:f.subarray(l,c)});const A=gi(e,n,"decodeText")||Io,I=x?ri:v||si,T=C?ri:j||si;let R=A(h,I);R===Qe&&(R=Io(h,I));let E=A(S,T);E===Qe&&(E=Io(S,T)),Xn.assign(i,{rawComment:S,filename:R,comment:E,directory:z||R.endsWith(Ze)}),w=te.max(L,w),await pi(i,i,k,b+6);const D=new Yo(i);D.getData=(n,e)=>i.getData(n,D,e),b=y;const{onprogress:M}=n;if(M)try{await M(o+1,u,new Yo(i))}catch(n){}yield D}const S=gi(e,n,"extractPrependedData"),x=gi(e,n,"extractAppendedData");return S&&(e.prependedData=w>0?await xo(t,0,w):new ce),e.comment=c?await xo(t,l+Oe,c):new ce,x&&(e.appendedData=m<t.size?await xo(t,m,t.size-m):new ce),!0}async getEntries(n={}){const e=[];for await(const t of this.getEntriesGenerator(n))e.push(t);return e}async close(){}}class di{constructor(n,e,t){Xn.assign(this,{reader:n,config:e,options:t})}async getData(n,e,t={}){const a=this,{reader:o,offset:i,diskNumberStart:r,extraFieldAES:s,compressionMethod:l,config:c,bitFlag:m,signature:d,rawLastModDate:h,uncompressedSize:p,compressedSize:u}=a,g=e.localDirectory={},w=ji(await xo(o,i,30,r));let b=gi(a,t,"password"),f=gi(a,t,"rawPassword");if(b=b&&b.length&&b,f=f&&f.length&&f,s&&s.originalCompressionMethod!=Te)throw new le(oi);if(l!=Ie&&l!=Ae)throw new le(oi);if(yi(w,0)!=Re)throw new le(ni);hi(g,w,4),g.rawExtraField=g.extraFieldLength?await xo(o,i+30+g.filenameLength,g.extraFieldLength,r):new ce,await pi(a,g,w,4,!0),Xn.assign(e,{lastAccessDate:g.lastAccessDate,creationDate:g.creationDate});const k=a.encrypted&&g.encrypted,y=k&&!s;if(k){if(!y&&s.strength===Qe)throw new le(ai);if(!b&&!f)throw new le(ti)}const v=i+30+g.filenameLength+g.extraFieldLength,j=u,S=o.readable;Xn.assign(S,{diskNumberStart:r,offset:v,size:j});const x=gi(a,t,"signal"),C=gi(a,t,"checkPasswordOnly");C&&(n=new ve),n=So(n),await vo(n,p);const{writable:z}=n,{onstart:L,onprogress:A,onend:I}=t,T={options:{codecType:za,password:b,rawPassword:f,zipCrypto:y,encryptionStrength:s&&s.strength,signed:gi(a,t,"checkSignature"),passwordVerification:y&&(m.dataDescriptor?h>>>8&255:d>>>24&255),signature:d,compressed:0!=l,encrypted:k,useWebWorkers:gi(a,t,"useWebWorkers"),useCompressionStream:gi(a,t,"useCompressionStream"),transferStreams:gi(a,t,"transferStreams"),checkPasswordOnly:C},config:c,streamOptions:{signal:x,size:j,onstart:L,onprogress:A,onend:I}};let R=0;try{({outputSize:R}=await qa({readable:S,writable:z},T))}catch(n){if(!C||n.message!=zt)throw n}finally{const n=gi(a,t,"preventClose");z.size+=R,n||z.locked||await z.getWriter().close()}return C?Qe:n.getData?n.getData():z}}function hi(n,e,t){const a=n.rawBitFlag=ki(e,t+2),o=(a&We)==We,i=yi(e,t+6);Xn.assign(n,{encrypted:o,version:ki(e,t),bitFlag:{level:(6&a)>>1,dataDescriptor:(a&Ve)==Ve,languageEncodingFlag:(a&Ke)==Ke},rawLastModDate:i,lastModDate:wi(i),filenameLength:ki(e,t+22),extraFieldLength:ki(e,t+24)})}async function pi(n,e,t,a,o){const{rawExtraField:i}=e,r=e.extraField=new oe,s=ji(new ce(i));let l=0;try{for(;l<i.length;){const n=ki(s,l),e=ki(s,l+2);r.set(n,{type:n,data:i.slice(l+4,l+4+e)}),l+=4+e}}catch(n){}const c=ki(t,a+4);Xn.assign(e,{signature:yi(t,a+10),uncompressedSize:yi(t,a+18),compressedSize:yi(t,a+14)});const m=r.get(_e);m&&(!function(n,e){e.zip64=!0;const t=ji(n.data),a=li.filter((([n,t])=>e[n]==t));for(let o=0,i=0;o<a.length;o++){const[r,s]=a[o];if(e[r]==s){const a=ci[s];e[r]=n[r]=a.getValue(t,i),i+=a.bytes}else if(n[r])throw new le(ei)}}(m,e),e.extraFieldZip64=m);const d=r.get(28789);d&&(await ui(d,To,Ro,e,n),e.extraFieldUnicodePath=d);const h=r.get(25461);h&&(await ui(h,Eo,Do,e,n),e.extraFieldUnicodeComment=h);const p=r.get(Fe);p?(!function(n,e,t){const a=ji(n.data),o=fi(a,4);Xn.assign(n,{vendorVersion:fi(a,0),vendorId:fi(a,2),strength:o,originalCompressionMethod:t,compressionMethod:ki(a,5)}),e.compressionMethod=n.compressionMethod}(p,e,c),e.extraFieldAES=p):e.compressionMethod=c;const u=r.get(qe);u&&(!function(n,e){const t=ji(n.data);let a,o=4;try{for(;o<n.data.length&&!a;){const e=ki(t,o),i=ki(t,o+2);e==Ue&&(a=n.data.slice(o+4,o+4+i)),o+=4+i}}catch(n){}try{if(a&&24==a.length){const t=ji(a),o=t.getBigUint64(0,!0),i=t.getBigUint64(8,!0),r=t.getBigUint64(16,!0);Xn.assign(n,{rawLastModDate:o,rawLastAccessDate:i,rawCreationDate:r});const s=bi(o),l=bi(i),c={lastModDate:s,lastAccessDate:l,creationDate:bi(r)};Xn.assign(n,c),Xn.assign(e,c)}}catch(n){}}(u,e),e.extraFieldNTFS=u);const g=r.get(He);g&&(!function(n,e,t){const a=ji(n.data),o=fi(a,0),i=[],r=[];t?(1&~o||(i.push(Oo),r.push(_o)),2&~o||(i.push(Fo),r.push(qo)),4&~o||(i.push(Uo),r.push(Ho))):n.data.length>=5&&(i.push(Oo),r.push(_o));let s=1;i.forEach(((t,o)=>{if(n.data.length>=s+4){const i=yi(a,s);e[t]=n[t]=new ae(1e3*i);const l=r[o];n[l]=i}s+=4}))}(g,e,o),e.extraFieldExtendedTimestamp=g);const w=r.get(Ge);w&&(e.extraFieldUSDZ=w)}async function ui(n,e,t,a,o){const i=ji(n.data),r=new pt;r.append(o[t]);const s=ji(new ce(4));s.setUint32(0,r.get(),!0);const l=yi(i,1);Xn.assign(n,{version:fi(i,0),[e]:Io(n.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&l==yi(s,0)}),n.valid&&(a[e]=n[e],a[e+"UTF8"]=!0)}function gi(n,e,t){return e[t]===Qe?n.options[t]:e[t]}function wi(n){const e=(4294901760&n)>>16,t=65535&n;try{return new ae(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&t)>>11,(2016&t)>>5,2*(31&t),0)}catch(n){}}function bi(n){return new ae(ne(n/ee(1e4)-ee(116444736e5)))}function fi(n,e){return n.getUint8(e)}function ki(n,e){return n.getUint16(e,!0)}function yi(n,e){return n.getUint32(e,!0)}function vi(n,e){return ne(n.getBigUint64(e,!0))}function ji(n){return new he(n.buffer)}const Si="File already exists",xi="Zip file comment exceeds 64KB",Ci="File entry comment exceeds 64KB",zi="File entry name exceeds 64KB",Li="Version exceeds 65535",Ai="The strength must equal 1, 2, or 3",Ii="Extra field type exceeds 65535",Ti="Extra field data exceeds 64KB",Ri="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Ei=new ce([7,0,2,0,65,69,3,0,0]);let Di=0;const Mi=[];class Bi{constructor(n,e={}){const t=(n=So(n)).availableSize!==Qe&&n.availableSize>0&&n.availableSize!==1/0&&n.maxSize!==Qe&&n.maxSize>0&&n.maxSize!==1/0;Xn.assign(this,{writer:n,addSplitZipSignature:t,options:e,config:st(),files:new oe,filenames:new ie,offset:n.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new ie,bufferedWrites:0})}async add(n="",e,t={}){const a=this,{pendingAddFileCalls:o,config:i}=a;let r;Di<i.maxWorkers?Di++:await new ue((n=>Mi.push(n)));try{if(n=n.trim(),a.filenames.has(n))throw new le(Si);return a.filenames.add(n),r=async function(n,e,t,a){e=e.trim(),a.directory&&!e.endsWith(Ze)?e+=Ze:a.directory=e.endsWith(Ze);const o=Oi(n,a,"encodeText",gt);let i=o(e);i===Qe&&(i=gt(e));if(Wi(i)>Le)throw new le(zi);const r=a.comment||"";let s=o(r);s===Qe&&(s=gt(r));if(Wi(s)>Le)throw new le(Ci);const l=Oi(n,a,"version",20);if(l>Le)throw new le(Li);const c=Oi(n,a,"versionMadeBy",20);if(c>Le)throw new le(Li);const m=Oi(n,a,Oo,new ae),d=Oi(n,a,Fo),h=Oi(n,a,Uo),p=Oi(n,a,Vo,!0),u=Oi(n,a,Go,0),g=Oi(n,a,Wo,0),w=Oi(n,a,"password"),b=Oi(n,a,"rawPassword"),f=Oi(n,a,"encryptionStrength",3),k=Oi(n,a,"zipCrypto"),y=Oi(n,a,"extendedTimestamp",!0),v=Oi(n,a,"keepOrder",!0),j=Oi(n,a,"level"),S=Oi(n,a,"useWebWorkers"),x=Oi(n,a,"bufferedWrite"),C=Oi(n,a,"dataDescriptorSignature",!1),z=Oi(n,a,"signal"),L=Oi(n,a,"useCompressionStream");let A=Oi(n,a,"dataDescriptor",!0),I=Oi(n,a,Ko);if(w!==Qe&&f!==Qe&&(f<1||f>3))throw new le(Ai);let T=new ce;const{extraField:R}=a;if(R){let n=0,e=0;R.forEach((e=>n+=4+Wi(e))),T=new ce(n),R.forEach(((n,t)=>{if(t>Le)throw new le(Ii);if(Wi(n)>Le)throw new le(Ti);Hi(T,new me([t]),e),Hi(T,new me([Wi(n)]),e+2),Hi(T,n,e+4),e+=4+Wi(n)}))}let E=0,D=0,M=0;const B=!0===I;t&&(t=jo(t),await vo(t),t.size===Qe?(A=!0,(I||I===Qe)&&(I=!0,M=E=ze+1)):(M=t.size,E=function(n){return n+5*(te.floor(n/16383)+1)}(M)));const{diskOffset:N,diskNumber:P,maxSize:O}=n.writer,_=B||M>ze,F=B||E>ze,q=B||n.offset+n.pendingEntriesSize-N>ze,U=Oi(n,a,"supportZip64SplitFile",!0),H=U&&B||P+te.ceil(n.pendingEntriesSize/O)>Le;if(q||_||F||H){if(!1===I||!v)throw new le(Ri);I=!0}I=I||!1,a=Xn.assign({},a,{rawFilename:i,rawComment:s,version:l,versionMadeBy:c,lastModDate:m,lastAccessDate:d,creationDate:h,rawExtraField:T,zip64:I,zip64UncompressedSize:_,zip64CompressedSize:F,zip64Offset:q,zip64DiskNumberStart:H,password:w,rawPassword:b,level:L||n.config.CompressionStream!==Qe||n.config.CompressionStreamNative!==Qe?j:0,useWebWorkers:S,encryptionStrength:f,extendedTimestamp:y,zipCrypto:k,bufferedWrite:x,keepOrder:v,dataDescriptor:A,dataDescriptorSignature:C,signal:z,msDosCompatible:p,internalFileAttribute:u,externalFileAttribute:g,useCompressionStream:L});const G=function(n){const{rawFilename:e,lastModDate:t,lastAccessDate:a,creationDate:o,rawPassword:i,password:r,level:s,zip64:l,zipCrypto:c,dataDescriptor:m,directory:d,rawExtraField:h,encryptionStrength:p,extendedTimestamp:u}=n,g=0!==s&&!d,w=Boolean(r&&Wi(r)||i&&Wi(i));let b,f,k,y,v=n.version;if(w&&!c){b=new ce(Wi(Ei)+2);const n=Gi(b);Fi(n,0,Fe),Hi(b,Ei,2),_i(n,8,p)}else b=new ce;if(u){k=new ce(9+(a?4:0)+(o?4:0));const n=Gi(k);Fi(n,0,He),Fi(n,2,Wi(k)-4),y=1+(a?2:0)+(o?4:0),_i(n,4,y);let e=5;qi(n,e,te.floor(t.getTime()/1e3)),e+=4,a&&(qi(n,e,te.floor(a.getTime()/1e3)),e+=4),o&&qi(n,e,te.floor(o.getTime()/1e3));try{f=new ce(36);const n=Gi(f),e=Pi(t);Fi(n,0,qe),Fi(n,2,32),Fi(n,8,Ue),Fi(n,10,24),Ui(n,12,e),Ui(n,20,Pi(a)||e),Ui(n,28,Pi(o)||e)}catch(n){f=new ce}}else f=k=new ce;let j=Ke;m&&(j|=Ve);let S=Ie;g&&(S=Ae);l&&(v=v>Je?v:Je);w&&(j|=We,c||(v=v>Ye?v:Ye,S=Te,g&&(b[9]=Ae)));const x=new ce(26),C=Gi(x);Fi(C,0,v),Fi(C,2,j),Fi(C,4,S);const z=new de(1),L=Gi(z);let A;A=t<Xe?Xe:t>$e?$e:t;Fi(L,0,(A.getHours()<<6|A.getMinutes())<<5|A.getSeconds()/2),Fi(L,2,(A.getFullYear()-1980<<4|A.getMonth()+1)<<5|A.getDate());const I=z[0];qi(C,6,I),Fi(C,22,Wi(e));const T=Wi(b,k,f,h);Fi(C,24,T);const R=new ce(30+Wi(e)+T);return qi(Gi(R),0,Re),Hi(R,x,4),Hi(R,e,30),Hi(R,b,30+Wi(e)),Hi(R,k,30+Wi(e,b)),Hi(R,f,30+Wi(e,b,k)),Hi(R,h,30+Wi(e,b,k,f)),{localHeaderArray:R,headerArray:x,headerView:C,lastModDate:t,rawLastModDate:I,encrypted:w,compressed:g,version:v,compressionMethod:S,extraFieldExtendedTimestampFlag:y,rawExtraFieldExtendedTimestamp:k,rawExtraFieldNTFS:f,rawExtraFieldAES:b,extraFieldLength:T}}(a),W=function(n){const{zip64:e,dataDescriptor:t,dataDescriptorSignature:a}=n;let o,i=new ce,r=0;t&&(i=new ce(e?a?24:20:a?16:12),o=Gi(i),a&&(r=4,qi(o,0,De)));return{dataDescriptorArray:i,dataDescriptorView:o,dataDescriptorOffset:r}}(a),V=Wi(G.localHeaderArray,W.dataDescriptorArray);D=V+E,n.options.usdz&&(D+=D+64);let K;n.pendingEntriesSize+=D;try{K=await async function(n,e,t,a,o){const{files:i,writer:r}=n,{keepOrder:s,dataDescriptor:l,signal:c}=o,{headerInfo:m}=a,{usdz:d}=n.options,h=$n.from(i.values()).pop();let p,u,g,w,b,f,k,y={};i.set(e,y);try{let m;s&&(m=h&&h.lock,v()),!(o.bufferedWrite||n.writerLocked||n.bufferedWrites&&s)&&l||d?(f=r,await j()):(f=new ke,k=new re(f.readable).blob(),f.writable.size=0,p=!0,n.bufferedWrites++,await vo(r)),await vo(f);const{writable:u}=r;let{diskOffset:g}=r;if(n.addSplitZipSignature){delete n.addSplitZipSignature;const e=new ce(4);qi(Gi(e),0,Ee),await Ni(u,e),n.offset+=4}d&&function(n,e){const{headerInfo:t}=n;let{localHeaderArray:a,extraFieldLength:o}=t,i=Gi(a),r=64-(e+Wi(a))%64;r<4&&(r+=64);const s=new ce(r),l=Gi(s);Fi(l,0,Ge),Fi(l,2,r-2);const c=a;t.localHeaderArray=a=new ce(Wi(c)+r),Hi(a,c),Hi(a,s,Wi(c)),i=Gi(a),Fi(i,28,o+r),n.metadataSize+=r}(a,n.offset-g),p||(await m,await S(u));const{diskNumber:x}=r;if(b=!0,y.diskNumberStart=x,y=await async function(n,e,{diskNumberStart:t,lock:a},o,i,r){const{headerInfo:s,dataDescriptorInfo:l,metadataSize:c}=o,{localHeaderArray:m,headerArray:d,lastModDate:h,rawLastModDate:p,encrypted:u,compressed:g,version:w,compressionMethod:b,rawExtraFieldExtendedTimestamp:f,extraFieldExtendedTimestampFlag:k,rawExtraFieldNTFS:y,rawExtraFieldAES:v}=s,{dataDescriptorArray:j}=l,{rawFilename:S,lastAccessDate:x,creationDate:C,password:z,rawPassword:L,level:A,zip64:I,zip64UncompressedSize:T,zip64CompressedSize:R,zip64Offset:E,zip64DiskNumberStart:D,zipCrypto:M,dataDescriptor:B,directory:N,versionMadeBy:P,rawComment:O,rawExtraField:_,useWebWorkers:F,onstart:q,onprogress:U,onend:H,signal:G,encryptionStrength:W,extendedTimestamp:V,msDosCompatible:K,internalFileAttribute:J,externalFileAttribute:Y,useCompressionStream:Z}=r,$={lock:a,versionMadeBy:P,zip64:I,directory:Boolean(N),filenameUTF8:!0,rawFilename:S,commentUTF8:!0,rawComment:O,rawExtraFieldExtendedTimestamp:f,rawExtraFieldNTFS:y,rawExtraFieldAES:v,rawExtraField:_,extendedTimestamp:V,msDosCompatible:K,internalFileAttribute:J,externalFileAttribute:Y,diskNumberStart:t};let X,Q=0,nn=0;const{writable:en}=e;if(n){n.chunkSize=lt(i),await Ni(en,m);const e=n.readable,t=e.size=n.size,a={options:{codecType:Ca,level:A,rawPassword:L,password:z,encryptionStrength:W,zipCrypto:u&&M,passwordVerification:u&&M&&p>>8&255,signed:!0,compressed:g,encrypted:u,useWebWorkers:F,useCompressionStream:Z,transferStreams:!1},config:i,streamOptions:{signal:G,size:t,onstart:q,onprogress:U,onend:H}},o=await qa({readable:e,writable:en},a);nn=o.inputSize,Q=o.outputSize,X=o.signature,en.size+=nn}else await Ni(en,m);let tn;if(I){let n=4;T&&(n+=8),R&&(n+=8),E&&(n+=8),D&&(n+=4),tn=new ce(n)}else tn=new ce;(function(n,e){const{signature:t,rawExtraFieldZip64:a,compressedSize:o,uncompressedSize:i,headerInfo:r,dataDescriptorInfo:s}=n,{headerView:l,encrypted:c}=r,{dataDescriptorView:m,dataDescriptorOffset:d}=s,{zip64:h,zip64UncompressedSize:p,zip64CompressedSize:u,zipCrypto:g,dataDescriptor:w}=e;c&&!g||t===Qe||(qi(l,10,t),w&&qi(m,d,t));if(h){const n=Gi(a);Fi(n,0,_e),Fi(n,2,Wi(a)-4);let e=4;p&&(qi(l,18,ze),Ui(n,e,ee(i)),e+=8),u&&(qi(l,14,ze),Ui(n,e,ee(o))),w&&(Ui(m,d+4,ee(o)),Ui(m,d+12,ee(i)))}else qi(l,14,o),qi(l,18,i),w&&(qi(m,d+4,o),qi(m,d+8,i))})({signature:X,rawExtraFieldZip64:tn,compressedSize:Q,uncompressedSize:nn,headerInfo:s,dataDescriptorInfo:l},r),B&&await Ni(en,j);return Xn.assign($,{uncompressedSize:nn,compressedSize:Q,lastModDate:h,rawLastModDate:p,creationDate:C,lastAccessDate:x,encrypted:u,size:c+Q,compressionMethod:b,version:w,headerArray:d,signature:X,rawExtraFieldZip64:tn,extraFieldExtendedTimestampFlag:k,zip64UncompressedSize:T,zip64CompressedSize:R,zip64Offset:E,zip64DiskNumberStart:D}),$}(t,f,y,a,n.config,o),b=!1,i.set(e,y),y.filename=e,p){await f.writable.getWriter().close();let n=await k;await m,await j(),w=!0,l||(n=await async function(n,e,t,{zipCrypto:a}){let o;o=await e.slice(0,26).arrayBuffer(),26!=o.byteLength&&(o=o.slice(0,26));const i=new he(o);n.encrypted&&!a||qi(i,14,n.signature);n.zip64?(qi(i,18,ze),qi(i,22,ze)):(qi(i,18,n.compressedSize),qi(i,22,n.uncompressedSize));return await Ni(t,new ce(o)),e.slice(o.byteLength)}(y,n,u,o)),await S(u),y.diskNumberStart=r.diskNumber,g=r.diskOffset,await n.stream().pipeTo(u,{preventClose:!0,preventAbort:!0,signal:c}),u.size+=n.size,w=!1}if(y.offset=n.offset-g,y.zip64)!function(n,e){const{rawExtraFieldZip64:t,offset:a,diskNumberStart:o}=n,{zip64UncompressedSize:i,zip64CompressedSize:r,zip64Offset:s,zip64DiskNumberStart:l}=e,c=Gi(t);let m=4;i&&(m+=8);r&&(m+=8);s&&(Ui(c,m,ee(a)),m+=8);l&&qi(c,m,o)}(y,o);else if(y.offset>ze)throw new le(Ri);return n.offset+=y.size,y}catch(t){if(p&&w||!p&&b){if(n.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch(n){}p?n.offset+=f.writable.size:n.offset=f.writable.size}throw i.delete(e),t}finally{p&&n.bufferedWrites--,g&&g(),u&&u()}function v(){y.lock=new ue((n=>g=n))}async function j(){n.writerLocked=!0;const{lockWriter:e}=n;n.lockWriter=new ue((e=>u=()=>{n.writerLocked=!1,e()})),await e}async function S(n){Wi(m.localHeaderArray)>r.availableSize&&(r.availableSize=0,await Ni(n,new ce))}}(n,e,t,{headerInfo:G,dataDescriptorInfo:W,metadataSize:V},a)}finally{n.pendingEntriesSize-=D}return Xn.assign(K,{name:e,comment:r,extraField:R}),new Yo(K)}(a,n,e,t),o.add(r),await r}catch(e){throw a.filenames.delete(n),e}finally{o.delete(r);const n=Mi.shift();n?n():Di--}}async close(n=new ce,e={}){const{pendingAddFileCalls:t,writer:a}=this,{writable:o}=a;for(;t.size;)await ue.allSettled($n.from(t));await async function(n,e,t){const{files:a,writer:o}=n,{diskOffset:i,writable:r}=o;let{diskNumber:s}=o,l=0,c=0,m=n.offset-i,d=a.size;for(const[,n]of a){const{rawFilename:e,rawExtraFieldZip64:t,rawExtraFieldAES:a,rawComment:o,rawExtraFieldNTFS:i,rawExtraField:r,extendedTimestamp:s,extraFieldExtendedTimestampFlag:l,lastModDate:m}=n;let d;if(s){d=new ce(9);const n=Gi(d);Fi(n,0,He),Fi(n,2,5),_i(n,4,l),qi(n,5,te.floor(m.getTime()/1e3))}else d=new ce;n.rawExtraFieldCDExtendedTimestamp=d,c+=46+Wi(e,o,t,a,i,d,r)}const h=new ce(c),p=Gi(h);await vo(o);let u=0;for(const[n,e]of $n.from(a.values()).entries()){const{offset:i,rawFilename:s,rawExtraFieldZip64:c,rawExtraFieldAES:m,rawExtraFieldCDExtendedTimestamp:d,rawExtraFieldNTFS:g,rawExtraField:w,rawComment:b,versionMadeBy:f,headerArray:k,directory:y,zip64:v,zip64UncompressedSize:j,zip64CompressedSize:S,zip64DiskNumberStart:x,zip64Offset:C,msDosCompatible:z,internalFileAttribute:L,externalFileAttribute:A,diskNumberStart:I,uncompressedSize:T,compressedSize:R}=e,E=Wi(c,m,d,g,w);qi(p,l,Me),Fi(p,l+4,f);const D=Gi(k);j||qi(D,18,T),S||qi(D,14,R),Hi(h,k,l+6),Fi(p,l+30,E),Fi(p,l+32,Wi(b)),Fi(p,l+34,v&&x?Le:I),Fi(p,l+36,L),A?qi(p,l+38,A):y&&z&&_i(p,l+38,16),qi(p,l+42,v&&C?ze:i),Hi(h,s,l+46),Hi(h,c,l+46+Wi(s)),Hi(h,m,l+46+Wi(s,c)),Hi(h,d,l+46+Wi(s,c,m)),Hi(h,g,l+46+Wi(s,c,m,d)),Hi(h,w,l+46+Wi(s,c,m,d,g)),Hi(h,b,l+46+Wi(s)+E);const M=46+Wi(s,b)+E;if(l-u>o.availableSize&&(o.availableSize=0,await Ni(r,h.slice(u,l)),u=l),l+=M,t.onprogress)try{await t.onprogress(n+1,a.size,new Yo(e))}catch(n){}}await Ni(r,u?h.slice(u):h);let g=o.diskNumber;const{availableSize:w}=o;w<Oe&&g++;let b=Oi(n,t,"zip64");if(m>ze||c>ze||d>Le||g>Le){if(!1===b)throw new le(Ri);b=!0}const f=new ce(b?98:Oe),k=Gi(f);if(l=0,b){qi(k,0,Ne),Ui(k,4,ee(44)),Fi(k,12,45),Fi(k,14,45),qi(k,16,g),qi(k,20,s),Ui(k,24,ee(d)),Ui(k,32,ee(d)),Ui(k,40,ee(c)),Ui(k,48,ee(m)),qi(k,56,Pe),Ui(k,64,ee(m)+ee(c)),qi(k,72,g+1);Oi(n,t,"supportZip64SplitFile",!0)&&(g=Le,s=Le),d=Le,m=ze,c=ze,l+=76}qi(k,l,Be),Fi(k,l+4,g),Fi(k,l+6,s),Fi(k,l+8,d),Fi(k,l+10,d),qi(k,l+12,c),qi(k,l+16,m);const y=Wi(e);if(y){if(!(y<=Le))throw new le(xi);Fi(k,l+20,y)}await Ni(r,f),y&&await Ni(r,e)}(this,n,e);return Oi(this,e,"preventClose")||await o.getWriter().close(),a.getData?a.getData():o}}async function Ni(n,e){const t=n.getWriter();try{await t.ready,n.size+=Wi(e),await t.write(e)}finally{t.releaseLock()}}function Pi(n){if(n)return(ee(n.getTime())+ee(116444736e5))*ee(1e4)}function Oi(n,e,t,a){const o=e[t]===Qe?n.options[t]:e[t];return o===Qe?a:o}function _i(n,e,t){n.setUint8(e,t)}function Fi(n,e,t){n.setUint16(e,t,!0)}function qi(n,e,t){n.setUint32(e,t,!0)}function Ui(n,e,t){n.setBigUint64(e,t,!0)}function Hi(n,e,t){n.set(e,t)}function Gi(n){return new he(n.buffer)}function Wi(...n){let e=0;return n.forEach((n=>n&&(e+=n.length))),e}let Vi;try{Vi="undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("single-file-extension-editor-helper.js",document.baseURI).href}catch(n){}ct({baseURL:Vi}),function(n){const e=()=>se.createObjectURL(new pe(['const{Array:e,Object:t,Number:n,Math:s,Error:r,Uint8Array:a,Uint16Array:i,Uint32Array:o,Int32Array:l,Map:c,DataView:h,Promise:f,TextEncoder:u,crypto:p,postMessage:d,TransformStream:g,ReadableStream:w,WritableStream:y,CompressionStream:v,DecompressionStream:b}=self,m=void 0,_="undefined",S="function";class k{constructor(e){return class extends g{constructor(t,n){const s=new e(n);super({transform(e,t){t.enqueue(s.append(e))},flush(e){const t=s.flush();t&&e.enqueue(t)}})}}}}const z=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;z[e]=t}class D{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,s=0|e.length;s>n;n++)t=t>>>8^z[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class C extends g{constructor(){let e;const t=new D;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new a(4);new h(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const x={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],s=x.getPartial(n);return 32===s?e.concat(t):x._shiftRight(t,s,0|n,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+x.getPartial(n)},clamp(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,s.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=x.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>s.round(e/1099511627776)||32,_shiftRight(e,t,n,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(n),n=0;if(0===t)return s.concat(e);for(let r=0;r<e.length;r++)s.push(n|e[r]>>>t),n=e[r]<<32-t;const r=e.length?e[e.length-1]:0,a=x.getPartial(r);return s.push(x.partial(t+a&31,t+a>32?n:s.pop(),1)),s}},I={bytes:{fromBits(e){const t=x.bitLength(e)/8,n=new a(t);let s;for(let r=0;t>r;r++)3&r||(s=e[r/4]),n[r]=s>>>24,s<<=8;return n},toBits(e){const t=[];let n,s=0;for(n=0;n<e.length;n++)s=s<<8|e[n],3&~n||(t.push(s),s=0);return 3&n&&t.push(x.partial(8*(3&n),s)),t}}},T=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=I.utf8String.toBits(e));const n=t._buffer=x.concat(t._buffer,e),s=t._length,a=t._length=s+x.bitLength(e);if(a>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const i=new o(n);let l=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);a>=e;e+=t.blockSize)t._block(i.subarray(16*l,16*(l+1))),l+=1;return n.splice(0,16*l),t}finalize(){const e=this;let t=e._buffer;const n=e._h;t=x.concat(t,[x.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(s.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,s){return e>19?e>39?e>59?e>79?void 0:t^n^s:t&n|t&s|n&s:t^n^s:t&n|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(t){const n=this,r=n._h,a=e(80);for(let e=0;16>e;e++)a[e]=t[e];let i=r[0],o=r[1],l=r[2],c=r[3],h=r[4];for(let e=0;79>=e;e++){16>e||(a[e]=n._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=n._S(5,i)+n._f(e,o,l,c)+h+a[e]+n._key[s.floor(e/20)]|0;h=c,c=l,l=n._S(30,o),o=i,i=t}r[0]=r[0]+i|0,r[1]=r[1]+o|0,r[2]=r[2]+l|0,r[3]=r[3]+c|0,r[4]=r[4]+h|0}},A={getRandomValues(e){const t=new o(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(s.random()>.5?1:-1))};for(let r,a=0;a<e.length;a+=4){const e=n(4294967296*(r||s.random()));r=987654071*e(),t[a/4]=4294967296*e()|0}return e}},q={importKey:e=>new q.hmacSha1(I.bytes.toBits(e)),pbkdf2(e,t,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const a=1+(s>>5)<<2;let i,o,l,c,f;const u=new ArrayBuffer(a),p=new h(u);let d=0;const g=x;for(t=I.bytes.toBits(t),f=1;(a||1)>d;f++){for(i=o=e.encrypt(g.concat(t,[f])),l=1;n>l;l++)for(o=e.encrypt(o),c=0;c<o.length;c++)i[c]^=o[c];for(l=0;(a||1)>d&&l<i.length;l++)p.setInt32(d,i[l]),d+=4}return u.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,n=t._hash=T,s=[[],[]];t._baseHash=[new n,new n];const r=t._baseHash[0].blockSize/32;e.length>r&&(e=(new n).update(e).finalize());for(let t=0;r>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new r("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof p!=_&&typeof p.getRandomValues==S,H="Invalid password",P="Invalid signature",B="zipjs-abort-check-password";function K(e){return R?p.getRandomValues(e):A.getRandomValues(e)}const V=16,E={name:"PBKDF2"},U=t.assign({hash:{name:"HMAC"}},E),W=t.assign({iterations:1e3,hash:{name:"SHA-1"}},E),M=["deriveBits"],N=[8,12,16],O=[16,24,32],F=10,L=[0,0,0,0],j=typeof p!=_,G=j&&p.subtle,X=j&&typeof G!=_,J=I.bytes,Q=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],s=t._tables[1],a=e.length;let i,o,l,c=1;if(4!==a&&6!==a&&8!==a)throw new r("invalid aes key size");for(t._key=[o=e.slice(0),l=[]],i=a;4*a+28>i;i++){let e=o[i-1];(i%a==0||8===a&&i%a==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],i%a==0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),o[i]=o[i-a]^e}for(let e=0;i;e++,i--){const t=o[3&e?i:i-4];l[e]=4>=i||4>e?t:s[0][n[t>>>24]]^s[1][n[t>>16&255]]^s[2][n[t>>8&255]]^s[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],s=t[4],r=[],a=[];let i,o,l,c;for(let e=0;256>e;e++)a[(r[e]=e<<1^283*(e>>7))^e]=e;for(let h=i=0;!n[h];h^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[h]=a,s[a]=h,c=r[l=r[o=r[h]]];let f=16843009*c^65537*l^257*o^16843008*h,u=257*r[a]^16843008*a;for(let n=0;4>n;n++)e[n][h]=u=u<<24^u>>>8,t[n][a]=f=f<<24^f>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new r("invalid aes block size");const n=this._key[t],s=n.length/4-2,a=[0,0,0,0],i=this._tables[t],o=i[0],l=i[1],c=i[2],h=i[3],f=i[4];let u,p,d,g=e[0]^n[0],w=e[t?3:1]^n[1],y=e[2]^n[2],v=e[t?1:3]^n[3],b=4;for(let e=0;s>e;e++)u=o[g>>>24]^l[w>>16&255]^c[y>>8&255]^h[255&v]^n[b],p=o[w>>>24]^l[y>>16&255]^c[v>>8&255]^h[255&g]^n[b+1],d=o[y>>>24]^l[v>>16&255]^c[g>>8&255]^h[255&w]^n[b+2],v=o[v>>>24]^l[g>>16&255]^c[w>>8&255]^h[255&y]^n[b+3],b+=4,g=u,w=p,y=d;for(let e=0;4>e;e++)a[t?3&-e:e]=f[g>>>24]<<24^f[w>>16&255]<<16^f[y>>8&255]<<8^f[255&v]^n[b++],u=g,g=w,w=y,y=v,v=u;return a}},Y=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,s=255&e;255===t?(t=0,255===n?(n=0,255===s?s=0:++s):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let s;if(!(s=t.length))return[];const r=x.bitLength(t);for(let r=0;s>r;r+=4){this.incCounter(n);const s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return x.clamp(t,r)}},Z=q.hmacSha1;let $=j&&X&&typeof G.importKey==S,ee=j&&X&&typeof G.deriveBits==S;class te extends g{constructor({password:e,rawPassword:n,signed:s,encryptionStrength:i,checkPasswordOnly:o}){super({start(){t.assign(this,{ready:new f((e=>this.resolveReady=e)),password:ae(e,n),signed:s,strength:i-1,pending:new a})},async transform(e,t){const n=this,{password:s,strength:i,resolveReady:l,ready:c}=n;s?(await(async(e,t,n,s)=>{const a=await re(e,t,n,oe(s,0,N[t])),i=oe(s,N[t]);if(a[0]!=i[0]||a[1]!=i[1])throw new r(H)})(n,i,s,oe(e,0,N[i]+2)),e=oe(e,N[i]+2),o?t.error(new r(B)):l()):await c;const h=new a(e.length-F-(e.length-F)%V);t.enqueue(se(n,e,h,0,F,!0))},async flush(e){const{signed:t,ctr:n,hmac:s,pending:i,ready:o}=this;if(s&&n){await o;const l=oe(i,0,i.length-F),c=oe(i,i.length-F);let h=new a;if(l.length){const e=ce(J,l);s.update(e);const t=n.update(e);h=le(J,t)}if(t){const e=oe(le(J,s.digest()),0,F);for(let t=0;F>t;t++)if(e[t]!=c[t])throw new r(P)}e.enqueue(h)}}})}}class ne extends g{constructor({password:e,rawPassword:n,encryptionStrength:s}){let r;super({start(){t.assign(this,{ready:new f((e=>this.resolveReady=e)),password:ae(e,n),strength:s-1,pending:new a})},async transform(e,t){const n=this,{password:s,strength:r,resolveReady:i,ready:o}=n;let l=new a;s?(l=await(async(e,t,n)=>{const s=K(new a(N[t]));return ie(s,await re(e,t,n,s))})(n,r,s),i()):await o;const c=new a(l.length+e.length-e.length%V);c.set(l,0),t.enqueue(se(n,e,c,l.length,0))},async flush(e){const{ctr:t,hmac:n,pending:s,ready:i}=this;if(n&&t){await i;let o=new a;if(s.length){const e=t.update(ce(J,s));n.update(e),o=le(J,e)}r.signature=le(J,n.digest()).slice(0,F),e.enqueue(ie(o,r.signature))}}}),r=this}}function se(e,t,n,s,r,i){const{ctr:o,hmac:l,pending:c}=e,h=t.length-r;let f;for(c.length&&(t=ie(c,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new a(t)).set(n,0)}return e})(n,h-h%V)),f=0;h-V>=f;f+=V){const e=ce(J,oe(t,f,f+V));i&&l.update(e);const r=o.update(e);i||l.update(r),n.set(le(J,r),f+s)}return e.pending=oe(t,f),n}async function re(n,s,r,i){n.password=null;const o=await(async(e,t,n,s,r)=>{if(!$)return q.importKey(t);try{return await G.importKey("raw",t,n,!1,r)}catch(e){return $=!1,q.importKey(t)}})(0,r,U,0,M),l=await(async(e,t,n)=>{if(!ee)return q.pbkdf2(t,e.salt,W.iterations,n);try{return await G.deriveBits(e,t,n)}catch(s){return ee=!1,q.pbkdf2(t,e.salt,W.iterations,n)}})(t.assign({salt:i},W),o,8*(2*O[s]+2)),c=new a(l),h=ce(J,oe(c,0,O[s])),f=ce(J,oe(c,O[s],2*O[s])),u=oe(c,2*O[s]);return t.assign(n,{keys:{key:h,authentication:f,passwordVerification:u},ctr:new Y(new Q(h),e.from(L)),hmac:new Z(f)}),u}function ae(e,t){return t===m?(e=>{if(typeof u==_){const t=new a((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new u).encode(e)})(e):t}function ie(e,t){let n=e;return e.length+t.length&&(n=new a(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function oe(e,t,n){return e.subarray(t,n)}function le(e,t){return e.fromBits(t)}function ce(e,t){return e.toBits(t)}class he extends g{constructor({password:e,passwordVerification:n,checkPasswordOnly:s}){super({start(){t.assign(this,{password:e,passwordVerification:n}),de(this,e)},transform(e,t){const n=this;if(n.password){const t=ue(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new r(H);e=e.subarray(12)}s?t.error(new r(B)):t.enqueue(ue(n,e))}})}}class fe extends g{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),de(this,e)},transform(e,t){const n=this;let s,r;if(n.password){n.password=null;const t=K(new a(12));t[11]=n.passwordVerification,s=new a(e.length+t.length),s.set(pe(n,t),0),r=12}else s=new a(e.length),r=0;s.set(pe(n,e),r),t.enqueue(s)}})}}function ue(e,t){const n=new a(t.length);for(let s=0;s<t.length;s++)n[s]=we(e)^t[s],ge(e,n[s]);return n}function pe(e,t){const n=new a(t.length);for(let s=0;s<t.length;s++)n[s]=we(e)^t[s],ge(e,t[s]);return n}function de(e,n){const s=[305419896,591751049,878082192];t.assign(e,{keys:s,crcKey0:new D(s[0]),crcKey2:new D(s[2])});for(let t=0;t<n.length;t++)ge(e,n.charCodeAt(t))}function ge(e,t){let[n,r,a]=e.keys;e.crcKey0.append([t]),n=~e.crcKey0.get(),r=ve(s.imul(ve(r+ye(n)),134775813)+1),e.crcKey2.append([r>>>24]),a=~e.crcKey2.get(),e.keys=[n,r,a]}function we(e){const t=2|e.keys[2];return ye(s.imul(t,1^t)>>>8)}function ye(e){return 255&e}function ve(e){return 4294967295&e}const be="deflate-raw";class me extends g{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:s}){super({});const{compressed:r,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:l,level:c}=e,f=this;let u,p,d=Se(super.readable);a&&!o||!l||(u=new C,d=De(d,u)),r&&(d=ze(d,i,{level:c,chunkSize:t},s,n)),a&&(o?d=De(d,new fe(e)):(p=new ne(e),d=De(d,p))),ke(f,d,(()=>{let e;a&&!o&&(e=p.signature),a&&!o||!l||(e=new h(u.value.buffer).getUint32(0)),f.signature=e}))}}class _e extends g{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:s}){super({});const{zipCrypto:a,encrypted:i,signed:o,signature:l,compressed:c,useCompressionStream:f}=e;let u,p,d=Se(super.readable);i&&(a?d=De(d,new he(e)):(p=new te(e),d=De(d,p))),c&&(d=ze(d,f,{chunkSize:t},s,n)),i&&!a||!o||(u=new C,d=De(d,u)),ke(this,d,(()=>{if((!i||a)&&o){const e=new h(u.value.buffer);if(l!=e.getUint32(0,!1))throw new r(P)}}))}}function Se(e){return De(e,new g({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ke(e,n,s){n=De(n,new g({flush:s})),t.defineProperty(e,"readable",{get:()=>n})}function ze(e,t,n,s,r){try{e=De(e,new(t&&s?s:r)(be,n))}catch(s){if(!t)return e;try{e=De(e,new r(be,n))}catch(t){return e}}return e}function De(e,t){return e.pipeThrough(t)}const Ce="data",xe="close";class Ie extends g{constructor(e,n){super({});const s=this,{codecType:r}=e;let a;r.startsWith("deflate")?a=me:r.startsWith("inflate")&&(a=_e);let i=0,o=0;const l=new a(e,n),c=super.readable,h=new g({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){t.assign(s,{inputSize:o})}}),f=new g({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){const{signature:e}=l;t.assign(s,{signature:e,outputSize:i,inputSize:o})}});t.defineProperty(s,"readable",{get:()=>c.pipeThrough(h).pipeThrough(l).pipeThrough(f)})}}class Te extends g{constructor(e){let t;super({transform:function n(s,r){if(t){const e=new a(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(r.enqueue(s.slice(0,e)),n(s.slice(e),r)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}const Ae=new c,qe=new c;let Re,He=0,Pe=!0;async function Be(e){try{const{options:t,scripts:s,config:r}=e;if(s&&s.length)try{Pe?importScripts.apply(m,s):await Ke(s)}catch(e){Pe=!1,await Ke(s)}self.initCodec&&self.initCodec(),r.CompressionStreamNative=self.CompressionStream,r.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(r.CompressionStream=new k(self.Deflate)),self.Inflate&&(r.DecompressionStream=new k(self.Inflate));const a={highWaterMark:1},i=e.readable||new w({async pull(e){const t=new f((e=>Ae.set(He,e)));Ve({type:"pull",messageId:He}),He=(He+1)%n.MAX_SAFE_INTEGER;const{value:s,done:r}=await t;e.enqueue(s),r&&e.close()}},a),o=e.writable||new y({async write(e){let t;const s=new f((e=>t=e));qe.set(He,t),Ve({type:Ce,value:e,messageId:He}),He=(He+1)%n.MAX_SAFE_INTEGER,await s}},a),l=new Ie(t,r);Re=new AbortController;const{signal:c}=Re;await i.pipeThrough(l).pipeThrough(new Te(r.chunkSize)).pipeTo(o,{signal:c,preventClose:!0,preventAbort:!0}),await o.getWriter().close();const{signature:h,inputSize:u,outputSize:p}=l;Ve({type:xe,result:{signature:h,inputSize:u,outputSize:p}})}catch(e){Ee(e)}}async function Ke(e){for(const t of e)await import(t)}function Ve(e){let{value:t}=e;if(t)if(t.length)try{t=new a(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ee(e=new r("Unknown error")){const{message:t,stack:n,code:s,name:a}=e;d({error:{message:t,stack:n,code:s,name:a}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:s,done:r}=e;try{if("start"==t&&Be(e),t==Ce){const e=Ae.get(n);Ae.delete(n),e({value:new a(s),done:r})}if("ack"==t){const e=qe.get(n);qe.delete(n),e()}t==xe&&Re.abort()}catch(e){Ee(e)}}));var Ue=a,We=i,Me=l,Ne=new Ue([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Oe=new Ue([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Fe=new Ue([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Le=(e,t)=>{for(var n=new We(31),s=0;31>s;++s)n[s]=t+=1<<e[s-1];var r=new Me(n[30]);for(s=1;30>s;++s)for(var a=n[s];a<n[s+1];++a)r[a]=a-n[s]<<5|s;return{b:n,r:r}},je=Le(Ne,2),Ge=je.b,Xe=je.r;Ge[28]=258,Xe[258]=28;for(var Je=Le(Oe,0),Qe=Je.b,Ye=Je.r,Ze=new We(32768),$e=0;32768>$e;++$e){var et=(43690&$e)>>1|(21845&$e)<<1;et=(61680&(et=(52428&et)>>2|(13107&et)<<2))>>4|(3855&et)<<4,Ze[$e]=((65280&et)>>8|(255&et)<<8)>>1}var tt=(e,t,n)=>{for(var s=e.length,r=0,a=new We(t);s>r;++r)e[r]&&++a[e[r]-1];var i,o=new We(t);for(r=1;t>r;++r)o[r]=o[r-1]+a[r-1]<<1;if(n){i=new We(1<<t);var l=15-t;for(r=0;s>r;++r)if(e[r])for(var c=r<<4|e[r],h=t-e[r],f=o[e[r]-1]++<<h,u=f|(1<<h)-1;u>=f;++f)i[Ze[f]>>l]=c}else for(i=new We(s),r=0;s>r;++r)e[r]&&(i[r]=Ze[o[e[r]-1]++]>>15-e[r]);return i},nt=new Ue(288);for($e=0;144>$e;++$e)nt[$e]=8;for($e=144;256>$e;++$e)nt[$e]=9;for($e=256;280>$e;++$e)nt[$e]=7;for($e=280;288>$e;++$e)nt[$e]=8;var st=new Ue(32);for($e=0;32>$e;++$e)st[$e]=5;var rt=tt(nt,9,0),at=tt(nt,9,1),it=tt(st,5,0),ot=tt(st,5,1),lt=e=>{for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},ct=(e,t,n)=>{var s=t/8|0;return(e[s]|e[s+1]<<8)>>(7&t)&n},ht=(e,t)=>{var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},ft=e=>(e+7)/8|0,ut=(e,t,n)=>((null==t||0>t)&&(t=0),(null==n||n>e.length)&&(n=e.length),new Ue(e.subarray(t,n))),pt=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],dt=(e,t,n)=>{var s=new r(t||pt[e]);if(s.code=e,r.captureStackTrace&&r.captureStackTrace(s,dt),!n)throw s;return s},gt=(e,t,n)=>{n<<=7&t;var s=t/8|0;e[s]|=n,e[s+1]|=n>>8},wt=(e,t,n)=>{n<<=7&t;var s=t/8|0;e[s]|=n,e[s+1]|=n>>8,e[s+2]|=n>>16},yt=(e,t)=>{for(var n=[],s=0;s<e.length;++s)e[s]&&n.push({s:s,f:e[s]});var r=n.length,a=n.slice();if(!r)return{t:zt,l:0};if(1==r){var i=new Ue(n[0].s+1);return i[n[0].s]=1,{t:i,l:1}}n.sort(((e,t)=>e.f-t.f)),n.push({s:-1,f:25001});var o=n[0],l=n[1],c=0,h=1,f=2;for(n[0]={s:-1,f:o.f+l.f,l:o,r:l};h!=r-1;)o=n[n[c].f<n[f].f?c++:f++],l=n[c!=h&&n[c].f<n[f].f?c++:f++],n[h++]={s:-1,f:o.f+l.f,l:o,r:l};var u=a[0].s;for(s=1;r>s;++s)a[s].s>u&&(u=a[s].s);var p=new We(u+1),d=vt(n[h-1],p,0);if(d>t){s=0;var g=0,w=d-t,y=1<<w;for(a.sort(((e,t)=>p[t.s]-p[e.s]||e.f-t.f));r>s;++s){var v=a[s].s;if(p[v]<=t)break;g+=y-(1<<d-p[v]),p[v]=t}for(g>>=w;g>0;){var b=a[s].s;p[b]<t?g-=1<<t-p[b]++-1:++s}for(;s>=0&&g;--s){var m=a[s].s;p[m]==t&&(--p[m],++g)}d=t}return{t:new Ue(p),l:d}},vt=(e,t,n)=>-1==e.s?s.max(vt(e.l,t,n+1),vt(e.r,t,n+1)):t[e.s]=n,bt=e=>{for(var t=e.length;t&&!e[--t];);for(var n=new We(++t),s=0,r=e[0],a=1,i=e=>{n[s++]=e},o=1;t>=o;++o)if(e[o]==r&&o!=t)++a;else{if(!r&&a>2){for(;a>138;a-=138)i(32754);a>2&&(i(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(i(r),--a;a>6;a-=6)i(8304);a>2&&(i(a-3<<5|8208),a=0)}for(;a--;)i(r);a=1,r=e[o]}return{c:n.subarray(0,s),n:t}},mt=(e,t)=>{for(var n=0,s=0;s<t.length;++s)n+=e[s]*t[s];return n},_t=(e,t,n)=>{var s=n.length,r=ft(t+2);e[r]=255&s,e[r+1]=s>>8,e[r+2]=255^e[r],e[r+3]=255^e[r+1];for(var a=0;s>a;++a)e[r+a+4]=n[a];return 8*(r+4+s)},St=(e,t,n,s,r,a,i,o,l,c,h)=>{gt(t,h++,n),++r[256];for(var f=yt(r,15),u=f.t,p=f.l,d=yt(a,15),g=d.t,w=d.l,y=bt(u),v=y.c,b=y.n,m=bt(g),_=m.c,S=m.n,k=new We(19),z=0;z<v.length;++z)++k[31&v[z]];for(z=0;z<_.length;++z)++k[31&_[z]];for(var D=yt(k,7),C=D.t,x=D.l,I=19;I>4&&!C[Fe[I-1]];--I);var T,A,q,R,H=c+5<<3,P=mt(r,nt)+mt(a,st)+i,B=mt(r,u)+mt(a,g)+i+14+3*I+mt(k,C)+2*k[16]+3*k[17]+7*k[18];if(l>=0&&P>=H&&B>=H)return _t(t,h,e.subarray(l,l+c));if(gt(t,h,1+(P>B)),h+=2,P>B){T=tt(u,p,0),A=u,q=tt(g,w,0),R=g;var K=tt(C,x,0);for(gt(t,h,b-257),gt(t,h+5,S-1),gt(t,h+10,I-4),h+=14,z=0;I>z;++z)gt(t,h+3*z,C[Fe[z]]);h+=3*I;for(var V=[v,_],E=0;2>E;++E){var U=V[E];for(z=0;z<U.length;++z){var W=31&U[z];gt(t,h,K[W]),h+=C[W],W>15&&(gt(t,h,U[z]>>5&127),h+=U[z]>>12)}}}else T=rt,A=nt,q=it,R=st;for(z=0;o>z;++z){var M=s[z];if(M>255){wt(t,h,T[257+(W=M>>18&31)]),h+=A[W+257],W>7&&(gt(t,h,M>>23&31),h+=Ne[W]);var N=31&M;wt(t,h,q[N]),h+=R[N],N>3&&(wt(t,h,M>>5&8191),h+=Oe[N])}else wt(t,h,T[M]),h+=A[M]}return wt(t,h,T[256]),h+A[256]},kt=new Me([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),zt=new Ue(0),Dt=function(){function e(e,t){if("function"==typeof e&&(t=e,e={}),this.ondata=t,this.o=e||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new Ue(98304),this.o.dictionary){var n=this.o.dictionary.subarray(-32768);this.b.set(n,32768-n.length),this.s.i=32768-n.length}}return e.prototype.p=function(e,t){this.ondata(((e,t,n,r,a)=>{if(!a&&(a={l:1},t.dictionary)){var i=t.dictionary.subarray(-32768),o=new Ue(i.length+e.length);o.set(i),o.set(e,i.length),e=o,a.w=i.length}return((e,t,n,r,a,i)=>{var o=i.z||e.length,l=new Ue(0+o+5*(1+s.ceil(o/7e3))+0),c=l.subarray(0,l.length-0),h=i.l,f=7&(i.r||0);if(t){f&&(c[0]=i.r>>3);for(var u=kt[t-1],p=u>>13,d=8191&u,g=(1<<n)-1,w=i.p||new We(32768),y=i.h||new We(g+1),v=s.ceil(n/3),b=2*v,m=t=>(e[t]^e[t+1]<<v^e[t+2]<<b)&g,_=new Me(25e3),S=new We(288),k=new We(32),z=0,D=0,C=i.i||0,x=0,I=i.w||0,T=0;o>C+2;++C){var A=m(C),q=32767&C,R=y[A];if(w[q]=R,y[A]=q,C>=I){var H=o-C;if((z>7e3||x>24576)&&(H>423||!h)){f=St(e,c,0,_,S,k,D,x,T,C-T,f),x=z=D=0,T=C;for(var P=0;286>P;++P)S[P]=0;for(P=0;30>P;++P)k[P]=0}var B=2,K=0,V=d,E=q-R&32767;if(H>2&&A==m(C-E))for(var U=s.min(p,H)-1,W=s.min(32767,C),M=s.min(258,H);W>=E&&--V&&q!=R;){if(e[C+B]==e[C+B-E]){for(var N=0;M>N&&e[C+N]==e[C+N-E];++N);if(N>B){if(B=N,K=E,N>U)break;var O=s.min(E,N-2),F=0;for(P=0;O>P;++P){var L=C-E+P&32767,j=L-w[L]&32767;j>F&&(F=j,R=L)}}}E+=(q=R)-(R=w[q])&32767}if(K){_[x++]=268435456|Xe[B]<<18|Ye[K];var G=31&Xe[B],X=31&Ye[K];D+=Ne[G]+Oe[X],++S[257+G],++k[X],I=C+B,++z}else _[x++]=e[C],++S[e[C]]}}for(C=s.max(C,I);o>C;++C)_[x++]=e[C],++S[e[C]];f=St(e,c,h,_,S,k,D,x,T,C-T,f),h||(i.r=7&f|c[f/8|0]<<3,f-=7,i.h=y,i.p=w,i.i=C,i.w=I)}else{for(C=i.w||0;o+h>C;C+=65535){var J=C+65535;o>J||(c[f/8|0]=h,J=o),f=_t(c,f+1,e.subarray(C,J))}i.i=o}return ut(l,0,0+ft(f)+0)})(e,null==t.level?6:t.level,null==t.mem?a.l?s.ceil(1.5*s.max(8,s.min(13,s.log(e.length)))):20:12+t.mem,0,0,a)})(e,this.o,0,0,this.s),t)},e.prototype.push=function(e,t){this.ondata||dt(5),this.s.l&&dt(4);var n=e.length+this.s.z;if(n>this.b.length){if(n>2*this.b.length-32768){var s=new Ue(-32768&n);s.set(this.b.subarray(0,this.s.z)),this.b=s}var r=this.b.length-this.s.z;this.b.set(e.subarray(0,r),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(e.subarray(r),32768),this.s.z=e.length-r+32768,this.s.i=32766,this.s.w=32768}else this.b.set(e,this.s.z),this.s.z+=e.length;this.s.l=1&t,(this.s.z>this.s.w+8191||t)&&(this.p(this.b,t||!1),this.s.w=this.s.i,this.s.i-=2)},e.prototype.flush=function(){this.ondata||dt(5),this.s.l&&dt(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},e}(),Ct=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.ondata=t;var n=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:n?n.length:0},this.o=new Ue(32768),this.p=new Ue(0),n&&this.o.set(n)}return e.prototype.e=function(e){if(this.ondata||dt(5),this.d&&dt(4),this.p.length){if(e.length){var t=new Ue(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=((e,t,n)=>{var r=e.length;if(!r||t.f&&!t.l)return n||new Ue(0);var a=!n,i=a||2!=t.i,o=t.i;a&&(n=new Ue(3*r));var l=e=>{var t=n.length;if(e>t){var r=new Ue(s.max(2*t,e));r.set(n),n=r}},c=t.f||0,h=t.p||0,f=t.b||0,u=t.l,p=t.d,d=t.m,g=t.n,w=8*r;do{if(!u){c=ct(e,h,1);var y=ct(e,h+1,3);if(h+=3,!y){var v=e[(T=ft(h)+4)-4]|e[T-3]<<8,b=T+v;if(b>r){o&&dt(0);break}i&&l(f+v),n.set(e.subarray(T,b),f),t.b=f+=v,t.p=h=8*b,t.f=c;continue}if(1==y)u=at,p=ot,d=9,g=5;else if(2==y){var m=ct(e,h,31)+257,_=ct(e,h+10,15)+4,S=m+ct(e,h+5,31)+1;h+=14;for(var k=new Ue(S),z=new Ue(19),D=0;_>D;++D)z[Fe[D]]=ct(e,h+3*D,7);h+=3*_;var C=lt(z),x=(1<<C)-1,I=tt(z,C,1);for(D=0;S>D;){var T,A=I[ct(e,h,x)];if(h+=15&A,16>(T=A>>4))k[D++]=T;else{var q=0,R=0;for(16==T?(R=3+ct(e,h,3),h+=2,q=k[D-1]):17==T?(R=3+ct(e,h,7),h+=3):18==T&&(R=11+ct(e,h,127),h+=7);R--;)k[D++]=q}}var H=k.subarray(0,m),P=k.subarray(m);d=lt(H),g=lt(P),u=tt(H,d,1),p=tt(P,g,1)}else dt(1);if(h>w){o&&dt(0);break}}i&&l(f+131072);for(var B=(1<<d)-1,K=(1<<g)-1,V=h;;V=h){var E=(q=u[ht(e,h)&B])>>4;if((h+=15&q)>w){o&&dt(0);break}if(q||dt(2),256>E)n[f++]=E;else{if(256==E){V=h,u=null;break}var U=E-254;if(E>264){var W=Ne[D=E-257];U=ct(e,h,(1<<W)-1)+Ge[D],h+=W}var M=p[ht(e,h)&K],N=M>>4;if(M||dt(3),h+=15&M,P=Qe[N],N>3&&(W=Oe[N],P+=ht(e,h)&(1<<W)-1,h+=W),h>w){o&&dt(0);break}i&&l(f+131072);var O=f+U;if(P>f){var F=0-P,L=s.min(P,O);for(0>F+f&&dt(3);L>f;++f)n[f]=(void 0)[F+f]}for(;O>f;++f)n[f]=n[f-P]}}t.l=u,t.p=V,t.b=f,t.f=c,u&&(c=1,t.m=d,t.d=p,t.n=g)}while(!c);return f!=n.length&&a?ut(n,0,f):n.subarray(0,f)})(this.p,this.s,this.o);this.ondata(ut(n,t,this.s.b),this.d),this.o=ut(n,this.s.b-32768),this.s.b=this.o.length,this.p=ut(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),xt="undefined"!=typeof TextDecoder&&new TextDecoder;try{xt.decode(zt,{stream:!0})}catch(e){}function It(e,n,s){return class{constructor(r){const i=this;var o,l;o=r,l="level",(typeof t.hasOwn===S?t.hasOwn(o,l):o.hasOwnProperty(l))&&r.level===m&&delete r.level,i.codec=new e(t.assign({},n,r)),s(i.codec,(e=>{if(i.pendingData){const t=i.pendingData;i.pendingData=new a(t.length+e.length);const{pendingData:n}=i;n.set(t,0),n.set(e,t.length)}else i.pendingData=new a(e)}))}append(e){return this.codec.push(e),r(this)}flush(){return this.codec.push(new a,!0),r(this)}};function r(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new a}}const{Deflate:Tt,Inflate:At}=((e,t={},n)=>({Deflate:It(e.Deflate,t.deflate,n),Inflate:It(e.Inflate,t.inflate,n)}))({Deflate:Dt,Inflate:Ct},m,((e,t)=>e.ondata=t));self.initCodec=()=>{self.Deflate=Tt,self.Inflate=At};\n'],{type:"text/javascript"}));n({workerScripts:{inflate:[e],deflate:[e]}})}(ct);var Ki=Object.freeze({__proto__:null,BlobReader:to,BlobWriter:ao,Data64URIReader:class extends no{constructor(n){super();let e=n.length;for(;"="==n.charAt(e-1);)e--;const t=n.indexOf(",")+1;Xn.assign(this,{dataURI:n,dataStart:t,size:te.floor(.75*(e-t))})}readUint8Array(n,e){const{dataStart:t,dataURI:a}=this,o=new ce(e),i=4*te.floor(n/3),r=atob(a.substring(i+t,4*te.ceil((n+e)/3)+t)),s=n-3*te.floor(i/4);for(let n=s;n<s+e;n++)o[n-s]=r.charCodeAt(n);return o}},Data64URIWriter:class extends eo{constructor(n){super(),Xn.assign(this,{data:"data:"+(n||"")+";base64,",pending:[]})}writeUint8Array(n){const e=this;let t=0,a=e.pending;const o=e.pending.length;for(e.pending="",t=0;t<3*te.floor((o+n.length)/3)-o;t++)a+=Qn.fromCharCode(n[t]);for(;t<n.length;t++)e.pending+=Qn.fromCharCode(n[t]);a.length>2?e.data+=fe(a):e.pending=a}getData(){return this.data+fe(this.pending)}},ERR_BAD_FORMAT:Zo,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Qo,ERR_DUPLICATED_NAME:Si,ERR_ENCRYPTED:ti,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Xo,ERR_EOCDR_NOT_FOUND:$o,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:ei,ERR_HTTP_RANGE:Ga,ERR_INVALID_COMMENT:xi,ERR_INVALID_ENCRYPTION_STRENGTH:Ai,ERR_INVALID_ENTRY_COMMENT:Ci,ERR_INVALID_ENTRY_NAME:zi,ERR_INVALID_EXTRAFIELD_DATA:Ti,ERR_INVALID_EXTRAFIELD_TYPE:Ii,ERR_INVALID_PASSWORD:xt,ERR_INVALID_SIGNATURE:Ct,ERR_INVALID_VERSION:Li,ERR_ITERATOR_COMPLETED_TOO_SOON:Wa,ERR_LOCAL_FILE_HEADER_NOT_FOUND:ni,ERR_SPLIT_ZIP_FILE:ii,ERR_UNSUPPORTED_COMPRESSION:oi,ERR_UNSUPPORTED_ENCRYPTION:ai,ERR_UNSUPPORTED_FORMAT:Ri,HttpRangeReader:class extends fo{constructor(n,e={}){e.useRangeHeader=!0,super(n,e)}},HttpReader:fo,Reader:no,SplitDataReader:ko,SplitDataWriter:yo,SplitZipReader:Co,SplitZipWriter:zo,TextReader:class extends to{constructor(n){super(new pe([n],{type:"text/plain"}))}},TextWriter:class extends ao{constructor(n){super(n),Xn.assign(this,{encoding:n,utf8:!n||"utf-8"==n.toLowerCase()})}async getData(){const{encoding:n,utf8:e}=this,t=await super.getData();if(t.text&&e)return t.text();{const e=new FileReader;return new ue(((a,o)=>{Xn.assign(e,{onload:({target:n})=>a(n.result),onerror:()=>o(e.error)}),e.readAsText(t,n)}))}}},Uint8ArrayReader:class extends no{constructor(n){super(),Xn.assign(this,{array:n,size:n.length})}readUint8Array(n,e){return this.array.slice(n,n+e)}},Uint8ArrayWriter:class extends eo{init(n=0){Xn.assign(this,{offset:0,array:new ce(n)}),super.init()}writeUint8Array(n){const e=this;if(e.offset+n.length>e.array.length){const t=e.array;e.array=new ce(t.length+n.length),e.array.set(t)}e.array.set(n,e.offset),e.offset+=n.length}getData(){return this.array}},Writer:eo,ZipReader:mi,ZipReaderStream:class{constructor(n={}){const{readable:e,writable:t}=new ke,a=new mi(e,n).getEntriesGenerator();this.readable=new ye({async pull(n){const{done:e,value:t}=await a.next();if(e)return n.close();const o={...t,readable:function(){const{readable:n,writable:e}=new ke;if(t.getData)return t.getData(e),n}()};delete o.getData,n.enqueue(o)}}),this.writable=t}},ZipWriter:Bi,ZipWriterStream:class{constructor(n={}){const{readable:e,writable:t}=new ke;this.readable=e,this.zipWriter=new Bi(t,n)}transform(n){const{readable:e,writable:t}=new ke({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(n,e),{readable:this.readable,writable:t}}writable(n){const{readable:e,writable:t}=new ke;return this.zipWriter.add(n,e),t}close(n=void 0,e={}){return this.zipWriter.close(n,e)}},configure:ct,getMimeType:function(){return"application/octet-stream"},initReader:jo,initShimAsyncCodec:function(n,e={},t){return{Deflate:dt(n.Deflate,e.deflate,t),Inflate:dt(n.Inflate,e.inflate,t)}},initStream:vo,initWriter:So,readUint8Array:xo,terminateWorkers:async function(){await ue.allSettled(Oa.map((n=>(Ua(n),n.terminate()))))}}),Ji=Object.create,Yi=Object.defineProperty,Zi=Object.getOwnPropertyDescriptor,$i=Object.getOwnPropertyNames,Xi=Object.getPrototypeOf,Qi=Object.prototype.hasOwnProperty,nr=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),er=(n,e)=>{for(var t in e)Yi(n,t,{get:e[t],enumerable:!0})},tr=nr((n=>{var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");n.encode=function(n){if(0<=n&&n<e.length)return e[n];throw new TypeError("Must be between 0 and 63: "+n)},n.decode=function(n){return 65<=n&&n<=90?n-65:97<=n&&n<=122?n-97+26:48<=n&&n<=57?n-48+52:43==n?62:47==n?63:-1}})),ar=nr((n=>{var e=tr();n.encode=function(n){var t,a="",o=function(n){return n<0?1+(-n<<1):0+(n<<1)}(n);do{t=31&o,(o>>>=5)>0&&(t|=32),a+=e.encode(t)}while(o>0);return a},n.decode=function(n,t,a){var o,i,r=n.length,s=0,l=0;do{if(t>=r)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(i=e.decode(n.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+n.charAt(t-1));o=!!(32&i),s+=(i&=31)<<l,l+=5}while(o);a.value=function(n){var e=n>>1;return 1&~n?e:-e}(s),a.rest=t}})),or=nr((n=>{n.getArg=function(n,e,t){if(e in n)return n[e];if(3===arguments.length)return t;throw new Error('"'+e+'" is a required argument.')};var e=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,t=/^data:.+\,.+$/;function a(n){var t=n.match(e);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function o(n){var e="";return n.scheme&&(e+=n.scheme+":"),e+="//",n.auth&&(e+=n.auth+"@"),n.host&&(e+=n.host),n.port&&(e+=":"+n.port),n.path&&(e+=n.path),e}n.urlParse=a,n.urlGenerate=o;var i=function(n){var e=[];return function(t){for(var a=0;a<e.length;a++)if(e[a].input===t){var o=e[0];return e[0]=e[a],e[a]=o,e[0].result}var i=n(t);return e.unshift({input:t,result:i}),e.length>32&&e.pop(),i}}((function(e){var t=e,i=a(e);if(i){if(!i.path)return e;t=i.path}for(var r=n.isAbsolute(t),s=[],l=0,c=0;;){if(l=c,-1===(c=t.indexOf("/",l))){s.push(t.slice(l));break}for(s.push(t.slice(l,c));c<t.length&&"/"===t[c];)c++}var m,d=0;for(c=s.length-1;c>=0;c--)"."===(m=s[c])?s.splice(c,1):".."===m?d++:d>0&&(""===m?(s.splice(c+1,d),d=0):(s.splice(c,2),d--));return""===(t=s.join("/"))&&(t=r?"/":"."),i?(i.path=t,o(i)):t}));function r(n,e){""===n&&(n="."),""===e&&(e=".");var r=a(e),s=a(n);if(s&&(n=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),o(r);if(r||e.match(t))return e;if(s&&!s.host&&!s.path)return s.host=e,o(s);var l="/"===e.charAt(0)?e:i(n.replace(/\/+$/,"")+"/"+e);return s?(s.path=l,o(s)):l}n.normalize=i,n.join=r,n.isAbsolute=function(n){return"/"===n.charAt(0)||e.test(n)},n.relative=function(n,e){""===n&&(n="."),n=n.replace(/\/$/,"");for(var t=0;0!==e.indexOf(n+"/");){var a=n.lastIndexOf("/");if(a<0||(n=n.slice(0,a)).match(/^([^\/]+:\/)?\/*$/))return e;++t}return Array(t+1).join("../")+e.substr(n.length+1)};var s=!("__proto__"in Object.create(null));function l(n){return n}function c(n){if(!n)return!1;var e=n.length;if(e<9||95!==n.charCodeAt(e-1)||95!==n.charCodeAt(e-2)||111!==n.charCodeAt(e-3)||116!==n.charCodeAt(e-4)||111!==n.charCodeAt(e-5)||114!==n.charCodeAt(e-6)||112!==n.charCodeAt(e-7)||95!==n.charCodeAt(e-8)||95!==n.charCodeAt(e-9))return!1;for(var t=e-10;t>=0;t--)if(36!==n.charCodeAt(t))return!1;return!0}function m(n,e){return n===e?0:null===n?1:null===e?-1:n>e?1:-1}n.toSetString=s?l:function(n){return c(n)?"$"+n:n},n.fromSetString=s?l:function(n){return c(n)?n.slice(1):n},n.compareByOriginalPositions=function(n,e,t){var a=m(n.source,e.source);return 0!==a||0!==(a=n.originalLine-e.originalLine)||(0!==(a=n.originalColumn-e.originalColumn)||t)||0!==(a=n.generatedColumn-e.generatedColumn)||0!==(a=n.generatedLine-e.generatedLine)?a:m(n.name,e.name)},n.compareByOriginalPositionsNoSource=function(n,e,t){var a;return 0!==(a=n.originalLine-e.originalLine)||(0!==(a=n.originalColumn-e.originalColumn)||t)||0!==(a=n.generatedColumn-e.generatedColumn)||0!==(a=n.generatedLine-e.generatedLine)?a:m(n.name,e.name)},n.compareByGeneratedPositionsDeflated=function(n,e,t){var a=n.generatedLine-e.generatedLine;return 0!==a||(0!==(a=n.generatedColumn-e.generatedColumn)||t)||0!==(a=m(n.source,e.source))||0!==(a=n.originalLine-e.originalLine)||0!==(a=n.originalColumn-e.originalColumn)?a:m(n.name,e.name)},n.compareByGeneratedPositionsDeflatedNoLine=function(n,e,t){var a=n.generatedColumn-e.generatedColumn;return 0!==a||t||0!==(a=m(n.source,e.source))||0!==(a=n.originalLine-e.originalLine)||0!==(a=n.originalColumn-e.originalColumn)?a:m(n.name,e.name)},n.compareByGeneratedPositionsInflated=function(n,e){var t=n.generatedLine-e.generatedLine;return 0!==t||0!==(t=n.generatedColumn-e.generatedColumn)||0!==(t=m(n.source,e.source))||0!==(t=n.originalLine-e.originalLine)||0!==(t=n.originalColumn-e.originalColumn)?t:m(n.name,e.name)},n.parseSourceMapInput=function(n){return JSON.parse(n.replace(/^\)]}'[^\n]*\n/,""))},n.computeSourceURL=function(n,e,t){if(e=e||"",n&&("/"!==n[n.length-1]&&"/"!==e[0]&&(n+="/"),e=n+e),t){var s=a(t);if(!s)throw new Error("sourceMapURL could not be parsed");if(s.path){var l=s.path.lastIndexOf("/");l>=0&&(s.path=s.path.substring(0,l+1))}e=r(o(s),e)}return i(e)}})),ir=nr((n=>{var e=or(),t=Object.prototype.hasOwnProperty,a=typeof Map<"u";function o(){this._array=[],this._set=a?new Map:Object.create(null)}o.fromArray=function(n,e){for(var t=new o,a=0,i=n.length;a<i;a++)t.add(n[a],e);return t},o.prototype.size=function(){return a?this._set.size:Object.getOwnPropertyNames(this._set).length},o.prototype.add=function(n,o){var i=a?n:e.toSetString(n),r=a?this.has(n):t.call(this._set,i),s=this._array.length;(!r||o)&&this._array.push(n),r||(a?this._set.set(n,s):this._set[i]=s)},o.prototype.has=function(n){if(a)return this._set.has(n);var o=e.toSetString(n);return t.call(this._set,o)},o.prototype.indexOf=function(n){if(a){var o=this._set.get(n);if(o>=0)return o}else{var i=e.toSetString(n);if(t.call(this._set,i))return this._set[i]}throw new Error('"'+n+'" is not in the set.')},o.prototype.at=function(n){if(n>=0&&n<this._array.length)return this._array[n];throw new Error("No element indexed by "+n)},o.prototype.toArray=function(){return this._array.slice()},n.ArraySet=o})),rr=nr((n=>{var e=or();function t(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}t.prototype.unsortedForEach=function(n,e){this._array.forEach(n,e)},t.prototype.add=function(n){!function(n,t){var a=n.generatedLine,o=t.generatedLine,i=n.generatedColumn,r=t.generatedColumn;return o>a||o==a&&r>=i||e.compareByGeneratedPositionsInflated(n,t)<=0}(this._last,n)?(this._sorted=!1,this._array.push(n)):(this._last=n,this._array.push(n))},t.prototype.toArray=function(){return this._sorted||(this._array.sort(e.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=t})),sr=nr((n=>{var e=ar(),t=or(),a=ir().ArraySet,o=rr().MappingList;function i(n){n||(n={}),this._file=t.getArg(n,"file",null),this._sourceRoot=t.getArg(n,"sourceRoot",null),this._skipValidation=t.getArg(n,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new o,this._sourcesContents=null}i.prototype._version=3,i.fromSourceMap=function(n){var e=n.sourceRoot,a=new i({file:n.file,sourceRoot:e});return n.eachMapping((function(n){var o={generated:{line:n.generatedLine,column:n.generatedColumn}};null!=n.source&&(o.source=n.source,null!=e&&(o.source=t.relative(e,o.source)),o.original={line:n.originalLine,column:n.originalColumn},null!=n.name&&(o.name=n.name)),a.addMapping(o)})),n.sources.forEach((function(o){var i=o;null!==e&&(i=t.relative(e,o)),a._sources.has(i)||a._sources.add(i);var r=n.sourceContentFor(o);null!=r&&a.setSourceContent(o,r)})),a},i.prototype.addMapping=function(n){var e=t.getArg(n,"generated"),a=t.getArg(n,"original",null),o=t.getArg(n,"source",null),i=t.getArg(n,"name",null);this._skipValidation||this._validateMapping(e,a,o,i),null!=o&&(o=String(o),this._sources.has(o)||this._sources.add(o)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:e.line,generatedColumn:e.column,originalLine:null!=a&&a.line,originalColumn:null!=a&&a.column,source:o,name:i})},i.prototype.setSourceContent=function(n,e){var a=n;null!=this._sourceRoot&&(a=t.relative(this._sourceRoot,a)),null!=e?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[t.toSetString(a)]=e):this._sourcesContents&&(delete this._sourcesContents[t.toSetString(a)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},i.prototype.applySourceMap=function(n,e,o){var i=e;if(null==e){if(null==n.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');i=n.file}var r=this._sourceRoot;null!=r&&(i=t.relative(r,i));var s=new a,l=new a;this._mappings.unsortedForEach((function(e){if(e.source===i&&null!=e.originalLine){var a=n.originalPositionFor({line:e.originalLine,column:e.originalColumn});null!=a.source&&(e.source=a.source,null!=o&&(e.source=t.join(o,e.source)),null!=r&&(e.source=t.relative(r,e.source)),e.originalLine=a.line,e.originalColumn=a.column,null!=a.name&&(e.name=a.name))}var c=e.source;null!=c&&!s.has(c)&&s.add(c);var m=e.name;null!=m&&!l.has(m)&&l.add(m)}),this),this._sources=s,this._names=l,n.sources.forEach((function(e){var a=n.sourceContentFor(e);null!=a&&(null!=o&&(e=t.join(o,e)),null!=r&&(e=t.relative(r,e)),this.setSourceContent(e,a))}),this)},i.prototype._validateMapping=function(n,e,t,a){if(e&&"number"!=typeof e.line&&"number"!=typeof e.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(n&&"line"in n&&"column"in n&&n.line>0&&n.column>=0)||e||t||a){if(n&&"line"in n&&"column"in n&&e&&"line"in e&&"column"in e&&n.line>0&&n.column>=0&&e.line>0&&e.column>=0&&t)return;throw new Error("Invalid mapping: "+JSON.stringify({generated:n,source:t,original:e,name:a}))}},i.prototype._serializeMappings=function(){for(var n,a,o,i,r=0,s=1,l=0,c=0,m=0,d=0,h="",p=this._mappings.toArray(),u=0,g=p.length;u<g;u++){if(n="",(a=p[u]).generatedLine!==s)for(r=0;a.generatedLine!==s;)n+=";",s++;else if(u>0){if(!t.compareByGeneratedPositionsInflated(a,p[u-1]))continue;n+=","}n+=e.encode(a.generatedColumn-r),r=a.generatedColumn,null!=a.source&&(i=this._sources.indexOf(a.source),n+=e.encode(i-d),d=i,n+=e.encode(a.originalLine-1-c),c=a.originalLine-1,n+=e.encode(a.originalColumn-l),l=a.originalColumn,null!=a.name&&(o=this._names.indexOf(a.name),n+=e.encode(o-m),m=o)),h+=n}return h},i.prototype._generateSourcesContent=function(n,e){return n.map((function(n){if(!this._sourcesContents)return null;null!=e&&(n=t.relative(e,n));var a=t.toSetString(n);return Object.prototype.hasOwnProperty.call(this._sourcesContents,a)?this._sourcesContents[a]:null}),this)},i.prototype.toJSON=function(){var n={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(n.file=this._file),null!=this._sourceRoot&&(n.sourceRoot=this._sourceRoot),this._sourcesContents&&(n.sourcesContent=this._generateSourcesContent(n.sources,n.sourceRoot)),n},i.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=i}));er({},{AtKeyword:()=>dr,BadString:()=>ur,BadUrl:()=>wr,CDC:()=>Sr,CDO:()=>jr,Colon:()=>xr,Comma:()=>zr,Comment:()=>Dr,Delim:()=>br,Dimension:()=>yr,EOF:()=>lr,Function:()=>mr,Hash:()=>hr,Ident:()=>cr,LeftCurlyBracket:()=>Rr,LeftParenthesis:()=>Ir,LeftSquareBracket:()=>Lr,Number:()=>fr,Percentage:()=>kr,RightCurlyBracket:()=>Er,RightParenthesis:()=>Tr,RightSquareBracket:()=>Ar,Semicolon:()=>Cr,String:()=>pr,Url:()=>gr,WhiteSpace:()=>vr});var lr=0,cr=1,mr=2,dr=3,hr=4,pr=5,ur=6,gr=7,wr=8,br=9,fr=10,kr=11,yr=12,vr=13,jr=14,Sr=15,xr=16,Cr=17,zr=18,Lr=19,Ar=20,Ir=21,Tr=22,Rr=23,Er=24,Dr=25;function Mr(n){return n>=48&&n<=57}function Br(n){return Mr(n)||n>=65&&n<=70||n>=97&&n<=102}function Nr(n){return n>=65&&n<=90}function Pr(n){return function(n){return Nr(n)||function(n){return n>=97&&n<=122}(n)}(n)||function(n){return n>=128}(n)||95===n}function Or(n){return Pr(n)||Mr(n)||45===n}function _r(n){return n>=0&&n<=8||11===n||n>=14&&n<=31||127===n}function Fr(n){return 10===n||13===n||12===n}function qr(n){return Fr(n)||32===n||9===n}function Ur(n,e){return!(92!==n||Fr(e)||0===e)}function Hr(n,e,t){return 45===n?Pr(e)||45===e||Ur(e,t):!!Pr(n)||92===n&&Ur(n,e)}function Gr(n,e,t){return 43===n||45===n?Mr(e)?2:46===e&&Mr(t)?3:0:46===n?Mr(e)?2:0:Mr(n)?1:0}function Wr(n){return 65279===n||65534===n?1:0}var Vr=new Array(128),Kr=130,Jr=131,Yr=132,Zr=133;for(let n=0;n<Vr.length;n++)Vr[n]=qr(n)&&Kr||Mr(n)&&Jr||Pr(n)&&Yr||_r(n)&&Zr||n||128;function $r(n){return n<128?Vr[n]:Yr}function Xr(n,e){return e<n.length?n.charCodeAt(e):0}function Qr(n,e,t){return 13===t&&10===Xr(n,e+1)?2:1}function ns(n,e,t){let a=n.charCodeAt(e);return Nr(a)&&(a|=32),a===t}function es(n,e,t,a){if(t-e!==a.length||e<0||t>n.length)return!1;for(let o=e;o<t;o++){let t=a.charCodeAt(o-e),i=n.charCodeAt(o);if(Nr(i)&&(i|=32),i!==t)return!1}return!0}function ts(n,e){for(;e<n.length&&qr(n.charCodeAt(e));e++);return e}function as(n,e){for(;e<n.length&&Mr(n.charCodeAt(e));e++);return e}function os(n,e){if(Br(Xr(n,(e+=2)-1))){for(let t=Math.min(n.length,e+5);e<t&&Br(Xr(n,e));e++);let t=Xr(n,e);qr(t)&&(e+=Qr(n,e,t))}return e}function is(n,e){for(;e<n.length;e++){let t=n.charCodeAt(e);if(!Or(t)){if(Ur(t,Xr(n,e+1))){e=os(n,e)-1;continue}break}}return e}function rs(n,e){let t=n.charCodeAt(e);if((43===t||45===t)&&(t=n.charCodeAt(e+=1)),Mr(t)&&(e=as(n,e+1),t=n.charCodeAt(e)),46===t&&Mr(n.charCodeAt(e+1))&&(e=as(n,e+=2)),ns(n,e,101)){let a=0;t=n.charCodeAt(e+1),(45===t||43===t)&&(a=1,t=n.charCodeAt(e+2)),Mr(t)&&(e=as(n,e+1+a+1))}return e}function ss(n,e){for(;e<n.length;e++){let t=n.charCodeAt(e);if(41===t){e++;break}Ur(t,Xr(n,e+1))&&(e=os(n,e))}return e}function ls(n){if(1===n.length&&!Br(n.charCodeAt(0)))return n[0];let e=parseInt(n,16);return(0===e||e>=55296&&e<=57343||e>1114111)&&(e=65533),String.fromCodePoint(e)}var cs=["EOF-token","ident-token","function-token","at-keyword-token","hash-token","string-token","bad-string-token","url-token","bad-url-token","delim-token","number-token","percentage-token","dimension-token","whitespace-token","CDO-token","CDC-token","colon-token","semicolon-token","comma-token","[-token","]-token","(-token",")-token","{-token","}-token","comment-token"];function ms(n=null,e){return null===n||n.length<e?new Uint32Array(Math.max(e+1024,16384)):n}function ds(n){let e=n.source,t=e.length,a=e.length>0?Wr(e.charCodeAt(0)):0,o=ms(n.lines,t),i=ms(n.columns,t),r=n.startLine,s=n.startColumn;for(let n=a;n<t;n++){let a=e.charCodeAt(n);o[n]=r,i[n]=s++,(10===a||13===a||12===a)&&(13===a&&n+1<t&&10===e.charCodeAt(n+1)&&(n++,o[n]=r,i[n]=s),r++,s=1)}o[t]=r,i[t]=s,n.lines=o,n.columns=i,n.computed=!0}var hs=class{constructor(){this.lines=null,this.columns=null,this.computed=!1}setSource(n,e=0,t=1,a=1){this.source=n,this.startOffset=e,this.startLine=t,this.startColumn=a,this.computed=!1}getLocation(n,e){return this.computed||ds(this),{source:e,offset:this.startOffset+n,line:this.lines[n],column:this.columns[n]}}getLocationRange(n,e,t){return this.computed||ds(this),{source:t,start:{offset:this.startOffset+n,line:this.lines[n],column:this.columns[n]},end:{offset:this.startOffset+e,line:this.lines[e],column:this.columns[e]}}}},ps=16777215,us=24,gs=new Map([[2,22],[21,22],[19,20],[23,24]]),ws=class{constructor(n,e){this.setSource(n,e)}reset(){this.eof=!1,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset}setSource(n="",e=()=>{}){let t=(n=String(n||"")).length,a=ms(this.offsetAndType,n.length+1),o=ms(this.balance,n.length+1),i=0,r=0,s=0,l=-1;for(this.offsetAndType=null,this.balance=null,e(n,((n,e,c)=>{switch(n){default:o[i]=t;break;case r:{let n=s&ps;for(s=o[n],r=s>>us,o[i]=n,o[n++]=i;n<i;n++)o[n]===t&&(o[n]=i);break}case 21:case 2:case 19:case 23:o[i]=s,r=gs.get(n),s=r<<us|i}a[i++]=n<<us|c,-1===l&&(l=e)})),a[i]=0|t,o[i]=t,o[t]=t;0!==s;){let n=s&ps;s=o[n],o[n]=t}this.source=n,this.firstCharOffset=-1===l?0:l,this.tokenCount=i,this.offsetAndType=a,this.balance=o,this.reset(),this.next()}lookupType(n){return(n+=this.tokenIndex)<this.tokenCount?this.offsetAndType[n]>>us:0}lookupOffset(n){return(n+=this.tokenIndex)<this.tokenCount?this.offsetAndType[n-1]&ps:this.source.length}lookupValue(n,e){return(n+=this.tokenIndex)<this.tokenCount&&es(this.source,this.offsetAndType[n-1]&ps,this.offsetAndType[n]&ps,e)}getTokenStart(n){return n===this.tokenIndex?this.tokenStart:n>0?n<this.tokenCount?this.offsetAndType[n-1]&ps:this.offsetAndType[this.tokenCount]&ps:this.firstCharOffset}substrToCursor(n){return this.source.substring(n,this.tokenStart)}isBalanceEdge(n){return this.balance[this.tokenIndex]<n}isDelim(n,e){return e?9===this.lookupType(e)&&this.source.charCodeAt(this.lookupOffset(e))===n:9===this.tokenType&&this.source.charCodeAt(this.tokenStart)===n}skip(n){let e=this.tokenIndex+n;e<this.tokenCount?(this.tokenIndex=e,this.tokenStart=this.offsetAndType[e-1]&ps,e=this.offsetAndType[e],this.tokenType=e>>us,this.tokenEnd=e&ps):(this.tokenIndex=this.tokenCount,this.next())}next(){let n=this.tokenIndex+1;n<this.tokenCount?(this.tokenIndex=n,this.tokenStart=this.tokenEnd,n=this.offsetAndType[n],this.tokenType=n>>us,this.tokenEnd=n&ps):(this.eof=!0,this.tokenIndex=this.tokenCount,this.tokenType=0,this.tokenStart=this.tokenEnd=this.source.length)}skipSC(){for(;13===this.tokenType||25===this.tokenType;)this.next()}skipUntilBalanced(n,e){let t,a,o=n;n:for(;o<this.tokenCount&&(t=this.balance[o],!(t<n));o++)switch(a=o>0?this.offsetAndType[o-1]&ps:this.firstCharOffset,e(this.source.charCodeAt(a))){case 1:break n;case 2:o++;break n;default:this.balance[t]===o&&(o=t)}this.skip(o-this.tokenIndex)}forEachToken(n){for(let e=0,t=this.firstCharOffset;e<this.tokenCount;e++){let a=t,o=this.offsetAndType[e],i=o&ps;t=i,n(o>>us,a,i,e)}}dump(){let n=new Array(this.tokenCount);return this.forEachToken(((e,t,a,o)=>{n[o]={idx:o,type:cs[e],chunk:this.source.substring(t,a),balance:this.balance[o]}})),n}};function bs(n,e){function t(e){return e<s?n.charCodeAt(e):0}function a(){return c=rs(n,c),Hr(t(c),t(c+1),t(c+2))?(r=12,void(c=is(n,c))):37===t(c)?(r=11,void c++):void(r=10)}function o(){let e=c;return c=is(n,c),es(n,e,c,"url")&&40===t(c)?(c=ts(n,c+1),34===t(c)||39===t(c)?(r=2,void(c=e+4)):void function(){for(r=7,c=ts(n,c);c<n.length;c++){let e=n.charCodeAt(c);switch($r(e)){case 41:return void c++;case Kr:return c=ts(n,c),41===t(c)||c>=n.length?void(c<n.length&&c++):(c=ss(n,c),void(r=8));case 34:case 39:case 40:case Zr:return c=ss(n,c),void(r=8);case 92:if(Ur(e,t(c+1))){c=os(n,c)-1;break}return c=ss(n,c),void(r=8)}}}()):40===t(c)?(r=2,void c++):void(r=1)}function i(e){for(e||(e=t(c++)),r=5;c<n.length;c++){let a=n.charCodeAt(c);switch($r(a)){case e:return void c++;case Kr:if(Fr(a))return c+=Qr(n,c,a),void(r=6);break;case 92:if(c===n.length-1)break;let o=t(c+1);Fr(o)?c+=Qr(n,c+1,o):Ur(a,o)&&(c=os(n,c)-1)}}}let r,s=(n=String(n||"")).length,l=Wr(t(0)),c=l;for(;c<s;){let s=n.charCodeAt(c);switch($r(s)){case Kr:r=13,c=ts(n,c+1);break;case 34:i();break;case 35:Or(t(c+1))||Ur(t(c+1),t(c+2))?(r=4,c=is(n,c+1)):(r=9,c++);break;case 39:i();break;case 40:r=21,c++;break;case 41:r=22,c++;break;case 43:Gr(s,t(c+1),t(c+2))?a():(r=9,c++);break;case 44:r=18,c++;break;case 45:Gr(s,t(c+1),t(c+2))?a():45===t(c+1)&&62===t(c+2)?(r=15,c+=3):Hr(s,t(c+1),t(c+2))?o():(r=9,c++);break;case 46:Gr(s,t(c+1),t(c+2))?a():(r=9,c++);break;case 47:42===t(c+1)?(r=25,c=n.indexOf("*/",c+2),c=-1===c?n.length:c+2):(r=9,c++);break;case 58:r=16,c++;break;case 59:r=17,c++;break;case 60:33===t(c+1)&&45===t(c+2)&&45===t(c+3)?(r=14,c+=4):(r=9,c++);break;case 64:Hr(t(c+1),t(c+2),t(c+3))?(r=3,c=is(n,c+1)):(r=9,c++);break;case 91:r=19,c++;break;case 92:Ur(s,t(c+1))?o():(r=9,c++);break;case 93:r=20,c++;break;case 123:r=23,c++;break;case 125:r=24,c++;break;case Jr:a();break;case Yr:o();break;default:r=9,c++}e(r,l,l=c)}}var fs=null,ks=class{static createItem(n){return{prev:null,next:null,data:n}}constructor(){this.head=null,this.tail=null,this.cursor=null}createItem(n){return ks.createItem(n)}allocateCursor(n,e){let t;return null!==fs?(t=fs,fs=fs.cursor,t.prev=n,t.next=e,t.cursor=this.cursor):t={prev:n,next:e,cursor:this.cursor},this.cursor=t,t}releaseCursor(){let{cursor:n}=this;this.cursor=n.cursor,n.prev=null,n.next=null,n.cursor=fs,fs=n}updateCursors(n,e,t,a){let{cursor:o}=this;for(;null!==o;)o.prev===n&&(o.prev=e),o.next===t&&(o.next=a),o=o.cursor}*[Symbol.iterator](){for(let n=this.head;null!==n;n=n.next)yield n.data}get size(){let n=0;for(let e=this.head;null!==e;e=e.next)n++;return n}get isEmpty(){return null===this.head}get first(){return this.head&&this.head.data}get last(){return this.tail&&this.tail.data}fromArray(n){let e=null;this.head=null;for(let t of n){let n=ks.createItem(t);null!==e?e.next=n:this.head=n,n.prev=e,e=n}return this.tail=e,this}toArray(){return[...this]}toJSON(){return[...this]}forEach(n,e=this){let t=this.allocateCursor(null,this.head);for(;null!==t.next;){let a=t.next;t.next=a.next,n.call(e,a.data,a,this)}this.releaseCursor()}forEachRight(n,e=this){let t=this.allocateCursor(this.tail,null);for(;null!==t.prev;){let a=t.prev;t.prev=a.prev,n.call(e,a.data,a,this)}this.releaseCursor()}reduce(n,e,t=this){let a,o=this.allocateCursor(null,this.head),i=e;for(;null!==o.next;)a=o.next,o.next=a.next,i=n.call(t,i,a.data,a,this);return this.releaseCursor(),i}reduceRight(n,e,t=this){let a,o=this.allocateCursor(this.tail,null),i=e;for(;null!==o.prev;)a=o.prev,o.prev=a.prev,i=n.call(t,i,a.data,a,this);return this.releaseCursor(),i}some(n,e=this){for(let t=this.head;null!==t;t=t.next)if(n.call(e,t.data,t,this))return!0;return!1}map(n,e=this){let t=new ks;for(let a=this.head;null!==a;a=a.next)t.appendData(n.call(e,a.data,a,this));return t}filter(n,e=this){let t=new ks;for(let a=this.head;null!==a;a=a.next)n.call(e,a.data,a,this)&&t.appendData(a.data);return t}nextUntil(n,e,t=this){if(null===n)return;let a=this.allocateCursor(null,n);for(;null!==a.next;){let n=a.next;if(a.next=n.next,e.call(t,n.data,n,this))break}this.releaseCursor()}prevUntil(n,e,t=this){if(null===n)return;let a=this.allocateCursor(n,null);for(;null!==a.prev;){let n=a.prev;if(a.prev=n.prev,e.call(t,n.data,n,this))break}this.releaseCursor()}clear(){this.head=null,this.tail=null}copy(){let n=new ks;for(let e of this)n.appendData(e);return n}prepend(n){return this.updateCursors(null,n,this.head,n),null!==this.head?(this.head.prev=n,n.next=this.head):this.tail=n,this.head=n,this}prependData(n){return this.prepend(ks.createItem(n))}append(n){return this.insert(n)}appendData(n){return this.insert(ks.createItem(n))}insert(n,e=null){if(null!==e)if(this.updateCursors(e.prev,n,e,n),null===e.prev){if(this.head!==e)throw new Error("before doesn't belong to list");this.head=n,e.prev=n,n.next=e,this.updateCursors(null,n)}else e.prev.next=n,n.prev=e.prev,e.prev=n,n.next=e;else this.updateCursors(this.tail,n,null,n),null!==this.tail?(this.tail.next=n,n.prev=this.tail):this.head=n,this.tail=n;return this}insertData(n,e){return this.insert(ks.createItem(n),e)}remove(n){if(this.updateCursors(n,n.prev,n,n.next),null!==n.prev)n.prev.next=n.next;else{if(this.head!==n)throw new Error("item doesn't belong to list");this.head=n.next}if(null!==n.next)n.next.prev=n.prev;else{if(this.tail!==n)throw new Error("item doesn't belong to list");this.tail=n.prev}return n.prev=null,n.next=null,n}push(n){this.insert(ks.createItem(n))}pop(){return null!==this.tail?this.remove(this.tail):null}unshift(n){this.prepend(ks.createItem(n))}shift(){return null!==this.head?this.remove(this.head):null}prependList(n){return this.insertList(n,this.head)}appendList(n){return this.insertList(n)}insertList(n,e){return null===n.head||(null!=e?(this.updateCursors(e.prev,n.tail,e,n.head),null!==e.prev?(e.prev.next=n.head,n.head.prev=e.prev):this.head=n.head,e.prev=n.tail,n.tail.next=e):(this.updateCursors(this.tail,n.tail,null,n.head),null!==this.tail?(this.tail.next=n.head,n.head.prev=this.tail):this.head=n.head,this.tail=n.tail),n.head=null,n.tail=null),this}replace(n,e){"head"in e?this.insertList(e,n):this.insert(e,n),this.remove(n)}};function ys(n,e){let t=Object.create(SyntaxError.prototype),a=new Error;return Object.assign(t,{name:n,message:e,get stack(){return(a.stack||"").replace(/^(.+\n){1,3}/,`${n}: ${e}\n`)}})}var vs=100,js=60,Ss=" ";function xs({source:n,line:e,column:t},a){function o(n,e){return i.slice(n,e).map(((e,t)=>String(n+t+1).padStart(l)+" |"+e)).join("\n")}let i=n.split(/\r\n?|\n|\f/),r=Math.max(1,e-a)-1,s=Math.min(e+a,i.length+1),l=Math.max(4,String(s).length)+1,c=0;(t+=(Ss.length-1)*(i[e-1].substr(0,t-1).match(/\t/g)||[]).length)>vs&&(c=t-js+3,t=js-2);for(let n=r;n<=s;n++)n>=0&&n<i.length&&(i[n]=i[n].replace(/\t/g,Ss),i[n]=(c>0&&i[n].length>c?"…":"")+i[n].substr(c,vs-2)+(i[n].length>c+vs-1?"…":""));return[o(r,e),new Array(t+l+2).join("-")+"^",o(e,s)].filter(Boolean).join("\n")}function Cs(n,e,t,a,o){return Object.assign(ys("SyntaxError",n),{source:e,offset:t,line:a,column:o,sourceFragment:n=>xs({source:e,line:a,column:o},isNaN(n)?0:n),get formattedMessage(){return`Parse error: ${n}\n`+xs({source:e,line:a,column:o},2)}})}function zs(n){let e=this.createList(),t=!1,a={recognizer:n};for(;!this.eof;){switch(this.tokenType){case 25:this.next();continue;case 13:t=!0,this.next();continue}let o=n.getNode.call(this,a);if(void 0===o)break;t&&(n.onWhiteSpace&&n.onWhiteSpace.call(this,o,e,a),t=!1),e.push(o)}return t&&n.onWhiteSpace&&n.onWhiteSpace.call(this,null,e,a),e}var Ls=()=>{},As=33,Is=35,Ts=59,Rs=123,Es=0;function Ds(n){return function(){return this[n]()}}function Ms(n){let e=Object.create(null);for(let t in n){let a=n[t],o=a.parse||a;o&&(e[t]=o)}return e}function Bs(n){let e="",t="<unknown>",a=!1,o=Ls,i=!1,r=new hs,s=Object.assign(new ws,function(n){let e={context:Object.create(null),scope:Object.assign(Object.create(null),n.scope),atrule:Ms(n.atrule),pseudo:Ms(n.pseudo),node:Ms(n.node)};for(let t in n.parseContext)switch(typeof n.parseContext[t]){case"function":e.context[t]=n.parseContext[t];break;case"string":e.context[t]=Ds(n.parseContext[t])}return{config:e,...e,...e.node}}(n||{}),{parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:zs,consumeUntilBalanceEnd:()=>0,consumeUntilLeftCurlyBracket:n=>n===Rs?1:0,consumeUntilLeftCurlyBracketOrSemicolon:n=>n===Rs||n===Ts?1:0,consumeUntilExclamationMarkOrSemicolon:n=>n===As||n===Ts?1:0,consumeUntilSemicolonIncluded:n=>n===Ts?2:0,createList:()=>new ks,createSingleNodeList:n=>(new ks).appendData(n),getFirstListNode:n=>n&&n.first,getLastListNode:n=>n&&n.last,parseWithFallback(n,e){let t=this.tokenIndex;try{return n.call(this)}catch(n){if(i)throw n;let a=e.call(this,t);return i=!0,o(n,a),i=!1,a}},lookupNonWSType(n){let e;do{if(e=this.lookupType(n++),13!==e)return e}while(e!==Es);return Es},charCodeAt:n=>n>=0&&n<e.length?e.charCodeAt(n):0,substring:(n,t)=>e.substring(n,t),substrToCursor(n){return this.source.substring(n,this.tokenStart)},cmpChar:(n,t)=>ns(e,n,t),cmpStr:(n,t,a)=>es(e,n,t,a),consume(n){let e=this.tokenStart;return this.eat(n),this.substrToCursor(e)},consumeFunctionName(){let n=e.substring(this.tokenStart,this.tokenEnd-1);return this.eat(2),n},consumeNumber(n){let t=e.substring(this.tokenStart,rs(e,this.tokenStart));return this.eat(n),t},eat(n){if(this.tokenType!==n){let e=cs[n].slice(0,-6).replace(/-/g," ").replace(/^./,(n=>n.toUpperCase())),t=`${/[[\](){}]/.test(e)?`"${e}"`:e} is expected`,a=this.tokenStart;switch(n){case 1:2===this.tokenType||7===this.tokenType?(a=this.tokenEnd-1,t="Identifier is expected but function found"):t="Identifier is expected";break;case 4:this.isDelim(Is)&&(this.next(),a++,t="Name is expected");break;case 11:10===this.tokenType&&(a=this.tokenEnd,t="Percent sign is expected")}this.error(t,a)}this.next()},eatIdent(n){(1!==this.tokenType||!1===this.lookupValue(0,n))&&this.error(`Identifier "${n}" is expected`),this.next()},eatDelim(n){this.isDelim(n)||this.error(`Delim "${String.fromCharCode(n)}" is expected`),this.next()},getLocation:(n,e)=>a?r.getLocationRange(n,e,t):null,getLocationFromList(n){if(a){let e=this.getFirstListNode(n),a=this.getLastListNode(n);return r.getLocationRange(null!==e?e.loc.start.offset-r.startOffset:this.tokenStart,null!==a?a.loc.end.offset-r.startOffset:this.tokenStart,t)}return null},error(n,t){let a=typeof t<"u"&&t<e.length?r.getLocation(t):this.eof?r.getLocation(function(n,e){for(;e>=0&&qr(n.charCodeAt(e));e--);return e+1}(e,e.length-1)):r.getLocation(this.tokenStart);throw new Cs(n||"Unexpected input",e,a.offset,a.line,a.column)}});return Object.assign((function(n,l){e=n,l=l||{},s.setSource(e,bs),r.setSource(e,l.offset,l.line,l.column),t=l.filename||"<unknown>",a=Boolean(l.positions),o="function"==typeof l.onParseError?l.onParseError:Ls,i=!1,s.parseAtrulePrelude=!("parseAtrulePrelude"in l)||Boolean(l.parseAtrulePrelude),s.parseRulePrelude=!("parseRulePrelude"in l)||Boolean(l.parseRulePrelude),s.parseValue=!("parseValue"in l)||Boolean(l.parseValue),s.parseCustomProperty="parseCustomProperty"in l&&Boolean(l.parseCustomProperty);let{context:c="default",onComment:m}=l;if(!(c in s.context))throw new Error("Unknown context `"+c+"`");"function"==typeof m&&s.forEachToken(((n,t,a)=>{if(25===n){let n=s.getLocation(t,a),o=es(e,a-2,a,"*/")?e.slice(t+2,a-2):e.slice(t+2,a);m(o,n)}}));let d=s.context[c].call(s,l);return s.eof||s.error(),d}),{SyntaxError:Cs,config:s.config})}var Ns=((n,e,t)=>(t=null!=n?Ji(Xi(n)):{},((n,e,t,a)=>{if(e&&"object"==typeof e||"function"==typeof e)for(let o of $i(e))!Qi.call(n,o)&&o!==t&&Yi(n,o,{get:()=>e[o],enumerable:!(a=Zi(e,o))||a.enumerable});return n})(!e&&n&&n.__esModule?t:Yi(t,"default",{value:n,enumerable:!0}),n)))(sr(),1),Ps=new Set(["Atrule","Selector","Declaration"]);var Os={};er(Os,{safe:()=>Gs,spec:()=>Hs});var _s=(n,e)=>{if(9===n&&(n=e),"string"==typeof n){let e=n.charCodeAt(0);return e>127?32768:e<<8}return n},Fs=[[1,1],[1,2],[1,7],[1,8],[1,"-"],[1,10],[1,11],[1,12],[1,15],[1,21],[3,1],[3,2],[3,7],[3,8],[3,"-"],[3,10],[3,11],[3,12],[3,15],[4,1],[4,2],[4,7],[4,8],[4,"-"],[4,10],[4,11],[4,12],[4,15],[12,1],[12,2],[12,7],[12,8],[12,"-"],[12,10],[12,11],[12,12],[12,15],["#",1],["#",2],["#",7],["#",8],["#","-"],["#",10],["#",11],["#",12],["#",15],["-",1],["-",2],["-",7],["-",8],["-","-"],["-",10],["-",11],["-",12],["-",15],[10,1],[10,2],[10,7],[10,8],[10,10],[10,11],[10,12],[10,"%"],[10,15],["@",1],["@",2],["@",7],["@",8],["@","-"],["@",15],[".",10],[".",11],[".",12],["+",10],["+",11],["+",12],["/","*"]],qs=Fs.concat([[1,4],[12,4],[4,4],[3,21],[3,5],[3,16],[11,11],[11,12],[11,2],[11,"-"],[22,1],[22,2],[22,11],[22,12],[22,4],[22,"-"]]);function Us(n){let e=new Set(n.map((([n,e])=>_s(n)<<16|_s(e))));return function(n,t,a){let o=_s(t,a),i=a.charCodeAt(0);return(45===i&&1!==t&&2!==t&&15!==t||43===i?e.has(n<<16|i<<8):e.has(n<<16|o))&&this.emit(" ",13,!0),o}}var Hs=Us(Fs),Gs=Us(qs),Ws=92;function Vs(n,e){if("function"!=typeof e)n.children.forEach(this.node,this);else{let t=null;n.children.forEach((n=>{null!==t&&e.call(this,t),this.node(n),t=n}))}}function Ks(n){bs(n,((e,t,a)=>{this.token(e,n.slice(t,a))}))}function Js(n){let e=new Map;for(let t in n.node){let a=n.node[t];"function"==typeof(a.generate||a)&&e.set(t,a.generate||a)}return function(n,t){let a="",o=0,i={node(n){if(!e.has(n.type))throw new Error("Unknown node type: "+n.type);e.get(n.type).call(r,n)},tokenBefore:Gs,token(n,e){o=this.tokenBefore(o,n,e),this.emit(e,n,!1),9===n&&e.charCodeAt(0)===Ws&&this.emit("\n",13,!0)},emit(n){a+=n},result:()=>a};t&&("function"==typeof t.decorator&&(i=t.decorator(i)),t.sourceMap&&(i=function(n){let e=new Ns.SourceMapGenerator,t={line:1,column:0},a={line:0,column:0},o={line:1,column:0},i={generated:o},r=1,s=0,l=!1,c=n.node;n.node=function(n){if(n.loc&&n.loc.start&&Ps.has(n.type)){let c=n.loc.start.line,m=n.loc.start.column-1;(a.line!==c||a.column!==m)&&(a.line=c,a.column=m,t.line=r,t.column=s,l&&(l=!1,(t.line!==o.line||t.column!==o.column)&&e.addMapping(i)),l=!0,e.addMapping({source:n.loc.source,original:a,generated:t}))}c.call(this,n),l&&Ps.has(n.type)&&(o.line=r,o.column=s)};let m=n.emit;n.emit=function(n,e,t){for(let e=0;e<n.length;e++)10===n.charCodeAt(e)?(r++,s=0):s++;m(n,e,t)};let d=n.result;return n.result=function(){return l&&e.addMapping(i),{css:d(),map:e}},n}(i)),t.mode in Os&&(i.tokenBefore=Os[t.mode]));let r={node:n=>i.node(n),children:Vs,token:(n,e)=>i.token(n,e),tokenize:Ks};return i.node(n),i.result()}}var{hasOwnProperty:Ys}=Object.prototype,Zs=function(){};function $s(n){return"function"==typeof n?n:Zs}function Xs(n,e){return function(t,a,o){t.type===e&&n.call(this,t,a,o)}}function Qs(n,e){let t=e.structure,a=[];for(let n in t){if(!1===Ys.call(t,n))continue;let e=t[n],o={name:n,type:!1,nullable:!1};Array.isArray(e)||(e=[e]);for(let n of e)null===n?o.nullable=!0:"string"==typeof n?o.type="node":Array.isArray(n)&&(o.type="list");o.type&&a.push(o)}return a.length?{context:e.walkContext,fields:a}:null}function nl(n,e){let t=n.fields.slice(),a=n.context,o="string"==typeof a;return e&&t.reverse(),function(n,i,r,s){let l;o&&(l=i[a],i[a]=n);for(let a of t){let t=n[a.name];if(!a.nullable||t)if("list"===a.type){if(e?t.reduceRight(s,!1):t.reduce(s,!1))return!0}else if(r(t))return!0}o&&(i[a]=l)}}function el({StyleSheet:n,Atrule:e,Rule:t,Block:a,DeclarationList:o}){return{Atrule:{StyleSheet:n,Atrule:e,Rule:t,Block:a},Rule:{StyleSheet:n,Atrule:e,Rule:t,Block:a},Declaration:{StyleSheet:n,Atrule:e,Rule:t,Block:a,DeclarationList:o}}}function tl(n){let e=function(n){let e={};for(let t in n.node)if(Ys.call(n.node,t)){let a=n.node[t];if(!a.structure)throw new Error("Missed `structure` field in `"+t+"` node type definition");e[t]=Qs(0,a)}return e}(n),t={},a={},o=Symbol("break-walk"),i=Symbol("skip-node");for(let n in e)Ys.call(e,n)&&null!==e[n]&&(t[n]=nl(e[n],!1),a[n]=nl(e[n],!0));let r=el(t),s=el(a),l=function(n,l){function c(n,e,t){let a=m.call(u,n,e,t);return a===o||a!==i&&!!(h.hasOwnProperty(n.type)&&h[n.type](n,u,c,p)||d.call(u,n,e,t)===o)}let m=Zs,d=Zs,h=t,p=(n,e,t,a)=>n||c(e,t,a),u={break:o,skip:i,root:n,stylesheet:null,atrule:null,atrulePrelude:null,rule:null,selector:null,block:null,declaration:null,function:null};if("function"==typeof l)m=l;else if(l&&(m=$s(l.enter),d=$s(l.leave),l.reverse&&(h=a),l.visit)){if(r.hasOwnProperty(l.visit))h=l.reverse?s[l.visit]:r[l.visit];else if(!e.hasOwnProperty(l.visit))throw new Error("Bad value `"+l.visit+"` for `visit` option (should be: "+Object.keys(e).sort().join(", ")+")");m=Xs(m,l.visit),d=Xs(d,l.visit)}if(m===Zs&&d===Zs)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");c(n)};return l.break=o,l.skip=i,l.find=function(n,e){let t=null;return l(n,(function(n,a,i){if(e.call(this,n,a,i))return t=n,o})),t},l.findLast=function(n,e){let t=null;return l(n,{reverse:!0,enter(n,a,i){if(e.call(this,n,a,i))return t=n,o}}),t},l.findAll=function(n,e){let t=[];return l(n,(function(n,a,o){e.call(this,n,a,o)&&t.push(n)})),t},l}function al(n){return n}function ol(n,e,t,a){let o;switch(n.type){case"Group":o=function(n,e,t,a){let o=" "===n.combinator||a?n.combinator:" "+n.combinator+" ",i=n.terms.map((n=>ol(n,e,t,a))).join(o);return n.explicit||t?(a||","===i[0]?"[":"[ ")+i+(a?"]":" ]"):i}(n,e,t,a)+(n.disallowEmpty?"!":"");break;case"Multiplier":return ol(n.term,e,t,a)+e(function(n){let{min:e,max:t,comma:a}=n;return 0===e&&0===t?a?"#?":"*":0===e&&1===t?"?":1===e&&0===t?a?"#":"+":1===e&&1===t?"":(a?"#":"")+(e===t?"{"+e+"}":"{"+e+","+(0!==t?t:"")+"}")}(n),n);case"Type":o="<"+n.name+(n.opts?e(function(n){if("Range"===n.type)return" ["+(null===n.min?"-∞":n.min)+","+(null===n.max?"∞":n.max)+"]";throw new Error("Unknown node type `"+n.type+"`")}(n.opts),n.opts):"")+">";break;case"Property":o="<'"+n.name+"'>";break;case"Keyword":o=n.name;break;case"AtKeyword":o="@"+n.name;break;case"Function":o=n.name+"(";break;case"String":case"Token":o=n.value;break;case"Comma":o=",";break;default:throw new Error("Unknown node type `"+n.type+"`")}return e(o,n)}function il(n,e){let t=al,a=!1,o=!1;return"function"==typeof e?t=e:e&&(a=Boolean(e.forceBraces),o=Boolean(e.compact),"function"==typeof e.decorate&&(t=e.decorate)),ol(n,t,a,o)}var rl={offset:0,line:1,column:1};function sl(n,e){let t=n&&n.loc&&n.loc[e];return t?"line"in t?ll(t):t:null}function ll({offset:n,line:e,column:t},a){let o={offset:n,line:e,column:t};if(a){let n=a.split(/\n|\r\n?|\f/);o.offset+=a.length,o.line+=n.length-1,o.column=1===n.length?o.column+a.length:n.pop().length+1}return o}var cl=function(n,e){let t=ys("SyntaxReferenceError",n+(e?" `"+e+"`":""));return t.reference=e,t},ml=function(n,e,t,a){let o=ys("SyntaxMatchError",n),{css:i,mismatchOffset:r,mismatchLength:s,start:l,end:c}=function(n,e){let t,a,o=n.tokens,i=n.longestMatch,r=i<o.length&&o[i].node||null,s=r!==e?r:null,l=0,c=0,m=0,d="";for(let n=0;n<o.length;n++){let e=o[n].value;n===i&&(c=e.length,l=d.length),null!==s&&o[n].node===s&&(n<=i?m++:m=0),d+=e}return i===o.length||m>1?(t=sl(s||e,"end")||ll(rl,d),a=ll(t)):(t=sl(s,"start")||ll(sl(e,"start")||rl,d.slice(0,l)),a=sl(s,"end")||ll(t,d.substr(l,c))),{css:d,mismatchOffset:l,mismatchLength:c,start:t,end:a}}(a,t);return o.rawMessage=n,o.syntax=e?il(e):"<generic>",o.css=i,o.mismatchOffset=r,o.mismatchLength=s,o.message=n+"\n syntax: "+o.syntax+"\n value: "+(i||"<empty string>")+"\n --------"+new Array(o.mismatchOffset+1).join("-")+"^",Object.assign(o,l),o.loc={source:t&&t.loc&&t.loc.source||"<unknown>",start:l,end:c},o},dl=new Map,hl=new Map,pl=45,ul=function(n){if(dl.has(n))return dl.get(n);let e=n.toLowerCase(),t=dl.get(e);if(void 0===t){let n=wl(e,0),a=n?"":bl(e,0);t=Object.freeze({basename:e.substr(a.length),name:e,prefix:a,vendor:a,custom:n})}return dl.set(n,t),t},gl=function(n){if(hl.has(n))return hl.get(n);let e=n,t=n[0];"/"===t?t="/"===n[1]?"//":"/":"_"!==t&&"*"!==t&&"$"!==t&&"#"!==t&&"+"!==t&&"&"!==t&&(t="");let a=wl(e,t.length);if(!a&&(e=e.toLowerCase(),hl.has(e))){let t=hl.get(e);return hl.set(n,t),t}let o=a?"":bl(e,t.length),i=e.substr(0,t.length+o.length),r=Object.freeze({basename:e.substr(i.length),name:e.substr(t.length),hack:t,vendor:o,prefix:i,custom:a});return hl.set(n,r),r};function wl(n,e){return e=e||0,n.length-e>=2&&n.charCodeAt(e)===pl&&n.charCodeAt(e+1)===pl}function bl(n,e){if(e=e||0,n.length-e>=3&&n.charCodeAt(e)===pl&&n.charCodeAt(e+1)!==pl){let t=n.indexOf("-",e+2);if(-1!==t)return n.substring(e,t+1)}return""}var fl=["initial","inherit","unset","revert","revert-layer"],kl=43,yl=45,vl=!0;function jl(n,e){return null!==n&&9===n.type&&n.value.charCodeAt(0)===e}function Sl(n,e,t){for(;null!==n&&(13===n.type||25===n.type);)n=t(++e);return e}function xl(n,e,t,a){if(!n)return 0;let o=n.value.charCodeAt(e);if(o===kl||o===yl){if(t)return 0;e++}for(;e<n.value.length;e++)if(!Mr(n.value.charCodeAt(e)))return 0;return a+1}function Cl(n,e,t){let a=!1,o=Sl(n,e,t);if(null===(n=t(o)))return e;if(10!==n.type){if(!jl(n,kl)&&!jl(n,yl))return e;if(a=!0,o=Sl(t(++o),o,t),null===(n=t(o))||10!==n.type)return 0}if(!a){let e=n.value.charCodeAt(0);if(e!==kl&&e!==yl)return 0}return xl(n,a?0:1,a,o)}var zl=45,Ll=63;function Al(n,e){return null!==n&&9===n.type&&n.value.charCodeAt(0)===e}function Il(n,e,t){let a=0;for(let o=e;o<n.value.length;o++){let i=n.value.charCodeAt(o);if(i===zl&&t&&0!==a)return Il(n,e+a+1,!1),6;if(!Br(i)||++a>6)return 0}return a}function Tl(n,e,t){if(!n)return 0;for(;Al(t(e),Ll);){if(++n>6)return 0;e++}return e}var Rl=["calc(","-moz-calc(","-webkit-calc("],El=new Map([[2,22],[21,22],[19,20],[23,24]]);function Dl(n,e){return e<n.length?n.charCodeAt(e):0}function Ml(n,e){return es(n,0,n.length,e)}function Bl(n,e){for(let t=0;t<e.length;t++)if(Ml(n,e[t]))return!0;return!1}function Nl(n,e){return e===n.length-2&&(92===Dl(n,e)&&Mr(Dl(n,e+1)))}function Pl(n,e,t){if(n&&"Range"===n.type){let a=Number(void 0!==t&&t!==e.length?e.substr(0,t):e);if(isNaN(a)||null!==n.min&&a<n.min&&"string"!=typeof n.min||null!==n.max&&a>n.max&&"string"!=typeof n.max)return!0}return!1}function Ol(n){return function(e,t,a){return null===e?0:2===e.type&&Bl(e.value,Rl)?function(n,e){let t=0,a=[],o=0;n:do{switch(n.type){case 24:case 22:case 20:if(n.type!==t)break n;if(t=a.pop(),0===a.length){o++;break n}break;case 2:case 21:case 19:case 23:a.push(t),t=El.get(n.type)}o++}while(n=e(o));return o}(e,t):n(e,t,a)}}function _l(n){return function(e){return null===e||e.type!==n?0:1}}function Fl(n){return n&&(n=new Set(n)),function(e,t,a){if(null===e||12!==e.type)return 0;let o=rs(e.value,0);if(null!==n){let t=e.value.indexOf("\\",o),a=-1!==t&&Nl(e.value,t)?e.value.substring(o,t):e.value.substr(o);if(!1===n.has(a.toLowerCase()))return 0}return Pl(a,e.value,o)?0:1}}function ql(n){return"function"!=typeof n&&(n=function(){return 0}),function(e,t,a){return null!==e&&10===e.type&&0===Number(e.value)?1:n(e,t,a)}}var Ul={"ident-token":_l(1),"function-token":_l(2),"at-keyword-token":_l(3),"hash-token":_l(4),"string-token":_l(5),"bad-string-token":_l(6),"url-token":_l(7),"bad-url-token":_l(8),"delim-token":_l(9),"number-token":_l(10),"percentage-token":_l(11),"dimension-token":_l(12),"whitespace-token":_l(13),"CDO-token":_l(14),"CDC-token":_l(15),"colon-token":_l(16),"semicolon-token":_l(17),"comma-token":_l(18),"[-token":_l(19),"]-token":_l(20),"(-token":_l(21),")-token":_l(22),"{-token":_l(23),"}-token":_l(24)},Hl={string:_l(5),ident:_l(1),percentage:Ol((function(n,e,t){return null===n||11!==n.type||Pl(t,n.value,n.value.length-1)?0:1})),zero:ql(),number:Ol((function(n,e,t){if(null===n)return 0;let a=rs(n.value,0);return a!==n.value.length&&!Nl(n.value,a)||Pl(t,n.value,a)?0:1})),integer:Ol((function(n,e,t){if(null===n||10!==n.type)return 0;let a=43===Dl(n.value,0)||45===Dl(n.value,0)?1:0;for(;a<n.value.length;a++)if(!Mr(Dl(n.value,a)))return 0;return Pl(t,n.value,a)?0:1})),"custom-ident":function(n){if(null===n||1!==n.type)return 0;let e=n.value.toLowerCase();return Bl(e,fl)||Ml(e,"default")?0:1},"custom-property-name":function(n){return null===n||1!==n.type||45!==Dl(n.value,0)||45!==Dl(n.value,1)?0:1},"hex-color":function(n){if(null===n||4!==n.type)return 0;let e=n.value.length;if(4!==e&&5!==e&&7!==e&&9!==e)return 0;for(let t=1;t<e;t++)if(!Br(Dl(n.value,t)))return 0;return 1},"id-selector":function(n){return null!==n&&4===n.type&&Hr(Dl(n.value,1),Dl(n.value,2),Dl(n.value,3))?1:0},"an-plus-b":function(n,e){let t=0;if(!n)return 0;if(10===n.type)return xl(n,0,false,t);if(1===n.type&&n.value.charCodeAt(0)===yl){if(!ns(n.value,1,110))return 0;switch(n.value.length){case 2:return Cl(e(++t),t,e);case 3:return n.value.charCodeAt(2)!==yl?0:(t=Sl(e(++t),t,e),xl(n=e(t),0,vl,t));default:return n.value.charCodeAt(2)!==yl?0:xl(n,3,vl,t)}}else if(1===n.type||jl(n,kl)&&1===e(t+1).type){if(1!==n.type&&(n=e(++t)),null===n||!ns(n.value,0,110))return 0;switch(n.value.length){case 1:return Cl(e(++t),t,e);case 2:return n.value.charCodeAt(1)!==yl?0:(t=Sl(e(++t),t,e),xl(n=e(t),0,vl,t));default:return n.value.charCodeAt(1)!==yl?0:xl(n,2,vl,t)}}else if(12===n.type){let a=n.value.charCodeAt(0),o=a===kl||a===yl?1:0,i=o;for(;i<n.value.length&&Mr(n.value.charCodeAt(i));i++);return i!==o&&ns(n.value,i,110)?i+1===n.value.length?Cl(e(++t),t,e):n.value.charCodeAt(i+1)!==yl?0:i+2===n.value.length?(t=Sl(e(++t),t,e),xl(n=e(t),0,vl,t)):xl(n,i+2,vl,t):0}return 0},urange:function(n,e){let t=0;if(null===n||1!==n.type||!ns(n.value,0,117)||null===(n=e(++t)))return 0;if(Al(n,43))return null===(n=e(++t))?0:1===n.type?Tl(Il(n,0,!0),++t,e):Al(n,Ll)?Tl(1,++t,e):0;if(10===n.type){let a=Il(n,1,!0);return 0===a?0:null===(n=e(++t))?t:12===n.type||10===n.type?function(n,e){return n.value.charCodeAt(0)===e}(n,zl)&&Il(n,1,!1)?t+1:0:Tl(a,t,e)}return 12===n.type?Tl(Il(n,1,!0),++t,e):0},"declaration-value":function(n,e){if(!n)return 0;let t=0,a=[],o=0;n:do{switch(n.type){case 6:case 8:break n;case 24:case 22:case 20:if(n.type!==t)break n;t=a.pop();break;case 17:if(0===t)break n;break;case 9:if(0===t&&"!"===n.value)break n;break;case 2:case 21:case 19:case 23:a.push(t),t=El.get(n.type)}o++}while(n=e(o));return o},"any-value":function(n,e){if(!n)return 0;let t=0,a=[],o=0;n:do{switch(n.type){case 6:case 8:break n;case 24:case 22:case 20:if(n.type!==t)break n;t=a.pop();break;case 2:case 21:case 19:case 23:a.push(t),t=El.get(n.type)}o++}while(n=e(o));return o}};function Gl(n){let{angle:e,decibel:t,frequency:a,flex:o,length:i,resolution:r,semitones:s,time:l}=n||{};return{dimension:Ol(Fl(null)),angle:Ol(Fl(e)),decibel:Ol(Fl(t)),frequency:Ol(Fl(a)),flex:Ol(Fl(o)),length:Ol(ql(Fl(i))),resolution:Ol(Fl(r)),semitones:Ol(Fl(s)),time:Ol(Fl(l))}}var Wl={};er(Wl,{angle:()=>Kl,decibel:()=>Xl,flex:()=>$l,frequency:()=>Yl,length:()=>Vl,resolution:()=>Zl,semitones:()=>Ql,time:()=>Jl});var Vl=["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],Kl=["deg","grad","rad","turn"],Jl=["s","ms"],Yl=["hz","khz"],Zl=["dpi","dpcm","dppx","x"],$l=["fr"],Xl=["db"],Ql=["st"];function nc(n,e,t){return Object.assign(ys("SyntaxError",n),{input:e,offset:t,rawMessage:n,message:n+"\n "+e+"\n--"+new Array((t||e.length)+1).join("-")+"^"})}er({},{SyntaxError:()=>nc,generate:()=>il,parse:()=>Fc,walk:()=>Hc});var ec=class{constructor(n){this.str=n,this.pos=0}charCodeAt(n){return n<this.str.length?this.str.charCodeAt(n):0}charCode(){return this.charCodeAt(this.pos)}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(n){return this.charCodeAt(this.findWsEnd(n))}findWsEnd(n){for(;n<this.str.length;n++){let e=this.str.charCodeAt(n);if(13!==e&&10!==e&&12!==e&&32!==e&&9!==e)break}return n}substringToPos(n){return this.str.substring(this.pos,this.pos=n)}eat(n){this.charCode()!==n&&this.error("Expect `"+String.fromCharCode(n)+"`"),this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(n){throw new nc(n,this.str,this.pos)}},tc=9,ac=10,oc=12,ic=13,rc=32,sc=33,lc=35,cc=38,mc=39,dc=40,hc=41,pc=42,uc=43,gc=44,wc=45,bc=60,fc=62,kc=63,yc=64,vc=91,jc=93,Sc=123,xc=124,Cc=125,zc=8734,Lc=new Uint8Array(128).map(((n,e)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(e))?1:0)),Ac={" ":1,"&&":2,"||":3,"|":4};function Ic(n){return n.substringToPos(n.findWsEnd(n.pos))}function Tc(n){let e=n.pos;for(;e<n.str.length;e++){let t=n.str.charCodeAt(e);if(t>=128||0===Lc[t])break}return n.pos===e&&n.error("Expect a keyword"),n.substringToPos(e)}function Rc(n){let e=n.pos;for(;e<n.str.length;e++){let t=n.str.charCodeAt(e);if(t<48||t>57)break}return n.pos===e&&n.error("Expect a number"),n.substringToPos(e)}function Ec(n){let e=n.str.indexOf("'",n.pos+1);return-1===e&&(n.pos=n.str.length,n.error("Expect an apostrophe")),n.substringToPos(e+1)}function Dc(n){let e=null,t=null;return n.eat(Sc),e=Rc(n),n.charCode()===gc?(n.pos++,n.charCode()!==Cc&&(t=Rc(n))):t=e,n.eat(Cc),{min:Number(e),max:t?Number(t):0}}function Mc(n,e){let t=function(n){let e=null,t=!1;switch(n.charCode()){case pc:n.pos++,e={min:0,max:0};break;case uc:n.pos++,e={min:1,max:0};break;case kc:n.pos++,e={min:0,max:1};break;case lc:n.pos++,t=!0,n.charCode()===Sc?e=Dc(n):n.charCode()===kc?(n.pos++,e={min:0,max:0}):e={min:1,max:0};break;case Sc:e=Dc(n);break;default:return null}return{type:"Multiplier",comma:t,min:e.min,max:e.max,term:null}}(n);return null!==t?(t.term=e,n.charCode()===lc&&n.charCodeAt(n.pos-1)===uc?Mc(n,t):t):e}function Bc(n){let e=n.peek();return""===e?null:{type:"Token",value:e}}function Nc(n){let e,t=null;return n.eat(bc),e=Tc(n),n.charCode()===dc&&n.nextCharCode()===hc&&(n.pos+=2,e+="()"),n.charCodeAt(n.findWsEnd(n.pos))===vc&&(Ic(n),t=function(n){let e=null,t=null,a=1;return n.eat(vc),n.charCode()===wc&&(n.peek(),a=-1),-1==a&&n.charCode()===zc?n.peek():(e=a*Number(Rc(n)),0!==Lc[n.charCode()]&&(e+=Tc(n))),Ic(n),n.eat(gc),Ic(n),n.charCode()===zc?n.peek():(a=1,n.charCode()===wc&&(n.peek(),a=-1),t=a*Number(Rc(n)),0!==Lc[n.charCode()]&&(t+=Tc(n))),n.eat(jc),{type:"Range",min:e,max:t}}(n)),n.eat(fc),Mc(n,{type:"Type",name:e,opts:t})}function Pc(n,e){function t(n,e){return{type:"Group",terms:n,combinator:e,disallowEmpty:!1,explicit:!1}}let a;for(e=Object.keys(e).sort(((n,e)=>Ac[n]-Ac[e]));e.length>0;){a=e.shift();let o=0,i=0;for(;o<n.length;o++){let e=n[o];"Combinator"===e.type&&(e.value===a?(-1===i&&(i=o-1),n.splice(o,1),o--):(-1!==i&&o-i>1&&(n.splice(i,o-i,t(n.slice(i,o),a)),o=i+1),i=-1))}-1!==i&&e.length&&n.splice(i,o-i,t(n.slice(i,o),a))}return a}function Oc(n){let e,t=[],a={},o=null,i=n.pos;for(;e=_c(n);)"Spaces"!==e.type&&("Combinator"===e.type?((null===o||"Combinator"===o.type)&&(n.pos=i,n.error("Unexpected combinator")),a[e.value]=!0):null!==o&&"Combinator"!==o.type&&(a[" "]=!0,t.push({type:"Combinator",value:" "})),t.push(e),o=e,i=n.pos);return null!==o&&"Combinator"===o.type&&(n.pos-=i,n.error("Unexpected combinator")),{type:"Group",terms:t,combinator:Pc(t,a)||" ",disallowEmpty:!1,explicit:!1}}function _c(n){let e=n.charCode();if(e<128&&1===Lc[e])return function(n){let e=Tc(n);return n.charCode()===dc?(n.pos++,{type:"Function",name:e}):Mc(n,{type:"Keyword",name:e})}(n);switch(e){case jc:break;case vc:return Mc(n,function(n){let e;return n.eat(vc),e=Oc(n),n.eat(jc),e.explicit=!0,n.charCode()===sc&&(n.pos++,e.disallowEmpty=!0),e}(n));case bc:return n.nextCharCode()===mc?function(n){let e;return n.eat(bc),n.eat(mc),e=Tc(n),n.eat(mc),n.eat(fc),Mc(n,{type:"Property",name:e})}(n):Nc(n);case xc:return{type:"Combinator",value:n.substringToPos(n.pos+(n.nextCharCode()===xc?2:1))};case cc:return n.pos++,n.eat(cc),{type:"Combinator",value:"&&"};case gc:return n.pos++,{type:"Comma"};case mc:return Mc(n,{type:"String",value:Ec(n)});case rc:case tc:case ac:case ic:case oc:return{type:"Spaces",value:Ic(n)};case yc:return e=n.nextCharCode(),e<128&&1===Lc[e]?(n.pos++,{type:"AtKeyword",name:Tc(n)}):Bc(n);case pc:case uc:case kc:case lc:case sc:break;case Sc:if(e=n.nextCharCode(),e<48||e>57)return Bc(n);break;default:return Bc(n)}}function Fc(n){let e=new ec(n),t=Oc(e);return e.pos!==n.length&&e.error("Unexpected input"),1===t.terms.length&&"Group"===t.terms[0].type?t.terms[0]:t}var qc=function(){};function Uc(n){return"function"==typeof n?n:qc}function Hc(n,e,t){let a=qc,o=qc;if("function"==typeof e?a=e:e&&(a=Uc(e.enter),o=Uc(e.leave)),a===qc&&o===qc)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");!function n(e){switch(a.call(t,e),e.type){case"Group":e.terms.forEach(n);break;case"Multiplier":n(e.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+e.type)}o.call(t,e)}(n)}var Gc={decorator(n){let e=[],t=null;return{...n,node(e){let a=t;t=e,n.node.call(this,e),t=a},emit(n,a,o){e.push({type:a,value:n,node:o?null:t})},result:()=>e}}};function Wc(n,e){return"string"==typeof n?function(n){let e=[];return bs(n,((t,a,o)=>e.push({type:t,value:n.slice(a,o),node:null}))),e}(n):e.generate(n,Gc)}var Vc={type:"Match"},Kc={type:"Mismatch"},Jc={type:"DisallowEmpty"},Yc=40,Zc=41;function $c(n,e,t){return e===Vc&&t===Kc||n===Vc&&e===Vc&&t===Vc?n:("If"===n.type&&n.else===Kc&&e===Vc&&(e=n.then,n=n.match),{type:"If",match:n,then:e,else:t})}function Xc(n){return n.length>2&&n.charCodeAt(n.length-2)===Yc&&n.charCodeAt(n.length-1)===Zc}function Qc(n){return"Keyword"===n.type||"AtKeyword"===n.type||"Function"===n.type||"Type"===n.type&&Xc(n.name)}function nm(n,e,t){switch(n){case" ":{let n=Vc;for(let t=e.length-1;t>=0;t--){n=$c(e[t],n,Kc)}return n}case"|":{let n=Kc,t=null;for(let a=e.length-1;a>=0;a--){let o=e[a];if(Qc(o)&&(null===t&&a>0&&Qc(e[a-1])&&(t=Object.create(null),n=$c({type:"Enum",map:t},Vc,n)),null!==t)){let n=(Xc(o.name)?o.name.slice(0,-1):o.name).toLowerCase();if(!(n in t)){t[n]=o;continue}}t=null,n=$c(o,Vc,n)}return n}case"&&":{if(e.length>5)return{type:"MatchOnce",terms:e,all:!0};let t=Kc;for(let a=e.length-1;a>=0;a--){let o,i=e[a];o=e.length>1?nm(n,e.filter((function(n){return n!==i})),!1):Vc,t=$c(i,o,t)}return t}case"||":{if(e.length>5)return{type:"MatchOnce",terms:e,all:!1};let a=t?Vc:Kc;for(let t=e.length-1;t>=0;t--){let o,i=e[t];o=e.length>1?nm(n,e.filter((function(n){return n!==i})),!0):Vc,a=$c(i,o,a)}return a}}}function em(n){if("function"==typeof n)return{type:"Generic",fn:n};switch(n.type){case"Group":{let e=nm(n.combinator,n.terms.map(em),!1);return n.disallowEmpty&&(e=$c(e,Jc,Kc)),e}case"Multiplier":return function(n){let e=Vc,t=em(n.term);if(0===n.max)t=$c(t,Jc,Kc),e=$c(t,null,Kc),e.then=$c(Vc,Vc,e),n.comma&&(e.then.else=$c({type:"Comma",syntax:n},e,Kc));else for(let a=n.min||1;a<=n.max;a++)n.comma&&e!==Vc&&(e=$c({type:"Comma",syntax:n},e,Kc)),e=$c(t,$c(Vc,Vc,e),Kc);if(0===n.min)e=$c(Vc,Vc,e);else for(let a=0;a<n.min-1;a++)n.comma&&e!==Vc&&(e=$c({type:"Comma",syntax:n},e,Kc)),e=$c(t,e,Kc);return e}(n);case"Type":case"Property":return{type:n.type,name:n.name,syntax:n};case"Keyword":return{type:n.type,name:n.name.toLowerCase(),syntax:n};case"AtKeyword":return{type:n.type,name:"@"+n.name.toLowerCase(),syntax:n};case"Function":return{type:n.type,name:n.name.toLowerCase()+"(",syntax:n};case"String":return 3===n.value.length?{type:"Token",value:n.value.charAt(1),syntax:n}:{type:n.type,value:n.value.substr(1,n.value.length-2).replace(/\\'/g,"'"),syntax:n};case"Token":return{type:n.type,value:n.value,syntax:n};case"Comma":return{type:n.type,syntax:n};default:throw new Error("Unknown node type:",n.type)}}function tm(n,e){return"string"==typeof n&&(n=Fc(n)),{type:"MatchGraph",match:em(n),syntax:e||null,source:n}}var{hasOwnProperty:am}=Object.prototype,om=0,im=1,rm=2,sm=3,lm="Match",cm="Mismatch",mm="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",dm=15e3;function hm(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++){let a=e.charCodeAt(t),o=n.charCodeAt(t);if(o>=65&&o<=90&&(o|=32),o!==a)return!1}return!0}function pm(n){return null===n||(18===n.type||2===n.type||21===n.type||19===n.type||23===n.type||function(n){return 9===n.type&&"?"!==n.value}(n))}function um(n){return null===n||(22===n.type||20===n.type||24===n.type||9===n.type&&"/"===n.value)}function gm(n,e,t){let a=function(n,e,t){function a(){do{b++,w=b<n.length?n[b]:null}while(null!==w&&(13===w.type||25===w.type))}function o(e){let t=b+e;return t<n.length?n[t]:null}function i(n,e){return{nextState:n,matchStack:k,syntaxStack:m,thenStack:d,tokenIndex:b,prev:e}}function r(n){d={nextState:n,matchStack:k,syntaxStack:m,prev:d}}function s(n){h=i(n,h)}function l(){k={type:im,syntax:e.syntax,token:w,prev:k},a(),p=null,b>f&&(f=b)}function c(){k=k.type===rm?k.prev:{type:sm,syntax:m.syntax,token:k.token,prev:k},m=m.prev}let m=null,d=null,h=null,p=null,u=0,g=null,w=null,b=-1,f=0,k={type:om,syntax:null,token:null,prev:null};for(a();null===g&&++u<dm;)switch(e.type){case"Match":if(null===d){if(null!==w&&(b!==n.length-1||"\\0"!==w.value&&"\\9"!==w.value)){e=Kc;break}g=lm;break}if((e=d.nextState)===Jc){if(d.matchStack===k){e=Kc;break}e=Vc}for(;d.syntaxStack!==m;)c();d=d.prev;break;case"Mismatch":if(null!==p&&!1!==p)(null===h||b>h.tokenIndex)&&(h=p,p=!1);else if(null===h){g=cm;break}e=h.nextState,d=h.thenStack,m=h.syntaxStack,k=h.matchStack,b=h.tokenIndex,w=b<n.length?n[b]:null,h=h.prev;break;case"MatchGraph":e=e.match;break;case"If":e.else!==Kc&&s(e.else),e.then!==Vc&&r(e.then),e=e.match;break;case"MatchOnce":e={type:"MatchOnceBuffer",syntax:e,index:0,mask:0};break;case"MatchOnceBuffer":{let n=e.syntax.terms;if(e.index===n.length){if(0===e.mask||e.syntax.all){e=Kc;break}e=Vc;break}if(e.mask===(1<<n.length)-1){e=Vc;break}for(;e.index<n.length;e.index++){let t=1<<e.index;if(!(e.mask&t)){s(e),r({type:"AddMatchOnce",syntax:e.syntax,mask:e.mask|t}),e=n[e.index++];break}}break}case"AddMatchOnce":e={type:"MatchOnceBuffer",syntax:e.syntax,index:0,mask:e.mask};break;case"Enum":if(null!==w){let n=w.value.toLowerCase();if(-1!==n.indexOf("\\")&&(n=n.replace(/\\[09].*$/,"")),am.call(e.map,n)){e=e.map[n];break}}e=Kc;break;case"Generic":{let n=null!==m?m.opts:null,t=b+Math.floor(e.fn(w,o,n));if(!isNaN(t)&&t>b){for(;b<t;)l();e=Vc}else e=Kc;break}case"Type":case"Property":{let n="Type"===e.type?"types":"properties",a=am.call(t,n)?t[n][e.name]:null;if(!a||!a.match)throw new Error("Bad syntax reference: "+("Type"===e.type?"<"+e.name+">":"<'"+e.name+"'>"));if(!1!==p&&null!==w&&"Type"===e.type&&("custom-ident"===e.name&&1===w.type||"length"===e.name&&"0"===w.value)){null===p&&(p=i(e,h)),e=Kc;break}m={syntax:e.syntax,opts:e.syntax.opts||null!==m&&m.opts||null,prev:m},k={type:rm,syntax:e.syntax,token:k.token,prev:k},e=a.match;break}case"Keyword":{let n=e.name;if(null!==w){let t=w.value;if(-1!==t.indexOf("\\")&&(t=t.replace(/\\[09].*$/,"")),hm(t,n)){l(),e=Vc;break}}e=Kc;break}case"AtKeyword":case"Function":if(null!==w&&hm(w.value,e.name)){l(),e=Vc;break}e=Kc;break;case"Token":if(null!==w&&w.value===e.value){l(),e=Vc;break}e=Kc;break;case"Comma":null!==w&&18===w.type?pm(k.token)?e=Kc:(l(),e=um(w)?Kc:Vc):e=pm(k.token)||um(w)?Vc:Kc;break;case"String":let a="",u=b;for(;u<n.length&&a.length<e.value.length;u++)a+=n[u].value;if(hm(a,e.value)){for(;b<u;)l();e=Vc}else e=Kc;break;default:throw new Error("Unknown node type: "+e.type)}switch(g){case null:console.warn("[csstree-match] BREAK after "+dm+" iterations"),g=mm,k=null;break;case lm:for(;null!==m;)c();break;default:k=null}return{tokens:n,reason:g,iterations:u,match:k,longestMatch:f}}(n,e,t||{});if(null===a.match)return a;let o=a.match,i=a.match={syntax:e.syntax||null,match:[]},r=[i];for(o=function(n){let e=null,t=null,a=n;for(;null!==a;)t=a.prev,a.prev=e,e=a,a=t;return e}(o).prev;null!==o;){switch(o.type){case rm:i.match.push(i={syntax:o.syntax,match:[]}),r.push(i);break;case sm:r.pop(),i=r[r.length-1];break;default:i.match.push({syntax:o.syntax||null,token:o.token.value,node:o.token.node})}o=o.prev}return a}var wm={};function bm(n){function e(n){return null!==n&&("Type"===n.type||"Property"===n.type||"Keyword"===n.type)}let t=null;return null!==this.matched&&function a(o){if(Array.isArray(o.match)){for(let n=0;n<o.match.length;n++)if(a(o.match[n]))return e(o.syntax)&&t.unshift(o.syntax),!0}else if(o.node===n)return t=e(o.syntax)?[o.syntax]:[],!0;return!1}(this.matched),t}function fm(n,e){return vm(this,n,(n=>"Type"===n.type&&n.name===e))}function km(n,e){return vm(this,n,(n=>"Property"===n.type&&n.name===e))}function ym(n){return vm(this,n,(n=>"Keyword"===n.type))}function vm(n,e,t){let a=bm.call(n,e);return null!==a&&a.some(t)}function jm(n){return"node"in n?n.node:jm(n.match[0])}function Sm(n){return"node"in n?n.node:Sm(n.match[n.match.length-1])}function xm(n,e,t,a,o){let i=[];return null!==t.matched&&function t(r){if(null!==r.syntax&&r.syntax.type===a&&r.syntax.name===o){let t=jm(r),a=Sm(r);n.syntax.walk(e,(function(n,e,o){if(n===t){let n=new ks;do{if(n.appendData(e.data),e.data===a)break;e=e.next}while(null!==e);i.push({parent:o,nodes:n})}}))}Array.isArray(r.match)&&r.match.forEach(t)}(t.matched),i}er(wm,{getTrace:()=>bm,isKeyword:()=>ym,isProperty:()=>km,isType:()=>fm});var{hasOwnProperty:Cm}=Object.prototype;function zm(n){return"number"==typeof n&&isFinite(n)&&Math.floor(n)===n&&n>=0}function Lm(n){return Boolean(n)&&zm(n.offset)&&zm(n.line)&&zm(n.column)}function Am(n,e){return function(t,a){if(!t||t.constructor!==Object)return a(t,"Type of node should be an Object");for(let o in t){let i=!0;if(!1!==Cm.call(t,o)){if("type"===o)t.type!==n&&a(t,"Wrong node type `"+t.type+"`, expected `"+n+"`");else if("loc"===o){if(null===t.loc)continue;if(t.loc&&t.loc.constructor===Object)if("string"!=typeof t.loc.source)o+=".source";else if(Lm(t.loc.start)){if(Lm(t.loc.end))continue;o+=".end"}else o+=".start";i=!1}else if(e.hasOwnProperty(o)){i=!1;for(let n=0;!i&&n<e[o].length;n++){let a=e[o][n];switch(a){case String:i="string"==typeof t[o];break;case Boolean:i="boolean"==typeof t[o];break;case null:i=null===t[o];break;default:"string"==typeof a?i=t[o]&&t[o].type===a:Array.isArray(a)&&(i=t[o]instanceof ks)}}}else a(t,"Unknown field `"+o+"` for "+n+" node type");i||a(t,"Bad value for `"+n+"."+o+"`")}}for(let o in e)Cm.call(e,o)&&!1===Cm.call(t,o)&&a(t,"Field `"+n+"."+o+"` is missed")}}function Im(n,e){let t=e.structure,a={type:String,loc:!0},o={type:'"'+n+'"'};for(let e in t){if(!1===Cm.call(t,e))continue;let i=[],r=a[e]=Array.isArray(t[e])?t[e].slice():[t[e]];for(let t=0;t<r.length;t++){let a=r[t];if(a===String||a===Boolean)i.push(a.name);else if(null===a)i.push("null");else if("string"==typeof a)i.push("<"+a+">");else{if(!Array.isArray(a))throw new Error("Wrong value `"+a+"` in `"+n+"."+e+"` structure definition");i.push("List")}}o[e]=i.join(" | ")}return{docs:o,check:Am(n,a)}}var Tm=tm(fl.join(" | "));function Rm(n,e,t){let a={};for(let o in n)n[o].syntax&&(a[o]=t?n[o].syntax:il(n[o].syntax,{compact:e}));return a}function Em(n,e,t){let a={};for(let[o,i]of Object.entries(n))a[o]={prelude:i.prelude&&(t?i.prelude.syntax:il(i.prelude.syntax,{compact:e})),descriptors:i.descriptors&&Rm(i.descriptors,e,t)};return a}function Dm(n,e,t){return{matched:n,iterations:t,error:e,...wm}}function Mm(n,e,t,a){let o,i=Wc(t,n.syntax);return function(n){for(let e=0;e<n.length;e++)if("var("===n[e].value.toLowerCase())return!0;return!1}(i)?Dm(null,new Error("Matching for a tree with var() is not supported")):(a&&(o=gm(i,n.cssWideKeywordsSyntax,n)),a&&o.match||(o=gm(i,e.match,n),o.match)?Dm(o.match,null,o.iterations):Dm(null,new ml(o.reason,e.syntax,t,o),o.iterations))}var Bm=class{constructor(n,e,t){if(this.cssWideKeywordsSyntax=Tm,this.syntax=e,this.generic=!1,this.units={...Wl},this.atrules=Object.create(null),this.properties=Object.create(null),this.types=Object.create(null),this.structure=t||function(n){let e={};if(n.node)for(let t in n.node)if(Cm.call(n.node,t)){let a=n.node[t];if(!a.structure)throw new Error("Missed `structure` field in `"+t+"` node type definition");e[t]=Im(t,a)}return e}(n),n){if(n.units)for(let e of Object.keys(Wl))Array.isArray(n.units[e])&&(this.units[e]=n.units[e]);if(n.types)for(let e in n.types)this.addType_(e,n.types[e]);if(n.generic){this.generic=!0;for(let[n,e]of Object.entries(function(n){return{...Ul,...Hl,...Gl(n)}}(this.units)))this.addType_(n,e)}if(n.atrules)for(let e in n.atrules)this.addAtrule_(e,n.atrules[e]);if(n.properties)for(let e in n.properties)this.addProperty_(e,n.properties[e])}}checkStructure(n){function e(n,e){a.push({node:n,message:e})}let t=this.structure,a=[];return this.syntax.walk(n,(function(n){t.hasOwnProperty(n.type)?t[n.type].check(n,e):e(n,"Unknown node type `"+n.type+"`")})),!!a.length&&a}createDescriptor(n,e,t,a=null){let o={type:e,name:t},i={type:e,name:t,parent:a,serializable:"string"==typeof n||n&&"string"==typeof n.type,syntax:null,match:null};return"function"==typeof n?i.match=tm(n,o):("string"==typeof n?Object.defineProperty(i,"syntax",{get:()=>(Object.defineProperty(i,"syntax",{value:Fc(n)}),i.syntax)}):i.syntax=n,Object.defineProperty(i,"match",{get:()=>(Object.defineProperty(i,"match",{value:tm(i.syntax,o)}),i.match)})),i}addAtrule_(n,e){!e||(this.atrules[n]={type:"Atrule",name:n,prelude:e.prelude?this.createDescriptor(e.prelude,"AtrulePrelude",n):null,descriptors:e.descriptors?Object.keys(e.descriptors).reduce(((t,a)=>(t[a]=this.createDescriptor(e.descriptors[a],"AtruleDescriptor",a,n),t)),Object.create(null)):null})}addProperty_(n,e){!e||(this.properties[n]=this.createDescriptor(e,"Property",n))}addType_(n,e){!e||(this.types[n]=this.createDescriptor(e,"Type",n))}checkAtruleName(n){if(!this.getAtrule(n))return new cl("Unknown at-rule","@"+n)}checkAtrulePrelude(n,e){let t=this.checkAtruleName(n);if(t)return t;let a=this.getAtrule(n);return!a.prelude&&e?new SyntaxError("At-rule `@"+n+"` should not contain a prelude"):!a.prelude||e||Mm(this,a.prelude,"",!1).matched?void 0:new SyntaxError("At-rule `@"+n+"` should contain a prelude")}checkAtruleDescriptorName(n,e){let t=this.checkAtruleName(n);if(t)return t;let a=this.getAtrule(n),o=ul(e);return a.descriptors?a.descriptors[o.name]||a.descriptors[o.basename]?void 0:new cl("Unknown at-rule descriptor",e):new SyntaxError("At-rule `@"+n+"` has no known descriptors")}checkPropertyName(n){if(!this.getProperty(n))return new cl("Unknown property",n)}matchAtrulePrelude(n,e){let t=this.checkAtrulePrelude(n,e);if(t)return Dm(null,t);let a=this.getAtrule(n);return a.prelude?Mm(this,a.prelude,e||"",!1):Dm(null,null)}matchAtruleDescriptor(n,e,t){let a=this.checkAtruleDescriptorName(n,e);if(a)return Dm(null,a);let o=this.getAtrule(n),i=ul(e);return Mm(this,o.descriptors[i.name]||o.descriptors[i.basename],t,!1)}matchDeclaration(n){return"Declaration"!==n.type?Dm(null,new Error("Not a Declaration node")):this.matchProperty(n.property,n.value)}matchProperty(n,e){if(gl(n).custom)return Dm(null,new Error("Lexer matching doesn't applicable for custom properties"));let t=this.checkPropertyName(n);return t?Dm(null,t):Mm(this,this.getProperty(n),e,!0)}matchType(n,e){let t=this.getType(n);return t?Mm(this,t,e,!1):Dm(null,new cl("Unknown type",n))}match(n,e){return"string"==typeof n||n&&n.type?(("string"==typeof n||!n.match)&&(n=this.createDescriptor(n,"Type","anonymous")),Mm(this,n,e,!1)):Dm(null,new cl("Bad syntax"))}findValueFragments(n,e,t,a){return xm(this,e,this.matchProperty(n,e),t,a)}findDeclarationValueFragments(n,e,t){return xm(this,n.value,this.matchDeclaration(n),e,t)}findAllFragments(n,e,t){let a=[];return this.syntax.walk(n,{visit:"Declaration",enter:n=>{a.push.apply(a,this.findDeclarationValueFragments(n,e,t))}}),a}getAtrule(n,e=!0){let t=ul(n);return(t.vendor&&e?this.atrules[t.name]||this.atrules[t.basename]:this.atrules[t.name])||null}getAtrulePrelude(n,e=!0){let t=this.getAtrule(n,e);return t&&t.prelude||null}getAtruleDescriptor(n,e){return this.atrules.hasOwnProperty(n)&&this.atrules.declarators&&this.atrules[n].declarators[e]||null}getProperty(n,e=!0){let t=gl(n);return(t.vendor&&e?this.properties[t.name]||this.properties[t.basename]:this.properties[t.name])||null}getType(n){return hasOwnProperty.call(this.types,n)?this.types[n]:null}validate(){function n(a,o,i,r){if(i.has(o))return i.get(o);i.set(o,!1),null!==r.syntax&&Hc(r.syntax,(function(r){if("Type"!==r.type&&"Property"!==r.type)return;let s="Type"===r.type?a.types:a.properties,l="Type"===r.type?e:t;(!hasOwnProperty.call(s,r.name)||n(a,r.name,l,s[r.name]))&&i.set(o,!0)}),this)}let e=new Map,t=new Map;for(let t in this.types)n(this,t,e,this.types[t]);for(let e in this.properties)n(this,e,t,this.properties[e]);return e=[...e.keys()].filter((n=>e.get(n))),t=[...t.keys()].filter((n=>t.get(n))),e.length||t.length?{types:e,properties:t}:null}dump(n,e){return{generic:this.generic,units:this.units,types:Rm(this.types,!e,n),properties:Rm(this.properties,!e,n),atrules:Em(this.atrules,!e,n)}}toString(){return JSON.stringify(this.dump())}};function Nm(n,e){return"string"==typeof e&&/^\s*\|/.test(e)?"string"==typeof n?n+e:e.replace(/^\s*\|\s*/,""):e||null}function Pm(n,e){let t=Object.create(null);for(let[a,o]of Object.entries(n))if(o){t[a]={};for(let n of Object.keys(o))e.includes(n)&&(t[a][n]=o[n])}return t}function Om(n,e){let t={...n};for(let[a,o]of Object.entries(e))switch(a){case"generic":t[a]=Boolean(o);break;case"units":t[a]={...n[a]};for(let[n,e]of Object.entries(o))t[a][n]=Array.isArray(e)?e:[];break;case"atrules":t[a]={...n[a]};for(let[n,e]of Object.entries(o)){let o=t[a][n]||{},i=t[a][n]={prelude:o.prelude||null,descriptors:{...o.descriptors}};if(e){i.prelude=e.prelude?Nm(i.prelude,e.prelude):i.prelude||null;for(let[n,t]of Object.entries(e.descriptors||{}))i.descriptors[n]=t?Nm(i.descriptors[n],t):null;Object.keys(i.descriptors).length||(i.descriptors=null)}}break;case"types":case"properties":t[a]={...n[a]};for(let[n,e]of Object.entries(o))t[a][n]=Nm(t[a][n],e);break;case"scope":t[a]={...n[a]};for(let[n,e]of Object.entries(o))t[a][n]={...t[a][n],...e};break;case"parseContext":t[a]={...n[a],...o};break;case"atrule":case"pseudo":t[a]={...n[a],...Pm(o,["parse"])};break;case"node":t[a]={...n[a],...Pm(o,["name","structure","parse","generate","walkContext"])}}return t}function _m(n){let e=Bs(n),t=tl(n),a=Js(n),{fromPlainObject:o,toPlainObject:i}=function(n){return{fromPlainObject:e=>(n(e,{enter(n){n.children&&!(n.children instanceof ks)&&(n.children=(new ks).fromArray(n.children))}}),e),toPlainObject:e=>(n(e,{leave(n){n.children&&n.children instanceof ks&&(n.children=n.children.toArray())}}),e)}}(t),r={lexer:null,createLexer:n=>new Bm(n,r,r.lexer.structure),tokenize:bs,parse:e,generate:a,walk:t,find:t.find,findLast:t.findLast,findAll:t.findAll,fromPlainObject:o,toPlainObject:i,fork(e){let t=Om({},n);return _m("function"==typeof e?e(t,Object.assign):Om(t,e))}};return r.lexer=new Bm({generic:!0,units:n.units,types:n.types,atrules:n.atrules,properties:n.properties,node:n.node},r),r}var Fm={};er(Fm,{AnPlusB:()=>qm,Atrule:()=>ed,AtrulePrelude:()=>cd,AttributeSelector:()=>gd,Block:()=>Ad,Brackets:()=>_d,CDC:()=>Gd,CDO:()=>Yd,ClassSelector:()=>nh,Combinator:()=>rh,Comment:()=>gh,Declaration:()=>jh,DeclarationList:()=>Fh,Dimension:()=>Kh,Function:()=>Xh,Hash:()=>op,IdSelector:()=>gp,Identifier:()=>mp,MediaFeature:()=>yp,MediaQuery:()=>Cp,MediaQueryList:()=>Tp,NestingSelector:()=>Bp,Nth:()=>qp,Number:()=>Vp,Operator:()=>$p,Parentheses:()=>tu,Percentage:()=>su,PseudoClassSelector:()=>hu,PseudoElementSelector:()=>fu,Ratio:()=>xu,Raw:()=>Eu,Rule:()=>Ou,Selector:()=>Vu,SelectorList:()=>$u,String:()=>ag,StyleSheet:()=>pg,TypeSelector:()=>vg,UnicodeRange:()=>Ig,Url:()=>qg,Value:()=>nw,WhiteSpace:()=>iw});var qm={};er(qm,{generate:()=>nd,name:()=>$m,parse:()=>Qm,structure:()=>Xm});var Um=43,Hm=45,Gm=110,Wm=!0,Vm=!1;function Km(n,e){let t=this.tokenStart+n,a=this.charCodeAt(t);for((a===Um||a===Hm)&&(e&&this.error("Number sign is not allowed"),t++);t<this.tokenEnd;t++)Mr(this.charCodeAt(t))||this.error("Integer is expected",t)}function Jm(n){return Km.call(this,0,n)}function Ym(n,e){if(!this.cmpChar(this.tokenStart+n,e)){let t="";switch(e){case Gm:t="N is expected";break;case Hm:t="HyphenMinus is expected"}this.error(t,this.tokenStart+n)}}function Zm(){let n=0,e=0,t=this.tokenType;for(;13===t||25===t;)t=this.lookupType(++n);if(10!==t){if(!this.isDelim(Um,n)&&!this.isDelim(Hm,n))return null;e=this.isDelim(Um,n)?Um:Hm;do{t=this.lookupType(++n)}while(13===t||25===t);10!==t&&(this.skip(n),Jm.call(this,Wm))}return n>0&&this.skip(n),0===e&&(t=this.charCodeAt(this.tokenStart),t!==Um&&t!==Hm&&this.error("Number sign is expected")),Jm.call(this,0!==e),e===Hm?"-"+this.consume(10):this.consume(10)}var $m="AnPlusB",Xm={a:[String,null],b:[String,null]};function Qm(){let n=this.tokenStart,e=null,t=null;if(10===this.tokenType)Jm.call(this,Vm),t=this.consume(10);else if(1===this.tokenType&&this.cmpChar(this.tokenStart,Hm))switch(e="-1",Ym.call(this,1,Gm),this.tokenEnd-this.tokenStart){case 2:this.next(),t=Zm.call(this);break;case 3:Ym.call(this,2,Hm),this.next(),this.skipSC(),Jm.call(this,Wm),t="-"+this.consume(10);break;default:Ym.call(this,2,Hm),Km.call(this,3,Wm),this.next(),t=this.substrToCursor(n+2)}else if(1===this.tokenType||this.isDelim(Um)&&1===this.lookupType(1)){let a=0;switch(e="1",this.isDelim(Um)&&(a=1,this.next()),Ym.call(this,0,Gm),this.tokenEnd-this.tokenStart){case 1:this.next(),t=Zm.call(this);break;case 2:Ym.call(this,1,Hm),this.next(),this.skipSC(),Jm.call(this,Wm),t="-"+this.consume(10);break;default:Ym.call(this,1,Hm),Km.call(this,2,Wm),this.next(),t=this.substrToCursor(n+a+1)}}else if(12===this.tokenType){let a=this.charCodeAt(this.tokenStart),o=a===Um||a===Hm,i=this.tokenStart+o;for(;i<this.tokenEnd&&Mr(this.charCodeAt(i));i++);i===this.tokenStart+o&&this.error("Integer is expected",this.tokenStart+o),Ym.call(this,i-this.tokenStart,Gm),e=this.substring(n,i),i+1===this.tokenEnd?(this.next(),t=Zm.call(this)):(Ym.call(this,i-this.tokenStart+1,Hm),i+2===this.tokenEnd?(this.next(),this.skipSC(),Jm.call(this,Wm),t="-"+this.consume(10)):(Km.call(this,i-this.tokenStart+2,Wm),this.next(),t=this.substrToCursor(i+1)))}else this.error();return null!==e&&e.charCodeAt(0)===Um&&(e=e.substr(1)),null!==t&&t.charCodeAt(0)===Um&&(t=t.substr(1)),{type:"AnPlusB",loc:this.getLocation(n,this.tokenStart),a:e,b:t}}function nd(n){if(n.a){let e=("+1"===n.a||"1"===n.a?"n":"-1"===n.a&&"-n")||n.a+"n";if(n.b){let t="-"===n.b[0]||"+"===n.b[0]?n.b:"+"+n.b;this.tokenize(e+t)}else this.tokenize(e)}else this.tokenize(n.b)}var ed={};function td(n){return this.Raw(n,this.consumeUntilLeftCurlyBracketOrSemicolon,!0)}function ad(){for(let n,e=1;n=this.lookupType(e);e++){if(24===n)return!0;if(23===n||3===n)return!1}return!1}er(ed,{generate:()=>ld,name:()=>od,parse:()=>sd,structure:()=>rd,walkContext:()=>id});var od="Atrule",id="atrule",rd={name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]};function sd(n=!1){let e,t,a=this.tokenStart,o=null,i=null;switch(this.eat(3),e=this.substrToCursor(a+1),t=e.toLowerCase(),this.skipSC(),!1===this.eof&&23!==this.tokenType&&17!==this.tokenType&&(o=this.parseAtrulePrelude?this.parseWithFallback(this.AtrulePrelude.bind(this,e,n),td):td.call(this,this.tokenIndex),this.skipSC()),this.tokenType){case 17:this.next();break;case 23:i=hasOwnProperty.call(this.atrule,t)&&"function"==typeof this.atrule[t].block?this.atrule[t].block.call(this,n):this.Block(ad.call(this))}return{type:"Atrule",loc:this.getLocation(a,this.tokenStart),name:e,prelude:o,block:i}}function ld(n){this.token(3,"@"+n.name),null!==n.prelude&&this.node(n.prelude),n.block?this.node(n.block):this.token(17,";")}var cd={};er(cd,{generate:()=>ud,name:()=>md,parse:()=>pd,structure:()=>hd,walkContext:()=>dd});var md="AtrulePrelude",dd="atrulePrelude",hd={children:[[]]};function pd(n){let e=null;return null!==n&&(n=n.toLowerCase()),this.skipSC(),e=hasOwnProperty.call(this.atrule,n)&&"function"==typeof this.atrule[n].prelude?this.atrule[n].prelude.call(this):this.readSequence(this.scope.AtrulePrelude),this.skipSC(),!0!==this.eof&&23!==this.tokenType&&17!==this.tokenType&&this.error("Semicolon or block is expected"),{type:"AtrulePrelude",loc:this.getLocationFromList(e),children:e}}function ud(n){this.children(n)}var gd={};er(gd,{generate:()=>Ld,name:()=>xd,parse:()=>zd,structure:()=>Cd});var wd=36,bd=42,fd=61,kd=94,yd=124,vd=126;function jd(){this.eof&&this.error("Unexpected end of input");let n=this.tokenStart,e=!1;return this.isDelim(bd)?(e=!0,this.next()):this.isDelim(yd)||this.eat(1),this.isDelim(yd)?this.charCodeAt(this.tokenStart+1)!==fd?(this.next(),this.eat(1)):e&&this.error("Identifier is expected",this.tokenEnd):e&&this.error("Vertical line is expected"),{type:"Identifier",loc:this.getLocation(n,this.tokenStart),name:this.substrToCursor(n)}}function Sd(){let n=this.tokenStart,e=this.charCodeAt(n);return e!==fd&&e!==vd&&e!==kd&&e!==wd&&e!==bd&&e!==yd&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.next(),e!==fd&&(this.isDelim(fd)||this.error("Equal sign is expected"),this.next()),this.substrToCursor(n)}var xd="AttributeSelector",Cd={name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]};function zd(){let n,e=this.tokenStart,t=null,a=null,o=null;return this.eat(19),this.skipSC(),n=jd.call(this),this.skipSC(),20!==this.tokenType&&(1!==this.tokenType&&(t=Sd.call(this),this.skipSC(),a=5===this.tokenType?this.String():this.Identifier(),this.skipSC()),1===this.tokenType&&(o=this.consume(1),this.skipSC())),this.eat(20),{type:"AttributeSelector",loc:this.getLocation(e,this.tokenStart),name:n,matcher:t,value:a,flags:o}}function Ld(n){this.token(9,"["),this.node(n.name),null!==n.matcher&&(this.tokenize(n.matcher),this.node(n.value)),null!==n.flags&&this.token(1,n.flags),this.token(9,"]")}var Ad={};er(Ad,{generate:()=>Od,name:()=>Md,parse:()=>Pd,structure:()=>Nd,walkContext:()=>Bd});var Id=38;function Td(n){return this.Raw(n,null,!0)}function Rd(){return this.parseWithFallback(this.Rule,Td)}function Ed(n){return this.Raw(n,this.consumeUntilSemicolonIncluded,!0)}function Dd(){if(17===this.tokenType)return Ed.call(this,this.tokenIndex);let n=this.parseWithFallback(this.Declaration,Ed);return 17===this.tokenType&&this.next(),n}var Md="Block",Bd="block",Nd={children:[["Atrule","Rule","Declaration"]]};function Pd(n){let e=n?Dd:Rd,t=this.tokenStart,a=this.createList();this.eat(23);n:for(;!this.eof;)switch(this.tokenType){case 24:break n;case 13:case 25:this.next();break;case 3:a.push(this.parseWithFallback(this.Atrule.bind(this,n),Td));break;default:n&&this.isDelim(Id)?a.push(Rd.call(this)):a.push(e.call(this))}return this.eof||this.eat(24),{type:"Block",loc:this.getLocation(t,this.tokenStart),children:a}}function Od(n){this.token(23,"{"),this.children(n,(n=>{"Declaration"===n.type&&this.token(17,";")})),this.token(24,"}")}var _d={};er(_d,{generate:()=>Hd,name:()=>Fd,parse:()=>Ud,structure:()=>qd});var Fd="Brackets",qd={children:[[]]};function Ud(n,e){let t=this.tokenStart,a=null;return this.eat(19),a=n.call(this,e),this.eof||this.eat(20),{type:"Brackets",loc:this.getLocation(t,this.tokenStart),children:a}}function Hd(n){this.token(9,"["),this.children(n),this.token(9,"]")}var Gd={};er(Gd,{generate:()=>Jd,name:()=>Wd,parse:()=>Kd,structure:()=>Vd});var Wd="CDC",Vd=[];function Kd(){let n=this.tokenStart;return this.eat(15),{type:"CDC",loc:this.getLocation(n,this.tokenStart)}}function Jd(){this.token(15,"--\x3e")}var Yd={};er(Yd,{generate:()=>Qd,name:()=>Zd,parse:()=>Xd,structure:()=>$d});var Zd="CDO",$d=[];function Xd(){let n=this.tokenStart;return this.eat(14),{type:"CDO",loc:this.getLocation(n,this.tokenStart)}}function Qd(){this.token(14,"\x3c!--")}var nh={};er(nh,{generate:()=>ih,name:()=>th,parse:()=>oh,structure:()=>ah});var eh=46,th="ClassSelector",ah={name:String};function oh(){return this.eatDelim(eh),{type:"ClassSelector",loc:this.getLocation(this.tokenStart-1,this.tokenEnd),name:this.consume(1)}}function ih(n){this.token(9,"."),this.token(1,n.name)}var rh={};er(rh,{generate:()=>uh,name:()=>dh,parse:()=>ph,structure:()=>hh});var sh=43,lh=47,ch=62,mh=126,dh="Combinator",hh={name:String};function ph(){let n,e=this.tokenStart;switch(this.tokenType){case 13:n=" ";break;case 9:switch(this.charCodeAt(this.tokenStart)){case ch:case sh:case mh:this.next();break;case lh:this.next(),this.eatIdent("deep"),this.eatDelim(lh);break;default:this.error("Combinator is expected")}n=this.substrToCursor(e)}return{type:"Combinator",loc:this.getLocation(e,this.tokenStart),name:n}}function uh(n){this.tokenize(n.name)}var gh={};er(gh,{generate:()=>vh,name:()=>fh,parse:()=>yh,structure:()=>kh});var wh=42,bh=47,fh="Comment",kh={value:String};function yh(){let n=this.tokenStart,e=this.tokenEnd;return this.eat(25),e-n+2>=2&&this.charCodeAt(e-2)===wh&&this.charCodeAt(e-1)===bh&&(e-=2),{type:"Comment",loc:this.getLocation(n,this.tokenStart),value:this.substring(n+2,e)}}function vh(n){this.token(25,"/*"+n.value+"*/")}var jh={};er(jh,{generate:()=>Ph,name:()=>Dh,parse:()=>Nh,structure:()=>Bh,walkContext:()=>Mh});var Sh=33,xh=35,Ch=36,zh=38,Lh=42,Ah=43,Ih=47;function Th(n){return this.Raw(n,this.consumeUntilExclamationMarkOrSemicolon,!0)}function Rh(n){return this.Raw(n,this.consumeUntilExclamationMarkOrSemicolon,!1)}function Eh(){let n=this.tokenIndex,e=this.Value();return"Raw"!==e.type&&!1===this.eof&&17!==this.tokenType&&!1===this.isDelim(Sh)&&!1===this.isBalanceEdge(n)&&this.error(),e}var Dh="Declaration",Mh="declaration",Bh={important:[Boolean,String],property:String,value:["Value","Raw"]};function Nh(){let n,e=this.tokenStart,t=this.tokenIndex,a=Oh.call(this),o=wl(a),i=o?this.parseCustomProperty:this.parseValue,r=o?Rh:Th,s=!1;this.skipSC(),this.eat(16);let l=this.tokenIndex;if(o||this.skipSC(),n=i?this.parseWithFallback(Eh,r):r.call(this,this.tokenIndex),o&&"Value"===n.type&&n.children.isEmpty)for(let e=l-this.tokenIndex;e<=0;e++)if(13===this.lookupType(e)){n.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}return this.isDelim(Sh)&&(s=_h.call(this),this.skipSC()),!1===this.eof&&17!==this.tokenType&&!1===this.isBalanceEdge(t)&&this.error(),{type:"Declaration",loc:this.getLocation(e,this.tokenStart),important:s,property:a,value:n}}function Ph(n){this.token(1,n.property),this.token(16,":"),this.node(n.value),n.important&&(this.token(9,"!"),this.token(1,!0===n.important?"important":n.important))}function Oh(){let n=this.tokenStart;if(9===this.tokenType)switch(this.charCodeAt(this.tokenStart)){case Lh:case Ch:case Ah:case xh:case zh:this.next();break;case Ih:this.next(),this.isDelim(Ih)&&this.next()}return 4===this.tokenType?this.eat(4):this.eat(1),this.substrToCursor(n)}function _h(){this.eat(9),this.skipSC();let n=this.consume(1);return"important"===n||n}var Fh={};er(Fh,{generate:()=>Vh,name:()=>Hh,parse:()=>Wh,structure:()=>Gh});var qh=38;function Uh(n){return this.Raw(n,this.consumeUntilSemicolonIncluded,!0)}var Hh="DeclarationList",Gh={children:[["Declaration","Atrule","Rule"]]};function Wh(){let n=this.createList();for(;!this.eof;)switch(this.tokenType){case 13:case 25:case 17:this.next();break;case 3:n.push(this.parseWithFallback(this.Atrule.bind(this,!0),Uh));break;default:this.isDelim(qh)?n.push(this.parseWithFallback(this.Rule,Uh)):n.push(this.parseWithFallback(this.Declaration,Uh))}return{type:"DeclarationList",loc:this.getLocationFromList(n),children:n}}function Vh(n){this.children(n,(n=>{"Declaration"===n.type&&this.token(17,";")}))}var Kh={};er(Kh,{generate:()=>$h,name:()=>Jh,parse:()=>Zh,structure:()=>Yh});var Jh="Dimension",Yh={value:String,unit:String};function Zh(){let n=this.tokenStart,e=this.consumeNumber(12);return{type:"Dimension",loc:this.getLocation(n,this.tokenStart),value:e,unit:this.substring(n+e.length,this.tokenStart)}}function $h(n){this.token(12,n.value+n.unit)}var Xh={};er(Xh,{generate:()=>ap,name:()=>Qh,parse:()=>tp,structure:()=>ep,walkContext:()=>np});var Qh="Function",np="function",ep={name:String,children:[[]]};function tp(n,e){let t,a=this.tokenStart,o=this.consumeFunctionName(),i=o.toLowerCase();return t=e.hasOwnProperty(i)?e[i].call(this,e):n.call(this,e),this.eof||this.eat(22),{type:"Function",loc:this.getLocation(a,this.tokenStart),name:o,children:t}}function ap(n){this.token(2,n.name+"("),this.children(n),this.token(22,")")}var op={};er(op,{generate:()=>cp,name:()=>rp,parse:()=>lp,structure:()=>sp,xxx:()=>ip});var ip="XXX",rp="Hash",sp={value:String};function lp(){let n=this.tokenStart;return this.eat(4),{type:"Hash",loc:this.getLocation(n,this.tokenStart),value:this.substrToCursor(n+1)}}function cp(n){this.token(4,"#"+n.value)}var mp={};er(mp,{generate:()=>up,name:()=>dp,parse:()=>pp,structure:()=>hp});var dp="Identifier",hp={name:String};function pp(){return{type:"Identifier",loc:this.getLocation(this.tokenStart,this.tokenEnd),name:this.consume(1)}}function up(n){this.token(1,n.name)}var gp={};er(gp,{generate:()=>kp,name:()=>wp,parse:()=>fp,structure:()=>bp});var wp="IdSelector",bp={name:String};function fp(){let n=this.tokenStart;return this.eat(4),{type:"IdSelector",loc:this.getLocation(n,this.tokenStart),name:this.substrToCursor(n+1)}}function kp(n){this.token(9,"#"+n.name)}var yp={};er(yp,{generate:()=>xp,name:()=>vp,parse:()=>Sp,structure:()=>jp});var vp="MediaFeature",jp={name:String,value:["Identifier","Number","Dimension","Ratio",null]};function Sp(){let n,e=this.tokenStart,t=null;if(this.eat(21),this.skipSC(),n=this.consume(1),this.skipSC(),22!==this.tokenType){switch(this.eat(16),this.skipSC(),this.tokenType){case 10:t=9===this.lookupNonWSType(1)?this.Ratio():this.Number();break;case 12:t=this.Dimension();break;case 1:t=this.Identifier();break;default:this.error("Number, dimension, ratio or identifier is expected")}this.skipSC()}return this.eat(22),{type:"MediaFeature",loc:this.getLocation(e,this.tokenStart),name:n,value:t}}function xp(n){this.token(21,"("),this.token(1,n.name),null!==n.value&&(this.token(16,":"),this.node(n.value)),this.token(22,")")}var Cp={};er(Cp,{generate:()=>Ip,name:()=>zp,parse:()=>Ap,structure:()=>Lp});var zp="MediaQuery",Lp={children:[["Identifier","MediaFeature","WhiteSpace"]]};function Ap(){let n=this.createList(),e=null;this.skipSC();n:for(;!this.eof;){switch(this.tokenType){case 25:case 13:this.next();continue;case 1:e=this.Identifier();break;case 21:e=this.MediaFeature();break;default:break n}n.push(e)}return null===e&&this.error("Identifier or parenthesis is expected"),{type:"MediaQuery",loc:this.getLocationFromList(n),children:n}}function Ip(n){this.children(n)}var Tp={};er(Tp,{generate:()=>Mp,name:()=>Rp,parse:()=>Dp,structure:()=>Ep});var Rp="MediaQueryList",Ep={children:[["MediaQuery"]]};function Dp(){let n=this.createList();for(this.skipSC();!this.eof&&(n.push(this.MediaQuery()),18===this.tokenType);)this.next();return{type:"MediaQueryList",loc:this.getLocationFromList(n),children:n}}function Mp(n){this.children(n,(()=>this.token(18,",")))}var Bp={};er(Bp,{generate:()=>Fp,name:()=>Pp,parse:()=>_p,structure:()=>Op});var Np=38,Pp="NestingSelector",Op={};function _p(){let n=this.tokenStart;return this.eatDelim(Np),{type:"NestingSelector",loc:this.getLocation(n,this.tokenStart)}}function Fp(){this.token(9,"&")}var qp={};er(qp,{generate:()=>Wp,name:()=>Up,parse:()=>Gp,structure:()=>Hp});var Up="Nth",Hp={nth:["AnPlusB","Identifier"],selector:["SelectorList",null]};function Gp(){this.skipSC();let n,e=this.tokenStart,t=e,a=null;return n=this.lookupValue(0,"odd")||this.lookupValue(0,"even")?this.Identifier():this.AnPlusB(),t=this.tokenStart,this.skipSC(),this.lookupValue(0,"of")&&(this.next(),a=this.SelectorList(),t=this.tokenStart),{type:"Nth",loc:this.getLocation(e,t),nth:n,selector:a}}function Wp(n){this.node(n.nth),null!==n.selector&&(this.token(1,"of"),this.node(n.selector))}var Vp={};er(Vp,{generate:()=>Zp,name:()=>Kp,parse:()=>Yp,structure:()=>Jp});var Kp="Number",Jp={value:String};function Yp(){return{type:"Number",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consume(10)}}function Zp(n){this.token(10,n.value)}var $p={};er($p,{generate:()=>eu,name:()=>Xp,parse:()=>nu,structure:()=>Qp});var Xp="Operator",Qp={value:String};function nu(){let n=this.tokenStart;return this.next(),{type:"Operator",loc:this.getLocation(n,this.tokenStart),value:this.substrToCursor(n)}}function eu(n){this.tokenize(n.value)}var tu={};er(tu,{generate:()=>ru,name:()=>au,parse:()=>iu,structure:()=>ou});var au="Parentheses",ou={children:[[]]};function iu(n,e){let t=this.tokenStart,a=null;return this.eat(21),a=n.call(this,e),this.eof||this.eat(22),{type:"Parentheses",loc:this.getLocation(t,this.tokenStart),children:a}}function ru(n){this.token(21,"("),this.children(n),this.token(22,")")}var su={};er(su,{generate:()=>du,name:()=>lu,parse:()=>mu,structure:()=>cu});var lu="Percentage",cu={value:String};function mu(){return{type:"Percentage",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consumeNumber(11)}}function du(n){this.token(11,n.value+"%")}var hu={};er(hu,{generate:()=>bu,name:()=>pu,parse:()=>wu,structure:()=>gu,walkContext:()=>uu});var pu="PseudoClassSelector",uu="function",gu={name:String,children:[["Raw"],null]};function wu(){let n,e,t=this.tokenStart,a=null;return this.eat(16),2===this.tokenType?(n=this.consumeFunctionName(),e=n.toLowerCase(),22==this.lookupNonWSType(0)?a=this.createList():hasOwnProperty.call(this.pseudo,e)?(this.skipSC(),a=this.pseudo[e].call(this),this.skipSC()):(a=this.createList(),a.push(this.Raw(this.tokenIndex,null,!1))),this.eat(22)):n=this.consume(1),{type:"PseudoClassSelector",loc:this.getLocation(t,this.tokenStart),name:n,children:a}}function bu(n){this.token(16,":"),null===n.children?this.token(1,n.name):(this.token(2,n.name+"("),this.children(n),this.token(22,")"))}var fu={};er(fu,{generate:()=>Su,name:()=>ku,parse:()=>ju,structure:()=>vu,walkContext:()=>yu});var ku="PseudoElementSelector",yu="function",vu={name:String,children:[["Raw"],null]};function ju(){let n,e,t=this.tokenStart,a=null;return this.eat(16),this.eat(16),2===this.tokenType?(n=this.consumeFunctionName(),e=n.toLowerCase(),22==this.lookupNonWSType(0)?a=this.createList():hasOwnProperty.call(this.pseudo,e)?(this.skipSC(),a=this.pseudo[e].call(this),this.skipSC()):(a=this.createList(),a.push(this.Raw(this.tokenIndex,null,!1))),this.eat(22)):n=this.consume(1),{type:"PseudoElementSelector",loc:this.getLocation(t,this.tokenStart),name:n,children:a}}function Su(n){this.token(16,":"),this.token(16,":"),null===n.children?this.token(1,n.name):(this.token(2,n.name+"("),this.children(n),this.token(22,")"))}var xu={};er(xu,{generate:()=>Ru,name:()=>Au,parse:()=>Tu,structure:()=>Iu});var Cu=47,zu=46;function Lu(){this.skipSC();let n=this.consume(10);for(let e=0;e<n.length;e++){let t=n.charCodeAt(e);!Mr(t)&&t!==zu&&this.error("Unsigned number is expected",this.tokenStart-n.length+e)}return 0===Number(n)&&this.error("Zero number is not allowed",this.tokenStart-n.length),n}var Au="Ratio",Iu={left:String,right:String};function Tu(){let n,e=this.tokenStart,t=Lu.call(this);return this.skipSC(),this.eatDelim(Cu),n=Lu.call(this),{type:"Ratio",loc:this.getLocation(e,this.tokenStart),left:t,right:n}}function Ru(n){this.token(10,n.left),this.token(9,"/"),this.token(10,n.right)}var Eu={};function Du(){return this.tokenIndex>0&&13===this.lookupType(-1)?this.tokenIndex>1?this.getTokenStart(this.tokenIndex-1):this.firstCharOffset:this.tokenStart}er(Eu,{generate:()=>Pu,name:()=>Mu,parse:()=>Nu,structure:()=>Bu});var Mu="Raw",Bu={value:String};function Nu(n,e,t){let a,o=this.getTokenStart(n);return this.skipUntilBalanced(n,e||this.consumeUntilBalanceEnd),a=t&&this.tokenStart>o?Du.call(this):this.tokenStart,{type:"Raw",loc:this.getLocation(o,a),value:this.substring(o,a)}}function Pu(n){this.tokenize(n.value)}var Ou={};function _u(n){return this.Raw(n,this.consumeUntilLeftCurlyBracket,!0)}function Fu(){let n=this.SelectorList();return"Raw"!==n.type&&!1===this.eof&&23!==this.tokenType&&this.error(),n}er(Ou,{generate:()=>Wu,name:()=>qu,parse:()=>Gu,structure:()=>Hu,walkContext:()=>Uu});var qu="Rule",Uu="rule",Hu={prelude:["SelectorList","Raw"],block:["Block"]};function Gu(){let n,e,t=this.tokenIndex,a=this.tokenStart;return n=this.parseRulePrelude?this.parseWithFallback(Fu,_u):_u.call(this,t),e=this.Block(!0),{type:"Rule",loc:this.getLocation(a,this.tokenStart),prelude:n,block:e}}function Wu(n){this.node(n.prelude),this.node(n.block)}var Vu={};er(Vu,{generate:()=>Zu,name:()=>Ku,parse:()=>Yu,structure:()=>Ju});var Ku="Selector",Ju={children:[["TypeSelector","IdSelector","ClassSelector","AttributeSelector","PseudoClassSelector","PseudoElementSelector","Combinator","WhiteSpace"]]};function Yu(){let n=this.readSequence(this.scope.Selector);return null===this.getFirstListNode(n)&&this.error("Selector is expected"),{type:"Selector",loc:this.getLocationFromList(n),children:n}}function Zu(n){this.children(n)}var $u={};er($u,{generate:()=>tg,name:()=>Xu,parse:()=>eg,structure:()=>ng,walkContext:()=>Qu});var Xu="SelectorList",Qu="selector",ng={children:[["Selector","Raw"]]};function eg(){let n=this.createList();for(;!this.eof&&(n.push(this.Selector()),18===this.tokenType);)this.next();return{type:"SelectorList",loc:this.getLocationFromList(n),children:n}}function tg(n){this.children(n,(()=>this.token(18,",")))}var ag={};er(ag,{generate:()=>hg,name:()=>cg,parse:()=>dg,structure:()=>mg});er({},{decode:()=>sg,encode:()=>lg});var og=92,ig=34,rg=39;function sg(n){let e=n.length,t=n.charCodeAt(0),a=t===ig||t===rg?1:0,o=1===a&&e>1&&n.charCodeAt(e-1)===t?e-2:e-1,i="";for(let t=a;t<=o;t++){let a=n.charCodeAt(t);if(a===og){if(t===o){t!==e-1&&(i=n.substr(t+1));break}if(a=n.charCodeAt(++t),Ur(og,a)){let e=t-1,a=os(n,e);t=a-1,i+=ls(n.substring(e+1,a))}else 13===a&&10===n.charCodeAt(t+1)&&t++}else i+=n[t]}return i}function lg(n,e){let t=e?"'":'"',a=e?rg:ig,o="",i=!1;for(let e=0;e<n.length;e++){let t=n.charCodeAt(e);0!==t?t<=31||127===t?(o+="\\"+t.toString(16),i=!0):t===a||t===og?(o+="\\"+n.charAt(e),i=!1):(i&&(Br(t)||qr(t))&&(o+=" "),o+=n.charAt(e),i=!1):o+="�"}return t+o+t}var cg="String",mg={value:String};function dg(){return{type:"String",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:sg(this.consume(5))}}function hg(n){this.token(5,lg(n.value))}var pg={};er(pg,{generate:()=>yg,name:()=>wg,parse:()=>kg,structure:()=>fg,walkContext:()=>bg});var ug=33;function gg(n){return this.Raw(n,null,!1)}var wg="StyleSheet",bg="stylesheet",fg={children:[["Comment","CDO","CDC","Atrule","Rule","Raw"]]};function kg(){let n,e=this.tokenStart,t=this.createList();for(;!this.eof;){switch(this.tokenType){case 13:this.next();continue;case 25:if(this.charCodeAt(this.tokenStart+2)!==ug){this.next();continue}n=this.Comment();break;case 14:n=this.CDO();break;case 15:n=this.CDC();break;case 3:n=this.parseWithFallback(this.Atrule,gg);break;default:n=this.parseWithFallback(this.Rule,gg)}t.push(n)}return{type:"StyleSheet",loc:this.getLocation(e,this.tokenStart),children:t}}function yg(n){this.children(n)}var vg={};er(vg,{generate:()=>Ag,name:()=>Cg,parse:()=>Lg,structure:()=>zg});var jg=42,Sg=124;function xg(){1!==this.tokenType&&!1===this.isDelim(jg)&&this.error("Identifier or asterisk is expected"),this.next()}var Cg="TypeSelector",zg={name:String};function Lg(){let n=this.tokenStart;return this.isDelim(Sg)?(this.next(),xg.call(this)):(xg.call(this),this.isDelim(Sg)&&(this.next(),xg.call(this))),{type:"TypeSelector",loc:this.getLocation(n,this.tokenStart),name:this.substrToCursor(n)}}function Ag(n){this.tokenize(n.name)}var Ig={};er(Ig,{generate:()=>Fg,name:()=>Pg,parse:()=>_g,structure:()=>Og});var Tg=43,Rg=45,Eg=63;function Dg(n,e){let t=0;for(let a=this.tokenStart+n;a<this.tokenEnd;a++){let o=this.charCodeAt(a);if(o===Rg&&e&&0!==t)return Dg.call(this,n+t+1,!1),-1;Br(o)||this.error(e&&0!==t?"Hyphen minus"+(t<6?" or hex digit":"")+" is expected":t<6?"Hex digit is expected":"Unexpected input",a),++t>6&&this.error("Too many hex digits",a)}return this.next(),t}function Mg(n){let e=0;for(;this.isDelim(Eg);)++e>n&&this.error("Too many question marks"),this.next()}function Bg(n){this.charCodeAt(this.tokenStart)!==n&&this.error((n===Tg?"Plus sign":"Hyphen minus")+" is expected")}function Ng(){let n=0;switch(this.tokenType){case 10:if(n=Dg.call(this,1,!0),this.isDelim(Eg)){Mg.call(this,6-n);break}if(12===this.tokenType||10===this.tokenType){Bg.call(this,Rg),Dg.call(this,1,!1);break}break;case 12:n=Dg.call(this,1,!0),n>0&&Mg.call(this,6-n);break;default:if(this.eatDelim(Tg),1===this.tokenType){n=Dg.call(this,0,!0),n>0&&Mg.call(this,6-n);break}if(this.isDelim(Eg)){this.next(),Mg.call(this,5);break}this.error("Hex digit or question mark is expected")}}var Pg="UnicodeRange",Og={value:String};function _g(){let n=this.tokenStart;return this.eatIdent("u"),Ng.call(this),{type:"UnicodeRange",loc:this.getLocation(n,this.tokenStart),value:this.substrToCursor(n)}}function Fg(n){this.tokenize(n.value)}var qg={};er(qg,{generate:()=>Qg,name:()=>Zg,parse:()=>Xg,structure:()=>$g});er({},{decode:()=>Jg,encode:()=>Yg});var Ug=32,Hg=92,Gg=34,Wg=39,Vg=40,Kg=41;function Jg(n){let e=n.length,t=4,a=n.charCodeAt(e-1)===Kg?e-2:e-1,o="";for(;t<a&&qr(n.charCodeAt(t));)t++;for(;t<a&&qr(n.charCodeAt(a));)a--;for(let i=t;i<=a;i++){let t=n.charCodeAt(i);if(t===Hg){if(i===a){i!==e-1&&(o=n.substr(i+1));break}if(t=n.charCodeAt(++i),Ur(Hg,t)){let e=i-1,t=os(n,e);i=t-1,o+=ls(n.substring(e+1,t))}else 13===t&&10===n.charCodeAt(i+1)&&i++}else o+=n[i]}return o}function Yg(n){let e="",t=!1;for(let a=0;a<n.length;a++){let o=n.charCodeAt(a);0!==o?o<=31||127===o?(e+="\\"+o.toString(16),t=!0):o===Ug||o===Hg||o===Gg||o===Wg||o===Vg||o===Kg?(e+="\\"+n.charAt(a),t=!1):(t&&Br(o)&&(e+=" "),e+=n.charAt(a),t=!1):e+="�"}return"url("+e+")"}var Zg="Url",$g={value:String};function Xg(){let n,e=this.tokenStart;switch(this.tokenType){case 7:n=Jg(this.consume(7));break;case 2:this.cmpStr(this.tokenStart,this.tokenEnd,"url(")||this.error("Function name must be `url`"),this.eat(2),this.skipSC(),n=sg(this.consume(5)),this.skipSC(),this.eof||this.eat(22);break;default:this.error("Url or Function is expected")}return{type:"Url",loc:this.getLocation(e,this.tokenStart),value:n}}function Qg(n){this.token(7,Yg(n.value))}var nw={};er(nw,{generate:()=>ow,name:()=>ew,parse:()=>aw,structure:()=>tw});var ew="Value",tw={children:[[]]};function aw(){let n=this.tokenStart,e=this.readSequence(this.scope.Value);return{type:"Value",loc:this.getLocation(n,this.tokenStart),children:e}}function ow(n){this.children(n)}var iw={};er(iw,{generate:()=>mw,name:()=>sw,parse:()=>cw,structure:()=>lw});var rw=Object.freeze({type:"WhiteSpace",loc:null,value:" "}),sw="WhiteSpace",lw={value:String};function cw(){return this.eat(13),rw}function mw(n){this.token(13,n.value)}var dw={generic:!0,generic:!0,units:{angle:["deg","grad","rad","turn"],decibel:["db"],flex:["fr"],frequency:["hz","khz"],length:["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],resolution:["dpi","dpcm","dppx","x"],semitones:["st"],time:["s","ms"]},types:{"abs()":"abs( <calc-sum> )","absolute-size":"xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large","acos()":"acos( <calc-sum> )","alpha-value":"<number>|<percentage>","angle-percentage":"<angle>|<percentage>","angular-color-hint":"<angle-percentage>","angular-color-stop":"<color>&&<color-stop-angle>?","angular-color-stop-list":"[<angular-color-stop> [, <angular-color-hint>]?]# , <angular-color-stop>","animateable-feature":"scroll-position|contents|<custom-ident>","asin()":"asin( <calc-sum> )","atan()":"atan( <calc-sum> )","atan2()":"atan2( <calc-sum> , <calc-sum> )",attachment:"scroll|fixed|local","attr()":"attr( <attr-name> <type-or-unit>? [, <attr-fallback>]? )","attr-matcher":"['~'|'|'|'^'|'$'|'*']? '='","attr-modifier":"i|s","attribute-selector":"'[' <wq-name> ']'|'[' <wq-name> <attr-matcher> [<string-token>|<ident-token>] <attr-modifier>? ']'","auto-repeat":"repeat( [auto-fill|auto-fit] , [<line-names>? <fixed-size>]+ <line-names>? )","auto-track-list":"[<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>? <auto-repeat> [<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>?",axis:"block|inline|vertical|horizontal","baseline-position":"[first|last]? baseline","basic-shape":"<inset()>|<circle()>|<ellipse()>|<polygon()>|<path()>","bg-image":"none|<image>","bg-layer":"<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>","bg-position":"[[left|center|right|top|bottom|<length-percentage>]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]|[center|[left|right] <length-percentage>?]&&[center|[top|bottom] <length-percentage>?]]","bg-size":"[<length-percentage>|auto]{1,2}|cover|contain","blur()":"blur( <length> )","blend-mode":"normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity",box:"border-box|padding-box|content-box","brightness()":"brightness( <number-percentage> )","calc()":"calc( <calc-sum> )","calc-sum":"<calc-product> [['+'|'-'] <calc-product>]*","calc-product":"<calc-value> ['*' <calc-value>|'/' <number>]*","calc-value":"<number>|<dimension>|<percentage>|<calc-constant>|( <calc-sum> )","calc-constant":"e|pi|infinity|-infinity|NaN","cf-final-image":"<image>|<color>","cf-mixing-image":"<percentage>?&&<image>","circle()":"circle( [<shape-radius>]? [at <position>]? )","clamp()":"clamp( <calc-sum>#{3} )","class-selector":"'.' <ident-token>","clip-source":"<url>",color:"<rgb()>|<rgba()>|<hsl()>|<hsla()>|<hwb()>|<lab()>|<lch()>|<hex-color>|<named-color>|currentcolor|<deprecated-system-color>","color-stop":"<color-stop-length>|<color-stop-angle>","color-stop-angle":"<angle-percentage>{1,2}","color-stop-length":"<length-percentage>{1,2}","color-stop-list":"[<linear-color-stop> [, <linear-color-hint>]?]# , <linear-color-stop>",combinator:"'>'|'+'|'~'|['||']","common-lig-values":"[common-ligatures|no-common-ligatures]","compat-auto":"searchfield|textarea|push-button|slider-horizontal|checkbox|radio|square-button|menulist|listbox|meter|progress-bar|button","composite-style":"clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor","compositing-operator":"add|subtract|intersect|exclude","compound-selector":"[<type-selector>? <subclass-selector>* [<pseudo-element-selector> <pseudo-class-selector>*]*]!","compound-selector-list":"<compound-selector>#","complex-selector":"<compound-selector> [<combinator>? <compound-selector>]*","complex-selector-list":"<complex-selector>#","conic-gradient()":"conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )","contextual-alt-values":"[contextual|no-contextual]","content-distribution":"space-between|space-around|space-evenly|stretch","content-list":"[<string>|contents|<image>|<counter>|<quote>|<target>|<leader()>|<attr()>]+","content-position":"center|start|end|flex-start|flex-end","content-replacement":"<image>","contrast()":"contrast( [<number-percentage>] )","cos()":"cos( <calc-sum> )",counter:"<counter()>|<counters()>","counter()":"counter( <counter-name> , <counter-style>? )","counter-name":"<custom-ident>","counter-style":"<counter-style-name>|symbols( )","counter-style-name":"<custom-ident>","counters()":"counters( <counter-name> , <string> , <counter-style>? )","cross-fade()":"cross-fade( <cf-mixing-image> , <cf-final-image>? )","cubic-bezier-timing-function":"ease|ease-in|ease-out|ease-in-out|cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )","deprecated-system-color":"ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText","discretionary-lig-values":"[discretionary-ligatures|no-discretionary-ligatures]","display-box":"contents|none","display-inside":"flow|flow-root|table|flex|grid|ruby","display-internal":"table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container","display-legacy":"inline-block|inline-list-item|inline-table|inline-flex|inline-grid","display-listitem":"<display-outside>?&&[flow|flow-root]?&&list-item","display-outside":"block|inline|run-in","drop-shadow()":"drop-shadow( <length>{2,3} <color>? )","east-asian-variant-values":"[jis78|jis83|jis90|jis04|simplified|traditional]","east-asian-width-values":"[full-width|proportional-width]","element()":"element( <custom-ident> , [first|start|last|first-except]? )|element( <id-selector> )","ellipse()":"ellipse( [<shape-radius>{2}]? [at <position>]? )","ending-shape":"circle|ellipse","env()":"env( <custom-ident> , <declaration-value>? )","exp()":"exp( <calc-sum> )","explicit-track-list":"[<line-names>? <track-size>]+ <line-names>?","family-name":"<string>|<custom-ident>+","feature-tag-value":"<string> [<integer>|on|off]?","feature-type":"@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation","feature-value-block":"<feature-type> '{' <feature-value-declaration-list> '}'","feature-value-block-list":"<feature-value-block>+","feature-value-declaration":"<custom-ident> : <integer>+ ;","feature-value-declaration-list":"<feature-value-declaration>","feature-value-name":"<custom-ident>","fill-rule":"nonzero|evenodd","filter-function":"<blur()>|<brightness()>|<contrast()>|<drop-shadow()>|<grayscale()>|<hue-rotate()>|<invert()>|<opacity()>|<saturate()>|<sepia()>","filter-function-list":"[<filter-function>|<url>]+","final-bg-layer":"<'background-color'>||<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>","fixed-breadth":"<length-percentage>","fixed-repeat":"repeat( [<integer [1,∞]>] , [<line-names>? <fixed-size>]+ <line-names>? )","fixed-size":"<fixed-breadth>|minmax( <fixed-breadth> , <track-breadth> )|minmax( <inflexible-breadth> , <fixed-breadth> )","font-stretch-absolute":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|<percentage>","font-variant-css21":"[normal|small-caps]","font-weight-absolute":"normal|bold|<number [1,1000]>","frequency-percentage":"<frequency>|<percentage>","general-enclosed":"[<function-token> <any-value> )]|( <ident> <any-value> )","generic-family":"serif|sans-serif|cursive|fantasy|monospace|-apple-system","generic-name":"serif|sans-serif|cursive|fantasy|monospace","geometry-box":"<shape-box>|fill-box|stroke-box|view-box",gradient:"<linear-gradient()>|<repeating-linear-gradient()>|<radial-gradient()>|<repeating-radial-gradient()>|<conic-gradient()>|<repeating-conic-gradient()>|<-legacy-gradient>","grayscale()":"grayscale( <number-percentage> )","grid-line":"auto|<custom-ident>|[<integer>&&<custom-ident>?]|[span&&[<integer>||<custom-ident>]]","historical-lig-values":"[historical-ligatures|no-historical-ligatures]","hsl()":"hsl( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )","hsla()":"hsla( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )",hue:"<number>|<angle>","hue-rotate()":"hue-rotate( <angle> )","hwb()":"hwb( [<hue>|none] [<percentage>|none] [<percentage>|none] [/ [<alpha-value>|none]]? )","hypot()":"hypot( <calc-sum># )",image:"<url>|<image()>|<image-set()>|<element()>|<paint()>|<cross-fade()>|<gradient>","image()":"image( <image-tags>? [<image-src>? , <color>?]! )","image-set()":"image-set( <image-set-option># )","image-set-option":"[<image>|<string>] [<resolution>||type( <string> )]","image-src":"<url>|<string>","image-tags":"ltr|rtl","inflexible-breadth":"<length-percentage>|min-content|max-content|auto","inset()":"inset( <length-percentage>{1,4} [round <'border-radius'>]? )","invert()":"invert( <number-percentage> )","keyframes-name":"<custom-ident>|<string>","keyframe-block":"<keyframe-selector># { <declaration-list> }","keyframe-block-list":"<keyframe-block>+","keyframe-selector":"from|to|<percentage>","lab()":"lab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","layer()":"layer( <layer-name> )","layer-name":"<ident> ['.' <ident>]*","lch()":"lch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )","leader()":"leader( <leader-type> )","leader-type":"dotted|solid|space|<string>","length-percentage":"<length>|<percentage>","line-names":"'[' <custom-ident>* ']'","line-name-list":"[<line-names>|<name-repeat>]+","line-style":"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset","line-width":"<length>|thin|medium|thick","linear-color-hint":"<length-percentage>","linear-color-stop":"<color> <color-stop-length>?","linear-gradient()":"linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )","log()":"log( <calc-sum> , <calc-sum>? )","mask-layer":"<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||<geometry-box>||[<geometry-box>|no-clip]||<compositing-operator>||<masking-mode>","mask-position":"[<length-percentage>|left|center|right] [<length-percentage>|top|center|bottom]?","mask-reference":"none|<image>|<mask-source>","mask-source":"<url>","masking-mode":"alpha|luminance|match-source","matrix()":"matrix( <number>#{6} )","matrix3d()":"matrix3d( <number>#{16} )","max()":"max( <calc-sum># )","media-and":"<media-in-parens> [and <media-in-parens>]+","media-condition":"<media-not>|<media-and>|<media-or>|<media-in-parens>","media-condition-without-or":"<media-not>|<media-and>|<media-in-parens>","media-feature":"( [<mf-plain>|<mf-boolean>|<mf-range>] )","media-in-parens":"( <media-condition> )|<media-feature>|<general-enclosed>","media-not":"not <media-in-parens>","media-or":"<media-in-parens> [or <media-in-parens>]+","media-query":"<media-condition>|[not|only]? <media-type> [and <media-condition-without-or>]?","media-query-list":"<media-query>#","media-type":"<ident>","mf-boolean":"<mf-name>","mf-name":"<ident>","mf-plain":"<mf-name> : <mf-value>","mf-range":"<mf-name> ['<'|'>']? '='? <mf-value>|<mf-value> ['<'|'>']? '='? <mf-name>|<mf-value> '<' '='? <mf-name> '<' '='? <mf-value>|<mf-value> '>' '='? <mf-name> '>' '='? <mf-value>","mf-value":"<number>|<dimension>|<ident>|<ratio>","min()":"min( <calc-sum># )","minmax()":"minmax( [<length-percentage>|min-content|max-content|auto] , [<length-percentage>|<flex>|min-content|max-content|auto] )","mod()":"mod( <calc-sum> , <calc-sum> )","name-repeat":"repeat( [<integer [1,∞]>|auto-fill] , <line-names>+ )","named-color":"transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|<-non-standard-color>","namespace-prefix":"<ident>","ns-prefix":"[<ident-token>|'*']? '|'","number-percentage":"<number>|<percentage>","numeric-figure-values":"[lining-nums|oldstyle-nums]","numeric-fraction-values":"[diagonal-fractions|stacked-fractions]","numeric-spacing-values":"[proportional-nums|tabular-nums]",nth:"<an-plus-b>|even|odd","opacity()":"opacity( [<number-percentage>] )","overflow-position":"unsafe|safe","outline-radius":"<length>|<percentage>","page-body":"<declaration>? [; <page-body>]?|<page-margin-box> <page-body>","page-margin-box":"<page-margin-box-type> '{' <declaration-list> '}'","page-margin-box-type":"@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom","page-selector-list":"[<page-selector>#]?","page-selector":"<pseudo-page>+|<ident> <pseudo-page>*","page-size":"A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger","path()":"path( [<fill-rule> ,]? <string> )","paint()":"paint( <ident> , <declaration-value>? )","perspective()":"perspective( [<length [0,∞]>|none] )","polygon()":"polygon( <fill-rule>? , [<length-percentage> <length-percentage>]# )",position:"[[left|center|right]||[top|center|bottom]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]?|[[left|right] <length-percentage>]&&[[top|bottom] <length-percentage>]]","pow()":"pow( <calc-sum> , <calc-sum> )","pseudo-class-selector":"':' <ident-token>|':' <function-token> <any-value> ')'","pseudo-element-selector":"':' <pseudo-class-selector>","pseudo-page":": [left|right|first|blank]",quote:"open-quote|close-quote|no-open-quote|no-close-quote","radial-gradient()":"radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )",ratio:"<number [0,∞]> [/ <number [0,∞]>]?","relative-selector":"<combinator>? <complex-selector>","relative-selector-list":"<relative-selector>#","relative-size":"larger|smaller","rem()":"rem( <calc-sum> , <calc-sum> )","repeat-style":"repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}","repeating-conic-gradient()":"repeating-conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )","repeating-linear-gradient()":"repeating-linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )","repeating-radial-gradient()":"repeating-radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )","reversed-counter-name":"reversed( <counter-name> )","rgb()":"rgb( <percentage>{3} [/ <alpha-value>]? )|rgb( <number>{3} [/ <alpha-value>]? )|rgb( <percentage>#{3} , <alpha-value>? )|rgb( <number>#{3} , <alpha-value>? )","rgba()":"rgba( <percentage>{3} [/ <alpha-value>]? )|rgba( <number>{3} [/ <alpha-value>]? )|rgba( <percentage>#{3} , <alpha-value>? )|rgba( <number>#{3} , <alpha-value>? )","rotate()":"rotate( [<angle>|<zero>] )","rotate3d()":"rotate3d( <number> , <number> , <number> , [<angle>|<zero>] )","rotateX()":"rotateX( [<angle>|<zero>] )","rotateY()":"rotateY( [<angle>|<zero>] )","rotateZ()":"rotateZ( [<angle>|<zero>] )","round()":"round( <rounding-strategy>? , <calc-sum> , <calc-sum> )","rounding-strategy":"nearest|up|down|to-zero","saturate()":"saturate( <number-percentage> )","scale()":"scale( [<number>|<percentage>]#{1,2} )","scale3d()":"scale3d( [<number>|<percentage>]#{3} )","scaleX()":"scaleX( [<number>|<percentage>] )","scaleY()":"scaleY( [<number>|<percentage>] )","scaleZ()":"scaleZ( [<number>|<percentage>] )",scroller:"root|nearest","self-position":"center|start|end|self-start|self-end|flex-start|flex-end","shape-radius":"<length-percentage>|closest-side|farthest-side","sign()":"sign( <calc-sum> )","skew()":"skew( [<angle>|<zero>] , [<angle>|<zero>]? )","skewX()":"skewX( [<angle>|<zero>] )","skewY()":"skewY( [<angle>|<zero>] )","sepia()":"sepia( <number-percentage> )",shadow:"inset?&&<length>{2,4}&&<color>?","shadow-t":"[<length>{2,3}&&<color>?]",shape:"rect( <top> , <right> , <bottom> , <left> )|rect( <top> <right> <bottom> <left> )","shape-box":"<box>|margin-box","side-or-corner":"[left|right]||[top|bottom]","sin()":"sin( <calc-sum> )","single-animation":"<time>||<easing-function>||<time>||<single-animation-iteration-count>||<single-animation-direction>||<single-animation-fill-mode>||<single-animation-play-state>||[none|<keyframes-name>]","single-animation-direction":"normal|reverse|alternate|alternate-reverse","single-animation-fill-mode":"none|forwards|backwards|both","single-animation-iteration-count":"infinite|<number>","single-animation-play-state":"running|paused","single-animation-timeline":"auto|none|<timeline-name>|scroll( <axis>? <scroller>? )","single-transition":"[none|<single-transition-property>]||<time>||<easing-function>||<time>","single-transition-property":"all|<custom-ident>",size:"closest-side|farthest-side|closest-corner|farthest-corner|<length>|<length-percentage>{2}","sqrt()":"sqrt( <calc-sum> )","step-position":"jump-start|jump-end|jump-none|jump-both|start|end","step-timing-function":"step-start|step-end|steps( <integer> [, <step-position>]? )","subclass-selector":"<id-selector>|<class-selector>|<attribute-selector>|<pseudo-class-selector>","supports-condition":"not <supports-in-parens>|<supports-in-parens> [and <supports-in-parens>]*|<supports-in-parens> [or <supports-in-parens>]*","supports-in-parens":"( <supports-condition> )|<supports-feature>|<general-enclosed>","supports-feature":"<supports-decl>|<supports-selector-fn>","supports-decl":"( <declaration> )","supports-selector-fn":"selector( <complex-selector> )",symbol:"<string>|<image>|<custom-ident>","tan()":"tan( <calc-sum> )",target:"<target-counter()>|<target-counters()>|<target-text()>","target-counter()":"target-counter( [<string>|<url>] , <custom-ident> , <counter-style>? )","target-counters()":"target-counters( [<string>|<url>] , <custom-ident> , <string> , <counter-style>? )","target-text()":"target-text( [<string>|<url>] , [content|before|after|first-letter]? )","time-percentage":"<time>|<percentage>","timeline-name":"<custom-ident>|<string>","easing-function":"linear|<cubic-bezier-timing-function>|<step-timing-function>","track-breadth":"<length-percentage>|<flex>|min-content|max-content|auto","track-list":"[<line-names>? [<track-size>|<track-repeat>]]+ <line-names>?","track-repeat":"repeat( [<integer [1,∞]>] , [<line-names>? <track-size>]+ <line-names>? )","track-size":"<track-breadth>|minmax( <inflexible-breadth> , <track-breadth> )|fit-content( <length-percentage> )","transform-function":"<matrix()>|<translate()>|<translateX()>|<translateY()>|<scale()>|<scaleX()>|<scaleY()>|<rotate()>|<skew()>|<skewX()>|<skewY()>|<matrix3d()>|<translate3d()>|<translateZ()>|<scale3d()>|<scaleZ()>|<rotate3d()>|<rotateX()>|<rotateY()>|<rotateZ()>|<perspective()>","transform-list":"<transform-function>+","translate()":"translate( <length-percentage> , <length-percentage>? )","translate3d()":"translate3d( <length-percentage> , <length-percentage> , <length> )","translateX()":"translateX( <length-percentage> )","translateY()":"translateY( <length-percentage> )","translateZ()":"translateZ( <length> )","type-or-unit":"string|color|url|integer|number|length|angle|time|frequency|cap|ch|em|ex|ic|lh|rlh|rem|vb|vi|vw|vh|vmin|vmax|mm|Q|cm|in|pt|pc|px|deg|grad|rad|turn|ms|s|Hz|kHz|%","type-selector":"<wq-name>|<ns-prefix>? '*'","var()":"var( <custom-property-name> , <declaration-value>? )","viewport-length":"auto|<length-percentage>","visual-box":"content-box|padding-box|border-box","wq-name":"<ns-prefix>? <ident-token>","-legacy-gradient":"<-webkit-gradient()>|<-legacy-linear-gradient>|<-legacy-repeating-linear-gradient>|<-legacy-radial-gradient>|<-legacy-repeating-radial-gradient>","-legacy-linear-gradient":"-moz-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-repeating-linear-gradient":"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-linear-gradient-arguments":"[<angle>|<side-or-corner>]? , <color-stop-list>","-legacy-radial-gradient":"-moz-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-repeating-radial-gradient":"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-radial-gradient-arguments":"[<position> ,]? [[[<-legacy-radial-gradient-shape>||<-legacy-radial-gradient-size>]|[<length>|<percentage>]{2}] ,]? <color-stop-list>","-legacy-radial-gradient-size":"closest-side|closest-corner|farthest-side|farthest-corner|contain|cover","-legacy-radial-gradient-shape":"circle|ellipse","-non-standard-font":"-apple-system-body|-apple-system-headline|-apple-system-subheadline|-apple-system-caption1|-apple-system-caption2|-apple-system-footnote|-apple-system-short-body|-apple-system-short-headline|-apple-system-short-subheadline|-apple-system-short-caption1|-apple-system-short-footnote|-apple-system-tall-body","-non-standard-color":"-moz-ButtonDefault|-moz-ButtonHoverFace|-moz-ButtonHoverText|-moz-CellHighlight|-moz-CellHighlightText|-moz-Combobox|-moz-ComboboxText|-moz-Dialog|-moz-DialogText|-moz-dragtargetzone|-moz-EvenTreeRow|-moz-Field|-moz-FieldText|-moz-html-CellHighlight|-moz-html-CellHighlightText|-moz-mac-accentdarkestshadow|-moz-mac-accentdarkshadow|-moz-mac-accentface|-moz-mac-accentlightesthighlight|-moz-mac-accentlightshadow|-moz-mac-accentregularhighlight|-moz-mac-accentregularshadow|-moz-mac-chrome-active|-moz-mac-chrome-inactive|-moz-mac-focusring|-moz-mac-menuselect|-moz-mac-menushadow|-moz-mac-menutextselect|-moz-MenuHover|-moz-MenuHoverText|-moz-MenuBarText|-moz-MenuBarHoverText|-moz-nativehyperlinktext|-moz-OddTreeRow|-moz-win-communicationstext|-moz-win-mediatext|-moz-activehyperlinktext|-moz-default-background-color|-moz-default-color|-moz-hyperlinktext|-moz-visitedhyperlinktext|-webkit-activelink|-webkit-focus-ring-color|-webkit-link|-webkit-text","-non-standard-image-rendering":"optimize-contrast|-moz-crisp-edges|-o-crisp-edges|-webkit-optimize-contrast","-non-standard-overflow":"-moz-scrollbars-none|-moz-scrollbars-horizontal|-moz-scrollbars-vertical|-moz-hidden-unscrollable","-non-standard-width":"fill-available|min-intrinsic|intrinsic|-moz-available|-moz-fit-content|-moz-min-content|-moz-max-content|-webkit-min-content|-webkit-max-content","-webkit-gradient()":"-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [, <-webkit-gradient-point>|, <-webkit-gradient-radius> , <-webkit-gradient-point>] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )","-webkit-gradient-color-stop":"from( <color> )|color-stop( [<number-zero-one>|<percentage>] , <color> )|to( <color> )","-webkit-gradient-point":"[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]","-webkit-gradient-radius":"<length>|<percentage>","-webkit-gradient-type":"linear|radial","-webkit-mask-box-repeat":"repeat|stretch|round","-webkit-mask-clip-style":"border|border-box|padding|padding-box|content|content-box|text","-ms-filter-function-list":"<-ms-filter-function>+","-ms-filter-function":"<-ms-filter-function-progid>|<-ms-filter-function-legacy>","-ms-filter-function-progid":"'progid:' [<ident-token> '.']* [<ident-token>|<function-token> <any-value>? )]","-ms-filter-function-legacy":"<ident-token>|<function-token> <any-value>? )","-ms-filter":"<string>",age:"child|young|old","attr-name":"<wq-name>","attr-fallback":"<any-value>","bg-clip":"<box>|border|text",bottom:"<length>|auto","generic-voice":"[<age>? <gender> <integer>?]",gender:"male|female|neutral",left:"<length>|auto","mask-image":"<mask-reference>#",paint:"none|<color>|<url> [none|<color>]?|context-fill|context-stroke",right:"<length>|auto","single-animation-composition":"replace|add|accumulate","svg-length":"<percentage>|<length>|<number>","svg-writing-mode":"lr-tb|rl-tb|tb-rl|lr|rl|tb",top:"<length>|auto",x:"<number>",y:"<number>",declaration:"<ident-token> : <declaration-value>? ['!' important]?","declaration-list":"[<declaration>? ';']* <declaration>?",url:"url( <string> <url-modifier>* )|<url-token>","url-modifier":"<ident>|<function-token> <any-value> )","number-zero-one":"<number [0,1]>","number-one-or-greater":"<number [1,∞]>","-non-standard-display":"-ms-inline-flexbox|-ms-grid|-ms-inline-grid|-webkit-flex|-webkit-inline-flex|-webkit-box|-webkit-inline-box|-moz-inline-stack|-moz-box|-moz-inline-box"},properties:{"--*":"<declaration-value>","-ms-accelerator":"false|true","-ms-block-progression":"tb|rl|bt|lr","-ms-content-zoom-chaining":"none|chained","-ms-content-zooming":"none|zoom","-ms-content-zoom-limit":"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>","-ms-content-zoom-limit-max":"<percentage>","-ms-content-zoom-limit-min":"<percentage>","-ms-content-zoom-snap":"<'-ms-content-zoom-snap-type'>||<'-ms-content-zoom-snap-points'>","-ms-content-zoom-snap-points":"snapInterval( <percentage> , <percentage> )|snapList( <percentage># )","-ms-content-zoom-snap-type":"none|proximity|mandatory","-ms-filter":"<string>","-ms-flow-from":"[none|<custom-ident>]#","-ms-flow-into":"[none|<custom-ident>]#","-ms-grid-columns":"none|<track-list>|<auto-track-list>","-ms-grid-rows":"none|<track-list>|<auto-track-list>","-ms-high-contrast-adjust":"auto|none","-ms-hyphenate-limit-chars":"auto|<integer>{1,3}","-ms-hyphenate-limit-lines":"no-limit|<integer>","-ms-hyphenate-limit-zone":"<percentage>|<length>","-ms-ime-align":"auto|after","-ms-overflow-style":"auto|none|scrollbar|-ms-autohiding-scrollbar","-ms-scrollbar-3dlight-color":"<color>","-ms-scrollbar-arrow-color":"<color>","-ms-scrollbar-base-color":"<color>","-ms-scrollbar-darkshadow-color":"<color>","-ms-scrollbar-face-color":"<color>","-ms-scrollbar-highlight-color":"<color>","-ms-scrollbar-shadow-color":"<color>","-ms-scrollbar-track-color":"<color>","-ms-scroll-chaining":"chained|none","-ms-scroll-limit":"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>","-ms-scroll-limit-x-max":"auto|<length>","-ms-scroll-limit-x-min":"<length>","-ms-scroll-limit-y-max":"auto|<length>","-ms-scroll-limit-y-min":"<length>","-ms-scroll-rails":"none|railed","-ms-scroll-snap-points-x":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-points-y":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-type":"none|proximity|mandatory","-ms-scroll-snap-x":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>","-ms-scroll-snap-y":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>","-ms-scroll-translation":"none|vertical-to-horizontal","-ms-text-autospace":"none|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space","-ms-touch-select":"grippers|none","-ms-user-select":"none|element|text","-ms-wrap-flow":"auto|both|start|end|maximum|clear","-ms-wrap-margin":"<length>","-ms-wrap-through":"wrap|none","-moz-appearance":"none|button|button-arrow-down|button-arrow-next|button-arrow-previous|button-arrow-up|button-bevel|button-focus|caret|checkbox|checkbox-container|checkbox-label|checkmenuitem|dualbutton|groupbox|listbox|listitem|menuarrow|menubar|menucheckbox|menuimage|menuitem|menuitemtext|menulist|menulist-button|menulist-text|menulist-textfield|menupopup|menuradio|menuseparator|meterbar|meterchunk|progressbar|progressbar-vertical|progresschunk|progresschunk-vertical|radio|radio-container|radio-label|radiomenuitem|range|range-thumb|resizer|resizerpanel|scale-horizontal|scalethumbend|scalethumb-horizontal|scalethumbstart|scalethumbtick|scalethumb-vertical|scale-vertical|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|separator|sheet|spinner|spinner-downbutton|spinner-textfield|spinner-upbutton|splitter|statusbar|statusbarpanel|tab|tabpanel|tabpanels|tab-scroll-arrow-back|tab-scroll-arrow-forward|textfield|textfield-multiline|toolbar|toolbarbutton|toolbarbutton-dropdown|toolbargripper|toolbox|tooltip|treeheader|treeheadercell|treeheadersortarrow|treeitem|treeline|treetwisty|treetwistyopen|treeview|-moz-mac-unified-toolbar|-moz-win-borderless-glass|-moz-win-browsertabbar-toolbox|-moz-win-communicationstext|-moz-win-communications-toolbox|-moz-win-exclude-glass|-moz-win-glass|-moz-win-mediatext|-moz-win-media-toolbox|-moz-window-button-box|-moz-window-button-box-maximized|-moz-window-button-close|-moz-window-button-maximize|-moz-window-button-minimize|-moz-window-button-restore|-moz-window-frame-bottom|-moz-window-frame-left|-moz-window-frame-right|-moz-window-titlebar|-moz-window-titlebar-maximized","-moz-binding":"<url>|none","-moz-border-bottom-colors":"<color>+|none","-moz-border-left-colors":"<color>+|none","-moz-border-right-colors":"<color>+|none","-moz-border-top-colors":"<color>+|none","-moz-context-properties":"none|[fill|fill-opacity|stroke|stroke-opacity]#","-moz-float-edge":"border-box|content-box|margin-box|padding-box","-moz-force-broken-image-icon":"0|1","-moz-image-region":"<shape>|auto","-moz-orient":"inline|block|horizontal|vertical","-moz-outline-radius":"<outline-radius>{1,4} [/ <outline-radius>{1,4}]?","-moz-outline-radius-bottomleft":"<outline-radius>","-moz-outline-radius-bottomright":"<outline-radius>","-moz-outline-radius-topleft":"<outline-radius>","-moz-outline-radius-topright":"<outline-radius>","-moz-stack-sizing":"ignore|stretch-to-fit","-moz-text-blink":"none|blink","-moz-user-focus":"ignore|normal|select-after|select-before|select-menu|select-same|select-all|none","-moz-user-input":"auto|none|enabled|disabled","-moz-user-modify":"read-only|read-write|write-only","-moz-window-dragging":"drag|no-drag","-moz-window-shadow":"default|menu|tooltip|sheet|none","-webkit-appearance":"none|button|button-bevel|caps-lock-indicator|caret|checkbox|default-button|inner-spin-button|listbox|listitem|media-controls-background|media-controls-fullscreen-background|media-current-time-display|media-enter-fullscreen-button|media-exit-fullscreen-button|media-fullscreen-button|media-mute-button|media-overlay-play-button|media-play-button|media-seek-back-button|media-seek-forward-button|media-slider|media-sliderthumb|media-time-remaining-display|media-toggle-closed-captions-button|media-volume-slider|media-volume-slider-container|media-volume-sliderthumb|menulist|menulist-button|menulist-text|menulist-textfield|meter|progress-bar|progress-bar-value|push-button|radio|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbargripper-horizontal|scrollbargripper-vertical|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|searchfield-cancel-button|searchfield-decoration|searchfield-results-button|searchfield-results-decoration|slider-horizontal|slider-vertical|sliderthumb-horizontal|sliderthumb-vertical|square-button|textarea|textfield|-apple-pay-button","-webkit-border-before":"<'border-width'>||<'border-style'>||<color>","-webkit-border-before-color":"<color>","-webkit-border-before-style":"<'border-style'>","-webkit-border-before-width":"<'border-width'>","-webkit-box-reflect":"[above|below|right|left]? <length>? <image>?","-webkit-line-clamp":"none|<integer>","-webkit-mask":"[<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||[<box>|border|padding|content|text]||[<box>|border|padding|content]]#","-webkit-mask-attachment":"<attachment>#","-webkit-mask-clip":"[<box>|border|padding|content|text]#","-webkit-mask-composite":"<composite-style>#","-webkit-mask-image":"<mask-reference>#","-webkit-mask-origin":"[<box>|border|padding|content]#","-webkit-mask-position":"<position>#","-webkit-mask-position-x":"[<length-percentage>|left|center|right]#","-webkit-mask-position-y":"[<length-percentage>|top|center|bottom]#","-webkit-mask-repeat":"<repeat-style>#","-webkit-mask-repeat-x":"repeat|no-repeat|space|round","-webkit-mask-repeat-y":"repeat|no-repeat|space|round","-webkit-mask-size":"<bg-size>#","-webkit-overflow-scrolling":"auto|touch","-webkit-tap-highlight-color":"<color>","-webkit-text-fill-color":"<color>","-webkit-text-stroke":"<length>||<color>","-webkit-text-stroke-color":"<color>","-webkit-text-stroke-width":"<length>","-webkit-touch-callout":"default|none","-webkit-user-modify":"read-only|read-write|read-write-plaintext-only","accent-color":"auto|<color>","align-content":"normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>","align-items":"normal|stretch|<baseline-position>|[<overflow-position>? <self-position>]","align-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? <self-position>","align-tracks":"[normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>]#",all:"initial|inherit|unset|revert|revert-layer",animation:"<single-animation>#","animation-composition":"<single-animation-composition>#","animation-delay":"<time>#","animation-direction":"<single-animation-direction>#","animation-duration":"<time>#","animation-fill-mode":"<single-animation-fill-mode>#","animation-iteration-count":"<single-animation-iteration-count>#","animation-name":"[none|<keyframes-name>]#","animation-play-state":"<single-animation-play-state>#","animation-timing-function":"<easing-function>#","animation-timeline":"<single-animation-timeline>#",appearance:"none|auto|textfield|menulist-button|<compat-auto>","aspect-ratio":"auto|<ratio>",azimuth:"<angle>|[[left-side|far-left|left|center-left|center|center-right|right|far-right|right-side]||behind]|leftwards|rightwards","backdrop-filter":"none|<filter-function-list>","backface-visibility":"visible|hidden",background:"[<bg-layer> ,]* <final-bg-layer>","background-attachment":"<attachment>#","background-blend-mode":"<blend-mode>#","background-clip":"<bg-clip>#","background-color":"<color>","background-image":"<bg-image>#","background-origin":"<box>#","background-position":"<bg-position>#","background-position-x":"[center|[[left|right|x-start|x-end]? <length-percentage>?]!]#","background-position-y":"[center|[[top|bottom|y-start|y-end]? <length-percentage>?]!]#","background-repeat":"<repeat-style>#","background-size":"<bg-size>#","block-overflow":"clip|ellipsis|<string>","block-size":"<'width'>",border:"<line-width>||<line-style>||<color>","border-block":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-color":"<'border-top-color'>{1,2}","border-block-style":"<'border-top-style'>","border-block-width":"<'border-top-width'>","border-block-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-end-color":"<'border-top-color'>","border-block-end-style":"<'border-top-style'>","border-block-end-width":"<'border-top-width'>","border-block-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-start-color":"<'border-top-color'>","border-block-start-style":"<'border-top-style'>","border-block-start-width":"<'border-top-width'>","border-bottom":"<line-width>||<line-style>||<color>","border-bottom-color":"<'border-top-color'>","border-bottom-left-radius":"<length-percentage>{1,2}","border-bottom-right-radius":"<length-percentage>{1,2}","border-bottom-style":"<line-style>","border-bottom-width":"<line-width>","border-collapse":"collapse|separate","border-color":"<color>{1,4}","border-end-end-radius":"<length-percentage>{1,2}","border-end-start-radius":"<length-percentage>{1,2}","border-image":"<'border-image-source'>||<'border-image-slice'> [/ <'border-image-width'>|/ <'border-image-width'>? / <'border-image-outset'>]?||<'border-image-repeat'>","border-image-outset":"[<length>|<number>]{1,4}","border-image-repeat":"[stretch|repeat|round|space]{1,2}","border-image-slice":"<number-percentage>{1,4}&&fill?","border-image-source":"none|<image>","border-image-width":"[<length-percentage>|<number>|auto]{1,4}","border-inline":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-color":"<'border-top-color'>{1,2}","border-inline-style":"<'border-top-style'>","border-inline-width":"<'border-top-width'>","border-inline-end-color":"<'border-top-color'>","border-inline-end-style":"<'border-top-style'>","border-inline-end-width":"<'border-top-width'>","border-inline-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-start-color":"<'border-top-color'>","border-inline-start-style":"<'border-top-style'>","border-inline-start-width":"<'border-top-width'>","border-left":"<line-width>||<line-style>||<color>","border-left-color":"<color>","border-left-style":"<line-style>","border-left-width":"<line-width>","border-radius":"<length-percentage>{1,4} [/ <length-percentage>{1,4}]?","border-right":"<line-width>||<line-style>||<color>","border-right-color":"<color>","border-right-style":"<line-style>","border-right-width":"<line-width>","border-spacing":"<length> <length>?","border-start-end-radius":"<length-percentage>{1,2}","border-start-start-radius":"<length-percentage>{1,2}","border-style":"<line-style>{1,4}","border-top":"<line-width>||<line-style>||<color>","border-top-color":"<color>","border-top-left-radius":"<length-percentage>{1,2}","border-top-right-radius":"<length-percentage>{1,2}","border-top-style":"<line-style>","border-top-width":"<line-width>","border-width":"<line-width>{1,4}",bottom:"<length>|<percentage>|auto","box-align":"start|center|end|baseline|stretch","box-decoration-break":"slice|clone","box-direction":"normal|reverse|inherit","box-flex":"<number>","box-flex-group":"<integer>","box-lines":"single|multiple","box-ordinal-group":"<integer>","box-orient":"horizontal|vertical|inline-axis|block-axis|inherit","box-pack":"start|center|end|justify","box-shadow":"none|<shadow>#","box-sizing":"content-box|border-box","break-after":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-before":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-inside":"auto|avoid|avoid-page|avoid-column|avoid-region","caption-side":"top|bottom|block-start|block-end|inline-start|inline-end",caret:"<'caret-color'>||<'caret-shape'>","caret-color":"auto|<color>","caret-shape":"auto|bar|block|underscore",clear:"none|left|right|both|inline-start|inline-end",clip:"<shape>|auto","clip-path":"<clip-source>|[<basic-shape>||<geometry-box>]|none",color:"<color>","print-color-adjust":"economy|exact","color-scheme":"normal|[light|dark|<custom-ident>]+&&only?","column-count":"<integer>|auto","column-fill":"auto|balance|balance-all","column-gap":"normal|<length-percentage>","column-rule":"<'column-rule-width'>||<'column-rule-style'>||<'column-rule-color'>","column-rule-color":"<color>","column-rule-style":"<'border-style'>","column-rule-width":"<'border-width'>","column-span":"none|all","column-width":"<length>|auto",columns:"<'column-width'>||<'column-count'>",contain:"none|strict|content|[[size||inline-size]||layout||style||paint]","contain-intrinsic-size":"[none|<length>|auto <length>]{1,2}","contain-intrinsic-block-size":"none|<length>|auto <length>","contain-intrinsic-height":"none|<length>|auto <length>","contain-intrinsic-inline-size":"none|<length>|auto <length>","contain-intrinsic-width":"none|<length>|auto <length>",content:"normal|none|[<content-replacement>|<content-list>] [/ [<string>|<counter>]+]?","content-visibility":"visible|auto|hidden","counter-increment":"[<counter-name> <integer>?]+|none","counter-reset":"[<counter-name> <integer>?|<reversed-counter-name> <integer>?]+|none","counter-set":"[<counter-name> <integer>?]+|none",cursor:"[[<url> [<x> <y>]? ,]* [auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing|hand|-webkit-grab|-webkit-grabbing|-webkit-zoom-in|-webkit-zoom-out|-moz-grab|-moz-grabbing|-moz-zoom-in|-moz-zoom-out]]",direction:"ltr|rtl",display:"[<display-outside>||<display-inside>]|<display-listitem>|<display-internal>|<display-box>|<display-legacy>|<-non-standard-display>","empty-cells":"show|hide",filter:"none|<filter-function-list>|<-ms-filter-function-list>",flex:"none|[<'flex-grow'> <'flex-shrink'>?||<'flex-basis'>]","flex-basis":"content|<'width'>","flex-direction":"row|row-reverse|column|column-reverse","flex-flow":"<'flex-direction'>||<'flex-wrap'>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap|wrap|wrap-reverse",float:"left|right|none|inline-start|inline-end",font:"[[<'font-style'>||<font-variant-css21>||<'font-weight'>||<'font-stretch'>]? <'font-size'> [/ <'line-height'>]? <'font-family'>]|caption|icon|menu|message-box|small-caption|status-bar","font-family":"[<family-name>|<generic-family>]#","font-feature-settings":"normal|<feature-tag-value>#","font-kerning":"auto|normal|none","font-language-override":"normal|<string>","font-optical-sizing":"auto|none","font-variation-settings":"normal|[<string> <number>]#","font-size":"<absolute-size>|<relative-size>|<length-percentage>","font-size-adjust":"none|[ex-height|cap-height|ch-width|ic-width|ic-height]? [from-font|<number>]","font-smooth":"auto|never|always|<absolute-size>|<length>","font-stretch":"<font-stretch-absolute>","font-style":"normal|italic|oblique <angle>?","font-synthesis":"none|[weight||style||small-caps]","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-alternates":"normal|[stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )]","font-variant-caps":"normal|small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps","font-variant-east-asian":"normal|[<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-ligatures":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>]","font-variant-numeric":"normal|[<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero]","font-variant-position":"normal|sub|super","font-weight":"<font-weight-absolute>|bolder|lighter","forced-color-adjust":"auto|none",gap:"<'row-gap'> <'column-gap'>?",grid:"<'grid-template'>|<'grid-template-rows'> / [auto-flow&&dense?] <'grid-auto-columns'>?|[auto-flow&&dense?] <'grid-auto-rows'>? / <'grid-template-columns'>","grid-area":"<grid-line> [/ <grid-line>]{0,3}","grid-auto-columns":"<track-size>+","grid-auto-flow":"[row|column]||dense","grid-auto-rows":"<track-size>+","grid-column":"<grid-line> [/ <grid-line>]?","grid-column-end":"<grid-line>","grid-column-gap":"<length-percentage>","grid-column-start":"<grid-line>","grid-gap":"<'grid-row-gap'> <'grid-column-gap'>?","grid-row":"<grid-line> [/ <grid-line>]?","grid-row-end":"<grid-line>","grid-row-gap":"<length-percentage>","grid-row-start":"<grid-line>","grid-template":"none|[<'grid-template-rows'> / <'grid-template-columns'>]|[<line-names>? <string> <track-size>? <line-names>?]+ [/ <explicit-track-list>]?","grid-template-areas":"none|<string>+","grid-template-columns":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","grid-template-rows":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","hanging-punctuation":"none|[first||[force-end|allow-end]||last]",height:"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","hyphenate-character":"auto|<string>",hyphens:"none|manual|auto","image-orientation":"from-image|<angle>|[<angle>? flip]","image-rendering":"auto|crisp-edges|pixelated|optimizeSpeed|optimizeQuality|<-non-standard-image-rendering>","image-resolution":"[from-image||<resolution>]&&snap?","ime-mode":"auto|normal|active|inactive|disabled","initial-letter":"normal|[<number> <integer>?]","initial-letter-align":"[auto|alphabetic|hanging|ideographic]","inline-size":"<'width'>","input-security":"auto|none",inset:"<'top'>{1,4}","inset-block":"<'top'>{1,2}","inset-block-end":"<'top'>","inset-block-start":"<'top'>","inset-inline":"<'top'>{1,2}","inset-inline-end":"<'top'>","inset-inline-start":"<'top'>",isolation:"auto|isolate","justify-content":"normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]","justify-items":"normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|legacy|legacy&&[left|right|center]","justify-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]","justify-tracks":"[normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]]#",left:"<length>|<percentage>|auto","letter-spacing":"normal|<length-percentage>","line-break":"auto|loose|normal|strict|anywhere","line-clamp":"none|<integer>","line-height":"normal|<number>|<length>|<percentage>","line-height-step":"<length>","list-style":"<'list-style-type'>||<'list-style-position'>||<'list-style-image'>","list-style-image":"<image>|none","list-style-position":"inside|outside","list-style-type":"<counter-style>|<string>|none",margin:"[<length>|<percentage>|auto]{1,4}","margin-block":"<'margin-left'>{1,2}","margin-block-end":"<'margin-left'>","margin-block-start":"<'margin-left'>","margin-bottom":"<length>|<percentage>|auto","margin-inline":"<'margin-left'>{1,2}","margin-inline-end":"<'margin-left'>","margin-inline-start":"<'margin-left'>","margin-left":"<length>|<percentage>|auto","margin-right":"<length>|<percentage>|auto","margin-top":"<length>|<percentage>|auto","margin-trim":"none|in-flow|all",mask:"<mask-layer>#","mask-border":"<'mask-border-source'>||<'mask-border-slice'> [/ <'mask-border-width'>? [/ <'mask-border-outset'>]?]?||<'mask-border-repeat'>||<'mask-border-mode'>","mask-border-mode":"luminance|alpha","mask-border-outset":"[<length>|<number>]{1,4}","mask-border-repeat":"[stretch|repeat|round|space]{1,2}","mask-border-slice":"<number-percentage>{1,4} fill?","mask-border-source":"none|<image>","mask-border-width":"[<length-percentage>|<number>|auto]{1,4}","mask-clip":"[<geometry-box>|no-clip]#","mask-composite":"<compositing-operator>#","mask-image":"<mask-reference>#","mask-mode":"<masking-mode>#","mask-origin":"<geometry-box>#","mask-position":"<position>#","mask-repeat":"<repeat-style>#","mask-size":"<bg-size>#","mask-type":"luminance|alpha","masonry-auto-flow":"[pack|next]||[definite-first|ordered]","math-depth":"auto-add|add( <integer> )|<integer>","math-shift":"normal|compact","math-style":"normal|compact","max-block-size":"<'max-width'>","max-height":"none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","max-inline-size":"<'max-width'>","max-lines":"none|<integer>","max-width":"none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>","min-block-size":"<'min-width'>","min-height":"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","min-inline-size":"<'min-width'>","min-width":"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>","mix-blend-mode":"<blend-mode>|plus-lighter","object-fit":"fill|contain|cover|none|scale-down","object-position":"<position>",offset:"[<'offset-position'>? [<'offset-path'> [<'offset-distance'>||<'offset-rotate'>]?]?]! [/ <'offset-anchor'>]?","offset-anchor":"auto|<position>","offset-distance":"<length-percentage>","offset-path":"none|ray( [<angle>&&<size>&&contain?] )|<path()>|<url>|[<basic-shape>||<geometry-box>]","offset-position":"auto|<position>","offset-rotate":"[auto|reverse]||<angle>",opacity:"<alpha-value>",order:"<integer>",orphans:"<integer>",outline:"[<'outline-color'>||<'outline-style'>||<'outline-width'>]","outline-color":"<color>|invert","outline-offset":"<length>","outline-style":"auto|<'border-style'>","outline-width":"<line-width>",overflow:"[visible|hidden|clip|scroll|auto]{1,2}|<-non-standard-overflow>","overflow-anchor":"auto|none","overflow-block":"visible|hidden|clip|scroll|auto","overflow-clip-box":"padding-box|content-box","overflow-clip-margin":"<visual-box>||<length [0,∞]>","overflow-inline":"visible|hidden|clip|scroll|auto","overflow-wrap":"normal|break-word|anywhere","overflow-x":"visible|hidden|clip|scroll|auto","overflow-y":"visible|hidden|clip|scroll|auto","overscroll-behavior":"[contain|none|auto]{1,2}","overscroll-behavior-block":"contain|none|auto","overscroll-behavior-inline":"contain|none|auto","overscroll-behavior-x":"contain|none|auto","overscroll-behavior-y":"contain|none|auto",padding:"[<length>|<percentage>]{1,4}","padding-block":"<'padding-left'>{1,2}","padding-block-end":"<'padding-left'>","padding-block-start":"<'padding-left'>","padding-bottom":"<length>|<percentage>","padding-inline":"<'padding-left'>{1,2}","padding-inline-end":"<'padding-left'>","padding-inline-start":"<'padding-left'>","padding-left":"<length>|<percentage>","padding-right":"<length>|<percentage>","padding-top":"<length>|<percentage>","page-break-after":"auto|always|avoid|left|right|recto|verso","page-break-before":"auto|always|avoid|left|right|recto|verso","page-break-inside":"auto|avoid","paint-order":"normal|[fill||stroke||markers]",perspective:"none|<length>","perspective-origin":"<position>","place-content":"<'align-content'> <'justify-content'>?","place-items":"<'align-items'> <'justify-items'>?","place-self":"<'align-self'> <'justify-self'>?","pointer-events":"auto|none|visiblePainted|visibleFill|visibleStroke|visible|painted|fill|stroke|all|inherit",position:"static|relative|absolute|sticky|fixed|-webkit-sticky",quotes:"none|auto|[<string> <string>]+",resize:"none|both|horizontal|vertical|block|inline",right:"<length>|<percentage>|auto",rotate:"none|<angle>|[x|y|z|<number>{3}]&&<angle>","row-gap":"normal|<length-percentage>","ruby-align":"start|center|space-between|space-around","ruby-merge":"separate|collapse|auto","ruby-position":"[alternate||[over|under]]|inter-character",scale:"none|<number>{1,3}","scrollbar-color":"auto|<color>{2}","scrollbar-gutter":"auto|stable&&both-edges?","scrollbar-width":"auto|thin|none","scroll-behavior":"auto|smooth","scroll-margin":"<length>{1,4}","scroll-margin-block":"<length>{1,2}","scroll-margin-block-start":"<length>","scroll-margin-block-end":"<length>","scroll-margin-bottom":"<length>","scroll-margin-inline":"<length>{1,2}","scroll-margin-inline-start":"<length>","scroll-margin-inline-end":"<length>","scroll-margin-left":"<length>","scroll-margin-right":"<length>","scroll-margin-top":"<length>","scroll-padding":"[auto|<length-percentage>]{1,4}","scroll-padding-block":"[auto|<length-percentage>]{1,2}","scroll-padding-block-start":"auto|<length-percentage>","scroll-padding-block-end":"auto|<length-percentage>","scroll-padding-bottom":"auto|<length-percentage>","scroll-padding-inline":"[auto|<length-percentage>]{1,2}","scroll-padding-inline-start":"auto|<length-percentage>","scroll-padding-inline-end":"auto|<length-percentage>","scroll-padding-left":"auto|<length-percentage>","scroll-padding-right":"auto|<length-percentage>","scroll-padding-top":"auto|<length-percentage>","scroll-snap-align":"[none|start|end|center]{1,2}","scroll-snap-coordinate":"none|<position>#","scroll-snap-destination":"<position>","scroll-snap-points-x":"none|repeat( <length-percentage> )","scroll-snap-points-y":"none|repeat( <length-percentage> )","scroll-snap-stop":"normal|always","scroll-snap-type":"none|[x|y|block|inline|both] [mandatory|proximity]?","scroll-snap-type-x":"none|mandatory|proximity","scroll-snap-type-y":"none|mandatory|proximity","scroll-timeline":"[<'scroll-timeline-name'>||<'scroll-timeline-axis'>]#","scroll-timeline-axis":"[block|inline|vertical|horizontal]#","scroll-timeline-name":"none|<custom-ident>#","shape-image-threshold":"<alpha-value>","shape-margin":"<length-percentage>","shape-outside":"none|[<shape-box>||<basic-shape>]|<image>","tab-size":"<integer>|<length>","table-layout":"auto|fixed","text-align":"start|end|left|right|center|justify|match-parent","text-align-last":"auto|start|end|left|right|center|justify","text-combine-upright":"none|all|[digits <integer>?]","text-decoration":"<'text-decoration-line'>||<'text-decoration-style'>||<'text-decoration-color'>||<'text-decoration-thickness'>","text-decoration-color":"<color>","text-decoration-line":"none|[underline||overline||line-through||blink]|spelling-error|grammar-error","text-decoration-skip":"none|[objects||[spaces|[leading-spaces||trailing-spaces]]||edges||box-decoration]","text-decoration-skip-ink":"auto|all|none","text-decoration-style":"solid|double|dotted|dashed|wavy","text-decoration-thickness":"auto|from-font|<length>|<percentage>","text-emphasis":"<'text-emphasis-style'>||<'text-emphasis-color'>","text-emphasis-color":"<color>","text-emphasis-position":"[over|under]&&[right|left]","text-emphasis-style":"none|[[filled|open]||[dot|circle|double-circle|triangle|sesame]]|<string>","text-indent":"<length-percentage>&&hanging?&&each-line?","text-justify":"auto|inter-character|inter-word|none","text-orientation":"mixed|upright|sideways","text-overflow":"[clip|ellipsis|<string>]{1,2}","text-rendering":"auto|optimizeSpeed|optimizeLegibility|geometricPrecision","text-shadow":"none|<shadow-t>#","text-size-adjust":"none|auto|<percentage>","text-transform":"none|capitalize|uppercase|lowercase|full-width|full-size-kana","text-underline-offset":"auto|<length>|<percentage>","text-underline-position":"auto|from-font|[under||[left|right]]",top:"<length>|<percentage>|auto","touch-action":"auto|none|[[pan-x|pan-left|pan-right]||[pan-y|pan-up|pan-down]||pinch-zoom]|manipulation",transform:"none|<transform-list>","transform-box":"content-box|border-box|fill-box|stroke-box|view-box","transform-origin":"[<length-percentage>|left|center|right|top|bottom]|[[<length-percentage>|left|center|right]&&[<length-percentage>|top|center|bottom]] <length>?","transform-style":"flat|preserve-3d",transition:"<single-transition>#","transition-delay":"<time>#","transition-duration":"<time>#","transition-property":"none|<single-transition-property>#","transition-timing-function":"<easing-function>#",translate:"none|<length-percentage> [<length-percentage> <length>?]?","unicode-bidi":"normal|embed|isolate|bidi-override|isolate-override|plaintext|-moz-isolate|-moz-isolate-override|-moz-plaintext|-webkit-isolate|-webkit-isolate-override|-webkit-plaintext","user-select":"auto|text|none|contain|all","vertical-align":"baseline|sub|super|text-top|text-bottom|middle|top|bottom|<percentage>|<length>",visibility:"visible|hidden|collapse","white-space":"normal|pre|nowrap|pre-wrap|pre-line|break-spaces",widows:"<integer>",width:"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|fill|stretch|intrinsic|-moz-max-content|-webkit-max-content|-moz-fit-content|-webkit-fit-content","will-change":"auto|<animateable-feature>#","word-break":"normal|break-all|keep-all|break-word","word-spacing":"normal|<length>","word-wrap":"normal|break-word","writing-mode":"horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lr|<svg-writing-mode>","z-index":"auto|<integer>",zoom:"normal|reset|<number>|<percentage>","-moz-background-clip":"padding|border","-moz-border-radius-bottomleft":"<'border-bottom-left-radius'>","-moz-border-radius-bottomright":"<'border-bottom-right-radius'>","-moz-border-radius-topleft":"<'border-top-left-radius'>","-moz-border-radius-topright":"<'border-bottom-right-radius'>","-moz-control-character-visibility":"visible|hidden","-moz-osx-font-smoothing":"auto|grayscale","-moz-user-select":"none|text|all|-moz-none","-ms-flex-align":"start|end|center|baseline|stretch","-ms-flex-item-align":"auto|start|end|center|baseline|stretch","-ms-flex-line-pack":"start|end|center|justify|distribute|stretch","-ms-flex-negative":"<'flex-shrink'>","-ms-flex-pack":"start|end|center|justify|distribute","-ms-flex-order":"<integer>","-ms-flex-positive":"<'flex-grow'>","-ms-flex-preferred-size":"<'flex-basis'>","-ms-interpolation-mode":"nearest-neighbor|bicubic","-ms-grid-column-align":"start|end|center|stretch","-ms-grid-row-align":"start|end|center|stretch","-ms-hyphenate-limit-last":"none|always|column|page|spread","-webkit-background-clip":"[<box>|border|padding|content|text]#","-webkit-column-break-after":"always|auto|avoid","-webkit-column-break-before":"always|auto|avoid","-webkit-column-break-inside":"always|auto|avoid","-webkit-font-smoothing":"auto|none|antialiased|subpixel-antialiased","-webkit-mask-box-image":"[<url>|<gradient>|none] [<length-percentage>{4} <-webkit-mask-box-repeat>{2}]?","-webkit-print-color-adjust":"economy|exact","-webkit-text-security":"none|circle|disc|square","-webkit-user-drag":"none|element|auto","-webkit-user-select":"auto|none|text|all","alignment-baseline":"auto|baseline|before-edge|text-before-edge|middle|central|after-edge|text-after-edge|ideographic|alphabetic|hanging|mathematical","baseline-shift":"baseline|sub|super|<svg-length>",behavior:"<url>+","clip-rule":"nonzero|evenodd",cue:"<'cue-before'> <'cue-after'>?","cue-after":"<url> <decibel>?|none","cue-before":"<url> <decibel>?|none","dominant-baseline":"auto|use-script|no-change|reset-size|ideographic|alphabetic|hanging|mathematical|central|middle|text-after-edge|text-before-edge",fill:"<paint>","fill-opacity":"<number-zero-one>","fill-rule":"nonzero|evenodd","glyph-orientation-horizontal":"<angle>","glyph-orientation-vertical":"<angle>",kerning:"auto|<svg-length>",marker:"none|<url>","marker-end":"none|<url>","marker-mid":"none|<url>","marker-start":"none|<url>",pause:"<'pause-before'> <'pause-after'>?","pause-after":"<time>|none|x-weak|weak|medium|strong|x-strong","pause-before":"<time>|none|x-weak|weak|medium|strong|x-strong",rest:"<'rest-before'> <'rest-after'>?","rest-after":"<time>|none|x-weak|weak|medium|strong|x-strong","rest-before":"<time>|none|x-weak|weak|medium|strong|x-strong","shape-rendering":"auto|optimizeSpeed|crispEdges|geometricPrecision",src:"[<url> [format( <string># )]?|local( <family-name> )]#",speak:"auto|none|normal","speak-as":"normal|spell-out||digits||[literal-punctuation|no-punctuation]",stroke:"<paint>","stroke-dasharray":"none|[<svg-length>+]#","stroke-dashoffset":"<svg-length>","stroke-linecap":"butt|round|square","stroke-linejoin":"miter|round|bevel","stroke-miterlimit":"<number-one-or-greater>","stroke-opacity":"<number-zero-one>","stroke-width":"<svg-length>","text-anchor":"start|middle|end","unicode-range":"<urange>#","voice-balance":"<number>|left|center|right|leftwards|rightwards","voice-duration":"auto|<time>","voice-family":"[[<family-name>|<generic-voice>] ,]* [<family-name>|<generic-voice>]|preserve","voice-pitch":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-range":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-rate":"[normal|x-slow|slow|medium|fast|x-fast]||<percentage>","voice-stress":"normal|strong|moderate|none|reduced","voice-volume":"silent|[[x-soft|soft|medium|loud|x-loud]||<decibel>]"},atrules:{charset:{prelude:"<string>",descriptors:null},"counter-style":{prelude:"<counter-style-name>",descriptors:{"additive-symbols":"[<integer>&&<symbol>]#",fallback:"<counter-style-name>",negative:"<symbol> <symbol>?",pad:"<integer>&&<symbol>",prefix:"<symbol>",range:"[[<integer>|infinite]{2}]#|auto","speak-as":"auto|bullets|numbers|words|spell-out|<counter-style-name>",suffix:"<symbol>",symbols:"<symbol>+",system:"cyclic|numeric|alphabetic|symbolic|additive|[fixed <integer>?]|[extends <counter-style-name>]"}},document:{prelude:"[<url>|url-prefix( <string> )|domain( <string> )|media-document( <string> )|regexp( <string> )]#",descriptors:null},"font-face":{prelude:null,descriptors:{"ascent-override":"normal|<percentage>","descent-override":"normal|<percentage>","font-display":"[auto|block|swap|fallback|optional]","font-family":"<family-name>","font-feature-settings":"normal|<feature-tag-value>#","font-variation-settings":"normal|[<string> <number>]#","font-stretch":"<font-stretch-absolute>{1,2}","font-style":"normal|italic|oblique <angle>{0,2}","font-weight":"<font-weight-absolute>{1,2}","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","line-gap-override":"normal|<percentage>","size-adjust":"<percentage>",src:"[<url> [format( <string># )]?|local( <family-name> )]#","unicode-range":"<urange>#"}},"font-feature-values":{prelude:"<family-name>#",descriptors:null},import:{prelude:"[<string>|<url>] [layer|layer( <layer-name> )]? [supports( [<supports-condition>|<declaration>] )]? <media-query-list>?",descriptors:null},keyframes:{prelude:"<keyframes-name>",descriptors:null},layer:{prelude:"[<layer-name>#|<layer-name>?]",descriptors:null},media:{prelude:"<media-query-list>",descriptors:null},namespace:{prelude:"<namespace-prefix>? [<string>|<url>]",descriptors:null},page:{prelude:"<page-selector-list>",descriptors:{bleed:"auto|<length>",marks:"none|[crop||cross]",size:"<length>{1,2}|auto|[<page-size>||[portrait|landscape]]"}},property:{prelude:"<custom-property-name>",descriptors:{syntax:"<string>",inherits:"true|false","initial-value":"<string>"}},"scroll-timeline":{prelude:"<timeline-name>",descriptors:null},supports:{prelude:"<supports-condition>",descriptors:null},viewport:{prelude:null,descriptors:{height:"<viewport-length>{1,2}","max-height":"<viewport-length>","max-width":"<viewport-length>","max-zoom":"auto|<number>|<percentage>","min-height":"<viewport-length>","min-width":"<viewport-length>","min-zoom":"auto|<number>|<percentage>",orientation:"auto|portrait|landscape","user-zoom":"zoom|fixed","viewport-fit":"auto|contain|cover",width:"<viewport-length>{1,2}",zoom:"auto|<number>|<percentage>"}},nest:{prelude:"<complex-selector-list>",descriptors:null}},node:Fm},hw={};er(hw,{AtrulePrelude:()=>uw,Selector:()=>gw,Value:()=>bw});function pw(n){switch(this.tokenType){case 4:return this.Hash();case 18:return this.Operator();case 21:return this.Parentheses(this.readSequence,n.recognizer);case 19:return this.Brackets(this.readSequence,n.recognizer);case 5:return this.String();case 12:return this.Dimension();case 11:return this.Percentage();case 10:return this.Number();case 2:return this.cmpStr(this.tokenStart,this.tokenEnd,"url(")?this.Url():this.Function(this.readSequence,n.recognizer);case 7:return this.Url();case 1:return this.cmpChar(this.tokenStart,117)&&this.cmpChar(this.tokenStart+1,43)?this.UnicodeRange():this.Identifier();case 9:{let n=this.charCodeAt(this.tokenStart);if(47===n||42===n||43===n||45===n)return this.Operator();35===n&&this.error("Hex or identifier is expected",this.tokenStart+1);break}}}var uw={getNode:pw};var gw={onWhiteSpace:function(n,e){null!==e.last&&"Combinator"!==e.last.type&&null!==n&&"Combinator"!==n.type&&e.push({type:"Combinator",loc:null,name:" "})},getNode:function(){switch(this.tokenType){case 19:return this.AttributeSelector();case 4:return this.IdSelector();case 16:return 16===this.lookupType(1)?this.PseudoElementSelector():this.PseudoClassSelector();case 1:return this.TypeSelector();case 10:case 11:return this.Percentage();case 12:46===this.charCodeAt(this.tokenStart)&&this.error("Identifier is expected",this.tokenStart+1);break;case 9:switch(this.charCodeAt(this.tokenStart)){case 43:case 62:case 126:case 47:return this.Combinator();case 46:return this.ClassSelector();case 42:case 124:return this.TypeSelector();case 35:return this.IdSelector();case 38:return this.NestingSelector()}}}};function ww(n){return null!==n&&"Operator"===n.type&&("-"===n.value[n.value.length-1]||"+"===n.value[n.value.length-1])}var bw={getNode:pw,onWhiteSpace(n,e){ww(n)&&(n.value=" "+n.value),ww(e.last)&&(e.last.value+=" ")},expression:function(){return this.createSingleNodeList(this.Raw(this.tokenIndex,null,!1))},var:function(){let n=this.createList();if(this.skipSC(),n.push(this.Identifier()),this.skipSC(),18===this.tokenType){n.push(this.Operator());let e=this.tokenIndex,t=this.parseCustomProperty?this.Value(null):this.Raw(this.tokenIndex,this.consumeUntilExclamationMarkOrSemicolon,!1);if("Value"===t.type&&t.children.isEmpty)for(let n=e-this.tokenIndex;n<=0;n++)if(13===this.lookupType(n)){t.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}n.push(t)}return n}},fw={parse:{prelude:null,block(){return this.Block(!0)}}},kw={parse:{prelude(){let n=this.createList();switch(this.skipSC(),this.tokenType){case 5:n.push(this.String());break;case 7:case 2:n.push(this.Url());break;default:this.error("String or url() is expected")}return(1===this.lookupNonWSType(0)||21===this.lookupNonWSType(0))&&n.push(this.MediaQueryList()),n},block:null}},yw={parse:{prelude(){return this.createSingleNodeList(this.MediaQueryList())},block(n=!1){return this.Block(n)}}},vw={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}},jw={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}};function Sw(){return this.createSingleNodeList(this.Raw(this.tokenIndex,null,!1))}function xw(){return this.skipSC(),1===this.tokenType&&16===this.lookupNonWSType(1)?this.createSingleNodeList(this.Declaration()):Cw.call(this)}function Cw(){let n,e=this.createList();this.skipSC();n:for(;!this.eof;){switch(this.tokenType){case 25:case 13:this.next();continue;case 2:n=this.Function(Sw,this.scope.AtrulePrelude);break;case 1:n=this.Identifier();break;case 21:n=this.Parentheses(xw,this.scope.AtrulePrelude);break;default:break n}e.push(n)}return e}var zw={parse:{prelude(){let n=Cw.call(this);return null===this.getFirstListNode(n)&&this.error("Condition is expected"),n},block(n=!1){return this.Block(n)}}},Lw={"font-face":fw,import:kw,media:yw,nest:vw,page:jw,supports:zw},Aw={parse(){return this.createSingleNodeList(this.SelectorList())}},Iw={parse(){return this.createSingleNodeList(this.Selector())}},Tw={parse(){return this.createSingleNodeList(this.Identifier())}},Rw={parse(){return this.createSingleNodeList(this.Nth())}},Ew={dir:Tw,has:Aw,lang:Tw,matches:Aw,is:Aw,"-moz-any":Aw,"-webkit-any":Aw,where:Aw,not:Aw,"nth-child":Rw,"nth-last-child":Rw,"nth-last-of-type":Rw,"nth-of-type":Rw,slotted:Iw,host:Iw,"host-context":Iw},Dw={};er(Dw,{AnPlusB:()=>Qm,Atrule:()=>sd,AtrulePrelude:()=>pd,AttributeSelector:()=>zd,Block:()=>Pd,Brackets:()=>Ud,CDC:()=>Kd,CDO:()=>Xd,ClassSelector:()=>oh,Combinator:()=>ph,Comment:()=>yh,Declaration:()=>Nh,DeclarationList:()=>Wh,Dimension:()=>Zh,Function:()=>tp,Hash:()=>lp,IdSelector:()=>fp,Identifier:()=>pp,MediaFeature:()=>Sp,MediaQuery:()=>Ap,MediaQueryList:()=>Dp,NestingSelector:()=>_p,Nth:()=>Gp,Number:()=>Yp,Operator:()=>nu,Parentheses:()=>iu,Percentage:()=>mu,PseudoClassSelector:()=>wu,PseudoElementSelector:()=>ju,Ratio:()=>Tu,Raw:()=>Nu,Rule:()=>Gu,Selector:()=>Yu,SelectorList:()=>eg,String:()=>dg,StyleSheet:()=>kg,TypeSelector:()=>Lg,UnicodeRange:()=>_g,Url:()=>Xg,Value:()=>aw,WhiteSpace:()=>cw});var Mw={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude(n){return this.AtrulePrelude(n.atrule?String(n.atrule):null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",rule:"Rule",selectorList:"SelectorList",selector:"Selector",block(){return this.Block(!0)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},scope:hw,atrule:Lw,pseudo:Ew,node:Dw},Bw=(n=>_m(Om({},n)))({...dw,...Mw,...{node:Fm}});er({},{decode:()=>Pw,encode:()=>Ow});var Nw=92;function Pw(n){let e=n.length-1,t="";for(let a=0;a<n.length;a++){let o=n.charCodeAt(a);if(o===Nw){if(a===e)break;if(o=n.charCodeAt(++a),Ur(Nw,o)){let e=a-1,o=os(n,e);a=o-1,t+=ls(n.substring(e+1,o))}else 13===o&&10===n.charCodeAt(a+1)&&a++}else t+=n[a]}return t}function Ow(n){let e="";if(1===n.length&&45===n.charCodeAt(0))return"\\-";for(let t=0;t<n.length;t++){let a=n.charCodeAt(t);0!==a?a<=31||127===a||a>=48&&a<=57&&(0===t||1===t&&45===n.charCodeAt(0))?e+="\\"+a.toString(16)+" ":Or(a)?e+=n.charAt(t):e+="\\"+n.charAt(t):e+="�"}return e}var{tokenize:_w,parse:Fw,generate:qw,lexer:Uw,createLexer:Hw,walk:Gw,find:Ww,findLast:Vw,findAll:Kw,toPlainObject:Jw,fromPlainObject:Yw,fork:Zw}=Bw;const $w=/^'(.*?)'$/,Xw=/^"(.*?)"$/,Qw=["inherit","initial","unset"],nb=["caption","icon","menu","message-box","small-caption","status-bar"],eb=["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"],tb=["normal","italic","oblique"],ab=["normal","condensed","semi-condensed","extra-condensed","ultra-condensed","expanded","semi-expanded","extra-expanded","ultra-expanded"],ob="[parse-css-font] ";function ib(n){return new Error(ob+n)}function rb(n){return(n=n.match($w)?n.replace($w,"$1"):n.replace(Xw,"$1")).trim()}function sb(n,e=0){const t=[{mode:"normal",character:null}],a=[];let o=0,i="",r=null,s=null,l=e,c=n;"("===n[0]&&")"===n[n.length-1]&&(c=n.substring(1,n.length-1),l++);for(let n=0;n<c.length;n++){const e=c[n];if("'"!==e&&'"'!==e||(!0===t[o].isCalculationEnabled?(t.push({mode:"string",isCalculationEnabled:!1,character:e}),o++):"string"===t[o].mode&&t[o].character===e&&"\\"!==c[n-1]&&(t.pop(),o--)),"{"===e?(t.push({mode:"interpolation",isCalculationEnabled:!0}),o++):"}"===e&&(t.pop(),o--),"normal"===t[o].mode&&":"===e){const e=c.substring(n+1);s={type:"value",before:/^(\s*)/.exec(e)[1],after:/(\s*)$/.exec(e)[1],value:e.trim()},s.sourceIndex=s.before.length+n+1+l,r={type:"colon",sourceIndex:n+l,after:s.before,value:":"};break}i+=e}return i={type:"media-feature",before:/^(\s*)/.exec(i)[1],after:/(\s*)$/.exec(i)[1],value:i.trim()},i.sourceIndex=i.before.length+l,a.push(i),null!==r&&(r.before=i.after,a.push(r)),null!==s&&a.push(s),a}function lb(n,e=0){const t=[];let a,o=0,i=!1;a={before:"",after:"",value:""};for(let r=0;r<n.length;r++){const s=n[r];i?(a.value+=s,"{"!==s&&"("!==s||o++,")"!==s&&"}"!==s||o--):-1!==s.search(/\s/)?a.before+=s:("("===s&&(a.type="media-feature-expression",o++),a.value=s,a.sourceIndex=e+r,i=!0),!i||0!==o||")"!==s&&r!==n.length-1&&-1===n[r+1].search(/\s/)||(-1!==["not","only","and"].indexOf(a.value)&&(a.type="keyword"),"media-feature-expression"===a.type&&(a.nodes=sb(a.value,a.sourceIndex)),t.push(Array.isArray(a.nodes)?new cb(a):new mb(a)),a={before:"",after:"",value:""},i=!1)}for(let n=0;n<t.length;n++)if(a=t[n],n>0&&(t[n-1].after=a.before),void 0===a.type){if(n>0){if("media-feature-expression"===t[n-1].type){a.type="keyword";continue}if("not"===t[n-1].value||"only"===t[n-1].value){a.type="media-type";continue}if("and"===t[n-1].value){a.type="media-feature-expression";continue}"media-type"===t[n-1].type&&(t[n+1]?a.type="media-feature-expression"===t[n+1].type?"keyword":"media-feature-expression":a.type="media-feature-expression")}if(0===n){if(!t[n+1]){a.type="media-type";continue}if(t[n+1]&&("media-feature-expression"===t[n+1].type||"keyword"===t[n+1].type)){a.type="media-type";continue}if(t[n+2]){if("media-feature-expression"===t[n+2].type){a.type="media-type",t[n+1].type="keyword";continue}if("keyword"===t[n+2].type){a.type="keyword",t[n+1].type="media-type";continue}}if(t[n+3]&&"media-feature-expression"===t[n+3].type){a.type="keyword",t[n+1].type="media-type",t[n+2].type="keyword";continue}}}return t}function cb(n){this.constructor(n),this.nodes=n.nodes,void 0===this.after&&(this.after=this.nodes.length>0?this.nodes[this.nodes.length-1].after:""),void 0===this.before&&(this.before=this.nodes.length>0?this.nodes[0].before:""),void 0===this.sourceIndex&&(this.sourceIndex=this.before.length),this.nodes.forEach((n=>{n.parent=this}))}function mb(n){this.after=n.after,this.before=n.before,this.type=n.type,this.value=n.value,this.sourceIndex=n.sourceIndex}cb.prototype=Object.create(mb.prototype),cb.constructor=mb,cb.prototype.walk=function(n,e){const t="string"==typeof n||n instanceof RegExp,a=t?e:n,o="string"==typeof n?new RegExp(n):n;for(let i=0;i<this.nodes.length;i++){const r=this.nodes[i];if((!t||o.test(r.type))&&a&&!1===a(r,i,this.nodes))return!1;if(r.nodes&&!1===r.walk(n,e))return!1}return!0},cb.prototype.each=function(n=()=>{}){for(let e=0;e<this.nodes.length;e++){if(!1===n(this.nodes[e],e,this.nodes))return!1}return!0};const db="___PRESERVED_TOKEN_",hb={maxLineLen:0,expandVars:!1,uglyComments:!1,cuteComments:!1,debug:!1,output:""},pb=/url\(\s*(["']?)data:/g,ub=/\s+/g,gb=/\n/g;const wb=/(=\s*?["']?)?#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])(\}|[^0-9a-f{][^{]*?\})/gi;const bb=/@[a-z0-9-_]*keyframes\s+[a-z0-9-_]+\s*{/gi,fb=/(^\s|\s$)/g;const kb=/"([^\\"])*"/g,yb=/"(\\.)*"/g,vb=/"(\\)*"/g,jb=/'([^\\'])*'/g,Sb=/'(\\.)*'/g,xb=/'(\\)*'/g,Cb=/progid:DXImageTransform.Microsoft.Alpha\(Opacity=/gi,zb=/\r\n/g,Lb=/[\r\n]/g,Ab=/@variables\s*\{\s*([^}]+)\s*\}/g,Ib=/\s*([a-z0-9-]+)\s*:\s*([^;}]+)\s*/gi,Tb=/var\s*\(\s*([^)]+)\s*\)/g,Rb=/calc\(([^;}]*)\)/g,Eb=/(^\s*|\s*$)/g,Db=/\( /g,Mb=/ \)/g,Bb=/\s*filter:\s*progid:DXImageTransform.Microsoft.Matrix\(([^)]+)\);/g,Nb=/(^|\})(([^{:])+:)+([^{]*{)/g,Pb=/\s+([!{;:>+()\],])/g,Ob=/([^\\])\s+([}])/g,_b=/!important/g,Fb=/___PSEUDOCLASSCOLON___/g,qb=/:/g,Ub=/\s*(animation|animation-delay|animation-duration|transition|transition-delay|transition-duration):\s*([^;}]+)/gi,Hb=/(^|\D)0?\.?0(m?s)/gi,Gb=/\s*(flex|flex-basis):\s*([^;}]+)/gi,Wb=/\s+/,Vb=/(hsla?)\(([^)]+)\)/g,Kb=/(^\s+|\s+$)/g,Jb=/:first-(line|letter)(\{|,)/gi,Yb=/^(.*)(@charset)( "[^"]*";)/gi,Zb=/^((\s*)(@charset)( [^;]+;\s*))+/gi,$b=/@(font-face|import|(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?keyframe|media|page|namespace)/gi,Xb=/:(active|after|before|checked|disabled|empty|enabled|first-(?:child|of-type)|focus|hover|last-(?:child|of-type)|link|only-(?:child|of-type)|root|:selection|target|visited)/gi,Qb=/^(.*)(@charset "[^"]*";)/g,nf=/^(\s*@charset [^;]+;\s*)+/g,ef=/:(lang|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?any)\(/gi,tf=/([:,( ]\s*)(attr|color-stop|from|rgba|to|url|(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?(?:calc|max|min|(?:repeating-)?(?:linear|radial)-gradient)|-webkit-gradient)/gi,af=/\s*\/\*/g,of=/\*\/\s*/g,rf=/\band\(/gi,sf=/([^:])not\(/gi,lf=/\bor\(/gi,cf=/([!{}:;>+([,])\s+/g,mf=/;+\}/g,df=/([0-9])\.0(ex|ch|r?em|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|g?rad|turn|m?s|k?Hz|dpi|dpcm|dppx|%| |;)/gi,hf=/:0 0 0 0(;|\})/g,pf=/:0 0 0(;|\})/g,uf=/(transform-origin|webkit-transform-origin|moz-transform-origin|o-transform-origin|ms-transform-origin|box-shadow):0(;|\})/gi,gf=/(:|\s)0+\.(\d+)/g,wf=/rgb\s*\(\s*([0-9,\s]+)\s*\)/gi,bf=/(border|border-top|border-right|border-bottom|border-left|outline|background):none(;|\})/gi,ff=/progid:DXImageTransform\.Microsoft\.Alpha\(Opacity=/gi,kf=/\(([-A-Za-z]+):([0-9]+)\/([0-9]+)\)/g,yf=/___QUERY_FRACTION___/g,vf=/;;+/g,jf=/(:|\s)(#f00)(;|})/g,Sf=/___PRESERVED_NEWLINE___/g,xf=/(:|\s)(#000080)(;|})/g,Cf=/(:|\s)(#808080)(;|})/g,zf=/(:|\s)(#808000)(;|})/g,Lf=/(:|\s)(#800080)(;|})/g,Af=/(:|\s)(#c0c0c0)(;|})/g,If=/(:|\s)(#008080)(;|})/g,Tf=/(:|\s)(#ffa500)(;|})/g,Rf=/(:|\s)(#800000)(;|})/g;function Ef(n="",e=hb){const t=[],a=[];let o;const i=n;function r(e){n=n.replace(e,(n=>{const e=n.substring(0,1);if((n=n.slice(1,-1)).indexOf("___PRESERVE_CANDIDATE_COMMENT_")>=0)for(let e=0,a=t.length;e<a;e+=1)n=n.replace("___PRESERVE_CANDIDATE_COMMENT_"+e+"___",t[e]);return n=n.replace(Cb,"alpha(opacity="),a.push(n),e+db+(a.length-1)+"___"+e}))}n=function(n,e){const t=pb,a=n.length-1,o=[];let i,r=0;for(;null!==(i=t.exec(n));){const s=i.index+4;let l=i[1];0===l.length&&(l=")");let c=!1,m=t.lastIndex-1;for(;!1===c&&m+1<=a&&-1!=m;)m=n.indexOf(l,m+1),m>0&&"\\"!==n.charAt(m-1)&&(c=!0,")"!=l&&(m=n.indexOf(")",m)));if(o.push(n.substring(r,i.index)),c){let t=n.substring(s,m);const a=t.split(",");a.length>1&&";base64"==a[0].slice(-7)?t=t.replace(ub,""):(t=t.replace(gb," "),t=t.replace(ub," "),t=t.replace(Kb,"")),e.push(t);const i="url("+db+(e.length-1)+"___)";o.push(i),r=m+1}else o.push(n.substring(i.index,t.lastIndex)),r=t.lastIndex}return o.push(n.substring(r)),o.join("")}(n,a),n=function(n,e){const t=[];let a,o=0;for(;;){const i=n.indexOf("/*",o);if(!(i>-1))break;if(a=n.indexOf("*/",i+2),!(a>-1)){a=-2;break}e.push(n.slice(i+2,a)),t.push(n.slice(o,i)),t.push("/*___PRESERVE_CANDIDATE_COMMENT_"+(e.length-1)+"___*/"),o=a+2}return t.push(n.slice(a+2)),t.join("")}(n,t),r(kb),r(yb),r(vb),r(jb),r(Sb),r(xb);for(let o=0,i=t.length;o<i;o+=1){const i=t[o],r="___PRESERVE_CANDIDATE_COMMENT_"+o+"___";if("!"!==i.charAt(0))if("\\"!==i.charAt(i.length-1)){if(0===i.length){const e=n.indexOf(r);e>2&&">"===n.charAt(e-3)&&(a.push(""),n=n.replace(r,db+(a.length-1)+"___"))}n=n.replace(`/*${r}*/`,"")}else a.push("\\"),n=n.replace(r,db+(a.length-1)+"___"),o+=1,a.push(""),n=n.replace("___PRESERVE_CANDIDATE_COMMENT_"+o+"___",db+(a.length-1)+"___");else e.cuteComments?a.push(i.substring(1).replace(zb,"\n")):e.uglyComments?a.push(i.substring(1).replace(Lb,"")):a.push(i),n=n.replace(r,db+(a.length-1)+"___")}if(e.expandVars){const e={};o=Ab,n=n.replace(o,((n,t)=>(o=Ib,t.replace(o,((n,t,a)=>(t&&a&&(e[t]=a),""))),""))),o=Tb,n=n.replace(o,((n,t)=>e[t]||"none"))}n=n.replace(ub," "),o=Rb,n=n.replace(o,((n,e)=>(a.push("calc("+e.replace(Eb,"").replace(Db,"(").replace(Mb,")")+")"),db+(a.length-1)+"___"))),o=Bb,n=n.replace(o,((n,e)=>(a.push(e),"filter:progid:DXImageTransform.Microsoft.Matrix("+db+(a.length-1)+"___);")));try{o=Nb,n=n.replace(o,(n=>n.replace(qb,"___PSEUDOCLASSCOLON___")))}catch(n){}if(n=(n=(n=(n=n.replace(Pb,"$1")).replace(Ob,"$1$2")).replace(_b," !important")).replace(Fb,":"),o=Ub,n=n.replace(o,((n,e,t)=>e+":"+(t=t.replace(Hb,((n,e,t)=>(a.push("0"+t),e+db+(a.length-1)+"___")))))),o=Gb,n=function(n,e){const t=bb;let a,o=0;const i=(n,t)=>{"0"===(n=n.replace(fb,"")).charAt(0)&&(e.push(n),a[t]=db+(e.length-1)+"___")};for(;;){let e=0;a="";let r=n.slice(o).search(t);if(r<0)break;o+=r,r=o;const s=n.length,l=[];for(;o<s;++o){const t=n.charAt(o);if("{"===t)0===e?l.push(a.replace(fb,"")):1===e&&(a=a.split(","),a.forEach(i),l.push(a.join(",").replace(fb,""))),a="",e+=1;else if("}"===t){if(2===e)l.push("{"+a.replace(fb,"")+"}"),a="";else if(1===e){n=n.slice(0,r)+l.shift()+"{"+l.join("")+n.slice(o);break}e-=1}if(e<0)break;"{"!==t&&"}"!==t&&(a+=t)}}return n}(n=(n=n.replace(o,((n,e,t)=>{let o=t.split(Wb);return a.push(o.pop()),o.push(db+(a.length-1)+"___"),o=o.join(" "),`${e}:${o}`}))).replace(Vb,((n,e,t)=>{const o=[];return t.split(",").forEach((n=>{"0%"===(n=n.replace(Kb,""))?(a.push("0%"),o.push(db+(a.length-1)+"___")):o.push(n)})),e+"("+o.join(",")+")"})),a),n=n.replace(Jb,((n,e,t)=>":first-"+e.toLowerCase()+" "+t)),n=e.cuteComments?(n=n.replace(af,"___PRESERVED_NEWLINE___/*")).replace(of,"*/___PRESERVED_NEWLINE___"):n.replace(of,"*/"),o=Yb,n=n.replace(o,((n,e,t,a)=>t.toLowerCase()+a+e)),o=Zb,n=n.replace(o,((n,e,t,a,o)=>t+a.toLowerCase()+o)),o=$b,n=n.replace(o,((n,e)=>"@"+e.toLowerCase())),o=Xb,n=(n=(n=n.replace(o,((n,e)=>":"+e.toLowerCase()))).replace(Qb,"$2$1")).replace(nf,"$1"),o=ef,n=n.replace(o,((n,e)=>":"+e.toLowerCase()+"(")),o=tf,n=(n=(n=(n=(n=(n=(n=(n=(n=n.replace(o,((n,e,t)=>e+t.toLowerCase()))).replace(rf,"and (")).replace(sf,"$1not (")).replace(lf,"or (")).replace(cf,"$1")).replace(mf,"}")).replace(df,"$1$2")).replace(hf,":0$1")).replace(pf,":0$1"),o=uf,n=(n=n.replace(o,((n,e,t)=>e.toLowerCase()+":0 0"+t))).replace(gf,"$1.$2"),o=wf,n=function(n){const e=wb,t=[];let a,o=0;for(;null!==(a=e.exec(n));)t.push(n.substring(o,a.index)),a[1]?t.push(a[1]+"#"+(a[2]+a[3]+a[4]+a[5]+a[6]+a[7])):a[2].toLowerCase()==a[3].toLowerCase()&&a[4].toLowerCase()==a[5].toLowerCase()&&a[6].toLowerCase()==a[7].toLowerCase()?t.push("#"+(a[3]+a[5]+a[7]).toLowerCase()):t.push("#"+(a[2]+a[3]+a[4]+a[5]+a[6]+a[7]).toLowerCase()),o=e.lastIndex=e.lastIndex-a[8].length;return t.push(n.substring(o)),t.join("")}(n=n.replace(o,((n,e)=>{const t=e.split(",");let a="#";for(let n=0;n<t.length;n+=1){let e=parseInt(t[n],10);e<16&&(a+="0"),e>255&&(e=255),a+=e.toString(16)}return a}))),n=(n=(n=(n=(n=(n=(n=(n=(n=n.replace(jf,"$1red$3")).replace(xf,"$1navy$3")).replace(Cf,"$1gray$3")).replace(zf,"$1olive$3")).replace(Lf,"$1purple$3")).replace(Af,"$1silver$3")).replace(If,"$1teal$3")).replace(Tf,"$1orange$3")).replace(Rf,"$1maroon$3"),o=bf,n=(n=(n=(n=n.replace(o,((n,e,t)=>e.toLowerCase()+":0"+t))).replace(ff,"alpha(opacity=")).replace(kf,"($1:$2___QUERY_FRACTION___$3)")).replace(yf,"/"),e.maxLineLen>0){const t=[];let a=[];for(let o=0,i=n.length;o<i;o+=1){const i=n.charAt(o);a.push(i),"}"===i&&a.length>e.maxLineLen&&(t.push(a.join("")),a=[])}a.length&&t.push(a.join("")),n=t.join("\n")}if(n=(n=n.replace(vf,";")).replace(Eb,""),a.length>1e3)return i;for(let e=a.length-1;e>=0;e--)n=n.replace(db+e+"___",a[e],"g");return n=n.replace(Sf,"\n")}function Df(n){function e(n){return" "===n||"\t"===n||"\n"===n||"\f"===n||"\r"===n}function t(e){let t;const a=e.exec(n.substring(g));if(a)return t=a[0],g+=t.length,t}const a=n.length,o=/^[ \t\n\r\u000c]+/,i=/^[, \t\n\r\u000c]+/,r=/^[^ \t\n\r\u000c]+/,s=/[,]+$/,l=/^\d+$/,c=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;let m,d,h,p,u,g=0;const w=[];for(;;){if(t(i),g>=a)return w;m=t(r),d=[],","===m.slice(-1)?(m=m.replace(s,""),f()):b()}function b(){for(t(o),h="",p="in descriptor";;){if(u=n.charAt(g),"in descriptor"===p)if(e(u))h&&(d.push(h),h="",p="after descriptor");else{if(","===u)return g+=1,h&&d.push(h),void f();if("("===u)h+=u,p="in parens";else{if(""===u)return h&&d.push(h),void f();h+=u}}else if("in parens"===p)if(")"===u)h+=u,p="in descriptor";else{if(""===u)return d.push(h),void f();h+=u}else if("after descriptor"===p)if(e(u));else{if(""===u)return void f();p="in descriptor",g-=1}g+=1}}function f(){let e,t,a,o,i,r,s,h,p,u=!1;const g={};for(o=0;o<d.length;o++)i=d[o],r=i[i.length-1],s=i.substring(0,i.length-1),h=parseInt(s,10),p=parseFloat(s),l.test(s)&&"w"===r?((e||t)&&(u=!0),0===h?u=!0:e=h):c.test(s)&&"x"===r?((e||t||a)&&(u=!0),p<0?u=!0:t=p):l.test(s)&&"h"===r?((a||t)&&(u=!0),0===h?u=!0:a=h):u=!0;u?console&&console.log&&console.log('Invalid srcset descriptor found in "'+n+'" at "'+i+'".'):(g.url=m,e&&(g.w=e),t&&(g.d=t),a&&(g.h=a),w.push(g))}}let Mf,Bf,Nf,Pf;Mf={},Mf.removeLeadingAndTrailingHTTPWhitespace=n=>n.replace(/^[ \t\n\r]+/,"").replace(/[ \t\n\r]+$/,""),Mf.removeTrailingHTTPWhitespace=n=>n.replace(/[ \t\n\r]+$/,""),Mf.isHTTPWhitespaceChar=n=>" "===n||"\t"===n||"\n"===n||"\r"===n,Mf.solelyContainsHTTPTokenCodePoints=n=>/^[-!#$%&'*+.^_`|~A-Za-z0-9]*$/.test(n),Mf.soleyContainsHTTPQuotedStringTokenCodePoints=n=>/^[\t\u0020-\u007E\u0080-\u00FF]*$/.test(n),Mf.asciiLowercase=n=>n.replace(/[A-Z]/g,(n=>n.toLowerCase())),Mf.collectAnHTTPQuotedString=(n,e)=>{let t="";for(e++;;){for(;e<n.length&&'"'!==n[e]&&"\\"!==n[e];)t+=n[e],++e;if(e>=n.length)break;const a=n[e];if(++e,"\\"!==a)break;if(e>=n.length){t+="\\";break}t+=n[e],++e}return[t,e]};{const{solelyContainsHTTPTokenCodePoints:n}=Mf;Nf=e=>{let t=`${e.type}/${e.subtype}`;if(0===e.parameters.size)return t;for(let[a,o]of e.parameters)t+=";",t+=a,t+="=",n(o)&&0!==o.length||(o=o.replace(/(["\\])/g,"\\$1"),o=`"${o}"`),t+=o;return t}}{const{removeLeadingAndTrailingHTTPWhitespace:n,removeTrailingHTTPWhitespace:e,isHTTPWhitespaceChar:t,solelyContainsHTTPTokenCodePoints:a,soleyContainsHTTPQuotedStringTokenCodePoints:o,asciiLowercase:i,collectAnHTTPQuotedString:r}=Mf;Bf=s=>{s=n(s);let l=0,c="";for(;l<s.length&&"/"!==s[l];)c+=s[l],++l;if(0===c.length||!a(c))return null;if(l>=s.length)return null;++l;let m="";for(;l<s.length&&";"!==s[l];)m+=s[l],++l;if(m=e(m),0===m.length||!a(m))return null;const d={type:i(c),subtype:i(m),parameters:new Map};for(;l<s.length;){for(++l;t(s[l]);)++l;let n="";for(;l<s.length&&";"!==s[l]&&"="!==s[l];)n+=s[l],++l;if(n=i(n),l<s.length){if(";"===s[l])continue;++l}let c=null;if('"'===s[l])for([c,l]=r(s,l);l<s.length&&";"!==s[l];)++l;else{for(c="";l<s.length&&";"!==s[l];)c+=s[l],++l;if(c=e(c),""===c)continue}n.length>0&&a(n)&&o(c)&&!d.parameters.has(n)&&d.parameters.set(n,c)}return d}}{const n=Bf,e=Nf,{asciiLowercase:t,solelyContainsHTTPTokenCodePoints:a,soleyContainsHTTPQuotedStringTokenCodePoints:o}=Mf;Pf=class{constructor(e){e=String(e);const t=n(e);if(null===t)throw new Error(`Could not parse MIME type string "${e}"`);this._type=t.type,this._subtype=t.subtype,this._parameters=new i(t.parameters)}static parse(n){try{return new this(n)}catch(n){return null}}get essence(){return`${this.type}/${this.subtype}`}get type(){return this._type}set type(n){if(0===(n=t(String(n))).length)throw new Error("Invalid type: must be a non-empty string");if(!a(n))throw new Error(`Invalid type ${n}: must contain only HTTP token code points`);this._type=n}get subtype(){return this._subtype}set subtype(n){if(0===(n=t(String(n))).length)throw new Error("Invalid subtype: must be a non-empty string");if(!a(n))throw new Error(`Invalid subtype ${n}: must contain only HTTP token code points`);this._subtype=n}get parameters(){return this._parameters}toString(){return e(this)}isJavaScript({allowParameters:n=!1}={}){switch(this._type){case"text":switch(this._subtype){case"ecmascript":case"javascript":case"javascript1.0":case"javascript1.1":case"javascript1.2":case"javascript1.3":case"javascript1.4":case"javascript1.5":case"jscript":case"livescript":case"x-ecmascript":case"x-javascript":return n||0===this._parameters.size;default:return!1}case"application":switch(this._subtype){case"ecmascript":case"javascript":case"x-ecmascript":case"x-javascript":return n||0===this._parameters.size;default:return!1}default:return!1}}isXML(){return"xml"===this._subtype&&("text"===this._type||"application"===this._type)||this._subtype.endsWith("+xml")}isHTML(){return"html"===this._subtype&&"text"===this._type}};class i{constructor(n){this._map=n}get size(){return this._map.size}get(n){return n=t(String(n)),this._map.get(n)}has(n){return n=t(String(n)),this._map.has(n)}set(n,e){if(n=t(String(n)),e=String(e),!a(n))throw new Error(`Invalid MIME type parameter name "${n}": only HTTP token code points are valid.`);if(!o(e))throw new Error(`Invalid MIME type parameter value "${e}": only HTTP quoted-string token code points are valid.`);return this._map.set(n,e)}clear(){this._map.clear()}delete(n){return n=t(String(n)),this._map.delete(n)}forEach(n,e){this._map.forEach(n,e)}keys(){return this._map.keys()}values(){return this._map.values()}entries(){return this._map.entries()}[Symbol.iterator](){return this._map[Symbol.iterator]()}}}const Of={normalizeFontFamily:jn,flatten:Tn,getFontWeight:Ln,removeQuotes:zn},_f=/\s*,\s*/,Ff=/-/,qf=/\?/g,Uf=/^U\+/i,Hf=[/^normal$/,/^italic$/,/^oblique$/,/^oblique\s+/];function Gf(n,e,t,a){const o={rules:{processed:0,discarded:0},fonts:{processed:0,discarded:0}},i={declared:[],used:[]},r=n.createElement("style");let s="";n.body.appendChild(r),e.forEach((e=>{const t=e.stylesheet.children;t&&(o.processed+=t.size,o.discarded+=t.size,Wf(t,i,a),s=tk(n,t,r,s))})),t.forEach((n=>{const e=$f(n,a);e.length&&i.used.push(e),s=ak(n.children,r,s)})),r.remove(),s+=n.body.innerText,globalThis.getComputedStyle&&a.doc&&(i.used=i.used.map((n=>n.map((n=>{const e=n.match(/^var\((--.*)\)$/);if(e&&e[1]){const t=globalThis.getComputedStyle(a.doc.body).getPropertyValue(e[1]);return t&&t.split(",").map((n=>Of.normalizeFontFamily(n)))||n}return n})))),i.used=i.used.map((n=>Of.flatten(n))));let l,c;i.used.find((n=>n.find((n=>n.match(/^var\(--/)))))?l=[]:(c=new Map,i.used.forEach((n=>n.forEach((n=>{if(i.declared.find((e=>e.fontFamily==n))){const e=a.usedFonts&&a.usedFonts.filter((e=>e[0]==n));e&&e.length&&c.set(n,e)}})))),l=i.declared.filter((n=>!c.has(n.fontFamily))));const m=Array.from(new Set(s)).map((n=>n.charCodeAt(0))).sort(((n,e)=>n-e));return e.forEach((n=>{const e=n.stylesheet.children;e&&(Vf(e,i.declared,l,c,m),o.rules.discarded-=e.size)})),o}function Wf(n,e,t){n.forEach((n=>{if("Atrule"==n.type&&("media"==n.name||"supports"==n.name||"layer"==n.name||"container"==n.name)&&n.block&&n.block.children)Wf(n.block.children,e,t);else if("Rule"==n.type){const a=$f(n.block,t);a.length&&e.used.push(a)}else if("Atrule"==n.type&&"font-face"==n.name){const t=Of.normalizeFontFamily(Zf(n.block.children,"font-family"));if(t){const a=Zf(n.block.children,"font-weight")||"400",o=Zf(n.block.children,"font-style")||"normal",i=Zf(n.block.children,"font-variant")||"normal";a.split(",").forEach((n=>e.declared.push({fontFamily:t,fontWeight:Of.getFontWeight(Of.removeQuotes(n)),fontStyle:o,fontVariant:i})))}}}))}function Vf(n,e,t,a,o){const i=[];for(let r=n.head;r;r=r.next){const n=r.data;if("Atrule"==n.type&&"import"==n.name&&n.prelude&&n.prelude.children&&n.prelude.children.head.data.importedChildren)Vf(n.prelude.children.head.data.importedChildren,e,t,a,o);else if("Atrule"==n.type&&("media"==n.name||"supports"==n.name||"layer"==n.name||"container"==n.name)&&n.block&&n.block.children)Vf(n.block.children,e,t,a,o);else if("Atrule"==n.type&&"font-face"==n.name){const s=Of.normalizeFontFamily(Zf(n.block.children,"font-family"));if(s){const l=Zf(n.block.children,"unicode-range");!t.find((n=>n.fontFamily==s))&&ik(o,l)&&Kf(n,s,e,a)||i.push(r)}const l=[];for(let e=n.block.children.head;e;e=e.next)"font-display"==e.data.property&&l.push(e);l.length&&l.forEach((e=>n.block.children.remove(e)))}}i.forEach((e=>n.remove(e)))}function Kf(n,e,t,a){let o;const i=a&&a.get(e);if(i&&i.length){let a=Zf(n.block.children,"font-style")||"normal";if(Hf.find((n=>a.trim().match(n)))){const r=Of.getFontWeight(Zf(n.block.children,"font-weight")||"400"),s=t.filter((n=>n.fontFamily==e&&n.fontStyle==a)).map((n=>n.fontWeight.split(" "))).sort(((n,e)=>Number.parseInt(n[0],10)-Number.parseInt(e[0],10)));let l=i.map((n=>Qf(n,a,s))).filter((n=>n));o=Jf(r,l),o||(l=i.map((n=>((n=Array.from(n))[2]="normal",Qf(n,a,s)))).filter((n=>n)),o=Jf(r,l),o||(l=i.map((n=>((n=Array.from(n))[2]=a="normal",Qf(n,a,s)))).filter((n=>n)),o=Jf(r,l)))}else o=!0}else o=!0;return o}function Jf(n,e){let t;for(const a of n.split(",")){let{min:n,max:o}=Yf(a);o||(o=900),t=t||e.find((e=>{let{min:t,max:a}=Yf(e);return a||(a=t),t>=n&&a<=o}))}return t}function Yf(n){const e=n.split(" ");return{min:Number.parseInt(Of.getFontWeight(e[0]),10),max:e[1]&&Number.parseInt(Of.getFontWeight(e[1]),10)}}function Zf(n,e){let t;if(n&&(t=n.filter((n=>n.property==e)).tail),t)try{return Of.removeQuotes(qw(t.data.value)).toLowerCase()}catch(n){}}function $f(n,e){let t=n.children.filter((n=>"font-family"==n.property)).tail,a=[];t&&(t.data.value.children?Xf(t.data.value,a):(t=qw(t.data.value),t&&a.push(Of.normalizeFontFamily(t))));const o=n.children.filter((n=>"font"==n.property)).tail;if(o&&o.data&&o.data.value)try{let n=o.data.value;const t=qw(n).match(/^var\((--.*)\)$/);t&&t[1]&&(n=Fw(globalThis.getComputedStyle(e.doc.body).getPropertyValue(t[1]),{context:"value"}));const i=function(n){const e=qw(n);if(-1!==nb.indexOf(e))return{system:e};const t=n.children,a={lineHeight:"normal",stretch:"normal",style:"normal",variant:"normal",weight:"normal"};let o=!1;for(let n=t.head;n;n=n.next){const e=qw(n.data);if("normal"!==e&&-1===Qw.indexOf(e))if(-1===eb.indexOf(e))if(-1===tb.indexOf(e))if(-1===ab.indexOf(e)){if("Dimension"==n.data.type){if(a.size=qw(n.data),n=n.next,n&&"Operator"==n.data.type&&"/"==n.data.value&&n.next?(n=n.next,a.lineHeight=qw(n.data),n=n.next):"Operator"==t.head.data.type&&"/"==t.head.data.value&&t.head.next&&(a.lineHeight=qw(t.head.next.data),n=t.head.next.next),!n)throw ib("Missing required font-family.");a.family=[];let e="";for(;n;){for(;n&&"Operator"==n.data.type&&","==n.data.value;)n=n.next;if(n)if("Identifier"==n.data.type)for(;n&&"Identifier"==n.data.type;)e+=" "+qw(n.data),n=n.next;else e=rb(qw(n.data)),n=n.next;e=e.trim(),e&&(a.family.push(e),e="")}return a}if("normal"!==a.variant)throw ib("Unknown or unsupported font token: "+a.variant);o||(a.variant=e)}else{if(o)continue;a.stretch=e}else{if(o)continue;a.style=e}else{if(o)continue;a.weight=e}else["style","variant","weight","stretch"].forEach((n=>{a[n]=e})),o=!0}throw ib("Missing required font-size.")}(n);i.family.forEach((n=>a.push(Of.normalizeFontFamily(n))))}catch(n){}return a}function Xf(n,e){let t=n.children.head;for(;t;)if("Identifier"==t.data.type){let n=t.data.name,a=t.next;for(;a&&"Operator"!=a.data.type&&","!=a.data.value;)n+=" "+a.data.name,a=a.next;e.push(Of.normalizeFontFamily(n)),t=t.next}else if("Function"==t.data.type&&"var"==t.data.name&&t.data.children){const n=t.data.children.head.data.name;e.push(Of.normalizeFontFamily("var("+n+")"));let a=t.data.children.head.next;for(;a&&"Operator"==a.data.type&&","==a.data.value;)a=a.next;const o=a;o&&(o.data.children?Xf(o.data,e):e.push(Of.normalizeFontFamily(o.data.value))),t=t.next}else"String"==t.data.type?(e.push(Of.normalizeFontFamily(t.data.value)),t=t.next):"Number"==t.data.type?(e.push(Of.normalizeFontFamily(String(t.data.value))),t=t.next):t=t.next}function Qf(n,e,t){let a;if(t=t.map((n=>n.map((n=>String(Number.parseInt(n,10)))))),n[2]==e){let e=Number(n[1]);t.length>1?(e>=400&&e<=500&&(a=t.find((n=>n[0]>=e&&n[0]<=500)),a||(a=nk(e,t)),a||(a=ek(e,t))),e<400&&(a=t.slice().reverse().find((n=>n[n.length-1]<=e)),a||(a=ek(e,t))),e>500&&(a=t.find((n=>n[0]>=e)),a||(a=nk(e,t))),a||(a=t.find((n=>n[0]<=e&&n[n.length-1]>=e)))):a=t[0]}return a?a.join(" "):void 0}function nk(n,e){return e.slice().reverse().find((e=>e[e.length-1]<n))}function ek(n,e){return e.find((e=>e[0]>n))}function tk(n,e,t,a){return e.forEach((e=>{e.block&&e.block.children&&e.prelude&&e.prelude.children&&("Atrule"!=e.type||"media"!=e.name&&"supports"!=e.name&&"layer"!=e.name&&"container"!=e.name?"Rule"==e.type&&(a=ak(e.block.children,t,a)):a=tk(n,e.block.children,t,a))})),a}function ak(n,e,t){const a=ok(n,"content",e),o=ok(n,"quotes",e);return t.includes(a)||(t+=a),t.includes(o)||(t+=o),t}function ok(n,e,t){const a=Zf(n,e)||"";return a?(t.textContent='tmp { content:"'+a+'"}',t.sheet&&t.sheet.cssRules?Of.removeQuotes(t.sheet.cssRules[0].style.getPropertyValue("content")):a):""}function ik(n,e){if(e){const t=e.split(_f),a=t.filter((e=>{const t=e.split(Ff);if(2==t.length)t[0]=rk(t[0]),t[1]=rk(t[1]);else if(1==t.length)if(t[0].includes("?")){const n=t[0],e=n;t[0]=rk(n.replace(qf,"0")),t[1]=rk(e.replace(qf,"F"))}else t[0]&&(t[0]=rk(t[0]));if(!t[0]||n.find((n=>n>=t[0]&&n<=t[1])))return!0}));return!t.length||a.length}return!0}function rk(n){return n=n.replace(Uf,""),parseInt(n,16)}const sk="all",lk=["after","before","first-letter","first-line","placeholder","selection","part","marker"],ck="sf-hidden",mk="display",dk=/-(ms|webkit|moz|o)-/;class hk{constructor(n,e,t){this.doc=n,this.mediaAllInfo=pk(sk);const a=new Map;let o=0;const i=n.createElement("style");n.body.appendChild(i);const r=n.createElement("span");n.body.appendChild(r),e.forEach(((r,s)=>{if(!r.scoped&&!s.urlNode){const s=r.stylesheet.children;if(s)if(r.mediaText&&r.mediaText!=sk){const l=pk(r.mediaText);this.mediaAllInfo.medias.set("style-"+o+"-"+r.mediaText,l),uk(n,s,e,l,o,t,a,i)}else uk(n,s,e,this.mediaAllInfo,o,t,a,i)}o++})),fk(this.mediaAllInfo),wk(this.mediaAllInfo,[],this.mediaAllInfo,i,r),i.remove(),r.remove()}getMediaAllInfo(){return this.mediaAllInfo}}function pk(n){const e={media:n,elements:new Map,medias:new Map,rules:new Map,pseudoRules:new Map};return n==sk&&(e.matchedStyles=new Map),e}function uk(n,e,t,a,o,i,r,s,l={mediaIndex:0,ruleIndex:0}){e.forEach((e=>{if("Atrule"==e.type&&"import"==e.name&&e.prelude&&e.prelude.children&&e.prelude.children.head.data.importedChildren)uk(n,e.prelude.children.head.data.importedChildren,t,a,o,i,r,s,l);else if(e.block&&e.block.children&&e.prelude&&e.prelude.children)if("Atrule"==e.type&&"media"==e.name){const c=qw(e.prelude),m=pk(c);a.medias.set("rule-"+o+"-"+l.mediaIndex+"-"+c,m),uk(n,e.block.children,t,m,o,i,r,s),l.mediaIndex++}else if("Rule"==e.type){const t=e.prelude.children.toArray(),c=e.prelude.children.toArray().map((n=>qw(n))),m={ruleData:e,mediaInfo:a,ruleIndex:l.ruleIndex,sheetIndex:o,matchedSelectors:new Set,declarations:new Set,selectors:t,selectorsText:c};if(!function(n,e){return e.textContent=n+"{}",e.sheet?!e.sheet.cssRules.length:e.sheet}(c.join(","),s)||c.find((n=>n.includes("|"))))for(let t=e.prelude.children.head,a=0;t;t=t.next,a++){const e=c[a];gk(n,{selector:t,selectorText:e,ruleInfo:m},i,r)}l.ruleIndex++}}))}function gk(n,e,t,a){const o=function(n,e){const t=[];let a;i(n={data:Fw(qw(n.data),{context:"selector"})}),a&&(e=qw(n.data).trim());o(n),t.length&&(t.forEach((({parentSelector:n,selector:e})=>{0!=n.data.children.size&&e.prev&&"Combinator"!=e.prev.data.type&&"WhiteSpace"!=e.prev.data.type?n.data.children.remove(e):n.data.children.replace(e,Fw("*",{context:"selector"}).children.head)})),e=qw(n.data).trim());return e;function o(n,e){if(n.data.children)for(let e=n.data.children.head;e;e=e.next)o(e,n);("PseudoClassSelector"==n.data.type||"PseudoElementSelector"==n.data.type&&(r(n)||lk.includes(n.data.name)))&&t.push({parentSelector:e,selector:n})}function i(n){if(n.data.children)for(let e=n.data.children.head;e;e=e.next)i(e);"TypeSelector"==n.data.type&&n.data.name.includes("|")&&(a=!0,n.data.name=n.data.name.substring(n.data.name.lastIndexOf("|")+1))}function r(n){const e=n.data.name;return e.startsWith("-")||e.startsWith("\\-")}}(e.selector,e.selectorText),i=o!=e.selectorText?o:e.selectorText,r=a.get(i);let s=r;if(!s)try{s=n.querySelectorAll(i),i!="."+ck&&(s=Array.from(n.querySelectorAll(i)).filter((n=>!n.classList.contains(ck)&&("none"!=n.style.getPropertyValue(mk)||"important"!=n.style.getPropertyPriority("display")))))}catch(n){}if(s&&(r||a.set(i,s),s.length))if(o==e.selectorText)s.forEach((n=>function(n,e,t){const a=e.ruleInfo.mediaInfo,o=t.get(n);let i=a.elements.get(n);i||(i=[],o&&i.push({styleInfo:{styleData:o,declarations:new Set}}),a.elements.set(n,i));const r=kk(e.selector.data);r.ruleIndex=e.ruleInfo.ruleIndex,r.sheetIndex=e.ruleInfo.sheetIndex,e.specificity=r,i.push(e)}(n,e,t)));else{let n=e.ruleInfo.mediaInfo.pseudoRules.get(e.ruleInfo.ruleData);n||(n=new Set,e.ruleInfo.mediaInfo.pseudoRules.set(e.ruleInfo.ruleData,n)),n.add(e.selectorText)}}function wk(n,e,t,a,o){n.elements.forEach((a=>function(n,e,t){const a=new Map,o=new Set;return n.forEach((n=>{let e;e=n.styleInfo?n.styleInfo.styleData.children:n.ruleInfo.ruleData.block.children,function(n,e,t,a,o,i){for(let o=e.tail;o;o=o.prev){const e=o.data,r=qw(e);if("Declaration"!=e.type||!r.match(dk)&&a.has(e.property)&&!e.important||bk(r,i)){if("Rule"==e.type){n.get(e)||n.set(e,{selectorInfo:t})}}else{const o=n.get(e);(!o||e.important&&!o.important)&&(n.set(e,{selectorInfo:t,important:e.important}),r.match(dk)||a.add(e.property))}}}(a,e,n,o,0,t)})),a}(a,0,o).forEach(((a,o)=>{if(a.selectorInfo.ruleInfo||n==t){let i;if(a.selectorInfo.ruleInfo){i=a.selectorInfo.ruleInfo;const t=i.ruleData;([n,...e].find((n=>n.rules.get(t)))||n).rules.set(t,i),t&&i.matchedSelectors.add(a.selectorInfo.selectorText)}else{i=a.selectorInfo.styleInfo;const n=i.styleData;t.matchedStyles.get(n)||t.matchedStyles.set(n,i)}i.declarations.has(o)||i.declarations.add(o)}})))),delete n.elements,n.medias.forEach((i=>wk(i,[n,...e],t,a,o)))}function bk(n,e){let t;return e.style=n,e.style.length||n.match(dk)||(t=!0),t}function fk(n){n.elements.forEach((n=>n.sort(((n,e)=>{return n.styleInfo&&!e.styleInfo?-1:!n.styleInfo&&e.styleInfo?1:(t=n.specificity,a=e.specificity,t.a>a.a?-1:t.a<a.a?1:t.b>a.b?-1:t.b<a.b?1:t.c>a.c?-1:t.c<a.c?1:t.sheetIndex>a.sheetIndex?-1:t.sheetIndex<a.sheetIndex?1:t.ruleIndex>a.ruleIndex?-1:t.ruleIndex<a.ruleIndex?1:-1);var t,a})))),n.medias.forEach(fk)}function kk(n,e={a:0,b:0,c:0}){return"IdSelector"==n.type&&e.a++,("ClassSelector"==n.type||"AttributeSelector"==n.type||"PseudoClassSelector"==n.type&&"not"!=n.name)&&e.b++,("TypeSelector"==n.type&&"*"!=n.name||"PseudoElementSelector"==n.type)&&e.c++,n.children&&n.children.forEach((n=>kk(n,e))),e}const yk={flatten:Tn},vk="all",jk="screen";function Sk(n){const e={processed:0,discarded:0};return n.forEach(((t,a)=>{if(Ck(t.mediaText||vk)&&t.stylesheet.children){xk(t.stylesheet.children,e).forEach((({cssRules:n,cssRule:e})=>n.remove(e)))}else n.delete(a),a.element&&a.element.remove()})),e}function xk(n,e,t=[]){for(let a=n.head;a;a=a.next){const o=a.data;"Atrule"==o.type&&"media"==o.name&&o.block&&o.block.children&&o.prelude&&o.prelude.children&&(e.processed++,Ck(qw(o.prelude))?xk(o.block.children,e,t):(t.push({cssRules:n,cssRule:a}),e.discarded++))}return t}function Ck(n){return yk.flatten(function(n){const e=[];let t=0,a=0;const o=/^(\s*)url\s*\(/.exec(n);if(null!==o){let a=o[0].length,i=1;for(;i>0;){const e=n[a];"("===e&&i++,")"===e&&i--,a++}e.unshift(new mb({type:"url",value:n.substring(0,a).trim(),sourceIndex:o[1].length,before:o[1],after:/^(\s*)/.exec(n.substring(a))[1]})),t=a}for(let o=t;o<n.length;o++){const i=n[o];if("("===i&&a++,")"===i&&a--,0===a&&","===i){const a=n.substring(t,o),i=/^(\s*)/.exec(a)[1];e.push(new cb({type:"media-query",value:a.trim(),sourceIndex:t+i.length,nodes:lb(a,t),before:i,after:/(\s*)$/.exec(a)[1]})),t=o+1}}const i=n.substring(t),r=/^(\s*)/.exec(i)[1];return e.push(new cb({type:"media-query",value:i.trim(),sourceIndex:t+r.length,nodes:lb(i,t),before:r,after:/(\s*)$/.exec(i)[1]})),e}(n).map((n=>zk(n)))).find((n=>!n.not&&(n.value==jk||n.value==vk)||n.not&&n.value!=jk))}function zk(n,e=[]){return n.nodes.map(((t,a)=>{if("media-query"==t.type)return zk(t);if("media-type"==t.type){const o={not:Boolean(a&&"keyword"==n.nodes[0].type&&"not"==n.nodes[0].value),value:t.value};e.push(o)}})),e.length||e.push({not:!1,value:vk}),e}function Lk(n,e,t){const a={processed:0,discarded:0};let o=0;return n.forEach(((n,e)=>{if(!n.scoped&&!e.urlNode){const e=n.stylesheet.children;if(e){let i;a.processed+=e.size,a.discarded+=e.size,i=n.mediaText&&"all"!=n.mediaText?t.medias.get("style-"+o+"-"+n.mediaText):t,Ak(e,o,i),a.discarded-=e.size}}o++})),e.forEach((n=>function(n,e){const t=[],a=e.matchedStyles.get(n);if(a){let e;for(let o=n.children.head;o&&!e;o=o.next)a.declarations.has(o.data)||t.push(o);t.forEach((e=>n.children.remove(e)))}}(n,t))),a}function Ak(n,e,t,a={mediaRuleIndex:0}){const o=[];for(let i=n.head;i;i=i.next){const n=i.data;if("Atrule"==n.type&&"import"==n.name&&n.prelude&&n.prelude.children&&n.prelude.children.head.data.importedChildren)Ak(n.prelude.children.head.data.importedChildren,e,t,a);else if(n.block&&n.block.children&&n.prelude&&n.prelude.children){if("Atrule"==n.type&&"media"==n.name){const o=qw(n.prelude);Ak(n.block.children,e,t.medias.get("rule-"+e+"-"+a.mediaRuleIndex+"-"+o)),a.mediaRuleIndex++}else if("Rule"==n.type){const e=t.rules.get(n),a=t.pseudoRules.get(n);e||a?e&&(Ik(n,e,a),n.prelude.children.size&&n.block.children.size||o.push(i)):o.push(i)}}else n&&"Raw"!=n.type&&("Rule"!=n.type||n.prelude&&"Raw"!=n.prelude.type)||o.push(i)}o.forEach((e=>n.remove(e)))}function Ik(n,e,t){const a=[],o=[];let i;for(let a=n.prelude.children.head;a;a=a.next){const n=qw(a.data);t&&t.has(n)&&(i=!0),e.matchedSelectors.has(n)||t&&t.has(n)||o.push(a)}if(!i)for(let t=n.block.children.tail;t;t=t.prev)e.declarations.has(t.data)||a.push(t);a.forEach((e=>n.block.children.remove(e))),o.forEach((e=>n.prelude.children.remove(e)))}const Tk="data:,";function Rk(n){n.querySelectorAll("picture").forEach((n=>{const e=n.querySelector("img");if(e){let{src:t,srcset:a}=Ek(e);if(!t){const e=function(n){let e=n.find((n=>n.src)),t=e&&e.src,a=e&&e.srcset;t||(e=n.find((n=>Mk(n.src))),t=e&&e.src,t==Tk&&(t=null));a||(e=n.find((n=>Mk(n.srcset))),a=e&&e.srcset,a==Tk&&(a=null));return{src:t,srcset:a}}(Array.from(n.querySelectorAll("source")).reverse());t=e.src,a||(a=e.srcset)}Dk({src:t,srcset:a},e,n)}})),n.querySelectorAll(":not(picture) > img[srcset]").forEach((n=>Dk(Ek(n),n)))}function Ek(n){let e=n.getAttribute("src");e==Tk&&(e=null);let t=Mk(n.getAttribute("srcset"));return t==Tk&&(t=null),{src:e,srcset:t}}function Dk(n,e,t){n.src?(e.setAttribute("src",n.src),e.setAttribute("srcset",""),e.setAttribute("sizes","")):(e.setAttribute("src",Tk),n.srcset?e.setAttribute("srcset",n.srcset):(e.setAttribute("srcset",""),e.setAttribute("sizes",""))),t&&t.querySelectorAll("source").forEach((n=>n.remove()))}function Mk(n){if(n)try{const e=Df(n);if(e.length)return e.find((n=>n.url)).url}catch(n){}}const Bk=["allowfullscreen","async","autofocus","autoplay","checked","compact","controls","declare","default","defaultchecked","defaultmuted","defaultselected","defer","disabled","enabled","formnovalidate","hidden","indeterminate","inert","ismap","itemscope","loop","multiple","muted","nohref","noresize","noshade","novalidate","nowrap","open","pauseonexit","readonly","required","reversed","scoped","seamless","selected","sortable","truespeed","typemustmatch","visible"],Nk=["SCRIPT","STYLE","PRE","TEXTAREA"],Pk=["id","class","style","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup"],Ok={FORM:{method:"get"},SCRIPT:{language:"javascript",type:"text/javascript",charset:n=>!n.getAttribute("src")},STYLE:{media:"all",type:"text/css"},LINK:{media:"all"}},_k=/[ \t\f\r]+/g,Fk=/[\n]+/g,qk=/^\s+$/,Uk=4294967295,Hk=[function(n){1==n.nodeType&&Array.from(n.attributes).forEach((e=>{Bk.includes(e.name)&&n.setAttribute(e.name,"")}))},function(n){3==n.nodeType&&n.previousSibling&&3==n.previousSibling.nodeType&&(n.textContent=n.previousSibling.textContent+n.textContent,n.previousSibling.remove())},function(n,e){if(3==n.nodeType){let t=n.parentElement;if(!(""==t.getAttribute(e.PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME))){const e=n.textContent;let a=Gk(t);for(;a;)t=t.parentElement,a=t&&Gk(t);(!t||a)&&e.length>1&&(n.textContent=e.replace(_k,function(n){return n.parentElement&&"HEAD"==Wk(n.parentElement)?"\n":" "}(n)).replace(Fk,"\n"))}}},function(n){if(8==n.nodeType&&"HTML"!=Wk(n.parentElement))return!n.textContent.toLowerCase().trim().startsWith("[if")},function(n){1==n.nodeType&&Array.from(n.attributes).forEach((e=>{if(Pk.includes(e.name.toLowerCase())){const t=n.getAttribute(e.name);(""==t||(t||"").match(qk))&&n.removeAttribute(e.name)}}))},function(n){if(1==n.nodeType){const e=Ok[Wk(n)];e&&Object.keys(e).forEach((t=>{const a=e[t];("function"==typeof a?a(n):n.getAttribute(t)==a)&&n.removeAttribute(t)}))}},function(n){if(1==n.nodeType&&"SCRIPT"==Wk(n)&&"application/ld+json"==n.type&&n.textContent.trim())try{n.textContent=JSON.stringify(JSON.parse(n.textContent))}catch(n){}}];function Gk(n){return n&&!Nk.includes(Wk(n))}function Wk(n){return n.tagName&&n.tagName.toUpperCase()}const Vk=1048576,Kk=["~","+","\\\\","?","%","*",":","|",'"',"<",">","\0-",""],Jk={"image/svg+xml":".svg","image/png":".png","image/gif":".gif","image/tiff":".tiff","image/bmp":".bmp","image/x-icon":".ico","image/heif":".heif","image/heic":".heic","image/avif":".avif","image/apng":".apng","image/jpeg":".jpg","image/webp":".webp","audio/mpeg":".mp3","audio/ogg":".ogg","audio/wav":".wav","audio/webm":".webm","video/3gpp":".3gp","video/3gpp2":".3g2","video/mpeg":".mpeg","video/quicktime":".mov","video/x-msvideo":".avi","video/webm":".webm","video/ogg":".ogv","video/mp4":".mp4","video/mp2t":".ts","font/otf":".otf","font/ttf":".ttf","font/woff":".woff","font/woff2":".woff2","application/vnd.ms-fontobject":".eot","font/collection":".ttc"},Yk="application/octet-stream",Zk=globalThis.URL,$k=globalThis.DOMParser,Xk=globalThis.Blob,Qk=globalThis.FileReader,ny=(n,e)=>(e.cache="force-cache",e.referrerPolicy="strict-origin-when-cross-origin",globalThis.fetch(n,e)),ey=globalThis.TextDecoder,ty=globalThis.URLSearchParams;async function ay(n,e,t,a,o){if(t)if(e.asBinary)if(e.inline){const n=new Qk;n.readAsDataURL(new Xk([t],{type:o+(e.charset?";charset="+e.charset:"")})),t=await new Promise(((e,t)=>{n.addEventListener("load",(()=>e(n.result)),!1),n.addEventListener("error",t,!1)}))}else t=new Uint8Array(t);else{const n=new Uint8Array(t.slice(0,4));132==n[0]&&49==n[1]&&149==n[2]&&51==n[3]?a="gb18030":255==n[0]&&254==n[1]?a="utf-16le":254==n[0]&&255==n[1]&&(a="utf-16be");try{t=new ey(a).decode(t)}catch(n){t=new ey(a="utf-8").decode(t)}t=t.replace(/\ufeff/gi,"")}else e.inline&&(t=e.asBinary?hn:"");return{data:t,resourceURL:n,charset:a,contentType:o}}function oy(n){const e=n.doctype;let t="";return e&&(t="<!DOCTYPE "+e.nodeName,e.publicId?(t+=' PUBLIC "'+e.publicId+'"',e.systemId&&(t+=' "'+e.systemId+'"')):e.systemId&&(t+=' SYSTEM "'+e.systemId+'"'),e.internalSubset&&(t+=" ["+e.internalSubset+"]"),t+="> "),t}const iy=((ry=ry||{}).fetch=ry.fetch||ny,ry.frameFetch=ry.frameFetch||ry.fetch||ny,{getDoctypeString:oy,getFilenameExtension(n,e,t){let a;try{a=new Zk(n).pathname.match(/(\.[^\\/.]*)$/)}catch(n){}return(a&&a[1]&&this.getValidFilename(a[1],e,t)||"").toLowerCase()},getContentTypeExtension:n=>Jk[n]||"",getContent:async function(n,e){let t,a,o,i;const r=ry.fetch,s=ry.frameFetch;if(e.blockMixedContent&&/^https:/i.test(e.baseURI)&&!/^https:/i.test(n))return ay(n,e);o=e.networkTimeout?new Promise(((n,t)=>{i=n,a=globalThis.setTimeout((()=>t(new Error("network timeout"))),e.networkTimeout)})):new Promise((n=>{i=n}));try{const a=e.acceptHeaders?e.acceptHeaders[e.expectedType]:"*/*";if(e.frameId)try{t=await Promise.race([s(n,{frameId:e.frameId,referrer:e.resourceReferrer,headers:{accept:a}}),o])}catch(e){t=await Promise.race([r(n,{headers:{accept:a}}),o])}else t=await Promise.race([r(n,{referrer:e.resourceReferrer,headers:{accept:a}}),o])}catch(t){return ay(n,e)}finally{i(),e.networkTimeout&&globalThis.clearTimeout(a)}let l;try{l=await t.arrayBuffer()}catch(t){return e.inline?{data:e.asBinary?hn:"",resourceURL:n}:{resourceURL:n}}n=t.url||n;let c,m="";try{const n=new Pf(t.headers.get("content-type"));m=n.type+"/"+n.subtype,c=n.parameters.get("charset")}catch(n){}if((!m||m==Yk&&e.asBinary)&&(m=function(n,e){if("image"==n){if(t([255,255,255,255],[0,0,1,0]))return"image/x-icon";if(t([255,255,255,255],[0,0,2,0]))return"image/x-icon";if(t([255,255],[78,77]))return"image/bmp";if(t([255,255,255,255,255,255],[71,73,70,56,57,97]))return"image/gif";if(t([255,255,255,255,255,255],[71,73,70,56,59,97]))return"image/gif";if(t([255,255,255,255,0,0,0,0,255,255,255,255,255,255],[82,73,70,70,0,0,0,0,87,69,66,80,86,80]))return"image/webp";if(t([255,255,255,255,255,255,255,255],[137,80,78,71,13,10,26,10]))return"image/png";if(t([255,255,255],[255,216,255]))return"image/jpeg"}if("font"==n){if(t([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,80]))return"application/vnd.ms-fontobject";if(t([255,255,255,255],[0,1,0,0]))return"font/ttf";if(t([255,255,255,255],[79,84,84,79]))return"font/otf";if(t([255,255,255,255],[116,116,99,102]))return"font/collection";if(t([255,255,255,255],[119,79,70,70]))return"font/woff";if(t([255,255,255,255],[119,79,70,50]))return"font/woff2"}if("video"==n){if(t([0,0,0,0,255,255,255,255,255,255,255,255],[0,0,0,0,102,116,121,112,105,115,111,109]))return"video/mp4";if(t([255,255,255,255,0,0,0,0,255,255,255,255],[82,73,70,70,0,0,0,0,87,65,86,69]))return"video/x-msvideo";if(t([255,255,255,255],[0,0,1,179])||t([255,255,255,255],[0,0,1,186]))return"video/mpeg";if(t([255,255,255,255],[79,103,103,83]))return"video/ogg";if(t([255],[71]))return"video/mp2t";if(t([255,255,255,255],[26,69,223,163]))return"video/webm";if(t([0,0,0,0,255,255,255,255,255,255],[0,0,0,0,102,116,121,112,51,103]))return"video/3gpp"}if("audio"==n){if(t([255,255],[255,249])||t([255,255],[255,254]))return"audio/aac";if(t([255,255,255,255],[77,84,104,100]))return"audio/midi";if(t([255,255,255,255],[0,0,1,179])||t([255,255,255,255],[0,0,1,186]))return"audio/mpeg";if(t([255,255],[255,251])||t([255,255],[255,243])||t([255,255],[255,242])||t([255,255,255],[73,68,51]))return"audio/mpeg";if(t([255,255,255,255],[79,103,103,83]))return"audio/ogg";if(t([255,255,255,255,0,0,0,0,255,255,255,255],[82,73,70,70,0,0,0,0,87,65,86,69]))return"audio/wav";if(t([255,255,255,255],[26,69,223,163]))return"audio/webm";if(t([0,0,0,0,255,255,255,255,255,255],[0,0,0,0,102,116,121,112,51,103]))return"audio/3gpp"}function t(n,t){let a=!0,o=0;if(e.byteLength>=t.length){const i=new Uint8Array(e,0,n.length);for(o=0;o<n.length&&a;o++)a=a&&(i[o]&n[o])==t[o];return a}}}(e.expectedType,l),m||(m=e.contentType?e.contentType:e.asBinary?Yk:"")),!c&&e.charset&&(c=e.charset),e.asBinary){if(t.status>=400)return ay(n,e);try{return e.maxResourceSizeEnabled&&l.byteLength>e.maxResourceSize*Vk?ay(n,e):ay(n,e,l,null,m)}catch(t){return ay(n,e)}}else{if(t.status>=400||e.validateTextContentType&&m&&!m.startsWith("text/"))return ay(n,e);if(c||(c="utf-8"),e.maxResourceSizeEnabled&&l.byteLength>e.maxResourceSize*Vk)return ay(n,e,null,c);try{return ay(n,e,l,c,m)}catch(t){return ay(n,e,null,c)}}},parseURL:(n,e)=>void 0===e?new Zk(n):new Zk(n,e),resolveURL(n,e){return this.parseURL(n,e).href},getSearchParams:n=>Array.from(new ty(n)),getValidFilename:(n,e=Kk,t="_")=>(e.forEach((e=>n=n.replace(new RegExp("["+e+"]+","g"),t))),n=n.replace(/\.\.\//g,"").replace(/^\/+/,"").replace(/\/+/g,"/").replace(/\/$/,"").replace(/\.$/,"").replace(/\.\//g,"."+t).replace(/\/\./g,"/"+t)),parseDocContent(n,e){const t=(new $k).parseFromString(n,"text/html");t.head||t.documentElement.insertBefore(t.createElement("HEAD"),t.body);let a=t.querySelector("base");return a&&a.getAttribute("href")||(a&&a.remove(),a=t.createElement("base"),a.setAttribute("href",e),t.head.insertBefore(a,t.head.firstChild)),t},parseXMLContent:n=>(new $k).parseFromString(n,"text/xml"),parseSVGContent(n){const e=(new $k).parseFromString(n,"image/svg+xml");return e.querySelector("parsererror")?(new $k).parseFromString(n,"text/html"):e},digest:async(n,e)=>In(n,e),getContentSize:n=>An(n),formatFilename:(n,e,t)=>Gn(n,e,t),getMimeType:n=>!n.compressContent||n.selfExtractingArchive?"text/html":"application/zip",evalTemplate:async(n,e,t,a,o)=>Wn(n,e,t,a,o),minifyHTML:(n,e)=>function(n,e){!function(n){n.querySelectorAll("style, script:not([src])").forEach((n=>{n.textContent.trim()||n.remove()}))}(n);const t=n.createTreeWalker(n.documentElement,Uk,null,!1);let a=t.nextNode();for(;a;){const n=Hk.find((n=>n(a,e))),o=a;a=t.nextNode(),n&&o.remove()}}(n,e),minifyCSSRules:(n,e,t)=>Lk(n,e,t),removeUnusedFonts:(n,e,t,a)=>Gf(n,e,t,a),getMediaAllInfo:(n,e,t)=>function(n,e,t){return new hk(n,e,t).getMediaAllInfo()}(n,e,t),compressCSS:(n,e)=>Ef(n,e),minifyMedias:n=>Sk(n),removeAlternativeImages:n=>Rk(n),parseSrcset:n=>Df(n),preProcessDoc:(n,e,t)=>fn(n,e,t),postProcessDoc(n,e,t){!function(n,e,t){if(n.querySelectorAll("["+Q+"]").forEach((n=>{n.textContent=n.getAttribute(Q),n.removeAttribute(Q)})),n.querySelectorAll("meta[disabled-http-equiv]").forEach((n=>{n.setAttribute("http-equiv",n.getAttribute("disabled-http-equiv")),n.removeAttribute("disabled-http-equiv")})),n.head&&n.head.querySelectorAll("*:not(base):not(link):not(meta):not(noscript):not(script):not(style):not(template):not(title)").forEach((n=>n.removeAttribute("hidden"))),!e){const t=[O,q,_,U,W,V,K,J,Z,H,X,tn];e=n.querySelectorAll(t.map((n=>"["+n+"]")).join(","))}e.forEach((n=>{n.removeAttribute(O),n.removeAttribute(_),n.removeAttribute(F),n.removeAttribute(q),n.removeAttribute(U),n.removeAttribute(W),n.removeAttribute(V),n.removeAttribute(K),n.removeAttribute(J),n.removeAttribute(Z),n.removeAttribute(H),n.removeAttribute(X),n.removeAttribute(tn),n.removeAttribute(Y)})),t&&t.forEach(((n,e)=>n.replaceWith(e)))}(n,e,t)},serialize:(n,e)=>l(n,e),removeQuotes:n=>zn(n),appendInfobar:(n,e)=>function(n,e,t){return I(n,e,t)}(n,e),findLast(n,e){if(n.findLast&&"function"==typeof n.findLast)return n.findLast(e);{let t=n.length;for(;t--;)if(e(n[t],t,n))return n[t]}},ON_BEFORE_CAPTURE_EVENT_NAME:D,ON_AFTER_CAPTURE_EVENT_NAME:M,WIN_ID_ATTRIBUTE_NAME:G,REMOVED_CONTENT_ATTRIBUTE_NAME:O,HIDDEN_CONTENT_ATTRIBUTE_NAME:_,HIDDEN_FRAME_ATTRIBUTE_NAME:q,IMAGE_ATTRIBUTE_NAME:W,POSTER_ATTRIBUTE_NAME:V,VIDEO_ATTRIBUTE_NAME:K,CANVAS_ATTRIBUTE_NAME:J,STYLE_ATTRIBUTE_NAME:Y,INPUT_VALUE_ATTRIBUTE_NAME:Z,SHADOW_ROOT_ATTRIBUTE_NAME:H,PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME:U,STYLESHEET_ATTRIBUTE_NAME:X,SELECTED_CONTENT_ATTRIBUTE_NAME:nn,INVALID_ELEMENT_ATTRIBUTE_NAME:en,COMMENT_HEADER:"Page saved with SingleFile",COMMENT_HEADER_LEGACY:"Archive processed by SingleFile",SINGLE_FILE_UI_ELEMENT_CLASS:mn,EMPTY_RESOURCE:hn,INFOBAR_TAGNAME:dn,WAIT_FOR_USERSCRIPT_PROPERTY_NAME:"_singleFile_waitForUserScript",NO_SCRIPT_PROPERTY_NAME:"singleFileDisabledNoscript"});var ry;const sy={serialize:(n,e)=>l(n,e),getDoctypeString:n=>iy.getDoctypeString(n),appendInfobar:(n,e,t)=>I(n,e,t),extractInfobarData:n=>T(n),displayIcon:(n,e,t={})=>function(n,e,t={}){const a=T(n);a.saveUrl&&(a.openInfobar=t.openInfobar,I(n,a,e),R(n,a))}(n,e,t),zip:Ki,extract:async function(n,{password:e,prompt:t=()=>{},shadowRootScriptURL:a,zipOptions:o={useWebWorkers:!1},noBlobURL:i}={}){const r={gif:"image/gif",jpg:"image/jpeg",png:"image/png",tif:"image/tiff",tiff:"image/tiff",bmp:"image/bmp",ico:"image/vnd.microsoft.icon",webp:"image/webp",svg:"image/svg+xml",avi:"video/x-msvideo",ogv:"video/ogg",mp4:"video/mp4",mpeg:"video/mpeg",ts:"video/mp2t",webm:"video/webm","3gp":"video/3gpp","3g2":"video/3gpp",mp3:"audio/mpeg",oga:"audio/ogg",mid:"audio/midi",midi:"audio/midi",opus:"audio/opus",wav:"audio/wav",weba:"audio/webm",heif:"image/heif",heic:"image/heic",avif:"image/avif",apng:"image/apng",mov:"video/quicktime",otf:"font/otf",ttf:"font/ttf",woff:"font/woff",woff2:"font/woff2",eot:"application/vnd.ms-fontobject",pdf:"application/pdf"},s=/stylesheet_[0-9]+\.css/,l=/scripts\/[0-9]+\.js/,c=/^([0-9_]+\/)?index\.html$/,m=/index\.html$/,d=/frames\//,h=/^frames\/\d+\/index.html/,p=/manifest\.json$/,u=";charset=utf-8",g=/([{}()^$&.*?/+|[\\\\]|\]|-)/g;Array.isArray(n)&&(n=new Blob([new Uint8Array(n)])),zip.configure(o);const w=new zip.BlobReader(n),b=new zip.ZipReader(w),f=await b.getEntries(),k={password:e};let y,v,j,S=[],x=[],C=[];await Promise.all(f.map((async n=>{const{filename:e}=n;let a,o,c,h;const p={};if(!k.password&&n.encrypted&&(k.password=t("Please enter the password to view the page")),e.match(m)||e.match(s)||e.match(l))e.match(m)?x.push(p):C.push(p),a=new zip.TextWriter,c=await n.getData(a,k),e.match(m)?h="text/html"+u:e.match(s)?h="text/css"+u:e.match(l)&&(h="text/javascript"+u);else{S.push(p);const t=e.match(/\.([^.]+)/);if(h=t&&t[1]&&r[t[1]]?r[t[1]]:"application/octet-stream",e.match(d)||i)o=await n.getData(new zip.Data64URIWriter(h),k);else{const e=await n.getData(new zip.BlobWriter(h),k);o=URL.createObjectURL(e)}}const g=n.filename.match(/^([0-9_]+\/)?(.*)$/)[2];let w="";const b=e.match(/(.*\/)[^/]+$/);b&&b[1]&&(w=b[1]),Object.assign(p,{prefixPath:w,filename:n.filename,name:g,url:n.comment,content:o,mimeType:h,textContent:c,parentResources:[]})}))),await b.close(),x.sort(A),C.sort((function(n,e){const t=n.filename.length-e.filename.length;return t||n.filename.localeCompare(e.filename)})),S=S.sort(A).concat(...C).concat(...x);for(const n of S){const{filename:e,prefixPath:t}=n;let{textContent:a}=n;void 0!==a&&(e.match(c)&&(v=a),e.match(l)||(S.forEach((e=>{const{filename:o,parentResources:i,content:r}=e;if(o.startsWith(t)&&o!=n.filename){const s=o.substring(t.length);s.match(p)||a.includes(s)&&(i.push(n.filename),void 0===e.textContent&&(a=L(a,s,r)))}})),n.textContent=a))}for(const n of S){let{textContent:e,prefixPath:t,filename:o}=n;if(void 0!==e){if(!o.match(l)){const a=o;for(const n of S){const{filename:o}=n;if(o.startsWith(t)&&o!=a){const a=o.substring(t.length);if(!a.match(p)){-1!=e.indexOf(a)&&(n.content=await z(n),e=L(e,a,n.content))}}}n.textContent=e,n.content=await z(n)}o.match(m)&&a&&(n.textContent=e.replace(/<script data-template-shadow-root.*<\/script>/g,"<script data-template-shadow-root src="+a+"><\/script>")),o.match(c)&&(y=e,j=n.url)}}return{docContent:y,origDocContent:v,resources:S,url:j};async function z(n){return n.filename.match(d)&&!n.filename.match(h)||i?await async function(n,e){const t=new FileReader;return t.readAsDataURL(new Blob([n],{type:e})),new Promise(((n,e)=>{t.onload=()=>n(t.result.replace(u,"")),t.onerror=e}))}(n.textContent,n.mimeType):URL.createObjectURL(new Blob([n.textContent],{type:n.mimeType}))}function L(n,e,t){if("function"==typeof n.replaceAll)return n.replaceAll(e,t);{const a=new RegExp(e.replace(g,"\\$1"),"g");return n.replace(a,t)}}function A(n,e){const t=e.filename.length-n.filename.length;return t||e.filename.localeCompare(n.filename)}},display:async function(n,e,{disableFramePointerEvents:t}={}){e=(e=e.replace(/<noscript/gi,"<template disabled-noscript")).replaceAll(/<\/noscript/gi,"</template");const a=(new DOMParser).parseFromString(e,"text/html");t&&a.querySelectorAll("iframe").forEach((n=>{const e="pointer-events";n.style.setProperty("-sf-"+e,n.style.getPropertyValue(e),n.style.getPropertyPriority(e)),n.style.setProperty(e,"none","important")})),n.open(),n.write(function(n){const e=n.doctype;let t="";e&&(t="<!DOCTYPE "+e.nodeName,e.publicId?(t+=' PUBLIC "'+e.publicId+'"',e.systemId&&(t+=' "'+e.systemId+'"')):e.systemId&&(t+=' SYSTEM "'+e.systemId+'"'),e.internalSubset&&(t+=" ["+e.internalSubset+"]"),t+="> ");return t}(a)),n.write(a.documentElement.outerHTML),n.close(),n.querySelectorAll("template[disabled-noscript]").forEach((e=>{const t=n.createElement("noscript");e.removeAttribute("disabled-noscript"),Array.from(e.attributes).forEach((n=>t.setAttribute(n.name,n.value))),t.textContent=e.innerHTML,e.parentElement.replaceChild(t,e)})),n.documentElement.setAttribute("data-sfz",""),n.querySelectorAll("link[rel*=icon]").forEach((n=>n.parentElement.replaceChild(n,n)))},formatFilename:Gn,INFOBAR_TAGNAME:L};n.helper=sy,Object.defineProperty(n,"__esModule",{value:!0})}));
|