single-file-extension-editor-helper.js 665 KB

1
  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||"STYLE"==a?n.textContent.replace(/<\//gi,"<\\/").replace(/\/>/gi,"\\/>"):n.textContent:n.textContent.replace(/&/g,"&amp;").replace(/\u00a0/g,"&nbsp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}(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,"&amp;").replace(/\u00a0/g,"&nbsp;"),r.includes('"')&&(r.includes("'")||!t?r=r.replace(/"/g,"&quot;"):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:tn},i=tn,r="|",s=X("|",!1),l=function(n){return n},c="%",m=X("%",!1),d="<",p=X("<",!1),u=">",g=X(">",!1),w=function(n,t,a){return e.callFunction(n,t,a)},b="{",f=X("{",!1),k="}",y=X("}",!1),v=function(n,t){return e.getVariableValue(n,t)},j="[",S=X("[",!1),x="]",C=X("]",!1),z=function(n,e){return{length:n,unit:e}},L="ch",A=X("ch",!1),I=/^[a-z0-9-]/,T=$([["a","z"],["0","9"],"-"],!1,!1),R=function(){return Z()},E=/^[0-9]/,D=$([["0","9"]],!1,!1),M=function(){return Number(Z())},B="\\\\{",N=X("\\\\{",!1),O="\\\\>",P=X("\\\\>",!1),_="\\\\%",F=X("\\\\%",!1),q="\\\\|",H=X("\\\\|",!1),U={type:"any"},G=0,W=0,V=[{line:1,column:1}],K=0,J=[],Y=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 Z(){return n.substring(W,G)}function X(n,e){return{type:"literal",text:n,ignoreCase:e}}function $(n,e,t){return{type:"class",parts:n,inverted:e,ignoreCase:t}}function Q(e){var t,a=V[e];if(a)return a;for(t=e-1;!V[t];)t--;for(a={line:(a=V[t]).line,column:a.column};t<e;)10===n.charCodeAt(t)?(a.line++,a.column=1):a.column++,t++;return V[e]=a,a}function nn(n,e){var t=Q(n),a=Q(e);return{start:{offset:n,line:t.line,column:t.column},end:{offset:e,line:a.line,column:a.column}}}function en(n){G<K||(G>K&&(K=G,J=[]),J.push(n))}async function tn(){return await async function(){var n,e;n=[],e=await an();for(;e!==a;)n.push(e),e=await an();return n}()}async function an(){var e;return(e=await async function(){var e,t,o,i,r,s,l;e=G,37===n.charCodeAt(G)?(t=c,G++):(t=a,0===Y&&en(m));t!==a&&(o=sn())!==a?(60===n.charCodeAt(G)?(i=d,G++):(i=a,0===Y&&en(p)),i!==a?(r=await async function(){var n,e,t,o;if(n=G,e=await on(),e!==a){for(t=[],o=await on();o!==a;)t.push(o),o=await on();t!==a?n=e=[e,t]:(G=n,n=a)}else G=n,n=a;return n}(),r!==a?(62===n.charCodeAt(G)?(s=u,G++):(s=a,0===Y&&en(g)),s!==a?((l=rn())===a&&(l=null),l!==a?(W=e,e=t=await w(o,r,l)):(G=e,e=a)):(G=e,e=a)):(G=e,e=a)):(G=e,e=a)):(G=e,e=a);return e}())===a&&(e=await async function(){var e,t,o,i,r;e=G,123===n.charCodeAt(G)?(t=b,G++):(t=a,0===Y&&en(f));t!==a&&(o=sn())!==a?(125===n.charCodeAt(G)?(i=k,G++):(i=a,0===Y&&en(y)),i!==a?((r=rn())===a&&(r=null),r!==a?(W=e,e=t=await v(o,r)):(G=e,e=a)):(G=e,e=a)):(G=e,e=a);return e}())===a&&(e=function(){var n,e,t;if(n=G,e=[],(t=ln())!==a)for(;t!==a;)e.push(t),t=ln();else e=a;e!==a&&(W=n,e=R());return n=e,n}()),e}async function on(){var e,t,o;return e=G,124===n.charCodeAt(G)?(t=r,G++):(t=a,0===Y&&en(s)),t===a&&(t=null),t!==a&&(o=await an())!==a?(W=e,e=t=l(o)):(G=e,e=a),e}function rn(){var e,t,o,i,r;return e=G,91===n.charCodeAt(G)?(t=j,G++):(t=a,0===Y&&en(S)),t!==a?(o=function(){var e,t,o;e=G,t=[],E.test(n.charAt(G))?(o=n.charAt(G),G++):(o=a,0===Y&&en(D));if(o!==a)for(;o!==a;)t.push(o),E.test(n.charAt(G))?(o=n.charAt(G),G++):(o=a,0===Y&&en(D));else t=a;t!==a&&(W=e,t=M());return e=t,e}(),o!==a?(i=function(){var e;n.substr(G,2)===L?(e=L,G+=2):(e=a,0===Y&&en(A));e===a&&(e=null);return e}(),i!==a?(93===n.charCodeAt(G)?(r=x,G++):(r=a,0===Y&&en(C)),r!==a?(W=e,e=t=z(o,i)):(G=e,e=a)):(G=e,e=a)):(G=e,e=a)):(G=e,e=a),e}function sn(){var e,t,o;if(e=G,t=[],I.test(n.charAt(G))?(o=n.charAt(G),G++):(o=a,0===Y&&en(T)),o!==a)for(;o!==a;)t.push(o),I.test(n.charAt(G))?(o=n.charAt(G),G++):(o=a,0===Y&&en(T));else t=a;return t!==a&&(W=e,t=R()),e=t}function ln(){var e,t,o,i,l,d;return e=G,t=G,Y++,123===n.charCodeAt(G)?(o=b,G++):(o=a,0===Y&&en(f)),Y--,o===a?t=void 0:(G=t,t=a),t!==a?(o=G,Y++,62===n.charCodeAt(G)?(i=u,G++):(i=a,0===Y&&en(g)),Y--,i===a?o=void 0:(G=o,o=a),o!==a?(i=G,Y++,37===n.charCodeAt(G)?(l=c,G++):(l=a,0===Y&&en(m)),Y--,l===a?i=void 0:(G=i,i=a),i!==a?(l=G,Y++,124===n.charCodeAt(G)?(d=r,G++):(d=a,0===Y&&en(s)),Y--,d===a?l=void 0:(G=l,l=a),l!==a?(d=function(){var e;n.substr(G,3)===B?(e=B,G+=3):(e=a,0===Y&&en(N));e===a&&(n.substr(G,3)===O?(e=O,G+=3):(e=a,0===Y&&en(P)),e===a&&(n.substr(G,3)===_?(e=_,G+=3):(e=a,0===Y&&en(F)),e===a&&(n.substr(G,3)===q?(e=q,G+=3):(e=a,0===Y&&en(H)),e===a&&(n.length>G?(e=n.charAt(G),G++):(e=a,0===Y&&en(U))))));return e}(),d!==a?e=t=[t,o,i,l,d]:(G=e,e=a)):(G=e,e=a)):(G=e,e=a)):(G=e,e=a)):(G=e,e=a),e}if((t=await i())!==a&&G===n.length)return t;throw t!==a&&G<n.length&&en({type:"end"}),function(n,e,t){return new h(h.buildMessage(n,e),n,e,t)}(J,K<n.length?n.charAt(K):null,K<n.length?nn(K,K+1):nn(K,K))}!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=(n,e,t)=>globalThis.addEventListener(n,e,t),f=globalThis.document,k=globalThis.Document,y=globalThis.JSON;let v;v=window[w]?window[w]:window[w]=new Map,f instanceof k&&(b("single-file-new-font-face",(n=>{const e=n.detail,t=Object.assign({},e);delete t.src,v.set(y.stringify(t),e)})),b("single-file-delete-font",(n=>{const e=n.detail,t=Object.assign({},e);delete t.src,v.delete(y.stringify(t))})),b("single-file-clear-fonts",(()=>v=new Map)));const j="single-file-",S="SingleFile",x="single-file-infobar",C="\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 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}\n\n.infobar:valid, .infobar:not(:focus-within) .infobar-content {\n display: none;\n}\n\n.infobar:focus-within {\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,\n color;\n}\n\n.infobar-content {\n align-items: center;\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}\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 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.infobar:focus-within .infobar-icon {\n z-index: -1;\n background-image: none;\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 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 z(n,e,t){if(!n.querySelector(x)){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,x,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=C.replace(/ {2}/g,"").replace(/\n/g,"").replace(/: /g,":").replace(/, /g,","),s.appendChild(l);const c=n.createElement("form");c.classList.add("infobar"),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=A.toString();t+=L.toString(),t+="("+I.toString()+")(document)",e.textContent=t,s.appendChild(e),r.innerHTML=s.outerHTML}}}function L(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(S)){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 A(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 I(n){const e=L(n);e&&e.saveUrl&&A(n,e)}const T=j+"on-before-capture",R=j+"on-after-capture",E=j+"request-get-adopted-stylesheets",D=j+"response-get-adopted-stylesheets",M=j+"unregister-request-get-adopted-stylesheets",B="data-"+j+"removed-content",N="data-"+j+"hidden-content",O="data-"+j+"kept-content",P="data-"+j+"hidden-frame",_="data-"+j+"preserved-space-element",F="data-"+j+"shadow-root-element",q="data-"+j+"win-id",H="data-"+j+"image",U="data-"+j+"poster",G="data-"+j+"video",W="data-"+j+"canvas",V="data-"+j+"movable-style",K="data-"+j+"input-value",J="data-"+j+"lazy-loaded-src",Y="data-"+j+"stylesheet",Z="data-"+j+"disabled-noscript",X="data-"+j+"selected-content",$="data-"+j+"invalid-element",Q="data-"+j+"async-script",nn="*:not(base):not(link):not(meta):not(noscript):not(script):not(style):not(template):not(title)",en=["NOSCRIPT","DISABLED-NOSCRIPT","META","LINK","STYLE","TITLE","TEMPLATE","SOURCE","OBJECT","SCRIPT","HEAD","BODY"],tn=["SCRIPT","NOSCRIPT","META","LINK","TEMPLATE"],an=/^'(.*?)'$/,on=/^"(.*?)"$/,rn={regular:"400",normal:"400",bold:"700",bolder:"700",lighter:"100"},sn="single-file-ui-element",ln=x,cn="data:,",mn=globalThis.JSON,dn=globalThis.crypto,hn=globalThis.TextEncoder,pn=globalThis.Blob,un=globalThis.CustomEvent;function gn(n,e,t){n.querySelectorAll("noscript:not(["+Z+"])").forEach((n=>{n.setAttribute(Z,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(nn).forEach((n=>n.hidden=!0)),n.querySelectorAll("svg foreignObject").forEach((n=>{const e=n.querySelectorAll("html > head > "+nn+", html > body > "+nn);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($,""),t.content.appendChild(e.cloneNode(!0)),a.set(e,t),e.replaceWith(t)})),o=wn(e,n,n.documentElement,t),t.moveStylesInHead&&n.querySelectorAll("body style, body ~ style").forEach((n=>{const t=An(e,n);t&&yn(n,t)&&(n.setAttribute(V,""),o.markedElements.push(n))}))):o={canvases:[],images:[],posters:[],videos:[],usedFonts:[],shadowRoots:[],markedElements:[]},{canvases:o.canvases,fonts:Array.from(v.values()),stylesheets:vn(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:bn(n.adoptedStyleSheets)}}function wn(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=An(n,t),(t instanceof n.HTMLElement||t instanceof globalThis.HTMLElement)&&a.removeHiddenElements&&(s=(i||t.closest("html > head"))&&en.includes(t.tagName.toUpperCase())||t.closest("details"),s||(r=i||yn(t,l),r&&!tn.includes(t.tagName.toUpperCase())&&(t.setAttribute(N,""),o.markedElements.push(t)))),!r)){if(a.compressHTML&&l){const n=l.getPropertyValue("white-space");n&&n.startsWith("pre")&&(t.setAttribute(_,""),o.markedElements.push(t))}a.removeUnusedFonts&&(fn(l,a,o.usedFonts),fn(An(n,t,":first-letter"),a,o.usedFonts),fn(An(n,t,":before"),a,o.usedFonts),fn(An(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(W,o.canvases.length-1),o.markedElements.push(t)}catch(n){}if("IMG"==s){const e={currentSrc:i?cn:a.loadDeferredImages&&t.getAttribute(J)||t.currentSrc};if(o.images.push(e),t.setAttribute(H,o.images.length-1),o.markedElements.push(t),t.removeAttribute(J),r=r||An(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||An(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=jn("padding-left",t),r=jn("padding-right",t),s=jn("padding-top",t),l=jn("padding-bottom",t),p?(c=jn("border-left-width",t),m=jn("border-right-width",t),d=jn("border-top-width",t),h=jn("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=An(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(G,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(U,o.posters.length-1),o.markedElements.push(t)}catch(n){}}}"IFRAME"==s&&i&&a.removeHiddenElements&&(t.setAttribute(P,""),o.markedElements.push(t));"INPUT"==s&&("password"!=t.type&&(t.setAttribute(K,t.value),o.markedElements.push(t)),"radio"!=t.type&&"checkbox"!=t.type||(t.setAttribute(K,t.checked),o.markedElements.push(t)));"TEXTAREA"==s&&(t.setAttribute(K,t.value),o.markedElements.push(t));"SELECT"==s&&t.querySelectorAll("option").forEach((n=>{n.selected&&(n.setAttribute(K,""),o.markedElements.push(n))}));"SCRIPT"==s&&(t.async&&""!=t.getAttribute("async")&&"async"!=t.getAttribute("async")&&(t.setAttribute(Q,""),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(sn)&&t.tagName.toLowerCase()!=ln){const i={};t.setAttribute(F,o.shadowRoots.length),o.markedElements.push(t),o.shadowRoots.push(i);try{if(c.adoptedStyleSheets)if(c.adoptedStyleSheets.length)i.adoptedStyleSheets=bn(c.adoptedStyleSheets);else if(void 0===c.adoptedStyleSheets.length){const n=n=>i.adoptedStyleSheets=n.detail.adoptedStyleSheets;t.addEventListener(D,n),t.dispatchEvent(new un(E,{bubbles:!0})),t.removeEventListener(D,n)}}catch(n){}wn(n,e,c,a,o,r),i.content=c.innerHTML,i.mode=c.mode;try{c.adoptedStyleSheets&&void 0===c.adoptedStyleSheets.length&&t.dispatchEvent(new un(M,{bubbles:!0}))}catch(n){}}wn(n,e,t,a,o,r),!a.autoSaveExternalSave&&a.removeHiddenElements&&i&&(s||""==t.getAttribute(O)?t.parentElement&&(t.parentElement.setAttribute(O,""),o.markedElements.push(t.parentElement)):r&&(t.setAttribute(B,""),o.markedElements.push(t)))}))}return o}function bn(n){return n?Array.from(n).map((n=>Array.from(n.cssRules).map((n=>n.cssText)).join("\n"))):[]}function fn(n,e,t){if(n){const a=n.getPropertyValue("font-style")||"normal";n.getPropertyValue("font-family").split(",").forEach((o=>{if(o=kn(o),!e.loadedFonts||e.loadedFonts.find((n=>kn(n.family)==o&&n.style==a))){const e=xn(n.getPropertyValue("font-weight")),i=n.getPropertyValue("font-variant")||"normal",r=[o,e,a,i];t.set(mn.stringify(r),[o,e,a,i])}}))}}function kn(n=""){return Sn((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 yn(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 vn(n){if(n){const e=[];return n.querySelectorAll("style").forEach(((t,a)=>{try{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(Y,a),e[a]=Array.from(t.sheet.cssRules).map((n=>n.cssText)).join("\n"))}catch(n){}})),e}}function jn(n,e){if(e.getPropertyValue(n).endsWith("px"))return parseFloat(e.getPropertyValue(n))}function Sn(n){return(n=n.match(an)?n.replace(an,"$1"):n.replace(on,"$1")).trim()}function xn(n){return rn[n.toLowerCase().trim()]||n}function Cn(n){return new pn([n]).size}async function zn(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 dn.subtle.digest(n,new hn("utf-8").encode(e)))}catch(n){return""}}function Ln(n){return n.flat?n.flat():n.reduce(((n,e)=>n.concat(Array.isArray(e)?Ln(e):e)),[])}function An(n,e,t){try{return n.getComputedStyle(e,t)}catch(n){}}const In=["~","+","\\\\","?","%","*",":","|",'"',"<",">","\0-",""],Tn="_",Rn=/([{}()^$&.*?/+|[\\\\]|\]|-)/g,En={"😀":"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"},Dn=Object.keys(En),Mn='\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 Bn(n,e,t){let a=await Nn(t.filenameTemplate,t,n,e)||"";a=a.trim(),t.replaceEmojisInFilename&&Dn.forEach((n=>a=On(a,n," _"+En[n]+"_ ")));const o=t.filenameReplacementCharacter;if(a=function(n,e=In,t=Tn){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&&Cn(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 qn(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 Nn(n="",e,t,a,o){const i=new URL(e.saveUrl),r=_n(i.href),s=Array.from(new URLSearchParams(i.search)),l=e.bookmarkFolders&&e.bookmarkFolders.join("/")||"",c=void 0===o||o,m=Mn.find((n=>i.hostname.endsWith("."+n)&&n)),d=m?i.hostname.substring(0,i.hostname.length-m.length-1):i.hostname,h=d.lastIndexOf(".");let u=d.substring(0,-1==h?0:h);const g=d.substring(u.length?u.length+1:0),w=g+"."+m;u.startsWith("www.")?u=u.substring(4):"www"==u&&(u="");const b={"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:()=>i.hash.substring(1)},"url-host":{getter:()=>i.host.replace(/\/$/,"")},"url-hostname":{getter:()=>i.hostname.replace(/\/$/,"")},"url-hostname-suffix":{getter:()=>m},"url-hostname-domain":{getter:()=>g},"url-hostname-root":{getter:()=>w},"url-hostname-subdomains":{getter:()=>u},"url-href":{getter:()=>r,dontReplaceSlash:c},"url-href-digest-sha-1":{getter:r?async()=>zn("SHA-1",r):""},"url-href-flat":{getter:()=>_n(i.href),dontReplaceSlash:!1},"url-referrer":{getter:()=>_n(e.referrer),dontReplaceSlash:c},"url-referrer-flat":{getter:()=>_n(e.referrer),dontReplaceSlash:!1},"url-password":{getter:()=>i.password},"url-pathname":{getter:()=>_n(i.pathname).replace(/^\//,"").replace(/\/$/,""),dontReplaceSlash:c},"url-pathname-flat":{getter:()=>_n(i.pathname),dontReplaceSlash:!1},"url-port":{getter:()=>i.port},"url-protocol":{getter:()=>i.protocol},"url-search":{getter:()=>i.search.substring(1)},"url-username":{getter:()=>i.username},"tab-id":{getter:()=>String(e.tabId)},"tab-index":{getter:()=>String(e.tabIndex)},"url-last-segment":{getter:()=>_n(Fn(i,e.filenameReplacementCharacter))},"bookmark-pathname":{getter:()=>l,dontReplaceSlash:c},"bookmark-pathname-flat":{getter:()=>l,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)}};t&&(b["digest-sha-256"]={getter:async()=>zn("SHA-256",t)},b["digest-sha-384"]={getter:async()=>zn("SHA-384",t)},b["digest-sha-512"]={getter:async()=>zn("SHA-512",t)}),e.saveDate&&v(e.saveDate),e.visitDate&&v(e.visitDate,"visit-");const f={"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?On(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)=>s[n]&&s[n][0],"url-search-value":(n=0)=>s[n]&&s[n][1],"url-search":n=>{const e=s.find((e=>e[0]==n));return e&&e[1]},"url-segment":(n=0)=>{const t=_n(i.pathname).split("/");return t.pop(),t.push(Fn(i,e.filenameReplacementCharacter)),t[n]},"url-hostname-subdomain":(n=0)=>{const e=u.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}}};a&&(f["page-element-text"]=n=>{const e=a.querySelector(n);return e&&e.textContent},f["page-element-attribute"]=(n,e)=>{const t=a.querySelector(n);return t&&t.getAttribute(e)}),n=On(n,"\\%","\\\\%"),n=On(n,"\\{","\\\\{"),n=On(n,"\\|","\\\\|"),n=On(n,"\\>","\\\\>");const k=await p(n,{async callFunction(n,[t,a],o){const i=f[n];if(!i)return"";if(t=t.replace(/\\\\(.)/g,"$1"),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{return await Pn((()=>i(t,...a)),!0,e.filenameReplacementCharacter,o)}catch(n){return""}},getVariableValue(n,t){const a=b[n];return a?Pn(a.getter,a.dontReplaceSlash,e.filenameReplacementCharacter,t):""}});let y=k.join("");return y=On(y,"\\\\%","%"),y=On(y,"\\\\{","{"),y=On(y,"\\\\|","|"),y=On(y,"\\\\>",">"),y;function v(n,e=""){b[e+"datetime-iso"]={getter:()=>n.toISOString()},b[e+"date-iso"]={getter:()=>n.toISOString().split("T")[0]},b[e+"time-iso"]={getter:()=>n.toISOString().split("T")[1].split("Z")[0]},b[e+"date-locale"]={getter:()=>n.toLocaleDateString()},b[e+"time-locale"]={getter:()=>n.toLocaleTimeString()},b[e+"day-locale"]={getter:()=>String(n.getDate()).padStart(2,"0")},b[e+"month-locale"]={getter:()=>String(n.getMonth()+1).padStart(2,"0")},b[e+"year-locale"]={getter:()=>String(n.getFullYear())},b[e+"datetime-locale"]={getter:()=>n.toLocaleString()},b[e+"datetime-utc"]={getter:()=>n.toUTCString()},b[e+"day-utc"]={getter:()=>String(n.getUTCDate()).padStart(2,"0")},b[e+"month-utc"]={getter:()=>String(n.getUTCMonth()+1).padStart(2,"0")},b[e+"year-utc"]={getter:()=>String(n.getUTCFullYear())},b[e+"hours-locale"]={getter:()=>String(n.getHours()).padStart(2,"0")},b[e+"minutes-locale"]={getter:()=>String(n.getMinutes()).padStart(2,"0")},b[e+"seconds-locale"]={getter:()=>String(n.getSeconds()).padStart(2,"0")},b[e+"hours-utc"]={getter:()=>String(n.getUTCHours()).padStart(2,"0")},b[e+"minutes-utc"]={getter:()=>String(n.getUTCMinutes()).padStart(2,"0")},b[e+"seconds-utc"]={getter:()=>String(n.getUTCSeconds()).padStart(2,"0")},b[e+"time-ms"]={getter:()=>String(n.getTime())}}}function On(n,e,t){if("function"==typeof n.replaceAll)return n.replaceAll(e,t);{const a=new RegExp(e.replace(Rn,"\\$1"),"g");return n.replace(a,t)}}async function Pn(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 qn(r,o):i&&(r=r.substring(0,i)),r}function _n(n){try{return decodeURI(n)}catch(e){return n}}function Fn(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 qn(n,e){const t=new Blob([n]),a=new FileReader;return a.readAsText(t.slice(0,e)),new Promise(((t,o)=>{a.addEventListener("load",(()=>{n.startsWith(a.result)?t(a.result):qn(n,e-1).then(t).catch(o)}),!1),a.addEventListener("error",o,!1)}))}const{Array:Hn,Object:Un,String:Gn,Number:Wn,BigInt:Vn,Math:Kn,Date:Jn,Map:Yn,Set:Zn,Response:Xn,URL:$n,Error:Qn,Uint8Array:ne,Uint16Array:ee,Uint32Array:te,DataView:ae,Blob:oe,Promise:ie,TextEncoder:re,TextDecoder:se,crypto:le,btoa:ce,TransformStream:me,ReadableStream:de,WritableStream:he,CompressionStream:pe,DecompressionStream:ue,navigator:ge,Worker:we}=globalThis,be=4294967295,fe=65535,ke=8,ye=0,ve=99,je=67324752,Se=134695760,xe=Se,Ce=33639248,ze=101010256,Le=101075792,Ae=117853008,Ie=22,Te=1,Re=39169,Ee=10,De=1,Me=21589,Be=6534,Ne=1,Oe=8,Pe=2048,_e=45,Fe=51,qe="/",He=new Jn(2107,11,31),Ue=new Jn(1980,0,1),Ge=void 0,We="undefined",Ve="function";class Ke{constructor(n){return class extends me{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 Je=64;let Ye=2;try{typeof ge!=We&&ge.hardwareConcurrency&&(Ye=ge.hardwareConcurrency)}catch(n){}const Ze={chunkSize:524288,maxWorkers:Ye,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Ge,CompressionStreamNative:typeof pe!=We&&pe,DecompressionStreamNative:typeof ue!=We&&ue},Xe=Un.assign({},Ze);function $e(){return Xe}function Qe(n){return Kn.max(n.chunkSize,Je)}function nt(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(et("baseURL",e),et("chunkSize",t),et("maxWorkers",a),et("terminateWorkerTimeout",o),et("useCompressionStream",i),et("useWebWorkers",r),s&&(Xe.CompressionStream=new Ke(s)),l&&(Xe.DecompressionStream=new Ke(l)),et("CompressionStream",c),et("DecompressionStream",m),d!==Ge){const{deflate:n,inflate:e}=d;if((n||e)&&(Xe.workerScripts||(Xe.workerScripts={})),n){if(!Hn.isArray(n))throw new Qn("workerScripts.deflate must be an array");Xe.workerScripts.deflate=n}if(e){if(!Hn.isArray(e))throw new Qn("workerScripts.inflate must be an array");Xe.workerScripts.inflate=e}}}function et(n,e){e!==Ge&&(Xe[n]=e)}function tt(n,e,t){return class{constructor(a){const o=this;var i,r;i=a,r="level",("function"==typeof Un.hasOwn?Un.hasOwn(i,r):i.hasOwnProperty(r))&&void 0===a.level&&delete a.level,o.codec=new n(Un.assign({},e,a)),t(o.codec,(n=>{if(o.pendingData){const e=o.pendingData;o.pendingData=new ne(e.length+n.length);const{pendingData:t}=o;t.set(e,0),t.set(n,e.length)}else o.pendingData=new ne(n)}))}append(n){return this.codec.push(n),a(this)}flush(){return this.codec.push(new ne,!0),a(this)}};function a(n){if(n.pendingData){const e=n.pendingData;return n.pendingData=null,e}return new ne}}const at=[];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;at[n]=e}class ot{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^at[255&(e^n[t])];this.crc=e}get(){return~this.crc}}class it extends me{constructor(){let n;const e=new ot;super({transform(n,t){e.append(n),t.enqueue(n)},flush(){const t=new ne(4);new ae(t.buffer).setUint32(0,e.get()),n.value=t}}),n=this}}function rt(n){if(void 0===re){n=unescape(encodeURIComponent(n));const e=new ne(n.length);for(let t=0;t<e.length;t++)e[t]=n.charCodeAt(t);return e}return(new re).encode(n)}const st={concat(n,e){if(0===n.length||0===e.length)return n.concat(e);const t=n[n.length-1],a=st.getPartial(t);return 32===a?n.concat(e):st._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)+st.getPartial(t)},clamp(n,e){if(32*n.length<e)return n;const t=(n=n.slice(0,Kn.ceil(e/32))).length;return e&=31,t>0&&e&&(n[t-1]=st.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=>Kn.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=st.getPartial(o);return a.push(st.partial(e+i&31,e+i>32?t:a.pop(),1)),a}},lt={bytes:{fromBits(n){const e=st.bitLength(n)/8,t=new ne(e);let a;for(let o=0;o<e;o++)0==(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==(3&t)&&(e.push(a),a=0);return 3&t&&e.push(st.partial(8*(3&t),a)),e}}},ct={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=lt.utf8String.toBits(n));const t=e._buffer=st.concat(e._buffer,n),a=e._length,o=e._length=a+st.bitLength(n);if(o>9007199254740991)throw new Qn("Cannot hash more than 2^53 - 1 bits");const i=new te(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=st.concat(e,[st.partial(1,1)]);for(let n=e.length+2;15&n;n++)e.push(0);for(e.push(Kn.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=Hn(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[Kn.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}}},mt={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 Qn("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 Qn("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}}},dt={getRandomValues(n){const e=new te(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)*(Kn.random()>.5?1:-1)}};for(let a,o=0;o<n.length;o+=4){const n=t(4294967296*(a||Kn.random()));a=987654071*n(),e[o/4]=4294967296*n()|0}return n}},ht={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&255)){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}else n+=1<<24;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=st.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 st.clamp(e,o)}}},pt={importKey:n=>new pt.hmacSha1(lt.bytes.toBits(n)),pbkdf2(n,e,t,a){if(t=t||1e4,a<0||t<0)throw new Qn("invalid params to pbkdf2");const o=1+(a>>5)<<2;let i,r,s,l,c;const m=new ArrayBuffer(o),d=new ae(m);let h=0;const p=st;for(e=lt.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=ct.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 Qn("encrypt on already updated hmac called!");return this.update(n),this.digest(n)}}},ut=void 0!==le&&"function"==typeof le.getRandomValues,gt="Invalid password",wt="Invalid signature",bt="zipjs-abort-check-password";function ft(n){return ut?le.getRandomValues(n):dt.getRandomValues(n)}const kt=16,yt="raw",vt={name:"PBKDF2"},jt=Un.assign({hash:{name:"HMAC"}},vt),St=Un.assign({iterations:1e3,hash:{name:"SHA-1"}},vt),xt=["deriveBits"],Ct=[8,12,16],zt=[16,24,32],Lt=10,At=[0,0,0,0],It="undefined",Tt="function",Rt=typeof le!=It,Et=Rt&&le.subtle,Dt=Rt&&typeof Et!=It,Mt=lt.bytes,Bt=mt.aes,Nt=ht.ctrGladman,Ot=pt.hmacSha1;let Pt=Rt&&Dt&&typeof Et.importKey==Tt,_t=Rt&&Dt&&typeof Et.deriveBits==Tt;class Ft extends me{constructor({password:n,signed:e,encryptionStrength:t,checkPasswordOnly:a}){super({start(){Un.assign(this,{ready:new ie((n=>this.resolveReady=n)),password:n,signed:e,strength:t-1,pending:new ne})},async transform(n,e){const t=this,{password:o,strength:i,resolveReady:r,ready:s}=t;o?(await async function(n,e,t,a){const o=await Ut(n,e,t,Wt(a,0,Ct[e])),i=Wt(a,Ct[e]);if(o[0]!=i[0]||o[1]!=i[1])throw new Qn(gt)}(t,i,o,Wt(n,0,Ct[i]+2)),n=Wt(n,Ct[i]+2),a?e.error(new Qn(bt)):r()):await s;const l=new ne(n.length-Lt-(n.length-Lt)%kt);e.enqueue(Ht(t,n,l,0,Lt,!0))},async flush(n){const{signed:e,ctr:t,hmac:a,pending:o,ready:i}=this;if(a&&t){await i;const r=Wt(o,0,o.length-Lt),s=Wt(o,o.length-Lt);let l=new ne;if(r.length){const n=Kt(Mt,r);a.update(n);const e=t.update(n);l=Vt(Mt,e)}if(e){const n=Wt(Vt(Mt,a.digest()),0,Lt);for(let e=0;e<Lt;e++)if(n[e]!=s[e])throw new Qn(wt)}n.enqueue(l)}}})}}class qt extends me{constructor({password:n,encryptionStrength:e}){let t;super({start(){Un.assign(this,{ready:new ie((n=>this.resolveReady=n)),password:n,strength:e-1,pending:new ne})},async transform(n,e){const t=this,{password:a,strength:o,resolveReady:i,ready:r}=t;let s=new ne;a?(s=await async function(n,e,t){const a=ft(new ne(Ct[e])),o=await Ut(n,e,t,a);return Gt(a,o)}(t,o,a),i()):await r;const l=new ne(s.length+n.length-n.length%kt);l.set(s,0),e.enqueue(Ht(t,n,l,s.length,0))},async flush(n){const{ctr:e,hmac:a,pending:o,ready:i}=this;if(a&&e){await i;let r=new ne;if(o.length){const n=e.update(Kt(Mt,o));a.update(n),r=Vt(Mt,n)}t.signature=Vt(Mt,a.digest()).slice(0,Lt),n.enqueue(Gt(r,t.signature))}}}),t=this}}function Ht(n,e,t,a,o,i){const{ctr:r,hmac:s,pending:l}=n,c=e.length-o;let m;for(l.length&&(e=Gt(l,e),t=function(n,e){if(e&&e>n.length){const t=n;(n=new ne(e)).set(t,0)}return n}(t,c-c%kt)),m=0;m<=c-kt;m+=kt){const n=Kt(Mt,Wt(e,m,m+kt));i&&s.update(n);const o=r.update(n);i||s.update(o),t.set(Vt(Mt,o),m+a)}return n.pending=Wt(e,m),t}async function Ut(n,e,t,a){n.password=null;const o=rt(t),i=await async function(n,e,t,a,o){if(!Pt)return pt.importKey(e);try{return await Et.importKey(n,e,t,a,o)}catch(n){return Pt=!1,pt.importKey(e)}}(yt,o,jt,!1,xt),r=await async function(n,e,t){if(!_t)return pt.pbkdf2(e,n.salt,St.iterations,t);try{return await Et.deriveBits(n,e,t)}catch(a){return _t=!1,pt.pbkdf2(e,n.salt,St.iterations,t)}}(Un.assign({salt:a},St),i,8*(2*zt[e]+2)),s=new ne(r),l=Kt(Mt,Wt(s,0,zt[e])),c=Kt(Mt,Wt(s,zt[e],2*zt[e])),m=Wt(s,2*zt[e]);return Un.assign(n,{keys:{key:l,authentication:c,passwordVerification:m},ctr:new Nt(new Bt(l),Hn.from(At)),hmac:new Ot(c)}),m}function Gt(n,e){let t=n;return n.length+e.length&&(t=new ne(n.length+e.length),t.set(n,0),t.set(e,n.length)),t}function Wt(n,e,t){return n.subarray(e,t)}function Vt(n,e){return n.fromBits(e)}function Kt(n,e){return n.toBits(e)}const Jt=12;class Yt extends me{constructor({password:n,passwordVerification:e,checkPasswordOnly:t}){super({start(){Un.assign(this,{password:n,passwordVerification:e}),Qt(this,n)},transform(n,e){const a=this;if(a.password){const e=Xt(a,n.subarray(0,Jt));if(a.password=null,e[11]!=a.passwordVerification)throw new Qn(gt);n=n.subarray(Jt)}t?e.error(new Qn(bt)):e.enqueue(Xt(a,n))}})}}class Zt extends me{constructor({password:n,passwordVerification:e}){super({start(){Un.assign(this,{password:n,passwordVerification:e}),Qt(this,n)},transform(n,e){const t=this;let a,o;if(t.password){t.password=null;const e=ft(new ne(Jt));e[11]=t.passwordVerification,a=new ne(n.length+e.length),a.set($t(t,e),0),o=Jt}else a=new ne(n.length),o=0;a.set($t(t,n),o),e.enqueue(a)}})}}function Xt(n,e){const t=new ne(e.length);for(let a=0;a<e.length;a++)t[a]=ea(n)^e[a],na(n,t[a]);return t}function $t(n,e){const t=new ne(e.length);for(let a=0;a<e.length;a++)t[a]=ea(n)^e[a],na(n,e[a]);return t}function Qt(n,e){const t=[305419896,591751049,878082192];Un.assign(n,{keys:t,crcKey0:new ot(t[0]),crcKey2:new ot(t[2])});for(let t=0;t<e.length;t++)na(n,e.charCodeAt(t))}function na(n,e){let[t,a,o]=n.keys;n.crcKey0.append([e]),t=~n.crcKey0.get(),a=aa(Kn.imul(aa(a+ta(t)),134775813)+1),n.crcKey2.append([a>>>24]),o=~n.crcKey2.get(),n.keys=[t,a,o]}function ea(n){const e=2|n.keys[2];return ta(Kn.imul(e,1^e)>>>8)}function ta(n){return 255&n}function aa(n){return 4294967295&n}const oa="deflate-raw";class ia extends me{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=sa(super.readable);i&&!s||!l||(d=new it,p=ma(p,d)),o&&(p=ca(p,r,{level:c,chunkSize:e},a,t)),i&&(s?p=ma(p,new Zt(n)):(h=new qt(n),p=ma(p,h))),la(m,p,(()=>{let n;i&&!s&&(n=h.signature),i&&!s||!l||(n=new ae(d.value.buffer).getUint32(0)),m.signature=n}))}}class ra extends me{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=sa(super.readable);i&&(o?h=ma(h,new Yt(n)):(d=new Ft(n),h=ma(h,d))),l&&(h=ca(h,c,{chunkSize:e},a,t)),i&&!o||!r||(m=new it,h=ma(h,m)),la(this,h,(()=>{if((!i||o)&&r){const n=new ae(m.value.buffer);if(s!=n.getUint32(0,!1))throw new Qn(wt)}}))}}function sa(n){return ma(n,new me({transform(n,e){n&&n.length&&e.enqueue(n)}}))}function la(n,e,t){e=ma(e,new me({flush:t})),Un.defineProperty(n,"readable",{get:()=>e})}function ca(n,e,t,a,o){try{n=ma(n,new(e&&a?a:o)(oa,t))}catch(a){if(!e)throw a;n=ma(n,new o(oa,t))}return n}function ma(n,e){return n.pipeThrough(e)}const da="message",ha="start",pa="pull",ua="data",ga="ack",wa="close",ba="deflate",fa="inflate";class ka extends me{constructor(n,e){super({});const t=this,{codecType:a}=n;let o;a.startsWith(ba)?o=ia:a.startsWith(fa)&&(o=ra);let i=0;const r=new o(n,e),s=super.readable,l=new me({transform(n,e){n&&n.length&&(i+=n.length,e.enqueue(n))},flush(){const{signature:n}=r;Un.assign(t,{signature:n,size:i})}});Un.defineProperty(t,"readable",{get:()=>s.pipeThrough(r).pipeThrough(l)})}}const ya=typeof we!=We;class va{constructor(n,{readable:e,writable:t},{options:a,config:o,streamOptions:i,useWebWorkers:r,transferStreams:s,scripts:l},c){const{signal:m}=i;return Un.assign(n,{busy:!0,readable:e.pipeThrough(new ja(e,i,o),{signal:m}),writable:t,options:Un.assign({},a),scripts:l,transferStreams:s,terminate(){const{worker:e,busy:t}=n;e&&!t&&(e.terminate(),n.interface=null)},onTaskFinished(){n.busy=!1,c(n)}}),(r&&ya?Ca:xa)(n,o)}}class ja extends me{constructor(n,{onstart:e,onprogress:t,size:a,onend:o},{chunkSize:i}){let r=0;super({start(){e&&Sa(e,a)},async transform(n,e){r+=n.length,t&&await Sa(t,r,a),e.enqueue(n)},flush(){n.size=r,o&&Sa(o,r)}},{highWaterMark:1,size:()=>i})}}async function Sa(n,...e){try{await n(...e)}catch(n){}}function xa(n,e){return{run:()=>async function({options:n,readable:e,writable:t,onTaskFinished:a},o){const i=new ka(n,o);try{await e.pipeThrough(i).pipeTo(t,{preventClose:!0,preventAbort:!0});const{signature:n,size:a}=i;return{signature:n,size:a}}finally{a()}}(n,e)}}function Ca(n,{baseURL:e,chunkSize:t}){return n.interface||Un.assign(n,{worker:Aa(n.scripts[0],e,n),interface:{run:()=>async function(n,e){let t,a;const o=new ie(((n,e)=>{t=n,a=e}));Un.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){const e=n.getWriter();let t;const a=new ie((n=>t=n)),o=new he({async write(n){await e.ready,await e.write(n)},close(){e.releaseLock(),t()},abort:n=>e.abort(n)});return{writable:o,closed:a}}(n.writable),m=Ia({type:ha,scripts:s.slice(1),options:r,config:e,readable:i,writable:l},n);m||Un.assign(n,{reader:i.getReader(),writer:l.getWriter()});const d=await o;try{await l.getWriter().close()}catch(n){}return await c,d}(n,{chunkSize:t})}}),n.interface}let za=!0,La=!0;function Aa(n,e,t){const a={type:"module"};let o,i;typeof n==Ve&&(n=n());try{o=new $n(n,e)}catch(e){o=n}if(za)try{i=new we(o)}catch(n){za=!1,i=new we(o,a)}else i=new we(o,a);return i.addEventListener(da,(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 Qn(n);Un.assign(o,{stack:e,code:t,name:a}),h(o)}else{if(t==pa){const{value:n,done:t}=await s.read();Ia({type:ua,value:n,done:t,messageId:o},e)}t==ua&&(await l.ready,await l.write(new ne(a)),Ia({type:ga,messageId:o},e)),t==wa&&h(null,i)}}catch(r){h(r)}function h(n,e){n?m(n):c(e),l&&l.releaseLock(),d()}}(n,t))),i}function Ia(n,{worker:e,writer:t,onTaskFinished:a,transferStreams:o}){try{let{value:t,readable:a,writable:i}=n;const r=[];if(t&&(n.value=t.buffer,r.push(n.value)),o&&La?(a&&r.push(a),i&&r.push(i)):n.readable=n.writable=null,r.length)try{return e.postMessage(n,r),!0}catch(t){La=!1,n.readable=n.writable=null,e.postMessage(n)}else e.postMessage(n)}catch(n){throw t&&t.releaseLock(),a(),n}}let Ta=[];const Ra=[];let Ea=0;async function Da(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,terminateWorkerTimeout:p}=a;e.transferStreams=o||o===Ge;const u=!(l||c||m||e.transferStreams);let g;e.useWebWorkers=!u&&(i||i===Ge&&a.useWebWorkers),e.scripts=e.useWebWorkers&&d?d[s]:[],t.useCompressionStream=r||r===Ge&&a.useCompressionStream;const w=Ta.find((n=>!n.busy));if(w)Ma(w),g=new va(w,n,e,b);else if(Ta.length<h){const t={indexWorker:Ea};Ea++,Ta.push(t),g=new va(t,n,e,b)}else g=await new ie((t=>Ra.push({resolve:t,stream:n,workerOptions:e})));return g.run();function b(n){if(Ra.length){const[{resolve:e,stream:t,workerOptions:a}]=Ra.splice(0,1);e(new va(n,t,a,b))}else n.worker?(Ma(n),Wn.isFinite(p)&&p>=0&&(n.terminateTimeout=setTimeout((()=>{Ta=Ta.filter((e=>e!=n)),n.terminate()}),p))):Ta=Ta.filter((e=>e!=n))}}function Ma(n){const{terminateTimeout:e}=n;e&&(clearTimeout(e),n.terminateTimeout=null)}const Ba="HTTP error ",Na="HTTP Range not supported",Oa="Writer iterator completed too soon",Pa="Content-Length",_a="Range",Fa="HEAD",qa="GET",Ha="bytes",Ua=65536,Ga="writable";class Wa{constructor(){this.size=0}init(){this.initialized=!0}}class Va extends Wa{get readable(){const n=this,{chunkSize:e=Ua}=n,t=new de({start(){this.chunkOffset=0},async pull(a){const{offset:o=0,size:i,diskNumberStart:r}=t,{chunkOffset:s}=this;a.enqueue(await wo(n,o+s,Kn.min(e,i-s),r)),s+e>i?a.close():this.chunkOffset+=e}});return t}}class Ka extends Wa{constructor(){super();const n=this,e=new he({write:e=>n.writeUint8Array(e)});Un.defineProperty(n,Ga,{get:()=>e})}writeUint8Array(){}}class Ja extends Va{constructor(n){super(),Un.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 ne(i)}}class Ya extends Wa{constructor(n){super();const e=new me,t=[];n&&t.push(["Content-Type",n]),Un.defineProperty(this,Ga,{get:()=>e.writable}),this.blob=new Xn(e.readable,{headers:t}).blob()}getData(){return this.blob}}class Za extends Va{constructor(n,e){super(),$a(this,n,e)}async init(){await Qa(this,so,ao),super.init()}readUint8Array(n,e){return no(this,n,e,so,ao)}}class Xa extends Va{constructor(n,e){super(),$a(this,n,e)}async init(){await Qa(this,lo,oo),super.init()}readUint8Array(n,e){return no(this,n,e,lo,oo)}}function $a(n,e,t){const{preventHeadRequest:a,useRangeHeader:o,forceRangeRequests:i}=t;delete(t=Un.assign({},t)).preventHeadRequest,delete t.useRangeHeader,delete t.forceRangeRequests,delete t.useXHR,Un.assign(n,{url:e,options:t,preventHeadRequest:a,useRangeHeader:o,forceRangeRequests:i})}async function Qa(n,e,t){const{url:a,useRangeHeader:o,forceRangeRequests:i}=n;if(function(n){const{baseURL:e}=$e(),{protocol:t}=new $n(n,e);return"http:"==t||"https:"==t}(a)&&(o||i)){const{headers:a}=await e(qa,n,eo(n));if(!i&&a.get("Accept-Ranges")!=Ha)throw new Qn(Na);{let o;const i=a.get("Content-Range");if(i){const n=i.trim().split(/\s*\/\s*/);if(n.length){const e=n[1];e&&"*"!=e&&(o=Wn(e))}}o===Ge?await ro(n,e,t):n.size=o}}else await ro(n,e,t)}async function no(n,e,t,a,o){const{useRangeHeader:i,forceRangeRequests:r,options:s}=n;if(i||r){const o=await a(qa,n,eo(n,e,t));if(206!=o.status)throw new Qn(Na);return new ne(await o.arrayBuffer())}{const{data:a}=n;return a||await o(n,s),new ne(n.data.subarray(e,e+t))}}function eo(n,e=0,t=1){return Un.assign({},to(n),{[_a]:Ha+"="+e+"-"+(e+t-1)})}function to({options:n}){const{headers:e}=n;if(e)return Symbol.iterator in e?Un.fromEntries(e):e}async function ao(n){await io(n,so)}async function oo(n){await io(n,lo)}async function io(n,e){const t=await e(qa,n,to(n));n.data=new ne(await t.arrayBuffer()),n.size||(n.size=n.data.length)}async function ro(n,e,t){if(n.preventHeadRequest)await t(n,n.options);else{const a=(await e(Fa,n,to(n))).headers.get(Pa);a?n.size=Wn(a):await t(n,n.options)}}async function so(n,{options:e,url:t},a){const o=await fetch(t,Un.assign({},e,{method:n,headers:a}));if(o.status<400)return o;throw 416==o.status?new Qn(Na):new Qn(Ba+(o.statusText||o.status))}function lo(n,{url:e},t){return new ie(((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 Yn(n)})}else o(416==i.status?new Qn(Na):new Qn(Ba+(i.statusText||i.status)))}),!1),i.addEventListener("error",(n=>o(n.detail?n.detail.error:new Qn("Network error"))),!1),i.open(n,e),t)for(const n of Un.entries(t))i.setRequestHeader(n[0],n[1]);i.responseType="arraybuffer",i.send()}))}class co extends Va{constructor(n,e={}){super(),Un.assign(this,{url:n,reader:e.useXHR?new Xa(n,e):new Za(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 mo extends Va{constructor(n){super(),this.readers=n}async init(){const n=this,{readers:e}=n;n.lastDiskNumber=0,n.lastDiskOffset=0,await ie.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 wo(l,s,e);else{const o=c-s;i=new ne(e),i.set(await wo(l,s,o)),i.set(await a.readUint8Array(n+o,e-o,t),o)}return a.lastDiskNumber=Kn.max(r,a.lastDiskNumber),i}}class ho extends Wa{constructor(n,e=4294967295){super();const t=this;let a,o,i;Un.assign(t,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const r=new he({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 Qn(Oa);a=r,a.size=0,a.maxSize&&(t.maxSize=a.maxSize),t.availableSize=t.maxSize,await po(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()}Un.defineProperty(t,Ga,{get:()=>r})}}async function po(n,e){n.init&&!n.initialized&&await n.init(e)}function uo(n){return Hn.isArray(n)&&(n=new mo(n)),n instanceof de&&(n={readable:n}),n}function go(n){n.writable===Ge&&typeof n.next==Ve&&(n=new ho(n)),n instanceof he&&(n={writable:n});const{writable:e}=n;e.size===Ge&&(e.size=0);return n instanceof ho||Un.assign(n,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),n}function wo(n,e,t,a){return n.readUint8Array(e,t,a)}const bo=mo,fo=ho,ko="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),yo=256==ko.length;function vo(n,e){return e&&"cp437"==e.trim().toLowerCase()?function(n){if(yo){let e="";for(let t=0;t<n.length;t++)e+=ko[n[t]];return e}return(new se).decode(n)}(n):new se(e).decode(n)}const jo="filename",So="rawFilename",xo="comment",Co="rawComment",zo="uncompressedSize",Lo="compressedSize",Ao="offset",Io="diskNumberStart",To="lastModDate",Ro="rawLastModDate",Eo="lastAccessDate",Do="rawLastAccessDate",Mo="creationDate",Bo="rawCreationDate",No="internalFileAttribute",Oo="externalFileAttribute",Po="msDosCompatible",_o="zip64",Fo=[jo,So,Lo,zo,To,Ro,xo,Co,Eo,Mo,Ao,Io,Io,No,Oo,Po,_o,"directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class qo{constructor(n){Fo.forEach((e=>this[e]=n[e]))}}const Ho="File format is not recognized",Uo="End of central directory not found",Go="End of Zip64 central directory not found",Wo="End of Zip64 central directory locator not found",Vo="Central directory header not found",Ko="Local file header not found",Jo="Zip64 extra field not found",Yo="File contains encrypted entry",Zo="Encryption method not supported",Xo="Compression method not supported",$o="Split zip file",Qo="utf-8",ni="cp437",ei=[[zo,be],[Lo,be],[Ao,be],[Io,fe]],ti={[fe]:{getValue:hi,bytes:4},[be]:{getValue:pi,bytes:8}};class ai{constructor(n,e,t){Un.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=ui(await wo(o,i,30,r));let b=si(a,t,"password");if(b=b&&b.length&&b,s&&s.originalCompressionMethod!=ve)throw new Qn(Xo);if(l!=ye&&l!=ke)throw new Qn(Xo);if(hi(w,0)!=je)throw new Qn(Ko);oi(g,w,4),g.rawExtraField=g.extraFieldLength?await wo(o,i+30+g.filenameLength,g.extraFieldLength,r):new ne,await ii(a,g,w,4,!0),Un.assign(e,{lastAccessDate:g.lastAccessDate,creationDate:g.creationDate});const f=a.encrypted&&g.encrypted,k=f&&!s;if(f){if(!k&&s.strength===Ge)throw new Qn(Zo);if(!b)throw new Qn(Yo)}const y=i+30+g.filenameLength+g.extraFieldLength,v=u,j=o.readable;Un.assign(j,{diskNumberStart:r,offset:y,size:v});const S=si(a,t,"signal"),x=si(a,t,"checkPasswordOnly");x&&(n=new he),n=go(n),await po(n,p);const{writable:C}=n,{onstart:z,onprogress:L,onend:A}=t,I={options:{codecType:fa,password:b,zipCrypto:k,encryptionStrength:s&&s.strength,signed:si(a,t,"checkSignature"),passwordVerification:k&&(m.dataDescriptor?h>>>8&255:d>>>24&255),signature:d,compressed:0!=l,encrypted:f,useWebWorkers:si(a,t,"useWebWorkers"),useCompressionStream:si(a,t,"useCompressionStream"),transferStreams:si(a,t,"transferStreams"),checkPasswordOnly:x},config:c,streamOptions:{signal:S,size:v,onstart:z,onprogress:L,onend:A}};let T=0;try{({outputSize:T}=await Da({readable:j,writable:C},I))}catch(n){if(!x||n.message!=bt)throw n}finally{const n=si(a,t,"preventClose");C.size+=T,n||C.locked||await C.getWriter().close()}return x?void 0:n.getData?n.getData():C}}function oi(n,e,t){const a=n.rawBitFlag=di(e,t+2),o=(a&Ne)==Ne,i=hi(e,t+6);Un.assign(n,{encrypted:o,version:di(e,t),bitFlag:{level:(6&a)>>1,dataDescriptor:(a&Oe)==Oe,languageEncodingFlag:(a&Pe)==Pe},rawLastModDate:i,lastModDate:li(i),filenameLength:di(e,t+22),extraFieldLength:di(e,t+24)})}async function ii(n,e,t,a,o){const{rawExtraField:i}=e,r=e.extraField=new Yn,s=ui(new ne(i));let l=0;try{for(;l<i.length;){const n=di(s,l),e=di(s,l+2);r.set(n,{type:n,data:i.slice(l+4,l+4+e)}),l+=4+e}}catch(n){}const c=di(t,a+4);Un.assign(e,{signature:hi(t,a+10),uncompressedSize:hi(t,a+18),compressedSize:hi(t,a+14)});const m=r.get(Te);m&&(!function(n,e){e.zip64=!0;const t=ui(n.data),a=ei.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=ti[s];e[r]=n[r]=a.getValue(t,i),i+=a.bytes}else if(n[r])throw new Qn(Jo)}}(m,e),e.extraFieldZip64=m);const d=r.get(28789);d&&(await ri(d,jo,So,e,n),e.extraFieldUnicodePath=d);const h=r.get(25461);h&&(await ri(h,xo,Co,e,n),e.extraFieldUnicodeComment=h);const p=r.get(Re);p?(!function(n,e,t){const a=ui(n.data),o=mi(a,4);Un.assign(n,{vendorVersion:mi(a,0),vendorId:mi(a,2),strength:o,originalCompressionMethod:t,compressionMethod:di(a,5)}),e.compressionMethod=n.compressionMethod}(p,e,c),e.extraFieldAES=p):e.compressionMethod=c;const u=r.get(Ee);u&&(!function(n,e){const t=ui(n.data);let a,o=4;try{for(;o<n.data.length&&!a;){const e=di(t,o),i=di(t,o+2);e==De&&(a=n.data.slice(o+4,o+4+i)),o+=4+i}}catch(n){}try{if(a&&24==a.length){const t=ui(a),o=t.getBigUint64(0,!0),i=t.getBigUint64(8,!0),r=t.getBigUint64(16,!0);Un.assign(n,{rawLastModDate:o,rawLastAccessDate:i,rawCreationDate:r});const s=ci(o),l=ci(i),c={lastModDate:s,lastAccessDate:l,creationDate:ci(r)};Un.assign(n,c),Un.assign(e,c)}}catch(n){}}(u,e),e.extraFieldNTFS=u);const g=r.get(Me);g&&(!function(n,e,t){const a=ui(n.data),o=mi(a,0),i=[],r=[];t?(1==(1&o)&&(i.push(To),r.push(Ro)),2==(2&o)&&(i.push(Eo),r.push(Do)),4==(4&o)&&(i.push(Mo),r.push(Bo))):n.data.length>=5&&(i.push(To),r.push(Ro));let s=1;i.forEach(((t,o)=>{if(n.data.length>=s+4){const i=hi(a,s);e[t]=n[t]=new Jn(1e3*i);const l=r[o];n[l]=i}s+=4}))}(g,e,o),e.extraFieldExtendedTimestamp=g);const w=r.get(Be);w&&(e.extraFieldUSDZ=w)}async function ri(n,e,t,a,o){const i=ui(n.data),r=new ot;r.append(o[t]);const s=ui(new ne(4));s.setUint32(0,r.get(),!0);const l=hi(i,1);Un.assign(n,{version:mi(i,0),[e]:vo(n.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&l==hi(s,0)}),n.valid&&(a[e]=n[e],a[e+"UTF8"]=!0)}function si(n,e,t){return e[t]===Ge?n.options[t]:e[t]}function li(n){const e=(4294901760&n)>>16,t=65535&n;try{return new Jn(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&t)>>11,(2016&t)>>5,2*(31&t),0)}catch(n){}}function ci(n){return new Jn(Wn(n/Vn(1e4)-Vn(116444736e5)))}function mi(n,e){return n.getUint8(e)}function di(n,e){return n.getUint16(e,!0)}function hi(n,e){return n.getUint32(e,!0)}function pi(n,e){return Wn(n.getBigUint64(e,!0))}function ui(n){return new ae(n.buffer)}const gi="File already exists",wi="Zip file comment exceeds 64KB",bi="File entry comment exceeds 64KB",fi="File entry name exceeds 64KB",ki="Version exceeds 65535",yi="The strength must equal 1, 2, or 3",vi="Extra field type exceeds 65535",ji="Extra field data exceeds 64KB",Si="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",xi=new ne([7,0,2,0,65,69,3,0,0]);let Ci=0;const zi=[];async function Li(n,e){const t=n.getWriter();await t.ready,n.size+=Ni(e),await t.write(e),t.releaseLock()}function Ai(n){if(n)return(Vn(n.getTime())+Vn(116444736e5))*Vn(1e4)}function Ii(n,e,t,a){const o=e[t]===Ge?n.options[t]:e[t];return o===Ge?a:o}function Ti(n,e,t){n.setUint8(e,t)}function Ri(n,e,t){n.setUint16(e,t,!0)}function Ei(n,e,t){n.setUint32(e,t,!0)}function Di(n,e,t){n.setBigUint64(e,t,!0)}function Mi(n,e,t){n.set(e,t)}function Bi(n){return new ae(n.buffer)}function Ni(...n){let e=0;return n.forEach((n=>n&&(e+=n.length))),e}let Oi;try{Oi="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){}nt({baseURL:Oi}),function(n){const e=()=>$n.createObjectURL(new oe(['const{Array:e,Object:t,Number:n,Math:r,Error:s,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:v,CompressionStream:y,DecompressionStream:b}=self;class m{constructor(e){return class extends g{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const _=[];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;_[e]=t}class k{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^_[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class S extends g{constructor(){let e;const t=new k;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 z={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=z.getPartial(n);return 32===r?e.concat(t):z._shiftRight(t,r,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)+z.getPartial(n)},clamp(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,r.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=z.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=>r.round(e/1099511627776)||32,_shiftRight(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=z.getPartial(s);return r.push(z.partial(t+a&31,t+a>32?n:r.pop(),1)),r}},D={bytes:{fromBits(e){const t=z.bitLength(e)/8,n=new a(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},toBits(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3==(3&n)&&(t.push(r),r=0);return 3&n&&t.push(z.partial(8*(3&n),r)),t}}},C=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=D.utf8String.toBits(e));const n=t._buffer=z.concat(t._buffer,e),r=t._length,a=t._length=r+z.bitLength(e);if(a>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const i=new o(n);let l=0;for(let e=t.blockSize+r-(t.blockSize+r&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=z.concat(t,[z.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.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,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}_S(e,t){return t<<e|t>>>32-e}_block(t){const n=this,s=n._h,a=e(80);for(let e=0;16>e;e++)a[e]=t[e];let i=s[0],o=s[1],l=s[2],c=s[3],h=s[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[r.floor(e/20)]|0;h=c,c=l,l=n._S(30,o),o=i,i=t}s[0]=s[0]+i|0,s[1]=s[1]+o|0,s[2]=s[2]+l|0,s[3]=s[3]+c|0,s[4]=s[4]+h|0}},I={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)*(r.random()>.5?1:-1))};for(let s,a=0;a<e.length;a+=4){const e=n(4294967296*(s||r.random()));s=987654071*e(),t[a/4]=4294967296*e()|0}return e}},x={importKey:e=>new x.hmacSha1(D.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const a=1+(r>>5)<<2;let i,o,l,c,f;const u=new ArrayBuffer(a),p=new h(u);let d=0;const g=z;for(t=D.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,r/8)},hmacSha1:class{constructor(e){const t=this,n=t._hash=C,r=[[],[]];t._baseHash=[new n,new n];const s=t._baseHash[0].blockSize/32;e.length>s&&(e=(new n).update(e).finalize());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t._baseHash[0].update(r[0]),t._baseHash[1].update(r[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 s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},A=void 0!==p&&"function"==typeof p.getRandomValues,T="Invalid password",R="Invalid signature",H="zipjs-abort-check-password";function q(e){return A?p.getRandomValues(e):I.getRandomValues(e)}const B=16,K={name:"PBKDF2"},V=t.assign({hash:{name:"HMAC"}},K),P=t.assign({iterations:1e3,hash:{name:"SHA-1"}},K),E=["deriveBits"],U=[8,12,16],W=[16,24,32],M=10,N=[0,0,0,0],O="undefined",F="function",L=typeof p!=O,j=L&&p.subtle,G=L&&typeof j!=O,X=D.bytes,J=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],a=e.length;let i,o,l,c=1;if(4!==a&&6!==a&&8!==a)throw new s("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:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[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],r=t[4],s=[],a=[];let i,o,l,c;for(let e=0;256>e;e++)a[(s[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,r[a]=h,c=s[l=s[o=s[h]]];let f=16843009*c^65537*l^257*o^16843008*h,u=257*s[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 s("invalid aes block size");const n=this._key[t],r=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],v=e[2]^n[2],y=e[t?1:3]^n[3],b=4;for(let e=0;r>e;e++)u=o[g>>>24]^l[w>>16&255]^c[v>>8&255]^h[255&y]^n[b],p=o[w>>>24]^l[v>>16&255]^c[y>>8&255]^h[255&g]^n[b+1],d=o[v>>>24]^l[y>>16&255]^c[g>>8&255]^h[255&w]^n[b+2],y=o[y>>>24]^l[g>>16&255]^c[w>>8&255]^h[255&v]^n[b+3],b+=4,g=u,w=p,v=d;for(let e=0;4>e;e++)a[t?3&-e:e]=f[g>>>24]<<24^f[w>>16&255]<<16^f[v>>8&255]<<8^f[255&y]^n[b++],u=g,g=w,w=v,v=y,y=u;return a}},Q=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&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let r;if(!(r=t.length))return[];const s=z.bitLength(t);for(let s=0;r>s;s+=4){this.incCounter(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return z.clamp(t,s)}},Y=x.hmacSha1;let Z=L&&G&&typeof j.importKey==F,$=L&&G&&typeof j.deriveBits==F;class ee extends g{constructor({password:e,signed:n,encryptionStrength:r,checkPasswordOnly:i}){super({start(){t.assign(this,{ready:new f((e=>this.resolveReady=e)),password:e,signed:n,strength:r-1,pending:new a})},async transform(e,t){const n=this,{password:r,strength:o,resolveReady:l,ready:c}=n;r?(await(async(e,t,n,r)=>{const a=await re(e,t,n,ae(r,0,U[t])),i=ae(r,U[t]);if(a[0]!=i[0]||a[1]!=i[1])throw new s(T)})(n,o,r,ae(e,0,U[o]+2)),e=ae(e,U[o]+2),i?t.error(new s(H)):l()):await c;const h=new a(e.length-M-(e.length-M)%B);t.enqueue(ne(n,e,h,0,M,!0))},async flush(e){const{signed:t,ctr:n,hmac:r,pending:i,ready:o}=this;if(r&&n){await o;const l=ae(i,0,i.length-M),c=ae(i,i.length-M);let h=new a;if(l.length){const e=oe(X,l);r.update(e);const t=n.update(e);h=ie(X,t)}if(t){const e=ae(ie(X,r.digest()),0,M);for(let t=0;M>t;t++)if(e[t]!=c[t])throw new s(R)}e.enqueue(h)}}})}}class te extends g{constructor({password:e,encryptionStrength:n}){let r;super({start(){t.assign(this,{ready:new f((e=>this.resolveReady=e)),password:e,strength:n-1,pending:new a})},async transform(e,t){const n=this,{password:r,strength:s,resolveReady:i,ready:o}=n;let l=new a;r?(l=await(async(e,t,n)=>{const r=q(new a(U[t]));return se(r,await re(e,t,n,r))})(n,s,r),i()):await o;const c=new a(l.length+e.length-e.length%B);c.set(l,0),t.enqueue(ne(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(oe(X,s));n.update(e),o=ie(X,e)}r.signature=ie(X,n.digest()).slice(0,M),e.enqueue(se(o,r.signature))}}}),r=this}}function ne(e,t,n,r,s,i){const{ctr:o,hmac:l,pending:c}=e,h=t.length-s;let f;for(c.length&&(t=se(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%B)),f=0;h-B>=f;f+=B){const e=oe(X,ae(t,f,f+B));i&&l.update(e);const s=o.update(e);i||l.update(s),n.set(ie(X,s),f+r)}return e.pending=ae(t,f),n}async function re(n,r,s,i){n.password=null;const o=(e=>{if(void 0===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)})(s),l=await(async(e,t,n,r,s)=>{if(!Z)return x.importKey(t);try{return await j.importKey("raw",t,n,!1,s)}catch(e){return Z=!1,x.importKey(t)}})(0,o,V,0,E),c=await(async(e,t,n)=>{if(!$)return x.pbkdf2(t,e.salt,P.iterations,n);try{return await j.deriveBits(e,t,n)}catch(r){return $=!1,x.pbkdf2(t,e.salt,P.iterations,n)}})(t.assign({salt:i},P),l,8*(2*W[r]+2)),h=new a(c),f=oe(X,ae(h,0,W[r])),p=oe(X,ae(h,W[r],2*W[r])),d=ae(h,2*W[r]);return t.assign(n,{keys:{key:f,authentication:p,passwordVerification:d},ctr:new Q(new J(f),e.from(N)),hmac:new Y(p)}),d}function se(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 ae(e,t,n){return e.subarray(t,n)}function ie(e,t){return e.fromBits(t)}function oe(e,t){return e.toBits(t)}class le extends g{constructor({password:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){t.assign(this,{password:e,passwordVerification:n}),ue(this,e)},transform(e,t){const n=this;if(n.password){const t=he(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(T);e=e.subarray(12)}r?t.error(new s(H)):t.enqueue(he(n,e))}})}}class ce extends g{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),ue(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=q(new a(12));t[11]=n.passwordVerification,r=new a(e.length+t.length),r.set(fe(n,t),0),s=12}else r=new a(e.length),s=0;r.set(fe(n,e),s),t.enqueue(r)}})}}function he(e,t){const n=new a(t.length);for(let r=0;r<t.length;r++)n[r]=de(e)^t[r],pe(e,n[r]);return n}function fe(e,t){const n=new a(t.length);for(let r=0;r<t.length;r++)n[r]=de(e)^t[r],pe(e,t[r]);return n}function ue(e,n){const r=[305419896,591751049,878082192];t.assign(e,{keys:r,crcKey0:new k(r[0]),crcKey2:new k(r[2])});for(let t=0;t<n.length;t++)pe(e,n.charCodeAt(t))}function pe(e,t){let[n,s,a]=e.keys;e.crcKey0.append([t]),n=~e.crcKey0.get(),s=we(r.imul(we(s+ge(n)),134775813)+1),e.crcKey2.append([s>>>24]),a=~e.crcKey2.get(),e.keys=[n,s,a]}function de(e){const t=2|e.keys[2];return ge(r.imul(t,1^t)>>>8)}function ge(e){return 255&e}function we(e){return 4294967295&e}const ve="deflate-raw";class ye extends g{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:l,level:c}=e,f=this;let u,p,d=me(super.readable);a&&!o||!l||(u=new S,d=Se(d,u)),s&&(d=ke(d,i,{level:c,chunkSize:t},r,n)),a&&(o?d=Se(d,new ce(e)):(p=new te(e),d=Se(d,p))),_e(f,d,(()=>{let e;a&&!o&&(e=p.signature),a&&!o||!l||(e=new h(u.value.buffer).getUint32(0)),f.signature=e}))}}class be extends g{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:a,encrypted:i,signed:o,signature:l,compressed:c,useCompressionStream:f}=e;let u,p,d=me(super.readable);i&&(a?d=Se(d,new le(e)):(p=new ee(e),d=Se(d,p))),c&&(d=ke(d,f,{chunkSize:t},r,n)),i&&!a||!o||(u=new S,d=Se(d,u)),_e(this,d,(()=>{if((!i||a)&&o){const e=new h(u.value.buffer);if(l!=e.getUint32(0,!1))throw new s(R)}}))}}function me(e){return Se(e,new g({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function _e(e,n,r){n=Se(n,new g({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function ke(e,t,n,r,s){try{e=Se(e,new(t&&r?r:s)(ve,n))}catch(r){if(!t)throw r;e=Se(e,new s(ve,n))}return e}function Se(e,t){return e.pipeThrough(t)}const ze="data";class De extends g{constructor(e,n){super({});const r=this,{codecType:s}=e;let a;s.startsWith("deflate")?a=ye:s.startsWith("inflate")&&(a=be);let i=0;const o=new a(e,n),l=super.readable,c=new g({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){const{signature:e}=o;t.assign(r,{signature:e,size:i})}});t.defineProperty(r,"readable",{get:()=>l.pipeThrough(o).pipeThrough(c)})}}const Ce=new c,Ie=new c;let xe=0;async function Ae(e){try{const{options:t,scripts:r,config:s}=e;r&&r.length&&importScripts.apply(void 0,r),self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new m(self.Deflate)),self.Inflate&&(s.DecompressionStream=new m(self.Inflate));const a={highWaterMark:1,size:()=>s.chunkSize},i=e.readable||new w({async pull(e){const t=new f((e=>Ce.set(xe,e)));Te({type:"pull",messageId:xe}),xe=(xe+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},a),o=e.writable||new v({async write(e){let t;const r=new f((e=>t=e));Ie.set(xe,t),Te({type:ze,value:e,messageId:xe}),xe=(xe+1)%n.MAX_SAFE_INTEGER,await r}},a),l=new De(t,s);await i.pipeThrough(l).pipeTo(o,{preventClose:!0,preventAbort:!0});try{await o.getWriter().close()}catch(e){}const{signature:c,size:h}=l;Te({type:"close",result:{signature:c,size:h}})}catch(e){Re(e)}}function Te(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 Re(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:a}=e;d({error:{message:t,stack:n,code:r,name:a}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Ae(e),t==ze){const e=Ce.get(n);Ce.delete(n),e({value:new a(r),done:s})}if("ack"==t){const e=Ie.get(n);Ie.delete(n),e()}}catch(e){Re(e)}}));var He=a,qe=i,Be=l,Ke=new He([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]),Ve=new He([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]),Pe=new He([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ee=(e,t)=>{for(var n=new qe(31),r=0;31>r;++r)n[r]=t+=1<<e[r-1];var s=new Be(n[30]);for(r=1;30>r;++r)for(var a=n[r];a<n[r+1];++a)s[a]=a-n[r]<<5|r;return{b:n,r:s}},Ue=Ee(Ke,2),We=Ue.b,Me=Ue.r;We[28]=258,Me[258]=28;for(var Ne=Ee(Ve,0),Oe=Ne.b,Fe=Ne.r,Le=new qe(32768),je=0;32768>je;++je){var Ge=(43690&je)>>1|(21845&je)<<1;Ge=(61680&(Ge=(52428&Ge)>>2|(13107&Ge)<<2))>>4|(3855&Ge)<<4,Le[je]=((65280&Ge)>>8|(255&Ge)<<8)>>1}var Xe=(e,t,n)=>{for(var r=e.length,s=0,a=new qe(t);r>s;++s)e[s]&&++a[e[s]-1];var i,o=new qe(t);for(s=1;t>s;++s)o[s]=o[s-1]+a[s-1]<<1;if(n){i=new qe(1<<t);var l=15-t;for(s=0;r>s;++s)if(e[s])for(var c=s<<4|e[s],h=t-e[s],f=o[e[s]-1]++<<h,u=f|(1<<h)-1;u>=f;++f)i[Le[f]>>l]=c}else for(i=new qe(r),s=0;r>s;++s)e[s]&&(i[s]=Le[o[e[s]-1]++]>>15-e[s]);return i},Je=new He(288);for(je=0;144>je;++je)Je[je]=8;for(je=144;256>je;++je)Je[je]=9;for(je=256;280>je;++je)Je[je]=7;for(je=280;288>je;++je)Je[je]=8;var Qe=new He(32);for(je=0;32>je;++je)Qe[je]=5;var Ye=Xe(Je,9,0),Ze=Xe(Je,9,1),$e=Xe(Qe,5,0),et=Xe(Qe,5,1),tt=e=>{for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},nt=(e,t,n)=>{var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},rt=(e,t)=>{var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},st=e=>(e+7)/8|0,at=(e,t,n)=>((null==t||0>t)&&(t=0),(null==n||n>e.length)&&(n=e.length),new He(e.subarray(t,n))),it=["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"],ot=(e,t,n)=>{var r=new s(t||it[e]);if(r.code=e,s.captureStackTrace&&s.captureStackTrace(r,ot),!n)throw r;return r},lt=(e,t,n)=>{n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8},ct=(e,t,n)=>{n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8,e[r+2]|=n>>16},ht=(e,t)=>{for(var n=[],r=0;r<e.length;++r)e[r]&&n.push({s:r,f:e[r]});var s=n.length,a=n.slice();if(!s)return{t:vt,l:0};if(1==s){var i=new He(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!=s-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(r=1;s>r;++r)a[r].s>u&&(u=a[r].s);var p=new qe(u+1),d=ft(n[h-1],p,0);if(d>t){r=0;var g=0,w=d-t,v=1<<w;for(a.sort(((e,t)=>p[t.s]-p[e.s]||e.f-t.f));s>r;++r){var y=a[r].s;if(p[y]<=t)break;g+=v-(1<<d-p[y]),p[y]=t}for(g>>=w;g>0;){var b=a[r].s;p[b]<t?g-=1<<t-p[b]++-1:++r}for(;r>=0&&g;--r){var m=a[r].s;p[m]==t&&(--p[m],++g)}d=t}return{t:new He(p),l:d}},ft=(e,t,n)=>-1==e.s?r.max(ft(e.l,t,n+1),ft(e.r,t,n+1)):t[e.s]=n,ut=e=>{for(var t=e.length;t&&!e[--t];);for(var n=new qe(++t),r=0,s=e[0],a=1,i=e=>{n[r++]=e},o=1;t>=o;++o)if(e[o]==s&&o!=t)++a;else{if(!s&&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(s),--a;a>6;a-=6)i(8304);a>2&&(i(a-3<<5|8208),a=0)}for(;a--;)i(s);a=1,s=e[o]}return{c:n.subarray(0,r),n:t}},pt=(e,t)=>{for(var n=0,r=0;r<t.length;++r)n+=e[r]*t[r];return n},dt=(e,t,n)=>{var r=n.length,s=st(t+2);e[s]=255&r,e[s+1]=r>>8,e[s+2]=255^e[s],e[s+3]=255^e[s+1];for(var a=0;r>a;++a)e[s+a+4]=n[a];return 8*(s+4+r)},gt=(e,t,n,r,s,a,i,o,l,c,h)=>{lt(t,h++,n),++s[256];for(var f=ht(s,15),u=f.t,p=f.l,d=ht(a,15),g=d.t,w=d.l,v=ut(u),y=v.c,b=v.n,m=ut(g),_=m.c,k=m.n,S=new qe(19),z=0;z<y.length;++z)++S[31&y[z]];for(z=0;z<_.length;++z)++S[31&_[z]];for(var D=ht(S,7),C=D.t,I=D.l,x=19;x>4&&!C[Pe[x-1]];--x);var A,T,R,H,q=c+5<<3,B=pt(s,Je)+pt(a,Qe)+i,K=pt(s,u)+pt(a,g)+i+14+3*x+pt(S,C)+2*S[16]+3*S[17]+7*S[18];if(l>=0&&B>=q&&K>=q)return dt(t,h,e.subarray(l,l+c));if(lt(t,h,1+(B>K)),h+=2,B>K){A=Xe(u,p,0),T=u,R=Xe(g,w,0),H=g;var V=Xe(C,I,0);for(lt(t,h,b-257),lt(t,h+5,k-1),lt(t,h+10,x-4),h+=14,z=0;x>z;++z)lt(t,h+3*z,C[Pe[z]]);h+=3*x;for(var P=[y,_],E=0;2>E;++E){var U=P[E];for(z=0;z<U.length;++z){var W=31&U[z];lt(t,h,V[W]),h+=C[W],W>15&&(lt(t,h,U[z]>>5&127),h+=U[z]>>12)}}}else A=Ye,T=Je,R=$e,H=Qe;for(z=0;o>z;++z){var M=r[z];if(M>255){ct(t,h,A[257+(W=M>>18&31)]),h+=T[W+257],W>7&&(lt(t,h,M>>23&31),h+=Ke[W]);var N=31&M;ct(t,h,R[N]),h+=H[N],N>3&&(ct(t,h,M>>5&8191),h+=Ve[N])}else ct(t,h,A[M]),h+=T[M]}return ct(t,h,A[256]),h+T[256]},wt=new Be([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),vt=new He(0),yt=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 He(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,s,a)=>{if(!a&&(a={l:1},t.dictionary)){var i=t.dictionary.subarray(-32768),o=new He(i.length+e.length);o.set(i),o.set(e,i.length),e=o,a.w=i.length}return((e,t,n,s,a,i)=>{var o=i.z||e.length,l=new He(0+o+5*(1+r.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=wt[t-1],p=u>>13,d=8191&u,g=(1<<n)-1,w=i.p||new qe(32768),v=i.h||new qe(g+1),y=r.ceil(n/3),b=2*y,m=t=>(e[t]^e[t+1]<<y^e[t+2]<<b)&g,_=new Be(25e3),k=new qe(288),S=new qe(32),z=0,D=0,C=i.i||0,I=0,x=i.w||0,A=0;o>C+2;++C){var T=m(C),R=32767&C,H=v[T];if(w[R]=H,v[T]=R,C>=x){var q=o-C;if((z>7e3||I>24576)&&(q>423||!h)){f=gt(e,c,0,_,k,S,D,I,A,C-A,f),I=z=D=0,A=C;for(var B=0;286>B;++B)k[B]=0;for(B=0;30>B;++B)S[B]=0}var K=2,V=0,P=d,E=R-H&32767;if(q>2&&T==m(C-E))for(var U=r.min(p,q)-1,W=r.min(32767,C),M=r.min(258,q);W>=E&&--P&&R!=H;){if(e[C+K]==e[C+K-E]){for(var N=0;M>N&&e[C+N]==e[C+N-E];++N);if(N>K){if(K=N,V=E,N>U)break;var O=r.min(E,N-2),F=0;for(B=0;O>B;++B){var L=C-E+B&32767,j=L-w[L]&32767;j>F&&(F=j,H=L)}}}E+=(R=H)-(H=w[R])&32767}if(V){_[I++]=268435456|Me[K]<<18|Fe[V];var G=31&Me[K],X=31&Fe[V];D+=Ke[G]+Ve[X],++k[257+G],++S[X],x=C+K,++z}else _[I++]=e[C],++k[e[C]]}}for(C=r.max(C,x);o>C;++C)_[I++]=e[C],++k[e[C]];f=gt(e,c,h,_,k,S,D,I,A,C-A,f),h||(i.r=7&f|c[f/8|0]<<3,f-=7,i.h=v,i.p=w,i.i=C,i.w=x)}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=dt(c,f+1,e.subarray(C,J))}i.i=o}return at(l,0,0+st(f)+0)})(e,null==t.level?6:t.level,null==t.mem?r.ceil(1.5*r.max(8,r.min(13,r.log(e.length)))):12+t.mem,0,0,a)})(e,this.o,0,0,this.s),t)},e.prototype.push=function(e,t){this.ondata||ot(5),this.s.l&&ot(4);var n=e.length+this.s.z;if(n>this.b.length){if(n>2*this.b.length-32768){var r=new He(-32768&n);r.set(this.b.subarray(0,this.s.z)),this.b=r}var s=this.b.length-this.s.z;s&&(this.b.set(e.subarray(0,s),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(s),32768),this.s.z=e.length-s+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}(),bt=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 He(32768),this.p=new He(0),n&&this.o.set(n)}return e.prototype.e=function(e){if(this.ondata||ot(5),this.d&&ot(4),this.p.length){if(e.length){var t=new He(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 s=e.length;if(!s||t.f&&!t.l)return n||new He(0);var a=!n,i=a||2!=t.i,o=t.i;a&&(n=new He(3*s));var l=e=>{var t=n.length;if(e>t){var s=new He(r.max(2*t,e));s.set(n),n=s}},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*s;do{if(!u){c=nt(e,h,1);var v=nt(e,h+1,3);if(h+=3,!v){var y=e[(A=st(h)+4)-4]|e[A-3]<<8,b=A+y;if(b>s){o&&ot(0);break}i&&l(f+y),n.set(e.subarray(A,b),f),t.b=f+=y,t.p=h=8*b,t.f=c;continue}if(1==v)u=Ze,p=et,d=9,g=5;else if(2==v){var m=nt(e,h,31)+257,_=nt(e,h+10,15)+4,k=m+nt(e,h+5,31)+1;h+=14;for(var S=new He(k),z=new He(19),D=0;_>D;++D)z[Pe[D]]=nt(e,h+3*D,7);h+=3*_;var C=tt(z),I=(1<<C)-1,x=Xe(z,C,1);for(D=0;k>D;){var A,T=x[nt(e,h,I)];if(h+=15&T,16>(A=T>>4))S[D++]=A;else{var R=0,H=0;for(16==A?(H=3+nt(e,h,3),h+=2,R=S[D-1]):17==A?(H=3+nt(e,h,7),h+=3):18==A&&(H=11+nt(e,h,127),h+=7);H--;)S[D++]=R}}var q=S.subarray(0,m),B=S.subarray(m);d=tt(q),g=tt(B),u=Xe(q,d,1),p=Xe(B,g,1)}else ot(1);if(h>w){o&&ot(0);break}}i&&l(f+131072);for(var K=(1<<d)-1,V=(1<<g)-1,P=h;;P=h){var E=(R=u[rt(e,h)&K])>>4;if((h+=15&R)>w){o&&ot(0);break}if(R||ot(2),256>E)n[f++]=E;else{if(256==E){P=h,u=null;break}var U=E-254;if(E>264){var W=Ke[D=E-257];U=nt(e,h,(1<<W)-1)+We[D],h+=W}var M=p[rt(e,h)&V],N=M>>4;if(M||ot(3),h+=15&M,B=Oe[N],N>3&&(W=Ve[N],B+=rt(e,h)&(1<<W)-1,h+=W),h>w){o&&ot(0);break}i&&l(f+131072);var O=f+U;if(B>f){var F=0-B,L=r.min(B,O);for(0>F+f&&ot(3);L>f;++f)n[f]=undefined[F+f]}for(;O>f;++f)n[f]=n[f-B]}}t.l=u,t.p=P,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?at(n,0,f):n.subarray(0,f)})(this.p,this.s,this.o);this.ondata(at(n,t,this.s.b),this.d),this.o=at(n,this.s.b-32768),this.s.b=this.o.length,this.p=at(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),mt="undefined"!=typeof TextDecoder&&new TextDecoder;try{mt.decode(vt,{stream:!0})}catch(e){}function _t(e,n,r){return class{constructor(s){const i=this;var o,l;o=s,l="level",("function"==typeof t.hasOwn?t.hasOwn(o,l):o.hasOwnProperty(l))&&void 0===s.level&&delete s.level,i.codec=new e(t.assign({},n,s)),r(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),s(this)}flush(){return this.codec.push(new a,!0),s(this)}};function s(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new a}}const{Deflate:kt,Inflate:St}=((e,t={},n)=>({Deflate:_t(e.Deflate,t.deflate,n),Inflate:_t(e.Inflate,t.inflate,n)}))({Deflate:yt,Inflate:bt},void 0,((e,t)=>e.ondata=t));self.initCodec=()=>{self.Deflate=kt,self.Inflate=St};\n'],{type:"text/javascript"}));n({workerScripts:{inflate:[e],deflate:[e]}})}(nt);var Pi=Object.freeze({__proto__:null,BlobReader:Ja,BlobWriter:Ya,Data64URIReader:class extends Va{constructor(n){super();let e=n.length;for(;"="==n.charAt(e-1);)e--;const t=n.indexOf(",")+1;Un.assign(this,{dataURI:n,dataStart:t,size:Kn.floor(.75*(e-t))})}readUint8Array(n,e){const{dataStart:t,dataURI:a}=this,o=new ne(e),i=4*Kn.floor(n/3),r=atob(a.substring(i+t,4*Kn.ceil((n+e)/3)+t)),s=n-3*Kn.floor(i/4);for(let n=s;n<s+e;n++)o[n-s]=r.charCodeAt(n);return o}},Data64URIWriter:class extends Ka{constructor(n){super(),Un.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*Kn.floor((o+n.length)/3)-o;t++)a+=Gn.fromCharCode(n[t]);for(;t<n.length;t++)e.pending+=Gn.fromCharCode(n[t]);a.length>2?e.data+=ce(a):e.pending=a}getData(){return this.data+ce(this.pending)}},ERR_BAD_FORMAT:Ho,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Vo,ERR_DUPLICATED_NAME:gi,ERR_ENCRYPTED:Yo,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Wo,ERR_EOCDR_NOT_FOUND:Uo,ERR_EOCDR_ZIP64_NOT_FOUND:Go,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Jo,ERR_HTTP_RANGE:Na,ERR_INVALID_COMMENT:wi,ERR_INVALID_ENCRYPTION_STRENGTH:yi,ERR_INVALID_ENTRY_COMMENT:bi,ERR_INVALID_ENTRY_NAME:fi,ERR_INVALID_EXTRAFIELD_DATA:ji,ERR_INVALID_EXTRAFIELD_TYPE:vi,ERR_INVALID_PASSWORD:gt,ERR_INVALID_SIGNATURE:wt,ERR_INVALID_VERSION:ki,ERR_ITERATOR_COMPLETED_TOO_SOON:Oa,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Ko,ERR_SPLIT_ZIP_FILE:$o,ERR_UNSUPPORTED_COMPRESSION:Xo,ERR_UNSUPPORTED_ENCRYPTION:Zo,ERR_UNSUPPORTED_FORMAT:Si,HttpRangeReader:class extends co{constructor(n,e={}){e.useRangeHeader=!0,super(n,e)}},HttpReader:co,Reader:Va,SplitDataReader:mo,SplitDataWriter:ho,SplitZipReader:bo,SplitZipWriter:fo,TextReader:class extends Ja{constructor(n){super(new oe([n],{type:"text/plain"}))}},TextWriter:class extends Ya{constructor(n){super(n),Un.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 ie(((a,o)=>{Un.assign(e,{onload:({target:n})=>a(n.result),onerror:()=>o(e.error)}),e.readAsText(t,n)}))}}},Uint8ArrayReader:class extends Va{constructor(n){super(),Un.assign(this,{array:n,size:n.length})}readUint8Array(n,e){return this.array.slice(n,n+e)}},Uint8ArrayWriter:class extends Ka{init(n=0){Un.assign(this,{offset:0,array:new ne(n)}),super.init()}writeUint8Array(n){const e=this;if(e.offset+n.length>e.array.length){const t=e.array;e.array=new ne(t.length+n.length),e.array.set(t)}e.array.set(n,e.offset),e.offset+=n.length}getData(){return this.array}},Writer:Ka,ZipReader:class{constructor(n,e={}){Un.assign(this,{reader:uo(n),options:e,config:$e()})}async*getEntriesGenerator(n={}){const e=this;let{reader:t}=e;const{config:a}=e;if(await po(t),t.size!==Ge&&t.readUint8Array||(t=new Ja(await new Xn(t.readable).blob()),await po(t)),t.size<Ie)throw new Qn(Ho);t.chunkSize=Qe(a);const o=await async function(n,e,t,a,o){const i=new ne(4);!function(n,e,t){n.setUint32(e,t,!0)}(ui(i),0,e);const r=a+o;return await s(a)||await s(Kn.min(r,t));async function s(e){const o=t-e,r=await wo(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,ze,t.size,Ie,1048560);if(!o){throw hi(ui(await wo(t,0,4)))==Se?new Qn($o):new Qn(Uo)}const i=ui(o);let r=hi(i,12),s=hi(i,16);const l=o.offset,c=di(i,20),m=l+Ie+c;let d=di(i,4);const h=t.lastDiskNumber||0;let p=di(i,6),u=di(i,8),g=0,w=0;if(s==be||r==be||u==fe||p==fe){const n=ui(await wo(t,o.offset-20,20));if(hi(n,0)!=Ae)throw new Qn(Go);s=pi(n,8);let e=await wo(t,s,56,-1),a=ui(e);const i=o.offset-20-56;if(hi(a,0)!=Le&&s!=i){const n=s;s=i,g=s-n,e=await wo(t,s,56,-1),a=ui(e)}if(hi(a,0)!=Le)throw new Qn(Wo);d==fe&&(d=hi(a,16)),p==fe&&(p=hi(a,20)),u==fe&&(u=pi(a,32)),r==be&&(r=pi(a,40)),s-=r}if(s>=t.size&&(g=t.size-s-r-Ie,s=t.size-r-Ie),h!=d)throw new Qn($o);if(s<0)throw new Qn(Ho);let b=0,f=await wo(t,s,r,p),k=ui(f);if(r){const n=o.offset-r;if(hi(k,b)!=Ce&&s!=n){const e=s;s=n,g+=s-e,f=await wo(t,s,r,p),k=ui(f)}}const y=o.offset-s-(t.lastDiskOffset||0);if(r!=y&&y>=0&&(r=y,f=await wo(t,s,r,p),k=ui(f)),s<0||s>=t.size)throw new Qn(Ho);const v=si(e,n,"filenameEncoding"),j=si(e,n,"commentEncoding");for(let o=0;o<u;o++){const i=new ai(t,a,e.options);if(hi(k,b)!=Ce)throw new Qn(Vo);oi(i,k,b+6);const r=Boolean(i.bitFlag.languageEncodingFlag),s=b+46,l=s+i.filenameLength,c=l+i.extraFieldLength,m=di(k,b+4),d=0==(0&m),h=f.subarray(s,l),p=di(k,b+32),y=c+p,S=f.subarray(c,y),x=r,C=r,z=d&&16==(16&mi(k,b+38)),L=hi(k,b+42)+g;Un.assign(i,{versionMadeBy:m,msDosCompatible:d,compressedSize:0,uncompressedSize:0,commentLength:p,directory:z,offset:L,diskNumberStart:di(k,b+34),internalFileAttribute:di(k,b+36),externalFileAttribute:hi(k,b+38),rawFilename:h,filenameUTF8:x,commentUTF8:C,rawExtraField:f.subarray(l,c)});const[A,I]=await ie.all([vo(h,x?Qo:v||ni),vo(S,C?Qo:j||ni)]);Un.assign(i,{rawComment:S,filename:A,comment:I,directory:z||A.endsWith(qe)}),w=Kn.max(L,w),await ii(i,i,k,b+6);const T=new qo(i);T.getData=(n,e)=>i.getData(n,T,e),b=y;const{onprogress:R}=n;if(R)try{await R(o+1,u,new qo(i))}catch(n){}yield T}const S=si(e,n,"extractPrependedData"),x=si(e,n,"extractAppendedData");return S&&(e.prependedData=w>0?await wo(t,0,w):new ne),e.comment=c?await wo(t,l+Ie,c):new ne,x&&(e.appendedData=m<t.size?await wo(t,m,t.size-m):new ne),!0}async getEntries(n={}){const e=[];for await(const t of this.getEntriesGenerator(n))e.push(t);return e}async close(){}},ZipWriter:class{constructor(n,e={}){n=go(n),Un.assign(this,{writer:n,addSplitZipSignature:n instanceof ho,options:e,config:$e(),files:new Yn,filenames:new Zn,offset:n.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new Zn,bufferedWrites:0})}async add(n="",e,t={}){const a=this,{pendingAddFileCalls:o,config:i}=a;let r;Ci<i.maxWorkers?Ci++:await new ie((n=>zi.push(n)));try{if(n=n.trim(),a.filenames.has(n))throw new Qn(gi);return a.filenames.add(n),r=async function(n,e,t,a){e=e.trim(),a.directory&&!e.endsWith(qe)?e+=qe:a.directory=e.endsWith(qe);const o=rt(e);if(Ni(o)>fe)throw new Qn(fi);const i=a.comment||"",r=rt(i);if(Ni(r)>fe)throw new Qn(bi);const s=Ii(n,a,"version",20);if(s>fe)throw new Qn(ki);const l=Ii(n,a,"versionMadeBy",20);if(l>fe)throw new Qn(ki);const c=Ii(n,a,To,new Jn),m=Ii(n,a,Eo),d=Ii(n,a,Mo),h=Ii(n,a,Po,!0),p=Ii(n,a,No,0),u=Ii(n,a,Oo,0),g=Ii(n,a,"password"),w=Ii(n,a,"encryptionStrength",3),b=Ii(n,a,"zipCrypto"),f=Ii(n,a,"extendedTimestamp",!0),k=Ii(n,a,"keepOrder",!0),y=Ii(n,a,"level"),v=Ii(n,a,"useWebWorkers"),j=Ii(n,a,"bufferedWrite"),S=Ii(n,a,"dataDescriptorSignature",!1),x=Ii(n,a,"signal"),C=Ii(n,a,"useCompressionStream");let z=Ii(n,a,"dataDescriptor",!0),L=Ii(n,a,_o);if(g!==Ge&&w!==Ge&&(w<1||w>3))throw new Qn(yi);let A=new ne;const{extraField:I}=a;if(I){let n=0,e=0;I.forEach((e=>n+=4+Ni(e))),A=new ne(n),I.forEach(((n,t)=>{if(t>fe)throw new Qn(vi);if(Ni(n)>fe)throw new Qn(ji);Mi(A,new ee([t]),e),Mi(A,new ee([Ni(n)]),e+2),Mi(A,n,e+4),e+=4+Ni(n)}))}let T=0,R=0,E=0;const D=!0===L;t&&(t=uo(t),await po(t),t.size===Ge?(z=!0,(L||L===Ge)&&(L=!0,E=T=be)):(E=t.size,T=function(n){return n+5*(Kn.floor(n/16383)+1)}(E)));const{diskOffset:M,diskNumber:B,maxSize:N}=n.writer,O=D||E>=be,P=D||T>=be,_=D||n.offset+n.pendingEntriesSize-M>=be,F=Ii(n,a,"supportZip64SplitFile",!0),q=F&&D||B+Kn.ceil(n.pendingEntriesSize/N)>=fe;if(_||O||P||q){if(!1===L||!k)throw new Qn(Si);L=!0}L=L||!1,a=Un.assign({},a,{rawFilename:o,rawComment:r,version:s,versionMadeBy:l,lastModDate:c,lastAccessDate:m,creationDate:d,rawExtraField:A,zip64:L,zip64UncompressedSize:O,zip64CompressedSize:P,zip64Offset:_,zip64DiskNumberStart:q,password:g,level:y,useWebWorkers:v,encryptionStrength:w,extendedTimestamp:f,zipCrypto:b,bufferedWrite:j,keepOrder:k,dataDescriptor:z,dataDescriptorSignature:S,signal:x,msDosCompatible:h,internalFileAttribute:p,externalFileAttribute:u,useCompressionStream:C});const H=function(n){const{rawFilename:e,lastModDate:t,lastAccessDate:a,creationDate:o,password:i,level:r,zip64:s,zipCrypto:l,dataDescriptor:c,directory:m,rawExtraField:d,encryptionStrength:h,extendedTimestamp:p}=n,u=0!==r&&!m,g=Boolean(i&&Ni(i));let w,b,f,k,y=n.version;if(g&&!l){w=new ne(Ni(xi)+2);const n=Bi(w);Ri(n,0,Re),Mi(w,xi,2),Ti(n,8,h)}else w=new ne;if(p){f=new ne(9+(a?4:0)+(o?4:0));const n=Bi(f);Ri(n,0,Me),Ri(n,2,Ni(f)-4),k=1+(a?2:0)+(o?4:0),Ti(n,4,k);let e=5;Ei(n,e,Kn.floor(t.getTime()/1e3)),e+=4,a&&(Ei(n,e,Kn.floor(a.getTime()/1e3)),e+=4),o&&Ei(n,e,Kn.floor(o.getTime()/1e3));try{b=new ne(36);const n=Bi(b),e=Ai(t);Ri(n,0,Ee),Ri(n,2,32),Ri(n,8,De),Ri(n,10,24),Di(n,12,e),Di(n,20,Ai(a)||e),Di(n,28,Ai(o)||e)}catch(n){b=new ne}}else b=f=new ne;let v=Pe;c&&(v|=Oe);let j=ye;u&&(j=ke);s&&(y=y>_e?y:_e);g&&(v|=Ne,l||(y=y>Fe?y:Fe,j=ve,u&&(w[9]=ke)));const S=new ne(26),x=Bi(S);Ri(x,0,y),Ri(x,2,v),Ri(x,4,j);const C=new te(1),z=Bi(C);let L;L=t<Ue?Ue:t>He?He:t;Ri(z,0,(L.getHours()<<6|L.getMinutes())<<5|L.getSeconds()/2),Ri(z,2,(L.getFullYear()-1980<<4|L.getMonth()+1)<<5|L.getDate());const A=C[0];Ei(x,6,A),Ri(x,22,Ni(e));const I=Ni(w,f,b,d);Ri(x,24,I);const T=new ne(30+Ni(e)+I);return Ei(Bi(T),0,je),Mi(T,S,4),Mi(T,e,30),Mi(T,w,30+Ni(e)),Mi(T,f,30+Ni(e,w)),Mi(T,b,30+Ni(e,w,f)),Mi(T,d,30+Ni(e,w,f,b)),{localHeaderArray:T,headerArray:S,headerView:x,lastModDate:t,rawLastModDate:A,encrypted:g,compressed:u,version:y,compressionMethod:j,extraFieldExtendedTimestampFlag:k,rawExtraFieldExtendedTimestamp:f,rawExtraFieldNTFS:b,rawExtraFieldAES:w,extraFieldLength:I}}(a),U=function(n){const{zip64:e,dataDescriptor:t,dataDescriptorSignature:a}=n;let o,i=new ne,r=0;t&&(i=new ne(e?a?24:20:a?16:12),o=Bi(i),a&&(r=4,Ei(o,0,xe)));return{dataDescriptorArray:i,dataDescriptorView:o,dataDescriptorOffset:r}}(a),G=Ni(H.localHeaderArray,U.dataDescriptorArray);R=G+T,n.options.usdz&&(R+=R+64);let W;n.pendingEntriesSize+=R;try{W=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=Hn.from(i.values()).pop();let p,u,g,w,b,f,k={};i.set(e,k);try{let m;s&&(m=h&&h.lock,y()),!(o.bufferedWrite||n.writerLocked||n.bufferedWrites&&s)&&l||d?(f=r,await v()):(f=new Ya,f.writable.size=0,p=!0,n.bufferedWrites++,await po(r)),await po(f);const{writable:u}=r;let{diskOffset:g}=r;if(n.addSplitZipSignature){delete n.addSplitZipSignature;const e=new ne(4);Ei(Bi(e),0,Se),await Li(u,e),n.offset+=4}d&&function(n,e){const{headerInfo:t}=n;let{localHeaderArray:a,extraFieldLength:o}=t,i=Bi(a),r=64-(e+a.length)%64;r<4&&(r+=64);const s=new ne(r),l=Bi(s);Ri(l,0,Be),Ri(l,2,r-2);const c=a;t.localHeaderArray=a=new ne(c.length+r),Mi(a,c),Mi(a,s,c.length),i=Bi(a),Ri(i,28,o+r),n.metadataSize+=r}(a,n.offset-g),p||(await m,await j(u));const{diskNumber:S}=r;if(b=!0,k.diskNumberStart=S,k=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,level:L,zip64:A,zip64UncompressedSize:I,zip64CompressedSize:T,zip64Offset:R,zip64DiskNumberStart:E,zipCrypto:D,dataDescriptor:M,directory:B,versionMadeBy:N,rawComment:O,rawExtraField:P,useWebWorkers:_,onstart:F,onprogress:q,onend:H,signal:U,encryptionStrength:G,extendedTimestamp:W,msDosCompatible:V,internalFileAttribute:K,externalFileAttribute:J,useCompressionStream:Y}=r,Z={lock:a,versionMadeBy:N,zip64:A,directory:Boolean(B),filenameUTF8:!0,rawFilename:S,commentUTF8:!0,rawComment:O,rawExtraFieldExtendedTimestamp:f,rawExtraFieldNTFS:y,rawExtraFieldAES:v,rawExtraField:P,extendedTimestamp:W,msDosCompatible:V,internalFileAttribute:K,externalFileAttribute:J,diskNumberStart:t};let X,$=0,Q=0;const{writable:nn}=e;if(n){n.chunkSize=Qe(i),await Li(nn,m);const e=n.readable,t=e.size=n.size,a={options:{codecType:ba,level:L,password:z,encryptionStrength:G,zipCrypto:u&&D,passwordVerification:u&&D&&p>>8&255,signed:!0,compressed:g,encrypted:u,useWebWorkers:_,useCompressionStream:Y,transferStreams:!1},config:i,streamOptions:{signal:U,size:t,onstart:F,onprogress:q,onend:H}},o=await Da({readable:e,writable:nn},a);nn.size+=o.size,X=o.signature,Q=n.size=e.size,$=o.size}else await Li(nn,m);let en;if(A){let n=4;I&&(n+=8),T&&(n+=8),R&&(n+=8),E&&(n+=4),en=new ne(n)}else en=new ne;(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===Ge||(Ei(l,10,t),w&&Ei(m,d,t));if(h){const n=Bi(a);Ri(n,0,Te),Ri(n,2,a.length-4);let e=4;p&&(Ei(l,18,be),Di(n,e,Vn(i)),e+=8),u&&(Ei(l,14,be),Di(n,e,Vn(o))),w&&(Di(m,d+4,Vn(o)),Di(m,d+12,Vn(i)))}else Ei(l,14,o),Ei(l,18,i),w&&(Ei(m,d+4,o),Ei(m,d+8,i))})({signature:X,rawExtraFieldZip64:en,compressedSize:$,uncompressedSize:Q,headerInfo:s,dataDescriptorInfo:l},r),M&&await Li(nn,j);return Un.assign(Z,{uncompressedSize:Q,compressedSize:$,lastModDate:h,rawLastModDate:p,creationDate:C,lastAccessDate:x,encrypted:u,length:c+$,compressionMethod:b,version:w,headerArray:d,signature:X,rawExtraFieldZip64:en,extraFieldExtendedTimestampFlag:k,zip64UncompressedSize:I,zip64CompressedSize:T,zip64Offset:R,zip64DiskNumberStart:E}),Z}(t,f,k,a,n.config,o),b=!1,i.set(e,k),k.filename=e,p){await f.writable.getWriter().close();let n=await f.getData();await m,await v(),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 ae(o);n.encrypted&&!a||Ei(i,14,n.signature);n.zip64?(Ei(i,18,be),Ei(i,22,be)):(Ei(i,18,n.compressedSize),Ei(i,22,n.uncompressedSize));return await Li(t,new ne(o)),e.slice(o.byteLength)}(k,n,u,o)),await j(u),k.diskNumberStart=r.diskNumber,g=r.diskOffset,await n.stream().pipeTo(u,{preventClose:!0,preventAbort:!0,signal:c}),u.size+=n.size,w=!1}if(k.offset=n.offset-g,k.zip64)!function(n,e){const{rawExtraFieldZip64:t,offset:a,diskNumberStart:o}=n,{zip64UncompressedSize:i,zip64CompressedSize:r,zip64Offset:s,zip64DiskNumberStart:l}=e,c=Bi(t);let m=4;i&&(m+=8);r&&(m+=8);s&&(Di(c,m,Vn(a)),m+=8);l&&Ei(c,m,o)}(k,o);else if(k.offset>=be)throw new Qn(Si);return n.offset+=k.length,k}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 y(){k.lock=new ie((n=>g=n))}async function v(){n.writerLocked=!0;const{lockWriter:e}=n;n.lockWriter=new ie((e=>u=()=>{n.writerLocked=!1,e()})),await e}async function j(n){m.localHeaderArray.length>r.availableSize&&(r.availableSize=0,await Li(n,new ne))}}(n,e,t,{headerInfo:H,dataDescriptorInfo:U,metadataSize:G},a)}finally{n.pendingEntriesSize-=R}return Un.assign(W,{name:e,comment:i,extraField:I}),new qo(W)}(a,n,e,t),o.add(r),await r}catch(e){throw a.filenames.delete(n),e}finally{o.delete(r);const n=zi.shift();n?n():Ci--}}async close(n=new ne,e={}){const{pendingAddFileCalls:t,writer:a}=this,{writable:o}=a;for(;t.size;)await ie.all(Hn.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 ne(9);const n=Bi(d);Ri(n,0,Me),Ri(n,2,5),Ti(n,4,l),Ei(n,5,Kn.floor(m.getTime()/1e3))}else d=new ne;n.rawExtraFieldCDExtendedTimestamp=d,c+=46+Ni(e,o,t,a,i,d,r)}const h=new ne(c),p=Bi(h);await po(o);let u=0;for(const[n,e]of Hn.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=Ni(c,m,d,g,w);Ei(p,l,Ce),Ri(p,l+4,f);const D=Bi(k);j||Ei(D,18,T),S||Ei(D,14,R),Mi(h,k,l+6),Ri(p,l+30,E),Ri(p,l+32,Ni(b)),Ri(p,l+34,v&&x?fe:I),Ri(p,l+36,L),A?Ei(p,l+38,A):y&&z&&Ti(p,l+38,16),Ei(p,l+42,v&&C?be:i),Mi(h,s,l+46),Mi(h,c,l+46+Ni(s)),Mi(h,m,l+46+Ni(s,c)),Mi(h,d,l+46+Ni(s,c,m)),Mi(h,g,l+46+Ni(s,c,m,d)),Mi(h,w,l+46+Ni(s,c,m,d,g)),Mi(h,b,l+46+Ni(s)+E);const M=46+Ni(s,b)+E;if(l-u>o.availableSize&&(o.availableSize=0,await Li(r,h.slice(u,l)),u=l),l+=M,t.onprogress)try{await t.onprogress(n+1,a.size,new qo(e))}catch(n){}}await Li(r,u?h.slice(u):h);let g=o.diskNumber;const{availableSize:w}=o;w<Ie&&g++;let b=Ii(n,t,"zip64");if(m>=be||c>=be||d>=fe||g>=fe){if(!1===b)throw new Qn(Si);b=!0}const f=new ne(b?98:Ie),k=Bi(f);if(l=0,b){Ei(k,0,Le),Di(k,4,Vn(44)),Ri(k,12,45),Ri(k,14,45),Ei(k,16,g),Ei(k,20,s),Di(k,24,Vn(d)),Di(k,32,Vn(d)),Di(k,40,Vn(c)),Di(k,48,Vn(m)),Ei(k,56,Ae),Di(k,64,Vn(m)+Vn(c)),Ei(k,72,g+1);Ii(n,t,"supportZip64SplitFile",!0)&&(g=fe,s=fe),d=fe,m=be,c=be,l+=76}Ei(k,l,ze),Ri(k,l+4,g),Ri(k,l+6,s),Ri(k,l+8,d),Ri(k,l+10,d),Ei(k,l+12,c),Ei(k,l+16,m);const y=Ni(e);if(y){if(!(y<=fe))throw new Qn(wi);Ri(k,l+20,y)}await Li(r,f),y&&await Li(r,e)}(this,n,e);return Ii(this,e,"preventClose")||await o.getWriter().close(),a.getData?a.getData():o}},configure:nt,getMimeType:function(){return"application/octet-stream"},initReader:uo,initShimAsyncCodec:function(n,e={},t){return{Deflate:tt(n.Deflate,e.deflate,t),Inflate:tt(n.Inflate,e.inflate,t)}},initStream:po,initWriter:go,readUint8Array:wo,terminateWorkers:function(){Ta.forEach((n=>{Ma(n),n.terminate()}))}}),_i=Object.create,Fi=Object.defineProperty,qi=Object.getOwnPropertyDescriptor,Hi=Object.getOwnPropertyNames,Ui=Object.getPrototypeOf,Gi=Object.prototype.hasOwnProperty,Wi=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),Vi=(n,e)=>{for(var t in e)Fi(n,t,{get:e[t],enumerable:!0})},Ki=Wi((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}})),Ji=Wi((n=>{var e=Ki();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==(1&n)?-e:e}(s),a.rest=t}})),Yi=Wi((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)}})),Zi=Wi((n=>{var e=Yi(),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})),Xi=Wi((n=>{var e=Yi();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})),$i=Wi((n=>{var e=Ji(),t=Yi(),a=Zi().ArraySet,o=Xi().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}));Vi({},{AtKeyword:()=>tr,BadString:()=>ir,BadUrl:()=>sr,CDC:()=>ur,CDO:()=>pr,Colon:()=>gr,Comma:()=>br,Comment:()=>xr,Delim:()=>lr,Dimension:()=>dr,EOF:()=>Qi,Function:()=>er,Hash:()=>ar,Ident:()=>nr,LeftCurlyBracket:()=>jr,LeftParenthesis:()=>yr,LeftSquareBracket:()=>fr,Number:()=>cr,Percentage:()=>mr,RightCurlyBracket:()=>Sr,RightParenthesis:()=>vr,RightSquareBracket:()=>kr,Semicolon:()=>wr,String:()=>or,Url:()=>rr,WhiteSpace:()=>hr});var Qi=0,nr=1,er=2,tr=3,ar=4,or=5,ir=6,rr=7,sr=8,lr=9,cr=10,mr=11,dr=12,hr=13,pr=14,ur=15,gr=16,wr=17,br=18,fr=19,kr=20,yr=21,vr=22,jr=23,Sr=24,xr=25;function Cr(n){return n>=48&&n<=57}function zr(n){return Cr(n)||n>=65&&n<=70||n>=97&&n<=102}function Lr(n){return n>=65&&n<=90}function Ar(n){return function(n){return Lr(n)||function(n){return n>=97&&n<=122}(n)}(n)||function(n){return n>=128}(n)||95===n}function Ir(n){return Ar(n)||Cr(n)||45===n}function Tr(n){return n>=0&&n<=8||11===n||n>=14&&n<=31||127===n}function Rr(n){return 10===n||13===n||12===n}function Er(n){return Rr(n)||32===n||9===n}function Dr(n,e){return!(92!==n||Rr(e)||0===e)}function Mr(n,e,t){return 45===n?Ar(e)||45===e||Dr(e,t):!!Ar(n)||92===n&&Dr(n,e)}function Br(n,e,t){return 43===n||45===n?Cr(e)?2:46===e&&Cr(t)?3:0:46===n?Cr(e)?2:0:Cr(n)?1:0}function Nr(n){return 65279===n||65534===n?1:0}var Or=new Array(128),Pr=130,_r=131,Fr=132,qr=133;for(let n=0;n<Or.length;n++)Or[n]=Er(n)&&Pr||Cr(n)&&_r||Ar(n)&&Fr||Tr(n)&&qr||n||128;function Hr(n){return n<128?Or[n]:Fr}function Ur(n,e){return e<n.length?n.charCodeAt(e):0}function Gr(n,e,t){return 13===t&&10===Ur(n,e+1)?2:1}function Wr(n,e,t){let a=n.charCodeAt(e);return Lr(a)&&(a|=32),a===t}function Vr(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(Lr(i)&&(i|=32),i!==t)return!1}return!0}function Kr(n,e){for(;e<n.length&&Er(n.charCodeAt(e));e++);return e}function Jr(n,e){for(;e<n.length&&Cr(n.charCodeAt(e));e++);return e}function Yr(n,e){if(zr(Ur(n,(e+=2)-1))){for(let t=Math.min(n.length,e+5);e<t&&zr(Ur(n,e));e++);let t=Ur(n,e);Er(t)&&(e+=Gr(n,e,t))}return e}function Zr(n,e){for(;e<n.length;e++){let t=n.charCodeAt(e);if(!Ir(t)){if(Dr(t,Ur(n,e+1))){e=Yr(n,e)-1;continue}break}}return e}function Xr(n,e){let t=n.charCodeAt(e);if((43===t||45===t)&&(t=n.charCodeAt(e+=1)),Cr(t)&&(e=Jr(n,e+1),t=n.charCodeAt(e)),46===t&&Cr(n.charCodeAt(e+1))&&(e=Jr(n,e+=2)),Wr(n,e,101)){let a=0;t=n.charCodeAt(e+1),(45===t||43===t)&&(a=1,t=n.charCodeAt(e+2)),Cr(t)&&(e=Jr(n,e+1+a+1))}return e}function $r(n,e){for(;e<n.length;e++){let t=n.charCodeAt(e);if(41===t){e++;break}Dr(t,Ur(n,e+1))&&(e=Yr(n,e))}return e}function Qr(n){if(1===n.length&&!zr(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 ns=["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 es(n=null,e){return null===n||n.length<e?new Uint32Array(Math.max(e+1024,16384)):n}function ts(n){let e=n.source,t=e.length,a=e.length>0?Nr(e.charCodeAt(0)):0,o=es(n.lines,t),i=es(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 as=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||ts(this),{source:e,offset:this.startOffset+n,line:this.lines[n],column:this.columns[n]}}getLocationRange(n,e,t){return this.computed||ts(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]}}}},os=16777215,is=24,rs=new Map([[2,22],[21,22],[19,20],[23,24]]),ss=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=es(this.offsetAndType,n.length+1),o=es(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&os;for(s=o[n],r=s>>is,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=rs.get(n),s=r<<is|i}a[i++]=n<<is|c,-1===l&&(l=e)})),a[i]=0|t,o[i]=t,o[t]=t;0!==s;){let n=s&os;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]>>is:0}lookupOffset(n){return(n+=this.tokenIndex)<this.tokenCount?this.offsetAndType[n-1]&os:this.source.length}lookupValue(n,e){return(n+=this.tokenIndex)<this.tokenCount&&Vr(this.source,this.offsetAndType[n-1]&os,this.offsetAndType[n]&os,e)}getTokenStart(n){return n===this.tokenIndex?this.tokenStart:n>0?n<this.tokenCount?this.offsetAndType[n-1]&os:this.offsetAndType[this.tokenCount]&os: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]&os,e=this.offsetAndType[e],this.tokenType=e>>is,this.tokenEnd=e&os):(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>>is,this.tokenEnd=n&os):(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]&os: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&os;t=i,n(o>>is,a,i,e)}}dump(){let n=new Array(this.tokenCount);return this.forEachToken(((e,t,a,o)=>{n[o]={idx:o,type:ns[e],chunk:this.source.substring(t,a),balance:this.balance[o]}})),n}};function ls(n,e){function t(e){return e<s?n.charCodeAt(e):0}function a(){return c=Xr(n,c),Mr(t(c),t(c+1),t(c+2))?(r=12,void(c=Zr(n,c))):37===t(c)?(r=11,void c++):void(r=10)}function o(){let e=c;return c=Zr(n,c),Vr(n,e,c,"url")&&40===t(c)?(c=Kr(n,c+1),34===t(c)||39===t(c)?(r=2,void(c=e+4)):void function(){for(r=7,c=Kr(n,c);c<n.length;c++){let e=n.charCodeAt(c);switch(Hr(e)){case 41:return void c++;case Pr:return c=Kr(n,c),41===t(c)||c>=n.length?void(c<n.length&&c++):(c=$r(n,c),void(r=8));case 34:case 39:case 40:case qr:return c=$r(n,c),void(r=8);case 92:if(Dr(e,t(c+1))){c=Yr(n,c)-1;break}return c=$r(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(Hr(a)){case e:return void c++;case Pr:if(Rr(a))return c+=Gr(n,c,a),void(r=6);break;case 92:if(c===n.length-1)break;let o=t(c+1);Rr(o)?c+=Gr(n,c+1,o):Dr(a,o)&&(c=Yr(n,c)-1)}}}let r,s=(n=String(n||"")).length,l=Nr(t(0)),c=l;for(;c<s;){let s=n.charCodeAt(c);switch(Hr(s)){case Pr:r=13,c=Kr(n,c+1);break;case 34:i();break;case 35:Ir(t(c+1))||Dr(t(c+1),t(c+2))?(r=4,c=Zr(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:Br(s,t(c+1),t(c+2))?a():(r=9,c++);break;case 44:r=18,c++;break;case 45:Br(s,t(c+1),t(c+2))?a():45===t(c+1)&&62===t(c+2)?(r=15,c+=3):Mr(s,t(c+1),t(c+2))?o():(r=9,c++);break;case 46:Br(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:Mr(t(c+1),t(c+2),t(c+3))?(r=3,c=Zr(n,c+1)):(r=9,c++);break;case 91:r=19,c++;break;case 92:Dr(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 _r:a();break;case Fr:o();break;default:r=9,c++}e(r,l,l=c)}}var cs=null,ms=class{static createItem(n){return{prev:null,next:null,data:n}}constructor(){this.head=null,this.tail=null,this.cursor=null}createItem(n){return ms.createItem(n)}allocateCursor(n,e){let t;return null!==cs?(t=cs,cs=cs.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=cs,cs=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=ms.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 ms;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 ms;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 ms;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(ms.createItem(n))}append(n){return this.insert(n)}appendData(n){return this.insert(ms.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(ms.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(ms.createItem(n))}pop(){return null!==this.tail?this.remove(this.tail):null}unshift(n){this.prepend(ms.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 ds(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 hs=100,ps=60,us=" ";function gs({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+=(us.length-1)*(i[e-1].substr(0,t-1).match(/\t/g)||[]).length)>hs&&(c=t-ps+3,t=ps-2);for(let n=r;n<=s;n++)n>=0&&n<i.length&&(i[n]=i[n].replace(/\t/g,us),i[n]=(c>0&&i[n].length>c?"…":"")+i[n].substr(c,hs-2)+(i[n].length>c+hs-1?"…":""));return[o(r,e),new Array(t+l+2).join("-")+"^",o(e,s)].filter(Boolean).join("\n")}function ws(n,e,t,a,o){return Object.assign(ds("SyntaxError",n),{source:e,offset:t,line:a,column:o,sourceFragment:n=>gs({source:e,line:a,column:o},isNaN(n)?0:n),get formattedMessage(){return`Parse error: ${n}\n`+gs({source:e,line:a,column:o},2)}})}function bs(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 fs=()=>{},ks=33,ys=35,vs=59,js=123,Ss=0;function xs(n){return function(){return this[n]()}}function Cs(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 zs(n){let e="",t="<unknown>",a=!1,o=fs,i=!1,r=new as,s=Object.assign(new ss,function(n){let e={context:Object.create(null),scope:Object.assign(Object.create(null),n.scope),atrule:Cs(n.atrule),pseudo:Cs(n.pseudo),node:Cs(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]=xs(n.parseContext[t])}return{config:e,...e,...e.node}}(n||{}),{parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:bs,consumeUntilBalanceEnd:()=>0,consumeUntilLeftCurlyBracket:n=>n===js?1:0,consumeUntilLeftCurlyBracketOrSemicolon:n=>n===js||n===vs?1:0,consumeUntilExclamationMarkOrSemicolon:n=>n===ks||n===vs?1:0,consumeUntilSemicolonIncluded:n=>n===vs?2:0,createList:()=>new ms,createSingleNodeList:n=>(new ms).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!==Ss);return Ss},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)=>Wr(e,n,t),cmpStr:(n,t,a)=>Vr(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,Xr(e,this.tokenStart));return this.eat(n),t},eat(n){if(this.tokenType!==n){let e=ns[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(ys)&&(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&&Er(n.charCodeAt(e));e--);return e+1}(e,e.length-1)):r.getLocation(this.tokenStart);throw new ws(n||"Unexpected input",e,a.offset,a.line,a.column)}});return Object.assign((function(n,l){e=n,l=l||{},s.setSource(e,ls),r.setSource(e,l.offset,l.line,l.column),t=l.filename||"<unknown>",a=Boolean(l.positions),o="function"==typeof l.onParseError?l.onParseError:fs,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=Vr(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:ws,config:s.config})}var Ls=((n,e,t)=>(t=null!=n?_i(Ui(n)):{},((n,e,t,a)=>{if(e&&"object"==typeof e||"function"==typeof e)for(let o of Hi(e))!Gi.call(n,o)&&o!==t&&Fi(n,o,{get:()=>e[o],enumerable:!(a=qi(e,o))||a.enumerable});return n})(!e&&n&&n.__esModule?t:Fi(t,"default",{value:n,enumerable:!0}),n)))($i(),1),As=new Set(["Atrule","Selector","Declaration"]);var Is={};Vi(Is,{safe:()=>Bs,spec:()=>Ms});var Ts=(n,e)=>{if(9===n&&(n=e),"string"==typeof n){let e=n.charCodeAt(0);return e>127?32768:e<<8}return n},Rs=[[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],["/","*"]],Es=Rs.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 Ds(n){let e=new Set(n.map((([n,e])=>Ts(n)<<16|Ts(e))));return function(n,t,a){let o=Ts(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 Ms=Ds(Rs),Bs=Ds(Es),Ns=92;function Os(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 Ps(n){ls(n,((e,t,a)=>{this.token(e,n.slice(t,a))}))}function _s(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:Bs,token(n,e){o=this.tokenBefore(o,n,e),this.emit(e,n,!1),9===n&&e.charCodeAt(0)===Ns&&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 Ls.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&&As.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&&As.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 Is&&(i.tokenBefore=Is[t.mode]));let r={node:n=>i.node(n),children:Os,token:(n,e)=>i.token(n,e),tokenize:Ps};return i.node(n),i.result()}}var{hasOwnProperty:Fs}=Object.prototype,qs=function(){};function Hs(n){return"function"==typeof n?n:qs}function Us(n,e){return function(t,a,o){t.type===e&&n.call(this,t,a,o)}}function Gs(n,e){let t=e.structure,a=[];for(let n in t){if(!1===Fs.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 Ws(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 Vs({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 Ks(n){let e=function(n){let e={};for(let t in n.node)if(Fs.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]=Gs(0,a)}return e}(n),t={},a={},o=Symbol("break-walk"),i=Symbol("skip-node");for(let n in e)Fs.call(e,n)&&null!==e[n]&&(t[n]=Ws(e[n],!1),a[n]=Ws(e[n],!0));let r=Vs(t),s=Vs(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=qs,d=qs,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=Hs(l.enter),d=Hs(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=Us(m,l.visit),d=Us(d,l.visit)}if(m===qs&&d===qs)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 Js(n){return n}function Ys(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=>Ys(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 Ys(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 Zs(n,e){let t=Js,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)),Ys(n,t,a,o)}var Xs={offset:0,line:1,column:1};function $s(n,e){let t=n&&n.loc&&n.loc[e];return t?"line"in t?Qs(t):t:null}function Qs({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 nl=function(n,e){let t=ds("SyntaxReferenceError",n+(e?" `"+e+"`":""));return t.reference=e,t},el=function(n,e,t,a){let o=ds("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=$s(s||e,"end")||Qs(Xs,d),a=Qs(t)):(t=$s(s,"start")||Qs($s(e,"start")||Xs,d.slice(0,l)),a=$s(s,"end")||Qs(t,d.substr(l,c))),{css:d,mismatchOffset:l,mismatchLength:c,start:t,end:a}}(a,t);return o.rawMessage=n,o.syntax=e?Zs(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},tl=new Map,al=new Map,ol=45,il=function(n){if(tl.has(n))return tl.get(n);let e=n.toLowerCase(),t=tl.get(e);if(void 0===t){let n=sl(e,0),a=n?"":ll(e,0);t=Object.freeze({basename:e.substr(a.length),name:e,prefix:a,vendor:a,custom:n})}return tl.set(n,t),t},rl=function(n){if(al.has(n))return al.get(n);let e=n,t=n[0];"/"===t?t="/"===n[1]?"//":"/":"_"!==t&&"*"!==t&&"$"!==t&&"#"!==t&&"+"!==t&&"&"!==t&&(t="");let a=sl(e,t.length);if(!a&&(e=e.toLowerCase(),al.has(e))){let t=al.get(e);return al.set(n,t),t}let o=a?"":ll(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 al.set(n,r),r};function sl(n,e){return e=e||0,n.length-e>=2&&n.charCodeAt(e)===ol&&n.charCodeAt(e+1)===ol}function ll(n,e){if(e=e||0,n.length-e>=3&&n.charCodeAt(e)===ol&&n.charCodeAt(e+1)!==ol){let t=n.indexOf("-",e+2);if(-1!==t)return n.substring(e,t+1)}return""}var cl=["initial","inherit","unset","revert","revert-layer"],ml=43,dl=45,hl=!0;function pl(n,e){return null!==n&&9===n.type&&n.value.charCodeAt(0)===e}function ul(n,e,t){for(;null!==n&&(13===n.type||25===n.type);)n=t(++e);return e}function gl(n,e,t,a){if(!n)return 0;let o=n.value.charCodeAt(e);if(o===ml||o===dl){if(t)return 0;e++}for(;e<n.value.length;e++)if(!Cr(n.value.charCodeAt(e)))return 0;return a+1}function wl(n,e,t){let a=!1,o=ul(n,e,t);if(null===(n=t(o)))return e;if(10!==n.type){if(!pl(n,ml)&&!pl(n,dl))return e;if(a=!0,o=ul(t(++o),o,t),null===(n=t(o))||10!==n.type)return 0}if(!a){let e=n.value.charCodeAt(0);if(e!==ml&&e!==dl)return 0}return gl(n,a?0:1,a,o)}var bl=45,fl=63;function kl(n,e){return null!==n&&9===n.type&&n.value.charCodeAt(0)===e}function yl(n,e,t){let a=0;for(let o=e;o<n.value.length;o++){let i=n.value.charCodeAt(o);if(i===bl&&t&&0!==a)return yl(n,e+a+1,!1),6;if(!zr(i)||++a>6)return 0}return a}function vl(n,e,t){if(!n)return 0;for(;kl(t(e),fl);){if(++n>6)return 0;e++}return e}var jl=["calc(","-moz-calc(","-webkit-calc("],Sl=new Map([[2,22],[21,22],[19,20],[23,24]]);function xl(n,e){return e<n.length?n.charCodeAt(e):0}function Cl(n,e){return Vr(n,0,n.length,e)}function zl(n,e){for(let t=0;t<e.length;t++)if(Cl(n,e[t]))return!0;return!1}function Ll(n,e){return e===n.length-2&&(92===xl(n,e)&&Cr(xl(n,e+1)))}function Al(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 Il(n){return function(e,t,a){return null===e?0:2===e.type&&zl(e.value,jl)?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=Sl.get(n.type)}o++}while(n=e(o));return o}(e,t):n(e,t,a)}}function Tl(n){return function(e){return null===e||e.type!==n?0:1}}function Rl(n){return n&&(n=new Set(n)),function(e,t,a){if(null===e||12!==e.type)return 0;let o=Xr(e.value,0);if(null!==n){let t=e.value.indexOf("\\",o),a=-1!==t&&Ll(e.value,t)?e.value.substring(o,t):e.value.substr(o);if(!1===n.has(a.toLowerCase()))return 0}return Al(a,e.value,o)?0:1}}function El(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 Dl={"ident-token":Tl(1),"function-token":Tl(2),"at-keyword-token":Tl(3),"hash-token":Tl(4),"string-token":Tl(5),"bad-string-token":Tl(6),"url-token":Tl(7),"bad-url-token":Tl(8),"delim-token":Tl(9),"number-token":Tl(10),"percentage-token":Tl(11),"dimension-token":Tl(12),"whitespace-token":Tl(13),"CDO-token":Tl(14),"CDC-token":Tl(15),"colon-token":Tl(16),"semicolon-token":Tl(17),"comma-token":Tl(18),"[-token":Tl(19),"]-token":Tl(20),"(-token":Tl(21),")-token":Tl(22),"{-token":Tl(23),"}-token":Tl(24)},Ml={string:Tl(5),ident:Tl(1),percentage:Il((function(n,e,t){return null===n||11!==n.type||Al(t,n.value,n.value.length-1)?0:1})),zero:El(),number:Il((function(n,e,t){if(null===n)return 0;let a=Xr(n.value,0);return a!==n.value.length&&!Ll(n.value,a)||Al(t,n.value,a)?0:1})),integer:Il((function(n,e,t){if(null===n||10!==n.type)return 0;let a=43===xl(n.value,0)||45===xl(n.value,0)?1:0;for(;a<n.value.length;a++)if(!Cr(xl(n.value,a)))return 0;return Al(t,n.value,a)?0:1})),"custom-ident":function(n){if(null===n||1!==n.type)return 0;let e=n.value.toLowerCase();return zl(e,cl)||Cl(e,"default")?0:1},"custom-property-name":function(n){return null===n||1!==n.type||45!==xl(n.value,0)||45!==xl(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(!zr(xl(n.value,t)))return 0;return 1},"id-selector":function(n){return null!==n&&4===n.type&&Mr(xl(n.value,1),xl(n.value,2),xl(n.value,3))?1:0},"an-plus-b":function(n,e){let t=0;if(!n)return 0;if(10===n.type)return gl(n,0,false,t);if(1===n.type&&n.value.charCodeAt(0)===dl){if(!Wr(n.value,1,110))return 0;switch(n.value.length){case 2:return wl(e(++t),t,e);case 3:return n.value.charCodeAt(2)!==dl?0:(t=ul(e(++t),t,e),gl(n=e(t),0,hl,t));default:return n.value.charCodeAt(2)!==dl?0:gl(n,3,hl,t)}}else if(1===n.type||pl(n,ml)&&1===e(t+1).type){if(1!==n.type&&(n=e(++t)),null===n||!Wr(n.value,0,110))return 0;switch(n.value.length){case 1:return wl(e(++t),t,e);case 2:return n.value.charCodeAt(1)!==dl?0:(t=ul(e(++t),t,e),gl(n=e(t),0,hl,t));default:return n.value.charCodeAt(1)!==dl?0:gl(n,2,hl,t)}}else if(12===n.type){let a=n.value.charCodeAt(0),o=a===ml||a===dl?1:0,i=o;for(;i<n.value.length&&Cr(n.value.charCodeAt(i));i++);return i!==o&&Wr(n.value,i,110)?i+1===n.value.length?wl(e(++t),t,e):n.value.charCodeAt(i+1)!==dl?0:i+2===n.value.length?(t=ul(e(++t),t,e),gl(n=e(t),0,hl,t)):gl(n,i+2,hl,t):0}return 0},urange:function(n,e){let t=0;if(null===n||1!==n.type||!Wr(n.value,0,117)||null===(n=e(++t)))return 0;if(kl(n,43))return null===(n=e(++t))?0:1===n.type?vl(yl(n,0,!0),++t,e):kl(n,fl)?vl(1,++t,e):0;if(10===n.type){let a=yl(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,bl)&&yl(n,1,!1)?t+1:0:vl(a,t,e)}return 12===n.type?vl(yl(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=Sl.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=Sl.get(n.type)}o++}while(n=e(o));return o}};function Bl(n){let{angle:e,decibel:t,frequency:a,flex:o,length:i,resolution:r,semitones:s,time:l}=n||{};return{dimension:Il(Rl(null)),angle:Il(Rl(e)),decibel:Il(Rl(t)),frequency:Il(Rl(a)),flex:Il(Rl(o)),length:Il(El(Rl(i))),resolution:Il(Rl(r)),semitones:Il(Rl(s)),time:Il(Rl(l))}}var Nl={};Vi(Nl,{angle:()=>Pl,decibel:()=>Ul,flex:()=>Hl,frequency:()=>Fl,length:()=>Ol,resolution:()=>ql,semitones:()=>Gl,time:()=>_l});var Ol=["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"],Pl=["deg","grad","rad","turn"],_l=["s","ms"],Fl=["hz","khz"],ql=["dpi","dpcm","dppx","x"],Hl=["fr"],Ul=["db"],Gl=["st"];function Wl(n,e,t){return Object.assign(ds("SyntaxError",n),{input:e,offset:t,rawMessage:n,message:n+"\n "+e+"\n--"+new Array((t||e.length)+1).join("-")+"^"})}Vi({},{SyntaxError:()=>Wl,generate:()=>Zs,parse:()=>Rc,walk:()=>Mc});var Vl=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 Wl(n,this.str,this.pos)}},Kl=9,Jl=10,Yl=12,Zl=13,Xl=32,$l=33,Ql=35,nc=38,ec=39,tc=40,ac=41,oc=42,ic=43,rc=44,sc=45,lc=60,cc=62,mc=63,dc=64,hc=91,pc=93,uc=123,gc=124,wc=125,bc=8734,fc=new Uint8Array(128).map(((n,e)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(e))?1:0)),kc={" ":1,"&&":2,"||":3,"|":4};function yc(n){return n.substringToPos(n.findWsEnd(n.pos))}function vc(n){let e=n.pos;for(;e<n.str.length;e++){let t=n.str.charCodeAt(e);if(t>=128||0===fc[t])break}return n.pos===e&&n.error("Expect a keyword"),n.substringToPos(e)}function jc(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 Sc(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 xc(n){let e=null,t=null;return n.eat(uc),e=jc(n),n.charCode()===rc?(n.pos++,n.charCode()!==wc&&(t=jc(n))):t=e,n.eat(wc),{min:Number(e),max:t?Number(t):0}}function Cc(n,e){let t=function(n){let e=null,t=!1;switch(n.charCode()){case oc:n.pos++,e={min:0,max:0};break;case ic:n.pos++,e={min:1,max:0};break;case mc:n.pos++,e={min:0,max:1};break;case Ql:n.pos++,t=!0,n.charCode()===uc?e=xc(n):n.charCode()===mc?(n.pos++,e={min:0,max:0}):e={min:1,max:0};break;case uc:e=xc(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()===Ql&&n.charCodeAt(n.pos-1)===ic?Cc(n,t):t):e}function zc(n){let e=n.peek();return""===e?null:{type:"Token",value:e}}function Lc(n){let e,t=null;return n.eat(lc),e=vc(n),n.charCode()===tc&&n.nextCharCode()===ac&&(n.pos+=2,e+="()"),n.charCodeAt(n.findWsEnd(n.pos))===hc&&(yc(n),t=function(n){let e=null,t=null,a=1;return n.eat(hc),n.charCode()===sc&&(n.peek(),a=-1),-1==a&&n.charCode()===bc?n.peek():(e=a*Number(jc(n)),0!==fc[n.charCode()]&&(e+=vc(n))),yc(n),n.eat(rc),yc(n),n.charCode()===bc?n.peek():(a=1,n.charCode()===sc&&(n.peek(),a=-1),t=a*Number(jc(n)),0!==fc[n.charCode()]&&(t+=vc(n))),n.eat(pc),{type:"Range",min:e,max:t}}(n)),n.eat(cc),Cc(n,{type:"Type",name:e,opts:t})}function Ac(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)=>kc[n]-kc[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 Ic(n){let e,t=[],a={},o=null,i=n.pos;for(;e=Tc(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:Ac(t,a)||" ",disallowEmpty:!1,explicit:!1}}function Tc(n){let e=n.charCode();if(e<128&&1===fc[e])return function(n){let e=vc(n);return n.charCode()===tc?(n.pos++,{type:"Function",name:e}):Cc(n,{type:"Keyword",name:e})}(n);switch(e){case pc:break;case hc:return Cc(n,function(n){let e;return n.eat(hc),e=Ic(n),n.eat(pc),e.explicit=!0,n.charCode()===$l&&(n.pos++,e.disallowEmpty=!0),e}(n));case lc:return n.nextCharCode()===ec?function(n){let e;return n.eat(lc),n.eat(ec),e=vc(n),n.eat(ec),n.eat(cc),Cc(n,{type:"Property",name:e})}(n):Lc(n);case gc:return{type:"Combinator",value:n.substringToPos(n.pos+(n.nextCharCode()===gc?2:1))};case nc:return n.pos++,n.eat(nc),{type:"Combinator",value:"&&"};case rc:return n.pos++,{type:"Comma"};case ec:return Cc(n,{type:"String",value:Sc(n)});case Xl:case Kl:case Jl:case Zl:case Yl:return{type:"Spaces",value:yc(n)};case dc:return e=n.nextCharCode(),e<128&&1===fc[e]?(n.pos++,{type:"AtKeyword",name:vc(n)}):zc(n);case oc:case ic:case mc:case Ql:case $l:break;case uc:if(e=n.nextCharCode(),e<48||e>57)return zc(n);break;default:return zc(n)}}function Rc(n){let e=new Vl(n),t=Ic(e);return e.pos!==n.length&&e.error("Unexpected input"),1===t.terms.length&&"Group"===t.terms[0].type?t.terms[0]:t}var Ec=function(){};function Dc(n){return"function"==typeof n?n:Ec}function Mc(n,e,t){let a=Ec,o=Ec;if("function"==typeof e?a=e:e&&(a=Dc(e.enter),o=Dc(e.leave)),a===Ec&&o===Ec)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 Bc={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 Nc(n,e){return"string"==typeof n?function(n){let e=[];return ls(n,((t,a,o)=>e.push({type:t,value:n.slice(a,o),node:null}))),e}(n):e.generate(n,Bc)}var Oc={type:"Match"},Pc={type:"Mismatch"},_c={type:"DisallowEmpty"},Fc=40,qc=41;function Hc(n,e,t){return e===Oc&&t===Pc||n===Oc&&e===Oc&&t===Oc?n:("If"===n.type&&n.else===Pc&&e===Oc&&(e=n.then,n=n.match),{type:"If",match:n,then:e,else:t})}function Uc(n){return n.length>2&&n.charCodeAt(n.length-2)===Fc&&n.charCodeAt(n.length-1)===qc}function Gc(n){return"Keyword"===n.type||"AtKeyword"===n.type||"Function"===n.type||"Type"===n.type&&Uc(n.name)}function Wc(n,e,t){switch(n){case" ":{let n=Oc;for(let t=e.length-1;t>=0;t--){n=Hc(e[t],n,Pc)}return n}case"|":{let n=Pc,t=null;for(let a=e.length-1;a>=0;a--){let o=e[a];if(Gc(o)&&(null===t&&a>0&&Gc(e[a-1])&&(t=Object.create(null),n=Hc({type:"Enum",map:t},Oc,n)),null!==t)){let n=(Uc(o.name)?o.name.slice(0,-1):o.name).toLowerCase();if(!(n in t)){t[n]=o;continue}}t=null,n=Hc(o,Oc,n)}return n}case"&&":{if(e.length>5)return{type:"MatchOnce",terms:e,all:!0};let t=Pc;for(let a=e.length-1;a>=0;a--){let o,i=e[a];o=e.length>1?Wc(n,e.filter((function(n){return n!==i})),!1):Oc,t=Hc(i,o,t)}return t}case"||":{if(e.length>5)return{type:"MatchOnce",terms:e,all:!1};let a=t?Oc:Pc;for(let t=e.length-1;t>=0;t--){let o,i=e[t];o=e.length>1?Wc(n,e.filter((function(n){return n!==i})),!0):Oc,a=Hc(i,o,a)}return a}}}function Vc(n){if("function"==typeof n)return{type:"Generic",fn:n};switch(n.type){case"Group":{let e=Wc(n.combinator,n.terms.map(Vc),!1);return n.disallowEmpty&&(e=Hc(e,_c,Pc)),e}case"Multiplier":return function(n){let e=Oc,t=Vc(n.term);if(0===n.max)t=Hc(t,_c,Pc),e=Hc(t,null,Pc),e.then=Hc(Oc,Oc,e),n.comma&&(e.then.else=Hc({type:"Comma",syntax:n},e,Pc));else for(let a=n.min||1;a<=n.max;a++)n.comma&&e!==Oc&&(e=Hc({type:"Comma",syntax:n},e,Pc)),e=Hc(t,Hc(Oc,Oc,e),Pc);if(0===n.min)e=Hc(Oc,Oc,e);else for(let a=0;a<n.min-1;a++)n.comma&&e!==Oc&&(e=Hc({type:"Comma",syntax:n},e,Pc)),e=Hc(t,e,Pc);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 Kc(n,e){return"string"==typeof n&&(n=Rc(n)),{type:"MatchGraph",match:Vc(n),syntax:e||null,source:n}}var{hasOwnProperty:Jc}=Object.prototype,Yc=0,Zc=1,Xc=2,$c=3,Qc="Match",nm="Mismatch",em="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",tm=15e3;function am(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 om(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 im(n){return null===n||(22===n.type||20===n.type||24===n.type||9===n.type&&"/"===n.value)}function rm(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:Zc,syntax:e.syntax,token:w,prev:k},a(),p=null,b>f&&(f=b)}function c(){k=k.type===Xc?k.prev:{type:$c,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:Yc,syntax:null,token:null,prev:null};for(a();null===g&&++u<tm;)switch(e.type){case"Match":if(null===d){if(null!==w&&(b!==n.length-1||"\\0"!==w.value&&"\\9"!==w.value)){e=Pc;break}g=Qc;break}if((e=d.nextState)===_c){if(d.matchStack===k){e=Pc;break}e=Oc}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=nm;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!==Pc&&s(e.else),e.then!==Oc&&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=Pc;break}e=Oc;break}if(e.mask===(1<<n.length)-1){e=Oc;break}for(;e.index<n.length;e.index++){let t=1<<e.index;if(0==(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].*$/,"")),Jc.call(e.map,n)){e=e.map[n];break}}e=Pc;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=Oc}else e=Pc;break}case"Type":case"Property":{let n="Type"===e.type?"types":"properties",a=Jc.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=Pc;break}m={syntax:e.syntax,opts:e.syntax.opts||null!==m&&m.opts||null,prev:m},k={type:Xc,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].*$/,"")),am(t,n)){l(),e=Oc;break}}e=Pc;break}case"AtKeyword":case"Function":if(null!==w&&am(w.value,e.name)){l(),e=Oc;break}e=Pc;break;case"Token":if(null!==w&&w.value===e.value){l(),e=Oc;break}e=Pc;break;case"Comma":null!==w&&18===w.type?om(k.token)?e=Pc:(l(),e=im(w)?Pc:Oc):e=om(k.token)||im(w)?Oc:Pc;break;case"String":let a="",u=b;for(;u<n.length&&a.length<e.value.length;u++)a+=n[u].value;if(am(a,e.value)){for(;b<u;)l();e=Oc}else e=Pc;break;default:throw new Error("Unknown node type: "+e.type)}switch(g){case null:console.warn("[csstree-match] BREAK after "+tm+" iterations"),g=em,k=null;break;case Qc: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 Xc:i.match.push(i={syntax:o.syntax,match:[]}),r.push(i);break;case $c: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 sm={};function lm(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 cm(n,e){return hm(this,n,(n=>"Type"===n.type&&n.name===e))}function mm(n,e){return hm(this,n,(n=>"Property"===n.type&&n.name===e))}function dm(n){return hm(this,n,(n=>"Keyword"===n.type))}function hm(n,e,t){let a=lm.call(n,e);return null!==a&&a.some(t)}function pm(n){return"node"in n?n.node:pm(n.match[0])}function um(n){return"node"in n?n.node:um(n.match[n.match.length-1])}function gm(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=pm(r),a=um(r);n.syntax.walk(e,(function(n,e,o){if(n===t){let n=new ms;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}Vi(sm,{getTrace:()=>lm,isKeyword:()=>dm,isProperty:()=>mm,isType:()=>cm});var{hasOwnProperty:wm}=Object.prototype;function bm(n){return"number"==typeof n&&isFinite(n)&&Math.floor(n)===n&&n>=0}function fm(n){return Boolean(n)&&bm(n.offset)&&bm(n.line)&&bm(n.column)}function km(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!==wm.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(fm(t.loc.start)){if(fm(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 ms)}}}else a(t,"Unknown field `"+o+"` for "+n+" node type");i||a(t,"Bad value for `"+n+"."+o+"`")}}for(let o in e)wm.call(e,o)&&!1===wm.call(t,o)&&a(t,"Field `"+n+"."+o+"` is missed")}}function ym(n,e){let t=e.structure,a={type:String,loc:!0},o={type:'"'+n+'"'};for(let e in t){if(!1===wm.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:km(n,a)}}var vm=Kc(cl.join(" | "));function jm(n,e,t){let a={};for(let o in n)n[o].syntax&&(a[o]=t?n[o].syntax:Zs(n[o].syntax,{compact:e}));return a}function Sm(n,e,t){let a={};for(let[o,i]of Object.entries(n))a[o]={prelude:i.prelude&&(t?i.prelude.syntax:Zs(i.prelude.syntax,{compact:e})),descriptors:i.descriptors&&jm(i.descriptors,e,t)};return a}function xm(n,e,t){return{matched:n,iterations:t,error:e,...sm}}function Cm(n,e,t,a){let o,i=Nc(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)?xm(null,new Error("Matching for a tree with var() is not supported")):(a&&(o=rm(i,n.cssWideKeywordsSyntax,n)),a&&o.match||(o=rm(i,e.match,n),o.match)?xm(o.match,null,o.iterations):xm(null,new el(o.reason,e.syntax,t,o),o.iterations))}var zm=class{constructor(n,e,t){if(this.cssWideKeywordsSyntax=vm,this.syntax=e,this.generic=!1,this.units={...Nl},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(wm.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]=ym(t,a)}return e}(n),n){if(n.units)for(let e of Object.keys(Nl))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{...Dl,...Ml,...Bl(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=Kc(n,o):("string"==typeof n?Object.defineProperty(i,"syntax",{get:()=>(Object.defineProperty(i,"syntax",{value:Rc(n)}),i.syntax)}):i.syntax=n,Object.defineProperty(i,"match",{get:()=>(Object.defineProperty(i,"match",{value:Kc(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 nl("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||Cm(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=il(e);return a.descriptors?a.descriptors[o.name]||a.descriptors[o.basename]?void 0:new nl("Unknown at-rule descriptor",e):new SyntaxError("At-rule `@"+n+"` has no known descriptors")}checkPropertyName(n){if(!this.getProperty(n))return new nl("Unknown property",n)}matchAtrulePrelude(n,e){let t=this.checkAtrulePrelude(n,e);if(t)return xm(null,t);let a=this.getAtrule(n);return a.prelude?Cm(this,a.prelude,e||"",!1):xm(null,null)}matchAtruleDescriptor(n,e,t){let a=this.checkAtruleDescriptorName(n,e);if(a)return xm(null,a);let o=this.getAtrule(n),i=il(e);return Cm(this,o.descriptors[i.name]||o.descriptors[i.basename],t,!1)}matchDeclaration(n){return"Declaration"!==n.type?xm(null,new Error("Not a Declaration node")):this.matchProperty(n.property,n.value)}matchProperty(n,e){if(rl(n).custom)return xm(null,new Error("Lexer matching doesn't applicable for custom properties"));let t=this.checkPropertyName(n);return t?xm(null,t):Cm(this,this.getProperty(n),e,!0)}matchType(n,e){let t=this.getType(n);return t?Cm(this,t,e,!1):xm(null,new nl("Unknown type",n))}match(n,e){return"string"==typeof n||n&&n.type?(("string"==typeof n||!n.match)&&(n=this.createDescriptor(n,"Type","anonymous")),Cm(this,n,e,!1)):xm(null,new nl("Bad syntax"))}findValueFragments(n,e,t,a){return gm(this,e,this.matchProperty(n,e),t,a)}findDeclarationValueFragments(n,e,t){return gm(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=il(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=rl(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&&Mc(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:jm(this.types,!e,n),properties:jm(this.properties,!e,n),atrules:Sm(this.atrules,!e,n)}}toString(){return JSON.stringify(this.dump())}};function Lm(n,e){return"string"==typeof e&&/^\s*\|/.test(e)?"string"==typeof n?n+e:e.replace(/^\s*\|\s*/,""):e||null}function Am(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 Im(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?Lm(i.prelude,e.prelude):i.prelude||null;for(let[n,t]of Object.entries(e.descriptors||{}))i.descriptors[n]=t?Lm(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]=Lm(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],...Am(o,["parse"])};break;case"node":t[a]={...n[a],...Am(o,["name","structure","parse","generate","walkContext"])}}return t}function Tm(n){let e=zs(n),t=Ks(n),a=_s(n),{fromPlainObject:o,toPlainObject:i}=function(n){return{fromPlainObject:e=>(n(e,{enter(n){n.children&&!(n.children instanceof ms)&&(n.children=(new ms).fromArray(n.children))}}),e),toPlainObject:e=>(n(e,{leave(n){n.children&&n.children instanceof ms&&(n.children=n.children.toArray())}}),e)}}(t),r={lexer:null,createLexer:n=>new zm(n,r,r.lexer.structure),tokenize:ls,parse:e,generate:a,walk:t,find:t.find,findLast:t.findLast,findAll:t.findAll,fromPlainObject:o,toPlainObject:i,fork(e){let t=Im({},n);return Tm("function"==typeof e?e(t,Object.assign):Im(t,e))}};return r.lexer=new zm({generic:!0,units:n.units,types:n.types,atrules:n.atrules,properties:n.properties,node:n.node},r),r}var Rm={};Vi(Rm,{AnPlusB:()=>Em,Atrule:()=>Vm,AtrulePrelude:()=>nd,AttributeSelector:()=>rd,Block:()=>kd,Brackets:()=>Td,CDC:()=>Bd,CDO:()=>Fd,ClassSelector:()=>Wd,Combinator:()=>Xd,Comment:()=>rh,Declaration:()=>ph,DeclarationList:()=>Rh,Dimension:()=>Ph,Function:()=>Uh,Hash:()=>Yh,IdSelector:()=>rp,Identifier:()=>ep,MediaFeature:()=>dp,MediaQuery:()=>wp,MediaQueryList:()=>vp,NestingSelector:()=>zp,Nth:()=>Ep,Number:()=>Op,Operator:()=>Hp,Parentheses:()=>Kp,Percentage:()=>$p,PseudoClassSelector:()=>au,PseudoElementSelector:()=>cu,Ratio:()=>gu,Raw:()=>Su,Rule:()=>Iu,Selector:()=>Ou,SelectorList:()=>Hu,String:()=>Ju,StyleSheet:()=>og,TypeSelector:()=>hg,UnicodeRange:()=>yg,Url:()=>Eg,Value:()=>Wg,WhiteSpace:()=>Zg});var Em={};Vi(Em,{generate:()=>Wm,name:()=>Hm,parse:()=>Gm,structure:()=>Um});var Dm=43,Mm=45,Bm=110,Nm=!0,Om=!1;function Pm(n,e){let t=this.tokenStart+n,a=this.charCodeAt(t);for((a===Dm||a===Mm)&&(e&&this.error("Number sign is not allowed"),t++);t<this.tokenEnd;t++)Cr(this.charCodeAt(t))||this.error("Integer is expected",t)}function _m(n){return Pm.call(this,0,n)}function Fm(n,e){if(!this.cmpChar(this.tokenStart+n,e)){let t="";switch(e){case Bm:t="N is expected";break;case Mm:t="HyphenMinus is expected"}this.error(t,this.tokenStart+n)}}function qm(){let n=0,e=0,t=this.tokenType;for(;13===t||25===t;)t=this.lookupType(++n);if(10!==t){if(!this.isDelim(Dm,n)&&!this.isDelim(Mm,n))return null;e=this.isDelim(Dm,n)?Dm:Mm;do{t=this.lookupType(++n)}while(13===t||25===t);10!==t&&(this.skip(n),_m.call(this,Nm))}return n>0&&this.skip(n),0===e&&(t=this.charCodeAt(this.tokenStart),t!==Dm&&t!==Mm&&this.error("Number sign is expected")),_m.call(this,0!==e),e===Mm?"-"+this.consume(10):this.consume(10)}var Hm="AnPlusB",Um={a:[String,null],b:[String,null]};function Gm(){let n=this.tokenStart,e=null,t=null;if(10===this.tokenType)_m.call(this,Om),t=this.consume(10);else if(1===this.tokenType&&this.cmpChar(this.tokenStart,Mm))switch(e="-1",Fm.call(this,1,Bm),this.tokenEnd-this.tokenStart){case 2:this.next(),t=qm.call(this);break;case 3:Fm.call(this,2,Mm),this.next(),this.skipSC(),_m.call(this,Nm),t="-"+this.consume(10);break;default:Fm.call(this,2,Mm),Pm.call(this,3,Nm),this.next(),t=this.substrToCursor(n+2)}else if(1===this.tokenType||this.isDelim(Dm)&&1===this.lookupType(1)){let a=0;switch(e="1",this.isDelim(Dm)&&(a=1,this.next()),Fm.call(this,0,Bm),this.tokenEnd-this.tokenStart){case 1:this.next(),t=qm.call(this);break;case 2:Fm.call(this,1,Mm),this.next(),this.skipSC(),_m.call(this,Nm),t="-"+this.consume(10);break;default:Fm.call(this,1,Mm),Pm.call(this,2,Nm),this.next(),t=this.substrToCursor(n+a+1)}}else if(12===this.tokenType){let a=this.charCodeAt(this.tokenStart),o=a===Dm||a===Mm,i=this.tokenStart+o;for(;i<this.tokenEnd&&Cr(this.charCodeAt(i));i++);i===this.tokenStart+o&&this.error("Integer is expected",this.tokenStart+o),Fm.call(this,i-this.tokenStart,Bm),e=this.substring(n,i),i+1===this.tokenEnd?(this.next(),t=qm.call(this)):(Fm.call(this,i-this.tokenStart+1,Mm),i+2===this.tokenEnd?(this.next(),this.skipSC(),_m.call(this,Nm),t="-"+this.consume(10)):(Pm.call(this,i-this.tokenStart+2,Nm),this.next(),t=this.substrToCursor(i+1)))}else this.error();return null!==e&&e.charCodeAt(0)===Dm&&(e=e.substr(1)),null!==t&&t.charCodeAt(0)===Dm&&(t=t.substr(1)),{type:"AnPlusB",loc:this.getLocation(n,this.tokenStart),a:e,b:t}}function Wm(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 Vm={};function Km(n){return this.Raw(n,this.consumeUntilLeftCurlyBracketOrSemicolon,!0)}function Jm(){for(let n,e=1;n=this.lookupType(e);e++){if(24===n)return!0;if(23===n||3===n)return!1}return!1}Vi(Vm,{generate:()=>Qm,name:()=>Ym,parse:()=>$m,structure:()=>Xm,walkContext:()=>Zm});var Ym="Atrule",Zm="atrule",Xm={name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]};function $m(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),Km):Km.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(Jm.call(this))}return{type:"Atrule",loc:this.getLocation(a,this.tokenStart),name:e,prelude:o,block:i}}function Qm(n){this.token(3,"@"+n.name),null!==n.prelude&&this.node(n.prelude),n.block?this.node(n.block):this.token(17,";")}var nd={};Vi(nd,{generate:()=>id,name:()=>ed,parse:()=>od,structure:()=>ad,walkContext:()=>td});var ed="AtrulePrelude",td="atrulePrelude",ad={children:[[]]};function od(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 id(n){this.children(n)}var rd={};Vi(rd,{generate:()=>fd,name:()=>gd,parse:()=>bd,structure:()=>wd});var sd=36,ld=42,cd=61,md=94,dd=124,hd=126;function pd(){this.eof&&this.error("Unexpected end of input");let n=this.tokenStart,e=!1;return this.isDelim(ld)?(e=!0,this.next()):this.isDelim(dd)||this.eat(1),this.isDelim(dd)?this.charCodeAt(this.tokenStart+1)!==cd?(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 ud(){let n=this.tokenStart,e=this.charCodeAt(n);return e!==cd&&e!==hd&&e!==md&&e!==sd&&e!==ld&&e!==dd&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.next(),e!==cd&&(this.isDelim(cd)||this.error("Equal sign is expected"),this.next()),this.substrToCursor(n)}var gd="AttributeSelector",wd={name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]};function bd(){let n,e=this.tokenStart,t=null,a=null,o=null;return this.eat(19),this.skipSC(),n=pd.call(this),this.skipSC(),20!==this.tokenType&&(1!==this.tokenType&&(t=ud.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 fd(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 kd={};Vi(kd,{generate:()=>Id,name:()=>Cd,parse:()=>Ad,structure:()=>Ld,walkContext:()=>zd});var yd=38;function vd(n){return this.Raw(n,null,!0)}function jd(){return this.parseWithFallback(this.Rule,vd)}function Sd(n){return this.Raw(n,this.consumeUntilSemicolonIncluded,!0)}function xd(){if(17===this.tokenType)return Sd.call(this,this.tokenIndex);let n=this.parseWithFallback(this.Declaration,Sd);return 17===this.tokenType&&this.next(),n}var Cd="Block",zd="block",Ld={children:[["Atrule","Rule","Declaration"]]};function Ad(n){let e=n?xd:jd,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),vd));break;default:n&&this.isDelim(yd)?a.push(jd.call(this)):a.push(e.call(this))}return this.eof||this.eat(24),{type:"Block",loc:this.getLocation(t,this.tokenStart),children:a}}function Id(n){this.token(23,"{"),this.children(n,(n=>{"Declaration"===n.type&&this.token(17,";")})),this.token(24,"}")}var Td={};Vi(Td,{generate:()=>Md,name:()=>Rd,parse:()=>Dd,structure:()=>Ed});var Rd="Brackets",Ed={children:[[]]};function Dd(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 Md(n){this.token(9,"["),this.children(n),this.token(9,"]")}var Bd={};Vi(Bd,{generate:()=>_d,name:()=>Nd,parse:()=>Pd,structure:()=>Od});var Nd="CDC",Od=[];function Pd(){let n=this.tokenStart;return this.eat(15),{type:"CDC",loc:this.getLocation(n,this.tokenStart)}}function _d(){this.token(15,"--\x3e")}var Fd={};Vi(Fd,{generate:()=>Gd,name:()=>qd,parse:()=>Ud,structure:()=>Hd});var qd="CDO",Hd=[];function Ud(){let n=this.tokenStart;return this.eat(14),{type:"CDO",loc:this.getLocation(n,this.tokenStart)}}function Gd(){this.token(14,"\x3c!--")}var Wd={};Vi(Wd,{generate:()=>Zd,name:()=>Kd,parse:()=>Yd,structure:()=>Jd});var Vd=46,Kd="ClassSelector",Jd={name:String};function Yd(){return this.eatDelim(Vd),{type:"ClassSelector",loc:this.getLocation(this.tokenStart-1,this.tokenEnd),name:this.consume(1)}}function Zd(n){this.token(9,"."),this.token(1,n.name)}var Xd={};Vi(Xd,{generate:()=>ih,name:()=>th,parse:()=>oh,structure:()=>ah});var $d=43,Qd=47,nh=62,eh=126,th="Combinator",ah={name:String};function oh(){let n,e=this.tokenStart;switch(this.tokenType){case 13:n=" ";break;case 9:switch(this.charCodeAt(this.tokenStart)){case nh:case $d:case eh:this.next();break;case Qd:this.next(),this.eatIdent("deep"),this.eatDelim(Qd);break;default:this.error("Combinator is expected")}n=this.substrToCursor(e)}return{type:"Combinator",loc:this.getLocation(e,this.tokenStart),name:n}}function ih(n){this.tokenize(n.name)}var rh={};Vi(rh,{generate:()=>hh,name:()=>ch,parse:()=>dh,structure:()=>mh});var sh=42,lh=47,ch="Comment",mh={value:String};function dh(){let n=this.tokenStart,e=this.tokenEnd;return this.eat(25),e-n+2>=2&&this.charCodeAt(e-2)===sh&&this.charCodeAt(e-1)===lh&&(e-=2),{type:"Comment",loc:this.getLocation(n,this.tokenStart),value:this.substring(n+2,e)}}function hh(n){this.token(25,"/*"+n.value+"*/")}var ph={};Vi(ph,{generate:()=>Ah,name:()=>xh,parse:()=>Lh,structure:()=>zh,walkContext:()=>Ch});var uh=33,gh=35,wh=36,bh=38,fh=42,kh=43,yh=47;function vh(n){return this.Raw(n,this.consumeUntilExclamationMarkOrSemicolon,!0)}function jh(n){return this.Raw(n,this.consumeUntilExclamationMarkOrSemicolon,!1)}function Sh(){let n=this.tokenIndex,e=this.Value();return"Raw"!==e.type&&!1===this.eof&&17!==this.tokenType&&!1===this.isDelim(uh)&&!1===this.isBalanceEdge(n)&&this.error(),e}var xh="Declaration",Ch="declaration",zh={important:[Boolean,String],property:String,value:["Value","Raw"]};function Lh(){let n,e=this.tokenStart,t=this.tokenIndex,a=Ih.call(this),o=sl(a),i=o?this.parseCustomProperty:this.parseValue,r=o?jh:vh,s=!1;this.skipSC(),this.eat(16);let l=this.tokenIndex;if(o||this.skipSC(),n=i?this.parseWithFallback(Sh,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(uh)&&(s=Th.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 Ah(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 Ih(){let n=this.tokenStart;if(9===this.tokenType)switch(this.charCodeAt(this.tokenStart)){case fh:case wh:case kh:case gh:case bh:this.next();break;case yh:this.next(),this.isDelim(yh)&&this.next()}return 4===this.tokenType?this.eat(4):this.eat(1),this.substrToCursor(n)}function Th(){this.eat(9),this.skipSC();let n=this.consume(1);return"important"===n||n}var Rh={};Vi(Rh,{generate:()=>Oh,name:()=>Mh,parse:()=>Nh,structure:()=>Bh});var Eh=38;function Dh(n){return this.Raw(n,this.consumeUntilSemicolonIncluded,!0)}var Mh="DeclarationList",Bh={children:[["Declaration","Atrule","Rule"]]};function Nh(){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),Dh));break;default:this.isDelim(Eh)?n.push(this.parseWithFallback(this.Rule,Dh)):n.push(this.parseWithFallback(this.Declaration,Dh))}return{type:"DeclarationList",loc:this.getLocationFromList(n),children:n}}function Oh(n){this.children(n,(n=>{"Declaration"===n.type&&this.token(17,";")}))}var Ph={};Vi(Ph,{generate:()=>Hh,name:()=>_h,parse:()=>qh,structure:()=>Fh});var _h="Dimension",Fh={value:String,unit:String};function qh(){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 Hh(n){this.token(12,n.value+n.unit)}var Uh={};Vi(Uh,{generate:()=>Jh,name:()=>Gh,parse:()=>Kh,structure:()=>Vh,walkContext:()=>Wh});var Gh="Function",Wh="function",Vh={name:String,children:[[]]};function Kh(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 Jh(n){this.token(2,n.name+"("),this.children(n),this.token(22,")")}var Yh={};Vi(Yh,{generate:()=>np,name:()=>Xh,parse:()=>Qh,structure:()=>$h,xxx:()=>Zh});var Zh="XXX",Xh="Hash",$h={value:String};function Qh(){let n=this.tokenStart;return this.eat(4),{type:"Hash",loc:this.getLocation(n,this.tokenStart),value:this.substrToCursor(n+1)}}function np(n){this.token(4,"#"+n.value)}var ep={};Vi(ep,{generate:()=>ip,name:()=>tp,parse:()=>op,structure:()=>ap});var tp="Identifier",ap={name:String};function op(){return{type:"Identifier",loc:this.getLocation(this.tokenStart,this.tokenEnd),name:this.consume(1)}}function ip(n){this.token(1,n.name)}var rp={};Vi(rp,{generate:()=>mp,name:()=>sp,parse:()=>cp,structure:()=>lp});var sp="IdSelector",lp={name:String};function cp(){let n=this.tokenStart;return this.eat(4),{type:"IdSelector",loc:this.getLocation(n,this.tokenStart),name:this.substrToCursor(n+1)}}function mp(n){this.token(9,"#"+n.name)}var dp={};Vi(dp,{generate:()=>gp,name:()=>hp,parse:()=>up,structure:()=>pp});var hp="MediaFeature",pp={name:String,value:["Identifier","Number","Dimension","Ratio",null]};function up(){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 gp(n){this.token(21,"("),this.token(1,n.name),null!==n.value&&(this.token(16,":"),this.node(n.value)),this.token(22,")")}var wp={};Vi(wp,{generate:()=>yp,name:()=>bp,parse:()=>kp,structure:()=>fp});var bp="MediaQuery",fp={children:[["Identifier","MediaFeature","WhiteSpace"]]};function kp(){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 yp(n){this.children(n)}var vp={};Vi(vp,{generate:()=>Cp,name:()=>jp,parse:()=>xp,structure:()=>Sp});var jp="MediaQueryList",Sp={children:[["MediaQuery"]]};function xp(){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 Cp(n){this.children(n,(()=>this.token(18,",")))}var zp={};Vi(zp,{generate:()=>Rp,name:()=>Ap,parse:()=>Tp,structure:()=>Ip});var Lp=38,Ap="NestingSelector",Ip={};function Tp(){let n=this.tokenStart;return this.eatDelim(Lp),{type:"NestingSelector",loc:this.getLocation(n,this.tokenStart)}}function Rp(){this.token(9,"&")}var Ep={};Vi(Ep,{generate:()=>Np,name:()=>Dp,parse:()=>Bp,structure:()=>Mp});var Dp="Nth",Mp={nth:["AnPlusB","Identifier"],selector:["SelectorList",null]};function Bp(){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 Np(n){this.node(n.nth),null!==n.selector&&(this.token(1,"of"),this.node(n.selector))}var Op={};Vi(Op,{generate:()=>qp,name:()=>Pp,parse:()=>Fp,structure:()=>_p});var Pp="Number",_p={value:String};function Fp(){return{type:"Number",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consume(10)}}function qp(n){this.token(10,n.value)}var Hp={};Vi(Hp,{generate:()=>Vp,name:()=>Up,parse:()=>Wp,structure:()=>Gp});var Up="Operator",Gp={value:String};function Wp(){let n=this.tokenStart;return this.next(),{type:"Operator",loc:this.getLocation(n,this.tokenStart),value:this.substrToCursor(n)}}function Vp(n){this.tokenize(n.value)}var Kp={};Vi(Kp,{generate:()=>Xp,name:()=>Jp,parse:()=>Zp,structure:()=>Yp});var Jp="Parentheses",Yp={children:[[]]};function Zp(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 Xp(n){this.token(21,"("),this.children(n),this.token(22,")")}var $p={};Vi($p,{generate:()=>tu,name:()=>Qp,parse:()=>eu,structure:()=>nu});var Qp="Percentage",nu={value:String};function eu(){return{type:"Percentage",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consumeNumber(11)}}function tu(n){this.token(11,n.value+"%")}var au={};Vi(au,{generate:()=>lu,name:()=>ou,parse:()=>su,structure:()=>ru,walkContext:()=>iu});var ou="PseudoClassSelector",iu="function",ru={name:String,children:[["Raw"],null]};function su(){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 lu(n){this.token(16,":"),null===n.children?this.token(1,n.name):(this.token(2,n.name+"("),this.children(n),this.token(22,")"))}var cu={};Vi(cu,{generate:()=>uu,name:()=>mu,parse:()=>pu,structure:()=>hu,walkContext:()=>du});var mu="PseudoElementSelector",du="function",hu={name:String,children:[["Raw"],null]};function pu(){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 uu(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 gu={};Vi(gu,{generate:()=>ju,name:()=>ku,parse:()=>vu,structure:()=>yu});var wu=47,bu=46;function fu(){this.skipSC();let n=this.consume(10);for(let e=0;e<n.length;e++){let t=n.charCodeAt(e);!Cr(t)&&t!==bu&&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 ku="Ratio",yu={left:String,right:String};function vu(){let n,e=this.tokenStart,t=fu.call(this);return this.skipSC(),this.eatDelim(wu),n=fu.call(this),{type:"Ratio",loc:this.getLocation(e,this.tokenStart),left:t,right:n}}function ju(n){this.token(10,n.left),this.token(9,"/"),this.token(10,n.right)}var Su={};function xu(){return this.tokenIndex>0&&13===this.lookupType(-1)?this.tokenIndex>1?this.getTokenStart(this.tokenIndex-1):this.firstCharOffset:this.tokenStart}Vi(Su,{generate:()=>Au,name:()=>Cu,parse:()=>Lu,structure:()=>zu});var Cu="Raw",zu={value:String};function Lu(n,e,t){let a,o=this.getTokenStart(n);return this.skipUntilBalanced(n,e||this.consumeUntilBalanceEnd),a=t&&this.tokenStart>o?xu.call(this):this.tokenStart,{type:"Raw",loc:this.getLocation(o,a),value:this.substring(o,a)}}function Au(n){this.tokenize(n.value)}var Iu={};function Tu(n){return this.Raw(n,this.consumeUntilLeftCurlyBracket,!0)}function Ru(){let n=this.SelectorList();return"Raw"!==n.type&&!1===this.eof&&23!==this.tokenType&&this.error(),n}Vi(Iu,{generate:()=>Nu,name:()=>Eu,parse:()=>Bu,structure:()=>Mu,walkContext:()=>Du});var Eu="Rule",Du="rule",Mu={prelude:["SelectorList","Raw"],block:["Block"]};function Bu(){let n,e,t=this.tokenIndex,a=this.tokenStart;return n=this.parseRulePrelude?this.parseWithFallback(Ru,Tu):Tu.call(this,t),e=this.Block(!0),{type:"Rule",loc:this.getLocation(a,this.tokenStart),prelude:n,block:e}}function Nu(n){this.node(n.prelude),this.node(n.block)}var Ou={};Vi(Ou,{generate:()=>qu,name:()=>Pu,parse:()=>Fu,structure:()=>_u});var Pu="Selector",_u={children:[["TypeSelector","IdSelector","ClassSelector","AttributeSelector","PseudoClassSelector","PseudoElementSelector","Combinator","WhiteSpace"]]};function Fu(){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 qu(n){this.children(n)}var Hu={};Vi(Hu,{generate:()=>Ku,name:()=>Uu,parse:()=>Vu,structure:()=>Wu,walkContext:()=>Gu});var Uu="SelectorList",Gu="selector",Wu={children:[["Selector","Raw"]]};function Vu(){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 Ku(n){this.children(n,(()=>this.token(18,",")))}var Ju={};Vi(Ju,{generate:()=>ag,name:()=>ng,parse:()=>tg,structure:()=>eg});Vi({},{decode:()=>$u,encode:()=>Qu});var Yu=92,Zu=34,Xu=39;function $u(n){let e=n.length,t=n.charCodeAt(0),a=t===Zu||t===Xu?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===Yu){if(t===o){t!==e-1&&(i=n.substr(t+1));break}if(a=n.charCodeAt(++t),Dr(Yu,a)){let e=t-1,a=Yr(n,e);t=a-1,i+=Qr(n.substring(e+1,a))}else 13===a&&10===n.charCodeAt(t+1)&&t++}else i+=n[t]}return i}function Qu(n,e){let t=e?"'":'"',a=e?Xu:Zu,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===Yu?(o+="\\"+n.charAt(e),i=!1):(i&&(zr(t)||Er(t))&&(o+=" "),o+=n.charAt(e),i=!1):o+="�"}return t+o+t}var ng="String",eg={value:String};function tg(){return{type:"String",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:$u(this.consume(5))}}function ag(n){this.token(5,Qu(n.value))}var og={};Vi(og,{generate:()=>dg,name:()=>sg,parse:()=>mg,structure:()=>cg,walkContext:()=>lg});var ig=33;function rg(n){return this.Raw(n,null,!1)}var sg="StyleSheet",lg="stylesheet",cg={children:[["Comment","CDO","CDC","Atrule","Rule","Raw"]]};function mg(){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)!==ig){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,rg);break;default:n=this.parseWithFallback(this.Rule,rg)}t.push(n)}return{type:"StyleSheet",loc:this.getLocation(e,this.tokenStart),children:t}}function dg(n){this.children(n)}var hg={};Vi(hg,{generate:()=>kg,name:()=>wg,parse:()=>fg,structure:()=>bg});var pg=42,ug=124;function gg(){1!==this.tokenType&&!1===this.isDelim(pg)&&this.error("Identifier or asterisk is expected"),this.next()}var wg="TypeSelector",bg={name:String};function fg(){let n=this.tokenStart;return this.isDelim(ug)?(this.next(),gg.call(this)):(gg.call(this),this.isDelim(ug)&&(this.next(),gg.call(this))),{type:"TypeSelector",loc:this.getLocation(n,this.tokenStart),name:this.substrToCursor(n)}}function kg(n){this.tokenize(n.name)}var yg={};Vi(yg,{generate:()=>Rg,name:()=>Ag,parse:()=>Tg,structure:()=>Ig});var vg=43,jg=45,Sg=63;function xg(n,e){let t=0;for(let a=this.tokenStart+n;a<this.tokenEnd;a++){let o=this.charCodeAt(a);if(o===jg&&e&&0!==t)return xg.call(this,n+t+1,!1),-1;zr(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 Cg(n){let e=0;for(;this.isDelim(Sg);)++e>n&&this.error("Too many question marks"),this.next()}function zg(n){this.charCodeAt(this.tokenStart)!==n&&this.error((n===vg?"Plus sign":"Hyphen minus")+" is expected")}function Lg(){let n=0;switch(this.tokenType){case 10:if(n=xg.call(this,1,!0),this.isDelim(Sg)){Cg.call(this,6-n);break}if(12===this.tokenType||10===this.tokenType){zg.call(this,jg),xg.call(this,1,!1);break}break;case 12:n=xg.call(this,1,!0),n>0&&Cg.call(this,6-n);break;default:if(this.eatDelim(vg),1===this.tokenType){n=xg.call(this,0,!0),n>0&&Cg.call(this,6-n);break}if(this.isDelim(Sg)){this.next(),Cg.call(this,5);break}this.error("Hex digit or question mark is expected")}}var Ag="UnicodeRange",Ig={value:String};function Tg(){let n=this.tokenStart;return this.eatIdent("u"),Lg.call(this),{type:"UnicodeRange",loc:this.getLocation(n,this.tokenStart),value:this.substrToCursor(n)}}function Rg(n){this.tokenize(n.value)}var Eg={};Vi(Eg,{generate:()=>Gg,name:()=>qg,parse:()=>Ug,structure:()=>Hg});Vi({},{decode:()=>_g,encode:()=>Fg});var Dg=32,Mg=92,Bg=34,Ng=39,Og=40,Pg=41;function _g(n){let e=n.length,t=4,a=n.charCodeAt(e-1)===Pg?e-2:e-1,o="";for(;t<a&&Er(n.charCodeAt(t));)t++;for(;t<a&&Er(n.charCodeAt(a));)a--;for(let i=t;i<=a;i++){let t=n.charCodeAt(i);if(t===Mg){if(i===a){i!==e-1&&(o=n.substr(i+1));break}if(t=n.charCodeAt(++i),Dr(Mg,t)){let e=i-1,t=Yr(n,e);i=t-1,o+=Qr(n.substring(e+1,t))}else 13===t&&10===n.charCodeAt(i+1)&&i++}else o+=n[i]}return o}function Fg(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===Dg||o===Mg||o===Bg||o===Ng||o===Og||o===Pg?(e+="\\"+n.charAt(a),t=!1):(t&&zr(o)&&(e+=" "),e+=n.charAt(a),t=!1):e+="�"}return"url("+e+")"}var qg="Url",Hg={value:String};function Ug(){let n,e=this.tokenStart;switch(this.tokenType){case 7:n=_g(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=$u(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 Gg(n){this.token(7,Fg(n.value))}var Wg={};Vi(Wg,{generate:()=>Yg,name:()=>Vg,parse:()=>Jg,structure:()=>Kg});var Vg="Value",Kg={children:[[]]};function Jg(){let n=this.tokenStart,e=this.readSequence(this.scope.Value);return{type:"Value",loc:this.getLocation(n,this.tokenStart),children:e}}function Yg(n){this.children(n)}var Zg={};Vi(Zg,{generate:()=>ew,name:()=>$g,parse:()=>nw,structure:()=>Qg});var Xg=Object.freeze({type:"WhiteSpace",loc:null,value:" "}),$g="WhiteSpace",Qg={value:String};function nw(){return this.eat(13),Xg}function ew(n){this.token(13,n.value)}var tw={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:Rm},aw={};Vi(aw,{AtrulePrelude:()=>iw,Selector:()=>rw,Value:()=>lw});function ow(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 iw={getNode:ow};var rw={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 sw(n){return null!==n&&"Operator"===n.type&&("-"===n.value[n.value.length-1]||"+"===n.value[n.value.length-1])}var lw={getNode:ow,onWhiteSpace(n,e){sw(n)&&(n.value=" "+n.value),sw(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}},cw={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}},mw={parse:{prelude(){return this.createSingleNodeList(this.MediaQueryList())},block(n=!1){return this.Block(n)}}};function dw(){return this.createSingleNodeList(this.Raw(this.tokenIndex,null,!1))}function hw(){return this.skipSC(),1===this.tokenType&&16===this.lookupNonWSType(1)?this.createSingleNodeList(this.Declaration()):pw.call(this)}function pw(){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(dw,this.scope.AtrulePrelude);break;case 1:n=this.Identifier();break;case 21:n=this.Parentheses(hw,this.scope.AtrulePrelude);break;default:break n}e.push(n)}return e}var uw={parse:{prelude(){let n=pw.call(this);return null===this.getFirstListNode(n)&&this.error("Condition is expected"),n},block(n=!1){return this.Block(n)}}},gw={"font-face":{parse:{prelude:null,block(){return this.Block(!0)}}},import:cw,media:mw,nest:{parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}},page:{parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}},supports:uw},ww={parse(){return this.createSingleNodeList(this.SelectorList())}},bw={parse(){return this.createSingleNodeList(this.Selector())}},fw={parse(){return this.createSingleNodeList(this.Identifier())}},kw={parse(){return this.createSingleNodeList(this.Nth())}},yw={dir:fw,has:ww,lang:fw,matches:ww,is:ww,"-moz-any":ww,"-webkit-any":ww,where:ww,not:ww,"nth-child":kw,"nth-last-child":kw,"nth-last-of-type":kw,"nth-of-type":kw,slotted:bw,host:bw,"host-context":bw},vw={};Vi(vw,{AnPlusB:()=>Gm,Atrule:()=>$m,AtrulePrelude:()=>od,AttributeSelector:()=>bd,Block:()=>Ad,Brackets:()=>Dd,CDC:()=>Pd,CDO:()=>Ud,ClassSelector:()=>Yd,Combinator:()=>oh,Comment:()=>dh,Declaration:()=>Lh,DeclarationList:()=>Nh,Dimension:()=>qh,Function:()=>Kh,Hash:()=>Qh,IdSelector:()=>cp,Identifier:()=>op,MediaFeature:()=>up,MediaQuery:()=>kp,MediaQueryList:()=>xp,NestingSelector:()=>Tp,Nth:()=>Bp,Number:()=>Fp,Operator:()=>Wp,Parentheses:()=>Zp,Percentage:()=>eu,PseudoClassSelector:()=>su,PseudoElementSelector:()=>pu,Ratio:()=>vu,Raw:()=>Lu,Rule:()=>Bu,Selector:()=>Fu,SelectorList:()=>Vu,String:()=>tg,StyleSheet:()=>mg,TypeSelector:()=>fg,UnicodeRange:()=>Tg,Url:()=>Ug,Value:()=>Jg,WhiteSpace:()=>nw});var jw={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:aw,atrule:gw,pseudo:yw,node:vw},Sw=(n=>Tm(Im({},n)))({...tw,...jw,...{node:Rm}});Vi({},{decode:()=>Cw,encode:()=>zw});var xw=92;function Cw(n){let e=n.length-1,t="";for(let a=0;a<n.length;a++){let o=n.charCodeAt(a);if(o===xw){if(a===e)break;if(o=n.charCodeAt(++a),Dr(xw,o)){let e=a-1,o=Yr(n,e);a=o-1,t+=Qr(n.substring(e+1,o))}else 13===o&&10===n.charCodeAt(a+1)&&a++}else t+=n[a]}return t}function zw(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)+" ":Ir(a)?e+=n.charAt(t):e+="\\"+n.charAt(t):e+="�"}return e}var{tokenize:Lw,parse:Aw,generate:Iw,lexer:Tw,createLexer:Rw,walk:Ew,find:Dw,findLast:Mw,findAll:Bw,toPlainObject:Nw,fromPlainObject:Ow,fork:Pw}=Sw;const _w=/^'(.*?)'$/,Fw=/^"(.*?)"$/,qw=["inherit","initial","unset"],Hw=["caption","icon","menu","message-box","small-caption","status-bar"],Uw=["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"],Gw=["normal","italic","oblique"],Ww=["normal","condensed","semi-condensed","extra-condensed","ultra-condensed","expanded","semi-expanded","extra-expanded","ultra-expanded"],Vw="[parse-css-font] ";function Kw(n){return new Error(Vw+n)}function Jw(n){return(n=n.match(_w)?n.replace(_w,"$1"):n.replace(Fw,"$1")).trim()}function Yw(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 Zw(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=Yw(a.value,a.sourceIndex)),t.push(Array.isArray(a.nodes)?new Xw(a):new $w(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 Xw(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 $w(n){this.after=n.after,this.before=n.before,this.type=n.type,this.value=n.value,this.sourceIndex=n.sourceIndex}Xw.prototype=Object.create($w.prototype),Xw.constructor=$w,Xw.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},Xw.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 Qw="___PRESERVED_TOKEN_",nb={maxLineLen:0,expandVars:!1,uglyComments:!1,cuteComments:!1,debug:!1,output:""},eb=/url\(\s*(["']?)data:/g,tb=/\s+/g,ab=/\n/g;const ob=/(=\s*?["']?)?#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])(\}|[^0-9a-f{][^{]*?\})/gi;const ib=/@[a-z0-9-_]*keyframes\s+[a-z0-9-_]+\s*{/gi,rb=/(^\s|\s$)/g;const sb=/"([^\\"])*"/g,lb=/"(\\.)*"/g,cb=/"(\\)*"/g,mb=/'([^\\']|\\.|\\)*'/g,db=/progid:DXImageTransform.Microsoft.Alpha\(Opacity=/gi,hb=/\r\n/g,pb=/[\r\n]/g,ub=/@variables\s*\{\s*([^}]+)\s*\}/g,gb=/\s*([a-z0-9-]+)\s*:\s*([^;}]+)\s*/gi,wb=/var\s*\(\s*([^)]+)\s*\)/g,bb=/calc\(([^;}]*)\)/g,fb=/(^\s*|\s*$)/g,kb=/\( /g,yb=/ \)/g,vb=/\s*filter:\s*progid:DXImageTransform.Microsoft.Matrix\(([^)]+)\);/g,jb=/(^|\})(([^{:])+:)+([^{]*{)/g,Sb=/\s+([!{;:>+()\],])/g,xb=/([^\\])\s+([}])/g,Cb=/!important/g,zb=/___PSEUDOCLASSCOLON___/g,Lb=/:/g,Ab=/\s*(animation|animation-delay|animation-duration|transition|transition-delay|transition-duration):\s*([^;}]+)/gi,Ib=/(^|\D)0?\.?0(m?s)/gi,Tb=/\s*(flex|flex-basis):\s*([^;}]+)/gi,Rb=/\s+/,Eb=/(hsla?)\(([^)]+)\)/g,Db=/(^\s+|\s+$)/g,Mb=/:first-(line|letter)(\{|,)/gi,Bb=/^(.*)(@charset)( "[^"]*";)/gi,Nb=/^((\s*)(@charset)( [^;]+;\s*))+/gi,Ob=/@(font-face|import|(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?keyframe|media|page|namespace)/gi,Pb=/:(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,_b=/^(.*)(@charset "[^"]*";)/g,Fb=/^(\s*@charset [^;]+;\s*)+/g,qb=/:(lang|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?any)\(/gi,Hb=/([:,( ]\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,Ub=/\s*\/\*/g,Gb=/\*\/\s*/g,Wb=/\band\(/gi,Vb=/([^:])not\(/gi,Kb=/\bor\(/gi,Jb=/([!{}:;>+([,])\s+/g,Yb=/;+\}/g,Zb=/([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,Xb=/:0 0 0 0(;|\})/g,$b=/:0 0 0(;|\})/g,Qb=/(transform-origin|webkit-transform-origin|moz-transform-origin|o-transform-origin|ms-transform-origin|box-shadow):0(;|\})/gi,nf=/(:|\s)0+\.(\d+)/g,ef=/rgb\s*\(\s*([0-9,\s]+)\s*\)/gi,tf=/(border|border-top|border-right|border-bottom|border-left|outline|background):none(;|\})/gi,af=/progid:DXImageTransform\.Microsoft\.Alpha\(Opacity=/gi,of=/\(([-A-Za-z]+):([0-9]+)\/([0-9]+)\)/g,rf=/___QUERY_FRACTION___/g,sf=/;;+/g,lf=/(:|\s)(#f00)(;|})/g,cf=/___PRESERVED_NEWLINE___/g,mf=/(:|\s)(#000080)(;|})/g,df=/(:|\s)(#808080)(;|})/g,hf=/(:|\s)(#808000)(;|})/g,pf=/(:|\s)(#800080)(;|})/g,uf=/(:|\s)(#c0c0c0)(;|})/g,gf=/(:|\s)(#008080)(;|})/g,wf=/(:|\s)(#ffa500)(;|})/g,bf=/(:|\s)(#800000)(;|})/g;function ff(n="",e=nb){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(db,"alpha(opacity="),a.push(n),e+Qw+(a.length-1)+"___"+e}))}n=function(n,e){const t=eb,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(tb,""):(t=t.replace(ab," "),t=t.replace(tb," "),t=t.replace(Db,"")),e.push(t);const i="url("+Qw+(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(sb),r(lb),r(cb),r(mb);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,Qw+(a.length-1)+"___"))}n=n.replace(`/*${r}*/`,"")}else a.push("\\"),n=n.replace(r,Qw+(a.length-1)+"___"),o+=1,a.push(""),n=n.replace("___PRESERVE_CANDIDATE_COMMENT_"+o+"___",Qw+(a.length-1)+"___");else e.cuteComments?a.push(i.substring(1).replace(hb,"\n")):e.uglyComments?a.push(i.substring(1).replace(pb,"")):a.push(i),n=n.replace(r,Qw+(a.length-1)+"___")}if(e.expandVars){const e={};o=ub,n=n.replace(o,((n,t)=>(o=gb,t.replace(o,((n,t,a)=>(t&&a&&(e[t]=a),""))),""))),o=wb,n=n.replace(o,((n,t)=>e[t]||"none"))}n=n.replace(tb," "),o=bb,n=n.replace(o,((n,e)=>(a.push("calc("+e.replace(fb,"").replace(kb,"(").replace(yb,")")+")"),Qw+(a.length-1)+"___"))),o=vb,n=n.replace(o,((n,e)=>(a.push(e),"filter:progid:DXImageTransform.Microsoft.Matrix("+Qw+(a.length-1)+"___);")));try{o=jb,n=n.replace(o,(n=>n.replace(Lb,"___PSEUDOCLASSCOLON___")))}catch(n){}if(n=(n=(n=(n=n.replace(Sb,"$1")).replace(xb,"$1$2")).replace(Cb," !important")).replace(zb,":"),o=Ab,n=n.replace(o,((n,e,t)=>e+":"+(t=t.replace(Ib,((n,e,t)=>(a.push("0"+t),e+Qw+(a.length-1)+"___")))))),o=Tb,n=function(n,e){const t=ib;let a,o=0;const i=(n,t)=>{"0"===(n=n.replace(rb,"")).charAt(0)&&(e.push(n),a[t]=Qw+(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(rb,"")):1===e&&(a=a.split(","),a.forEach(i),l.push(a.join(",").replace(rb,""))),a="",e+=1;else if("}"===t){if(2===e)l.push("{"+a.replace(rb,"")+"}"),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(Rb);return a.push(o.pop()),o.push(Qw+(a.length-1)+"___"),o=o.join(" "),`${e}:${o}`}))).replace(Eb,((n,e,t)=>{const o=[];return t.split(",").forEach((n=>{"0%"===(n=n.replace(Db,""))?(a.push("0%"),o.push(Qw+(a.length-1)+"___")):o.push(n)})),e+"("+o.join(",")+")"})),a),n=n.replace(Mb,((n,e,t)=>":first-"+e.toLowerCase()+" "+t)),n=e.cuteComments?(n=n.replace(Ub,"___PRESERVED_NEWLINE___/*")).replace(Gb,"*/___PRESERVED_NEWLINE___"):n.replace(Gb,"*/"),o=Bb,n=n.replace(o,((n,e,t,a)=>t.toLowerCase()+a+e)),o=Nb,n=n.replace(o,((n,e,t,a,o)=>t+a.toLowerCase()+o)),o=Ob,n=n.replace(o,((n,e)=>"@"+e.toLowerCase())),o=Pb,n=(n=(n=n.replace(o,((n,e)=>":"+e.toLowerCase()))).replace(_b,"$2$1")).replace(Fb,"$1"),o=qb,n=n.replace(o,((n,e)=>":"+e.toLowerCase()+"(")),o=Hb,n=(n=(n=(n=(n=(n=(n=(n=(n=n.replace(o,((n,e,t)=>e+t.toLowerCase()))).replace(Wb,"and (")).replace(Vb,"$1not (")).replace(Kb,"or (")).replace(Jb,"$1")).replace(Yb,"}")).replace(Zb,"$1$2")).replace(Xb,":0$1")).replace($b,":0$1"),o=Qb,n=(n=n.replace(o,((n,e,t)=>e.toLowerCase()+":0 0"+t))).replace(nf,"$1.$2"),o=ef,n=function(n){const e=ob,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(lf,"$1red$3")).replace(mf,"$1navy$3")).replace(df,"$1gray$3")).replace(hf,"$1olive$3")).replace(pf,"$1purple$3")).replace(uf,"$1silver$3")).replace(gf,"$1teal$3")).replace(wf,"$1orange$3")).replace(bf,"$1maroon$3"),o=tf,n=(n=(n=(n=n.replace(o,((n,e,t)=>e.toLowerCase()+":0"+t))).replace(af,"alpha(opacity=")).replace(of,"($1:$2___QUERY_FRACTION___$3)")).replace(rf,"/"),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(sf,";")).replace(fb,""),a.length>1e3)return i;for(let e=a.length-1;e>=0;e--)n=n.replace(Qw+e+"___",a[e],"g");return n=n.replace(cf,"\n")}function kf(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 yf,vf,jf,Sf;yf={},yf.removeLeadingAndTrailingHTTPWhitespace=n=>n.replace(/^[ \t\n\r]+/,"").replace(/[ \t\n\r]+$/,""),yf.removeTrailingHTTPWhitespace=n=>n.replace(/[ \t\n\r]+$/,""),yf.isHTTPWhitespaceChar=n=>" "===n||"\t"===n||"\n"===n||"\r"===n,yf.solelyContainsHTTPTokenCodePoints=n=>/^[-!#$%&'*+.^_`|~A-Za-z0-9]*$/.test(n),yf.soleyContainsHTTPQuotedStringTokenCodePoints=n=>/^[\t\u0020-\u007E\u0080-\u00FF]*$/.test(n),yf.asciiLowercase=n=>n.replace(/[A-Z]/g,(n=>n.toLowerCase())),yf.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}=yf;jf=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}=yf;vf=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=vf,e=jf,{asciiLowercase:t,solelyContainsHTTPTokenCodePoints:a,soleyContainsHTTPQuotedStringTokenCodePoints:o}=yf;Sf=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 xf={normalizeFontFamily:kn,flatten:Ln,getFontWeight:xn,removeQuotes:Sn},Cf=/\s*,\s*/,zf=/-/,Lf=/\?/g,Af=/^U\+/i,If=[/^normal$/,/^italic$/,/^oblique$/,/^oblique\s+/];function Tf(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,Rf(t,i,a),s=qf(n,t,r,s))})),t.forEach((n=>{const e=Nf(n,a);e.length&&i.used.push(e),s=Hf(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=>xf.normalizeFontFamily(n)))||n}return n})))),i.used=i.used.map((n=>xf.flatten(n))));let l,c;return 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)))),e.forEach((n=>{const e=n.stylesheet.children;e&&(Ef(e,i.declared,l,c,s),o.rules.discarded-=e.size)})),o}function Rf(n,e,t){n.forEach((n=>{if("Atrule"==n.type&&("media"==n.name||"supports"==n.name||"layer"==n.name)&&n.block&&n.block.children)Rf(n.block.children,e,t);else if("Rule"==n.type){const a=Nf(n.block,t);a.length&&e.used.push(a)}else if("Atrule"==n.type&&"font-face"==n.name){const t=xf.normalizeFontFamily(Bf(n.block.children,"font-family"));if(t){const a=Bf(n.block.children,"font-weight")||"400",o=Bf(n.block.children,"font-style")||"normal",i=Bf(n.block.children,"font-variant")||"normal";a.split(",").forEach((n=>e.declared.push({fontFamily:t,fontWeight:xf.getFontWeight(xf.removeQuotes(n)),fontStyle:o,fontVariant:i})))}}}))}function Ef(n,e,t,a,o){const i=[];for(let r=n.head;r;r=r.next){const n=r.data;if("Atrule"==n.type&&("media"==n.name||"supports"==n.name||"layer"==n.name)&&n.block&&n.block.children)Ef(n.block.children,e,t,a,o);else if("Atrule"==n.type&&"font-face"==n.name){const s=xf.normalizeFontFamily(Bf(n.block.children,"font-family"));if(s){const l=Bf(n.block.children,"unicode-range");!t.find((n=>n.fontFamily==s))&&Gf(o,l)&&Df(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 Df(n,e,t,a){let o;const i=a&&a.get(e);if(i&&i.length){let a=Bf(n.block.children,"font-style")||"normal";if(If.find((n=>a.trim().match(n)))){const r=xf.getFontWeight(Bf(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=>Pf(n,a,s)));o=Mf(r,l),o||(l=i.map((n=>((n=Array.from(n))[2]="normal",Pf(n,a,s)))),o=Mf(r,l),o||(l=i.map((n=>((n=Array.from(n))[2]=a="normal",Pf(n,a,s)))),o=Mf(r,l)))}else o=!0}else o=!0;return o}function Mf(n,e){let t;for(const a of n.split(","))t=t||e.includes(xf.getFontWeight(xf.removeQuotes(a.trim())));return t}function Bf(n,e){let t;if(n&&(t=n.filter((n=>n.property==e)).tail),t)try{return xf.removeQuotes(Iw(t.data.value)).toLowerCase()}catch(n){}}function Nf(n,e){let t=n.children.filter((n=>"font-family"==n.property)).tail,a=[];t&&(t.data.value.children?Of(t.data.value,a):(t=Iw(t.data.value),t&&a.push(xf.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=Iw(n).match(/^var\((--.*)\)$/);t&&t[1]&&(n=Aw(globalThis.getComputedStyle(e.doc.body).getPropertyValue(t[1]),{context:"value"}));const i=function(n){const e=Iw(n);if(-1!==Hw.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=Iw(n.data);if("normal"!==e&&-1===qw.indexOf(e))if(-1===Uw.indexOf(e))if(-1===Gw.indexOf(e))if(-1===Ww.indexOf(e)){if("Dimension"==n.data.type){if(a.size=Iw(n.data),n=n.next,n&&"Operator"==n.data.type&&"/"==n.data.value&&n.next?(n=n.next,a.lineHeight=Iw(n.data),n=n.next):"Operator"==t.head.data.type&&"/"==t.head.data.value&&t.head.next&&(a.lineHeight=Iw(t.head.next.data),n=t.head.next.next),!n)throw Kw("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+=" "+Iw(n.data),n=n.next;else e=Jw(Iw(n.data)),n=n.next;e=e.trim(),e&&(a.family.push(e),e="")}return a}if("normal"!==a.variant)throw Kw("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 Kw("Missing required font-size.")}(n);i.family.forEach((n=>a.push(xf.normalizeFontFamily(n))))}catch(n){}return a}function Of(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(xf.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(xf.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?Of(o.data,e):e.push(xf.normalizeFontFamily(o.data.value))),t=t.next}else"String"==t.data.type?(e.push(xf.normalizeFontFamily(t.data.value)),t=t.next):"Number"==t.data.type?(e.push(xf.normalizeFontFamily(String(t.data.value))),t=t.next):t=t.next}function Pf(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=_f(e,t)),a||(a=Ff(e,t))),e<400&&(a=t.slice().reverse().find((n=>n[n.length-1]<=e)),a||(a=Ff(e,t))),e>500&&(a=t.find((n=>n[0]>=e)),a||(a=_f(e,t)))):a=t[0]}return a?a.join(" "):void 0}function _f(n,e){return e.slice().reverse().find((e=>e[e.length-1]<n))}function Ff(n,e){return e.find((e=>e[0]>n))}function qf(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?"Rule"==e.type&&(a=Hf(e.block.children,t,a)):a=qf(n,e.block.children,t,a))})),a}function Hf(n,e,t){const a=Uf(n,"content",e),o=Uf(n,"quotes",e);return t.includes(a)||(t+=a),t.includes(o)||(t+=o),t}function Uf(n,e,t){const a=Bf(n,e)||"";return a?(t.textContent='tmp { content:"'+a+'"}',t.sheet&&t.sheet.cssRules?xf.removeQuotes(t.sheet.cssRules[0].style.getPropertyValue("content")):a):""}function Gf(n,e){if(e){const t=e.split(Cf);let a;const o=t.filter((e=>{const t=e.split(zf);let o;if(2==t.length&&(t[0]=Wf(t[0]),o="["+t[0]+"-"+Wf("U+"+t[1])+"]"),1==t.length)if(t[0].includes("?")){const n=Wf(t[0]),e=n;o="["+n.replace(Lf,"0")+"-"+e.replace(Lf,"F")+"]"}else t[0]&&(o="["+Wf(t[0])+"]");if(o)try{return new RegExp(o,"u").test(n)}catch(n){return a=!0,!1}return!0}));return!a&&(!t.length||o.length)}return!0}function Wf(n){for(n=n.replace(Af,"");n.length<6;)n="0"+n;return"\\u{"+n+"}"}const Vf="all",Kf=["after","before","first-letter","first-line","placeholder","selection","part","marker"],Jf="sf-hidden",Yf="display",Zf=/-(ms|webkit|moz|o)-/;class Xf{constructor(n,e,t){this.doc=n,this.mediaAllInfo=$f(Vf);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((e=>{if(!e.scoped){const r=e.stylesheet.children;if(r)if(e.mediaText&&e.mediaText!=Vf){const s=$f(e.mediaText);this.mediaAllInfo.medias.set("style-"+o+"-"+e.mediaText,s),Qf(n,r,s,o,t,a,i)}else Qf(n,r,this.mediaAllInfo,o,t,a,i)}o++})),ak(this.mediaAllInfo),ek(this.mediaAllInfo,[],this.mediaAllInfo,i,r),i.remove(),r.remove()}getMediaAllInfo(){return this.mediaAllInfo}}function $f(n){const e={media:n,elements:new Map,medias:new Map,rules:new Map,pseudoRules:new Map};return n==Vf&&(e.matchedStyles=new Map),e}function Qf(n,e,t,a,o,i,r){let s=0,l=0;e.forEach((e=>{if(e.block&&e.block.children&&e.prelude&&e.prelude.children)if("Atrule"==e.type&&"media"==e.name){const l=Iw(e.prelude),c=$f(l);t.medias.set("rule-"+a+"-"+s+"-"+l,c),s++,Qf(n,e.block.children,c,a,o,i,r)}else if("Rule"==e.type){const s=e.prelude.children.toArray(),c=e.prelude.children.toArray().map((n=>Iw(n))),m={ruleData:e,mediaInfo:t,ruleIndex:l,sheetIndex:a,matchedSelectors:new Set,declarations:new Set,selectors:s,selectorsText:c};if(!function(n,e){return e.textContent=n+"{}",e.sheet?!e.sheet.cssRules.length:e.sheet}(c.join(","),r)||c.find((n=>n.includes("|"))))for(let t=e.prelude.children.head,a=0;t;t=t.next,a++){const e=c[a];nk(n,{selector:t,selectorText:e,ruleInfo:m},o,i)}l++}}))}function nk(n,e,t,a){const o=function(n,e){const t=[];let a;i(n={data:Aw(Iw(n.data),{context:"selector"})}),a&&(e=Iw(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,Aw("*",{context:"selector"}).children.head)})),e=Iw(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)||Kf.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!="."+Jf&&(s=Array.from(n.querySelectorAll(i)).filter((n=>!n.classList.contains(Jf)&&("none"!=n.style.getPropertyValue(Yf)||"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=ok(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 ek(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=Iw(e);if("Declaration"==e.type&&(r.match(Zf)||!a.has(e.property)||e.important)&&!tk(r,i)){const o=n.get(e);(!o||e.important&&!o.important)&&(n.set(e,{selectorInfo:t,important:e.important}),r.match(Zf)||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=>ek(i,[n,...e],t,a,o)))}function tk(n,e){let t;return e.style=n,e.style.length||n.match(Zf)||(t=!0),t}function ak(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(ak)}function ok(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=>ok(n,e))),e}const ik={flatten:Ln},rk="all",sk="screen";function lk(n){const e={processed:0,discarded:0};return n.forEach(((t,a)=>{if(mk(t.mediaText||rk)&&t.stylesheet.children){ck(t.stylesheet.children,e).forEach((({cssRules:n,cssRule:e})=>n.remove(e)))}else n.delete(a),a.element&&a.element.remove()})),e}function ck(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++,mk(Iw(o.prelude))?ck(o.block.children,e,t):(t.push({cssRules:n,cssRule:a}),e.discarded++))}return t}function mk(n){return ik.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 $w({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 Xw({type:"media-query",value:a.trim(),sourceIndex:t+i.length,nodes:Zw(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 Xw({type:"media-query",value:i.trim(),sourceIndex:t+r.length,nodes:Zw(i,t),before:r,after:/(\s*)$/.exec(i)[1]})),e}(n).map((n=>dk(n,sk)))).find((n=>!n.not&&(n.value==sk||n.value==rk)||n.not&&(n.value==rk||n.value==sk)))}function dk(n,e,t=[]){return n.nodes.map(((a,o)=>{if("media-query"==a.type)return dk(a,e,t);if("media-type"==a.type){const e={not:Boolean(o&&"keyword"==n.nodes[0].type&&"not"==n.nodes[0].value),value:a.value};t.find((n=>e.not==n.not&&e.value==n.value))||t.push(e)}})),t.length||t.push({not:!1,value:rk}),t}function hk(n,e,t){const a={processed:0,discarded:0};let o=0;return n.forEach((n=>{if(!n.scoped){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,pk(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 pk(n,e,t){let a=0;const o=[];for(let i=n.head;i;i=i.next){const n=i.data;if(n.block&&n.block.children&&n.prelude&&n.prelude.children){if("Atrule"==n.type&&"media"==n.name){const r=Iw(n.prelude);pk(n.block.children,e,t.medias.get("rule-"+e+"-"+a+"-"+r)),n.prelude.children.size&&n.block.children.size||o.push(i),a++}else if("Rule"==n.type){const e=t.rules.get(n),a=t.pseudoRules.get(n);e||a?e&&(uk(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 uk(n,e,t){const a=[],o=[];let i;for(let a=n.prelude.children.head;a;a=a.next){const n=Iw(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 gk="data:,";function wk(n){n.querySelectorAll("picture").forEach((n=>{const e=n.querySelector("img");if(e){let{src:t,srcset:a}=bk(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=>kk(n.src))),t=e&&e.src,t==gk&&(t=null));a||(e=n.find((n=>kk(n.srcset))),a=e&&e.srcset,a==gk&&(a=null));return{src:t,srcset:a}}(Array.from(n.querySelectorAll("source")).reverse());t=e.src,a||(a=e.srcset)}fk({src:t,srcset:a},e,n)}})),n.querySelectorAll(":not(picture) > img[srcset]").forEach((n=>fk(bk(n),n)))}function bk(n){let e=n.getAttribute("src");e==gk&&(e=null);let t=kk(n.getAttribute("srcset"));return t==gk&&(t=null),{src:e,srcset:t}}function fk(n,e,t){n.src?(e.setAttribute("src",n.src),e.setAttribute("srcset",""),e.setAttribute("sizes","")):(e.setAttribute("src",gk),n.srcset?e.setAttribute("srcset",n.srcset):(e.setAttribute("srcset",""),e.setAttribute("sizes",""))),t&&t.querySelectorAll("source").forEach((n=>n.remove()))}function kk(n){if(n)try{const e=kf(n);if(e.length)return e.find((n=>n.url)).url}catch(n){}}const yk=["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"],vk=["SCRIPT","STYLE","PRE","TEXTAREA"],jk=["id","class","style","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup"],Sk={FORM:{method:"get"},SCRIPT:{language:"javascript",type:"text/javascript",charset:n=>!n.getAttribute("src")},STYLE:{media:"all",type:"text/css"},LINK:{media:"all"}},xk=/[ \t\f\r]+/g,Ck=/[\n]+/g,zk=/^\s+$/,Lk=4294967295,Ak=[function(n){1==n.nodeType&&Array.from(n.attributes).forEach((e=>{yk.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=Ik(t);for(;a;)t=t.parentElement,a=t&&Ik(t);(!t||a)&&e.length>1&&(n.textContent=e.replace(xk,function(n){return n.parentElement&&"HEAD"==Tk(n.parentElement)?"\n":" "}(n)).replace(Ck,"\n"))}}},function(n){if(8==n.nodeType&&"HTML"!=Tk(n.parentElement))return!n.textContent.toLowerCase().trim().startsWith("[if")},function(n){1==n.nodeType&&Array.from(n.attributes).forEach((e=>{if(jk.includes(e.name.toLowerCase())){const t=n.getAttribute(e.name);(""==t||(t||"").match(zk))&&n.removeAttribute(e.name)}}))},function(n){if(1==n.nodeType){const e=Sk[Tk(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"==Tk(n)&&"application/ld+json"==n.type&&n.textContent.trim())try{n.textContent=JSON.stringify(JSON.parse(n.textContent))}catch(n){}},n=>function(n,e,t){if(1==n.nodeType&&Tk(n)==e.toUpperCase()){let e=n.previousSibling;const a=[];for(;e&&3==e.nodeType&&!e.textContent.trim();)a.push(e),e=e.previousSibling;e&&1==e.nodeType&&e.tagName==n.tagName&&t(n,e)&&(n.textContent=e.textContent+n.textContent,a.forEach((n=>n.remove())),e.remove())}}(n,"style",((n,e)=>n.parentElement&&"HEAD"==Tk(n.parentElement)&&n.media==e.media&&n.title==e.title))];function Ik(n){return n&&!vk.includes(Tk(n))}function Tk(n){return n.tagName&&n.tagName.toUpperCase()}const Rk=1048576,Ek=["~","+","\\\\","?","%","*",":","|",'"',"<",">","\0-",""],Dk={"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"},Mk="application/octet-stream",Bk=globalThis.URL,Nk=globalThis.DOMParser,Ok=globalThis.Blob,Pk=globalThis.FileReader,_k=(n,e)=>globalThis.fetch(n,e),Fk=globalThis.TextDecoder;async function qk(n,e,t,a,o){if(t)if(e.asBinary)if(e.inline){const n=new Pk;n.readAsDataURL(new Ok([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 Fk(a).decode(t)}catch(n){t=new Fk(a="utf-8").decode(t)}t=t.replace(/\ufeff/gi,"")}else e.inline&&(t=e.asBinary?cn:"");return{data:t,resourceURL:n,charset:a,contentType:o}}function Hk(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 Uk=((Gk=Gk||{}).fetch=Gk.fetch||_k,Gk.frameFetch=Gk.frameFetch||Gk.fetch||_k,{getDoctypeString:Hk,getFilenameExtension(n,e,t){const a=new Bk(n).pathname.match(/(\.[^\\/.]*)$/);return(a&&a[1]&&this.getValidFilename(a[1],e,t)||"").toLowerCase()},getContentTypeExtension:n=>Dk[n]||"",getContent:async function(n,e){let t,a,o,i;const r=Gk.fetch,s=Gk.frameFetch;if(e.blockMixedContent&&/^https:/i.test(e.baseURI)&&!/^https:/i.test(n))return qk(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 qk(n,e)}finally{i(),e.networkTimeout&&globalThis.clearTimeout(a)}let l;try{l=await t.arrayBuffer()}catch(t){return e.inline?{data:e.asBinary?cn:"",resourceURL:n}:{resourceURL:n}}n=t.url||n;let c,m="";try{const n=new Sf(t.headers.get("content-type"));m=n.type+"/"+n.subtype,c=n.parameters.get("charset")}catch(n){}if((!m||m==Mk&&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?Mk:"")),!c&&e.charset&&(c=e.charset),e.asBinary){if(t.status>=400)return qk(n,e);try{return e.maxResourceSizeEnabled&&l.byteLength>e.maxResourceSize*Rk?qk(n,e):qk(n,e,l,null,m)}catch(t){return qk(n,e)}}else{if(t.status>=400||e.validateTextContentType&&m&&!m.startsWith("text/"))return qk(n,e);if(c||(c="utf-8"),e.maxResourceSizeEnabled&&l.byteLength>e.maxResourceSize*Rk)return qk(n,e,null,c);try{return qk(n,e,l,c,m)}catch(t){return qk(n,e,null,c)}}},parseURL:(n,e)=>void 0===e?new Bk(n):new Bk(n,e),resolveURL(n,e){return this.parseURL(n,e).href},getSearchParams:n=>Array.from(new URLSearchParams(n)),getValidFilename:(n,e=Ek,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 Nk).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 Nk).parseFromString(n,"text/xml"),parseSVGContent(n){const e=(new Nk).parseFromString(n,"image/svg+xml");return e.querySelector("parsererror")?(new Nk).parseFromString(n,"text/html"):e},digest:async(n,e)=>zn(n,e),getContentSize:n=>Cn(n),formatFilename:(n,e,t)=>Bn(n,e,t),evalTemplate:async(n,e,t,a,o)=>Nn(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,Lk,null,!1);let a=t.nextNode();for(;a;){const n=Ak.find((n=>n(a,e))),o=a;a=t.nextNode(),n&&o.remove()}}(n,e),minifyCSSRules:(n,e,t)=>hk(n,e,t),removeUnusedFonts:(n,e,t,a)=>Tf(n,e,t,a),getMediaAllInfo:(n,e,t)=>function(n,e,t){return new Xf(n,e,t).getMediaAllInfo()}(n,e,t),compressCSS:(n,e)=>ff(n,e),minifyMedias:n=>lk(n),removeAlternativeImages:n=>wk(n),parseSrcset:n=>kf(n),preProcessDoc:(n,e,t)=>gn(n,e,t),postProcessDoc(n,e,t){!function(n,e,t){if(n.querySelectorAll("["+Z+"]").forEach((n=>{n.textContent=n.getAttribute(Z),n.removeAttribute(Z)})),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=[B,P,N,_,H,U,G,W,K,F,Y,Q];e=n.querySelectorAll(t.map((n=>"["+n+"]")).join(","))}e.forEach((n=>{n.removeAttribute(B),n.removeAttribute(N),n.removeAttribute(O),n.removeAttribute(P),n.removeAttribute(_),n.removeAttribute(H),n.removeAttribute(U),n.removeAttribute(G),n.removeAttribute(W),n.removeAttribute(K),n.removeAttribute(F),n.removeAttribute(Y),n.removeAttribute(Q),n.removeAttribute(V)})),t&&t.forEach(((n,e)=>n.replaceWith(e)))}(n,e,t)},serialize:(n,e)=>l(n,e),removeQuotes:n=>Sn(n),appendInfobar:(n,e)=>function(n,e,t){return z(n,e,t)}(n,e),ON_BEFORE_CAPTURE_EVENT_NAME:T,ON_AFTER_CAPTURE_EVENT_NAME:R,WIN_ID_ATTRIBUTE_NAME:q,REMOVED_CONTENT_ATTRIBUTE_NAME:B,HIDDEN_CONTENT_ATTRIBUTE_NAME:N,HIDDEN_FRAME_ATTRIBUTE_NAME:P,IMAGE_ATTRIBUTE_NAME:H,POSTER_ATTRIBUTE_NAME:U,VIDEO_ATTRIBUTE_NAME:G,CANVAS_ATTRIBUTE_NAME:W,STYLE_ATTRIBUTE_NAME:V,INPUT_VALUE_ATTRIBUTE_NAME:K,SHADOW_ROOT_ATTRIBUTE_NAME:F,PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME:_,STYLESHEET_ATTRIBUTE_NAME:Y,SELECTED_CONTENT_ATTRIBUTE_NAME:X,INVALID_ELEMENT_ATTRIBUTE_NAME:$,COMMENT_HEADER:"Page saved with SingleFile",COMMENT_HEADER_LEGACY:"Archive processed by SingleFile",SINGLE_FILE_UI_ELEMENT_CLASS:sn,EMPTY_RESOURCE:cn,INFOBAR_TAGNAME:ln,WAIT_FOR_USERSCRIPT_PROPERTY_NAME:"_singleFile_waitForUserScript",NO_SCRIPT_PROPERTY_NAME:"singleFileDisabledNoscript"});var Gk;const Wk={serialize:(n,e)=>l(n,e),getDoctypeString:n=>Uk.getDoctypeString(n),appendInfobar:(n,e,t)=>z(n,e,t),extractInfobarData:n=>L(n),displayIcon:(n,e)=>function(n,e){const t=L(n);t.saveUrl&&(z(n,t,e),A(n,t))}(n,e),zip:Pi,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=";charset=utf-8",p=/([{}()^$&.*?/+|[\\\\]|\]|-)/g;Array.isArray(n)&&(n=new Blob([new Uint8Array(n)])),zip.configure(o);const u=new zip.BlobReader(n),g=new zip.ZipReader(u),w=await g.getEntries(),b={password:e};let f,k,y,v=[],j=[];await Promise.all(w.map((async n=>{const{filename:e}=n;let a,o,c,p;const u={};if(e.match(m)?j.push(u):v.push(u),!b.password&&n.encrypted&&(b.password=t("Please enter the password to view the page")),e.match(m)||e.match(s)||e.match(l))a=new zip.TextWriter,c=await n.getData(a,b),e.match(m)?p="text/html"+h:(e.match(s)?p="text/css"+h:e.match(l)&&(p="text/javascript"+h),o=void 0!==c?i?await S(c,p):URL.createObjectURL(new Blob([c],{type:p})):"data:text/plain,");else{const t=e.match(/\.([^.]+)/);if(p=t&&t[1]&&r[t[1]]?r[t[1]]:"application/octet-stream",e.match(d)||i)o=await n.getData(new zip.Data64URIWriter(p),b);else{const e=await n.getData(new zip.BlobWriter(p),b);o=URL.createObjectURL(e)}}const g=n.filename.match(/^([0-9_]+\/)?(.*)$/)[2];Object.assign(u,{filename:n.filename,name:g,url:n.comment,content:o,mimeType:p,textContent:c,parentResources:[]})}))),await g.close(),j.sort((function(n,e){return e.filename.length-n.filename.length})),v=v.concat(...j);for(const n of v){let{textContent:e,mimeType:t,filename:o}=n;if(void 0!==e){let r="";const s=o.match(/(.*\/)[^/]+$/);if(s&&s[1]&&(r=s[1]),o.match(c)&&(k=e),!o.match(l)){const t=o;await Promise.all(v.map((async n=>{const{filename:a,parentResources:o,content:i}=n;if(a.startsWith(r)&&a!=t){const n=a.substring(r.length);if(!n.match(/manifest\.json$/)){-1!=e.indexOf(n)&&(o.push(t),e=x(e,n,i))}}}))),n.textContent=e}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(m)||o.match(d)||i?n.content=await S(e,t):n.content=URL.createObjectURL(new Blob([e],{type:t})),o.match(c)&&(f=e,y=n.url)}}return{docContent:f,origDocContent:k,resources:v,url:y};async function S(n,e){const t=new FileReader;return t.readAsDataURL(new Blob([n],{type:e})),new Promise(((n,e)=>{t.onload=()=>n(t.result.replace(h,"")),t.onerror=e}))}function x(n,e,t){if("function"==typeof n.replaceAll)return n.replaceAll(e,t);{const a=new RegExp(e.replace(p,"\\$1"),"g");return n.replace(a,t)}}},display:async function(n,e,{disableFramePointerEvents:t}={}){const a="data-single-file-disabled-noscript",o=(new DOMParser).parseFromString(e,"text/html");o.querySelectorAll("noscript:not(["+a+"])").forEach((n=>{n.setAttribute(a,n.innerHTML),n.textContent=""})),o.doctype?n.doctype?n.replaceChild(o.doctype,n.doctype):n.insertBefore(o.doctype,n.documentElement):n.doctype&&n.doctype.remove(),t&&o.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.replaceChild(n.importNode(o.documentElement,!0),n.documentElement),n.querySelectorAll("["+a+"]").forEach((n=>{n.textContent=n.getAttribute(a),n.removeAttribute(a)})),n.documentElement.setAttribute("data-sfz",""),n.querySelectorAll("link[rel*=icon]").forEach((n=>n.parentElement.replaceChild(n,n))),n.open=n.write=n.close=()=>{};for(let e of Array.from(n.querySelectorAll("script")))await new Promise((t=>{const a=n.createElement("script");Array.from(e.attributes).forEach((n=>a.setAttribute(n.name,n.value)));const o=""==e.getAttribute("async")||"async"==e.getAttribute("async");e.textContent?a.textContent=e.textContent:o||(a.addEventListener("load",t),a.addEventListener("error",(()=>t()))),e.parentElement.replaceChild(a,e),(e.textContent||o)&&t()}))},formatFilename:Bn,INFOBAR_TAGNAME:x};n.helper=Wk,Object.defineProperty(n,"__esModule",{value:!0})}));