Embed URL

A user script that adds a corresponding embed such as an image or video to a URL.

// ==UserScript==
// @name            Embed URL
// @name:ja         埋め込みを追加する
// @description     A user script that adds a corresponding embed such as an image or video to a URL.
// @description:ja  URLに画像や動画などの対応する埋め込みを追加するユーザースクリプトです。
// @version         1.4.0
// @icon            data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAACw1JREFUeF7FW32sFNUV/53ZFxuUFktT/uojpdG2CjsL/eLtLhIFImpqa+DNCgJtsUkpTaEoJrVi67PV0iaCFkwRk0pbQHBnIRYrFCMfUXb20a/HzoK21WoD/cumFK1iat6b08zMzu7M7HzcmV1w/nlvds49H7977rn3nnsu4QI+BIABDKgj10rc1w8Yk4monwn9MDAZ5l/zYZyBhNPEOMPMZwDptEGjZ4aVGUfD1HN4i6gfRWt+az1twiTsO1WYXT4xZRR0A4jmAzQX4PFBUgSUfxvAITAf7AN+90Ip97pAm0QkHgCCwQhEqOPHfPnURCJjFWDMA2hWIi1iiNvdwccA6XlmaXOtNO2s5V8dfZWsGwMBCOt/9+/u/wtqYxXAqwFc0UvDm8PDNtL7vArQJk3Jbu5Gnsk21ANEGBdVfQmAVQzMFKHvNQ0BxwFsriryzrS8UwFQrDQ+ZzD/kIAbY4dNWs2cdmYUdbR0/+/iawAHMkQ/qA5m/5hUXGIA8hX9FgK2gXF5UmEXlJ5wjgnLawvlp5PI8QEQHf0L6olVgLQpSkAHh5BeS6KkMK0ly1itKdOFY0MbgJiZL18+sY9IullYmZ4SJpuWmfmZWin3JREVWgBEiSiouont+/IkMt3nbZoixw7xWIKCqv8ZwIwLaX0iI5MpMqIp8mfaTTolRQJQUPVfALi9U2bYisBLSSCwtRi+eE8AmE9oivz1MA1Cg2CxrH+bCcLBJBqk3gKQ1GOIsapakh8N0iLQAwaeGilKUuY5AJf2VvUk3JKa6eftaX/eMMauH751RjWIqkOrvKrv9y9ykqiejlbA4DRTarMNAwdqinyTf+/Q4QHm8paBHemM6LKVx0ABQCLEBbUmYKl/2RwEwDCDZto7eYEnTa8IsE1F4tLFD0DT0ONVRR5w8yY3YXNXF7nS61axVO1TNHJvH3xz02r3LrLlAfZ+fszcXV0R4j6iPpFCXcvfWtkfYpwD4RabUbqhENHqVebMzFpp6lmHuyWmoDbuA3golfY9aDRGfZ88Pnj1KyarYrn+KSbpL/HDUAScwO4c0pTs/V4Ayo3DIL4uDPE2GxGhcYh4eTBwvOYam/mKfjcx1sdxSf2d6YhWys4xtbCGwOxdjf7RPj6djGF7nRcICfNBEIYBui+WL9G92mD2QYeuUNZ/D8Lnm+9DYM7b+cVmljV2Ae9wCu+svlGa/MLi7BmLVeGpxlJIvD1WUUECAq+vKrl7Cmp9yANAyIwhjWWmH1s0tW6yn7mn/rGMQWfaoshy12JZX8/A3R05rBCesX5q0DLt1uwOG4BKYzuYl3YTdJrj6XUD+G5NkVU7rvgA8ANoK9/QFFl2PvmX4AQaqjbHa17VFQn4KQNTBPsinIxohzaYXWYDoDbeBPhDndT+7Uw4rgzey6PG2uHFM/7RcuW4wGoBQD/WlOy6tvvXD4PoOr8HOO8Du0Y+Tpm+DUS8oDsQ6K2akp1A1qEFMke6Y4bva4r8gJtHYW99EsaklXEzC0l9+erCq4fNts2p+N9eXWgIGWOLtiD3hvV7sw8Kqn4vgB91o7eBseuoUG4sA/GvkzKy9eBTkkRrji2Un/cYr9bnAPRQXB6BgddrivyJdu/rXwNhW4AuI2C+SyvlDru/zdqjzzMMPAJgalL9LXqmr1ChXF8HogcCp7+wZa75u0Tbx3/QWPnc/Nw7XuOtMwKh1SSDH6kpuTvaQ0b/DYCIVBZ5VnFmu+sP1i97+7/SFjAvSwwC871UVPXHGFgh3phHwdJqrZTd4m5zbfnU+PeksQ1gfCOKlyeKMM91ejVf1sYRjT9vLTejpjnC45cYmbVHS1PNY7PWOrFQbqwEGZsA6hO1hYCtVKjoz4Jxk9Mocvpgc14fW6mVZpxwCynurg9wHz0BxlWu4NWctEPV+ZemyJMcC8wIT0BZSHnCyzTKt1cX5azY0R5CI9OBzBYQvBueAE0sOwn7qVDWGyBMixPMwMM1Rb7TT1eoNFaC+edx7Tu+Ex7XBuUVDuD5ir6TGLcl4kP0LW3Q64lm+7yqbySgNbRCeTJOUkHVzwGYEETk9gYzYprH1a3fmKVCRd8J0KJESjeJGcbNNWX6b522RVU/z8C4wCEQOCwcTXi3NigvAZHh8Eows70ZCYDbMAuA0oyjzpYwr9bXEOjhxMbbxryrKXIr3TagnviixNIzztiPXcX5hDL4jmEl94iTwUgGgOgQIOm22uC0XW7Zs8r6Zw2yxm1rKgsDxG0UE56smb3WfAoVfWtQ8IyJRyaQr0mM0rGS/Cd37MlXGouJjScFOuckFSv6s+wKglGNguLAjftf+cC5d97dSsBXBQRaJAyUnOWy+V5QdXOR89Hg9sHJdQZ+dfll41YcuOnK/3mMV+sbCXRH/Fba8sT9aabBF42MtGJ4QfZlt8LFSuObzOyZGh1r/dMa89uX1kqFdy3jy/U5IDokCp6pNRFWVgezj7nbDOxtXCWNGVsBuqaTl9eXnDd7GmwthNw4xuL3JiRapS3MenaQRbV+DVuHpzw9wqB9miJ/2fmeV+sPE2iN8x49/ukEwVhdVXIvuvkX9jSWwWDzDGNCogySuRBKuxS2FbCqNL7jiQs79Q8bl2ADgOWBIDCWayX5l20A9NdIbHe3TXqP1h5bkv2Px3i18bNmdUqMEwVAay6F2xEzLvYSwM2aHJcoBh0F8+paSW54FKvod4ItIDwPc+YjTj6uuOelATZGa7HuT1irDcob3XT5sp4FYRMB14a3j7bJ2gzZQShsOxyrmkNwFhLWagudnrUFd+QZmY9opdwc23msRMyDIL4nWoqdEPGAW7Y2TSa4E4U17Eiv0luauR22APAkRPws4zyjTe+fJdoA2DzaZ3QOQLpOQDb6BMILgPAqz2eGJdG9oPIkRHqbEjskZaS1xxZMq/s9YEzi/uMLc/80dZu1+2TOyBitPUVEquV+TckNzdp7MseG8RAz5gn3esTGigxaVnVSYp1JUfFeD1HmDUh0FwxzgdRMtTP+oJXkL7TcX22sA7MniRIsle8H899BkplfmCRsfAyhJylqDYNWWjyNiGDVCXSUrSDF5s7re7VB+Seu6D9MAuV1Ng8OCXQpO6qZFm+GIlulC30wQsyfrpZyfzVlzay8dGWGR/+WBmrxNhHgMA1pJd/ByED51ESpeTTmCBHGNy6JYTJkPM2Ey811MBMguaYvMTliVAIANY/G7FJbT+4l2eFozxQS0DkFSWintNNqpgUeAEwxRVUf7ih9FenhFDoGNbmQsJqltR3H434lelYg0cNihx5ha/Z2fIGEKayrEpmL6C1OFBcp5WiVyPiO2zuGgMk0XZFUnPPGfe9VPwfy8RRJuTWxAOhUjcwz+i7L5HpsUBeelaxMzoVGeKFk+5j6fe1XZ1kZXbsiWCgZYsnFKJXt3ldClGeMaCV3qWynpMAY4B8TF69Yurf+1FWxtF+VfLm+j4i6LJcXN1CcsrNXPeXyTheHTBXBHhDikyIXJqLdOZlZHmrhIGhfmHDahkl0f080BM0rMxKwjXt1ZcYxTNjAEHXNKzPA8tpgV1dmgoOE33vCLk0Fq5as14V6wweWuciRurk0lVbFJNfm0sqIAsR7bS6dhEQxoKWMT1bHxclu3dnePkfVCVgXJ2tKdrO9oRVZDIf7Z6KzhDB5F/LqbFt199VZu9Q1rFOEhlK3N0c9FxpdEmeX61NGgRsAmk+EuQy4Lk+LqmbRJb48ndQfvEOg2TopkziT7OvzmX6AJ4Oo37o2H3F9niCdHou5Ph8nU/T7/wHQS43IlPw4IwAAAABJRU5ErkJggg==
// @match           *://*/*
// @connect         imgur.com
// @connect         i.imgur.com
// @connect         publish.twitter.com
// @connect         www.instagram.com
// @connect         pinterest.com
// @connect         *
// @namespace       https://github.com/sqrtox/userscript-embed-url
// @author          sqrtox
// @license         MIT
// @grant           GM.xmlHttpRequest
// ==/UserScript==
"use strict";
(() => {
  var __defProp = Object.defineProperty;
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  var __publicField = (obj, key, value) => {
    __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
    return value;
  };
  var __accessCheck = (obj, member, msg) => {
    if (!member.has(obj))
      throw TypeError("Cannot " + msg);
  };
  var __privateGet = (obj, member, getter) => {
    __accessCheck(obj, member, "read from private field");
    return getter ? getter.call(obj) : member.get(obj);
  };
  var __privateAdd = (obj, member, value) => {
    if (member.has(obj))
      throw TypeError("Cannot add the same private member more than once");
    member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
  };
  var __privateSet = (obj, member, value, setter) => {
    __accessCheck(obj, member, "write to private field");
    setter ? setter.call(obj, value) : member.set(obj, value);
    return value;
  };
  var __privateMethod = (obj, member, method) => {
    __accessCheck(obj, member, "access private method");
    return method;
  };

  // src/utils/objectKeys.ts
  var objectKeys = (obj) => Object.keys(obj);

  // src/utils/findElement.ts
  var findElement = function* (tagName, context = document) {
    if (!(context instanceof Document) && context instanceof document.createElement(tagName).constructor) {
      yield context;
    }
    yield* context.getElementsByTagName(tagName);
  };

  // src/utils/observeAnchor.ts
  var ObserveAnchorRecordTypes = {
    Found: "found",
    Added: "added",
    Removed: "removed",
    Appeared: "appeared",
    Disappeared: "disappeared",
    Changed: "changed"
  };
  var observeAnchor = (callback, {
    filter,
    signal
  } = {}) => {
    signal?.addEventListener("abort", () => {
      intersectionObserver?.disconnect();
      intersectionObserver = void 0;
      mutationObserver?.disconnect();
      mutationObserver = void 0;
    }, { once: true });
    const filterSet = filter && new Set(filter);
    const flush = (creator) => {
      const records = [];
      for (const record of creator()) {
        if (!record.targets.length) {
          continue;
        }
        if (filterSet && !filterSet.has(record.type)) {
          continue;
        }
        records.push(record);
      }
      if (!records.length) {
        return;
      }
      callback(records);
    };
    let intersectionObserver = new IntersectionObserver((records) => {
      flush(function* () {
        const appearedTargets = [];
        const disappearedTargets = [];
        for (const { isIntersecting, target } of records) {
          if (!(target instanceof HTMLAnchorElement)) {
            continue;
          }
          if (isIntersecting) {
            appearedTargets.push(target);
          } else {
            disappearedTargets.push(target);
          }
        }
        yield {
          type: ObserveAnchorRecordTypes.Appeared,
          targets: appearedTargets
        };
        yield {
          type: ObserveAnchorRecordTypes.Disappeared,
          targets: disappearedTargets
        };
      });
    });
    let mutationObserver = new MutationObserver((records) => {
      flush(function* () {
        const changedTargets = [];
        const addedTargets = [];
        const removedTargets = [];
        for (const {
          type,
          target,
          addedNodes,
          removedNodes,
          attributeName,
          oldValue
        } of records) {
          switch (type) {
            case "attributes": {
              if (!(target instanceof HTMLAnchorElement)) {
                break;
              }
              if (attributeName !== "href") {
                break;
              }
              if (target.href === oldValue) {
                break;
              }
              changedTargets.push(target);
              break;
            }
            case "childList": {
              for (const n of addedNodes) {
                if (!(n instanceof Element)) {
                  continue;
                }
                for (const e of findElement("a", n)) {
                  addedTargets.push(e);
                  intersectionObserver?.observe(e);
                }
              }
              for (const n of removedNodes) {
                if (!(n instanceof Element)) {
                  continue;
                }
                for (const e of findElement("a", n)) {
                  removedTargets.push(e);
                  intersectionObserver?.unobserve(e);
                }
              }
              break;
            }
          }
        }
        yield {
          type: ObserveAnchorRecordTypes.Changed,
          targets: changedTargets
        };
        yield {
          type: ObserveAnchorRecordTypes.Added,
          targets: addedTargets
        };
        yield {
          type: ObserveAnchorRecordTypes.Removed,
          targets: removedTargets
        };
      });
    });
    mutationObserver.observe(document, {
      childList: true,
      subtree: true,
      attributes: true,
      attributeOldValue: true,
      attributeFilter: ["href"]
    });
    flush(function* () {
      const targets = [];
      for (const e of findElement("a")) {
        targets.push(e);
        intersectionObserver?.observe(e);
      }
      yield {
        type: ObserveAnchorRecordTypes.Found,
        targets
      };
    });
  };

  // node_modules/.pnpm/parse-domain@8.0.1/node_modules/parse-domain/serialized-tries/icann.js
  var icann_default = "ac>com,edu,gov,net,mil,org<ad>nom<ae>co,net,org,sch,ac,gov,mil<aero>accident-investigation,accident-prevention,aerobatic,aeroclub,aerodrome,agents,aircraft,airline,airport,air-surveillance,airtraffic,air-traffic-control,ambulance,amusement,association,author,ballooning,broker,caa,cargo,catering,certification,championship,charter,civilaviation,club,conference,consultant,consulting,control,council,crew,design,dgca,educator,emergency,engine,engineer,entertainment,equipment,exchange,express,federation,flight,fuel,gliding,government,groundhandling,group,hanggliding,homebuilt,insurance,journal,journalist,leasing,logistics,magazine,maintenance,media,microlight,modelling,navigation,parachuting,paragliding,passenger-association,pilot,press,production,recreation,repbody,res,research,rotorcraft,safety,scientist,services,show,skydiving,software,student,trader,trading,trainer,union,workinggroup,works<af>gov,com,org,net,edu<ag>com,org,net,co,nom<ai>off,com,net,org<al>com,edu,gov,mil,net,org<am>co,com,commune,net,org<ao>ed,gv,og,co,pb,it<aq,ar>bet,com,coop,edu,gob,gov,int,mil,musica,mutual,net,org,senasa,tur<arpa>e164,in-addr,ip6,iris,uri,urn<as>gov<asia,at>ac>sth<co,gv,or<au>com,net,org,edu>act,catholic,nsw>schools<nt,qld,sa,tas,vic,wa<gov>qld,sa,tas,vic,wa<asn,id,info,conf,oz,act,nsw,nt,qld,sa,tas,vic,wa<aw>com<ax,az>com,net,int,gov,org,edu,info,pp,mil,name,pro,biz<ba>com,edu,gov,mil,net,org<bb>biz,co,com,edu,gov,info,net,org,store,tv<bd>*<be>ac<bf>gov<bg>a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9<bh>com,edu,net,org,gov<bi>co,com,edu,or,org<biz,bj>africa,agro,architectes,assur,avocats,co,com,eco,econo,edu,info,loisirs,money,net,org,ote,resto,restaurant,tourism,univ<bm>com,edu,gov,net,org<bn>com,edu,gov,net,org<bo>com,edu,gob,int,org,net,mil,tv,web,academia,agro,arte,blog,bolivia,ciencia,cooperativa,democracia,deporte,ecologia,economia,empresa,indigena,industria,info,medicina,movimiento,musica,natural,nombre,noticias,patria,politica,profesional,plurinacional,pueblo,revista,salud,tecnologia,tksat,transporte,wiki<br>9guacu,abc,adm,adv,agr,aju,am,anani,aparecida,app,arq,art,ato,b,barueri,belem,bhz,bib,bio,blog,bmd,boavista,bsb,campinagrande,campinas,caxias,cim,cng,cnt,com,contagem,coop,coz,cri,cuiaba,curitiba,def,des,det,dev,ecn,eco,edu,emp,enf,eng,esp,etc,eti,far,feira,flog,floripa,fm,fnd,fortal,fot,foz,fst,g12,geo,ggf,goiania,gov>ac,al,am,ap,ba,ce,df,es,go,ma,mg,ms,mt,pa,pb,pe,pi,pr,rj,rn,ro,rr,rs,sc,se,sp,to<gru,imb,ind,inf,jab,jampa,jdf,joinville,jor,jus,leg,lel,log,londrina,macapa,maceio,manaus,maringa,mat,med,mil,morena,mp,mus,natal,net,niteroi,nom>*<not,ntr,odo,ong,org,osasco,palmas,poa,ppg,pro,psc,psi,pvh,qsl,radio,rec,recife,rep,ribeirao,rio,riobranco,riopreto,salvador,sampa,santamaria,santoandre,saobernardo,saogonca,seg,sjc,slg,slz,sorocaba,srv,taxi,tc,tec,teo,the,tmp,trd,tur,tv,udi,vet,vix,vlog,wiki,zlg<bs>com,net,org,edu,gov<bt>com,edu,gov,net,org<bv,bw>co,org<by>gov,mil,com,of<bz>com,net,org,edu,gov<ca>ab,bc,mb,nb,nf,nl,ns,nt,nu,on,pe,qc,sk,yk,gc<cat,cc,cd>gov<cf,cg,ch,ci>org,or,com,co,edu,ed,ac,net,go,asso,xn--aroport-bya,int,presse,md,gouv<ck>*,!www<cl>co,gob,gov,mil<cm>co,com,gov,net<cn>ac,com,edu,gov,net,org,mil,xn--55qx5d,xn--io0a7i,xn--od0alg,ah,bj,cq,fj,gd,gs,gz,gx,ha,hb,he,hi,hl,hn,jl,js,jx,ln,nm,nx,qh,sc,sd,sh,sn,sx,tj,xj,xz,yn,zj,hk,mo,tw<co>arts,com,edu,firm,gov,info,int,mil,net,nom,org,rec,web<com,coop,cr>ac,co,ed,fi,go,or,sa<cu>com,edu,org,net,gov,inf<cv>com,edu,int,nome,org<cw>com,edu,net,org<cx>gov<cy>ac,biz,com,ekloges,gov,ltd,mil,net,org,press,pro,tm<cz,de,dj,dk,dm>com,net,org,edu,gov<do>art,com,edu,gob,gov,mil,net,org,sld,web<dz>art,asso,com,edu,gov,org,net,pol,soc,tm<ec>com,info,net,fin,k12,med,pro,org,edu,gov,gob,mil<edu,ee>edu,gov,riik,lib,med,com,pri,aip,org,fie<eg>com,edu,eun,gov,mil,name,net,org,sci<er>*<es>com,nom,org,gob,edu<et>com,gov,org,edu,biz,name,info,net<eu,fi>aland<fj>ac,biz,com,gov,info,mil,name,net,org,pro<fk>*<fm>com,edu,net,org<fo,fr>asso,com,gouv,nom,prd,tm,avoues,cci,greta,huissier-justice<ga,gb,gd>edu,gov<ge>com,edu,gov,org,mil,net,pvt<gf,gg>co,net,org<gh>com,edu,gov,org,mil<gi>com,ltd,gov,mod,edu,org<gl>co,com,edu,net,org<gm,gn>ac,com,edu,gov,org,net<gov,gp>com,net,mobi,edu,org,asso<gq,gr>com,edu,net,org,gov<gs,gt>com,edu,gob,ind,mil,net,org<gu>com,edu,gov,guam,info,net,org,web<gw,gy>co,com,edu,gov,net,org<hk>com,edu,gov,idv,net,org,xn--55qx5d,xn--wcvs22d,xn--lcvr32d,xn--mxtq1m,xn--gmqw5a,xn--ciqpn,xn--gmq050i,xn--zf0avx,xn--io0a7i,xn--mk0axi,xn--od0alg,xn--od0aq3b,xn--tn0ag,xn--uc0atv,xn--uc0ay4a<hm,hn>com,edu,org,net,mil,gob<hr>iz,from,name,com<ht>com,shop,firm,info,adult,net,pro,org,med,art,coop,pol,asso,edu,rel,gouv,perso<hu>co,info,org,priv,sport,tm,2000,agrar,bolt,casino,city,erotica,erotika,film,forum,games,hotel,ingatlan,jogasz,konyvelo,lakas,media,news,reklam,sex,shop,suli,szex,tozsde,utazas,video<id>ac,biz,co,desa,go,mil,my,net,or,ponpes,sch,web<ie>gov<il>ac,co,gov,idf,k12,muni,net,org<xn--4dbrk0ce>xn--4dbgdty6c,xn--5dbhl8d,xn--8dbq2a,xn--hebda8b<im>ac,co>ltd,plc<com,net,org,tt,tv<in>5g,6g,ac,ai,am,bihar,biz,business,ca,cn,co,com,coop,cs,delhi,dr,edu,er,firm,gen,gov,gujarat,ind,info,int,internet,io,me,mil,net,nic,org,pg,post,pro,res,travel,tv,uk,up,us<info,int>eu<io>com<iq>gov,edu,mil,com,org,net<ir>ac,co,gov,id,net,org,sch,xn--mgba3a4f16a,xn--mgba3a4fra<is>net,com,edu,gov,org,int<it>gov,edu,abr,abruzzo,aosta-valley,aostavalley,bas,basilicata,cal,calabria,cam,campania,emilia-romagna,emiliaromagna,emr,friuli-v-giulia,friuli-ve-giulia,friuli-vegiulia,friuli-venezia-giulia,friuli-veneziagiulia,friuli-vgiulia,friuliv-giulia,friulive-giulia,friulivegiulia,friulivenezia-giulia,friuliveneziagiulia,friulivgiulia,fvg,laz,lazio,lig,liguria,lom,lombardia,lombardy,lucania,mar,marche,mol,molise,piedmont,piemonte,pmn,pug,puglia,sar,sardegna,sardinia,sic,sicilia,sicily,taa,tos,toscana,trentin-sud-tirol,xn--trentin-sd-tirol-rzb,trentin-sudtirol,xn--trentin-sdtirol-7vb,trentin-sued-tirol,trentin-suedtirol,trentino-a-adige,trentino-aadige,trentino-alto-adige,trentino-altoadige,trentino-s-tirol,trentino-stirol,trentino-sud-tirol,xn--trentino-sd-tirol-c3b,trentino-sudtirol,xn--trentino-sdtirol-szb,trentino-sued-tirol,trentino-suedtirol,trentino,trentinoa-adige,trentinoaadige,trentinoalto-adige,trentinoaltoadige,trentinos-tirol,trentinostirol,trentinosud-tirol,xn--trentinosd-tirol-rzb,trentinosudtirol,xn--trentinosdtirol-7vb,trentinosued-tirol,trentinosuedtirol,trentinsud-tirol,xn--trentinsd-tirol-6vb,trentinsudtirol,xn--trentinsdtirol-nsb,trentinsued-tirol,trentinsuedtirol,tuscany,umb,umbria,val-d-aosta,val-daosta,vald-aosta,valdaosta,valle-aosta,valle-d-aosta,valle-daosta,valleaosta,valled-aosta,valledaosta,vallee-aoste,xn--valle-aoste-ebb,vallee-d-aoste,xn--valle-d-aoste-ehb,valleeaoste,xn--valleaoste-e7a,valleedaoste,xn--valledaoste-ebb,vao,vda,ven,veneto,ag,agrigento,al,alessandria,alto-adige,altoadige,an,ancona,andria-barletta-trani,andria-trani-barletta,andriabarlettatrani,andriatranibarletta,ao,aosta,aoste,ap,aq,aquila,ar,arezzo,ascoli-piceno,ascolipiceno,asti,at,av,avellino,ba,balsan-sudtirol,xn--balsan-sdtirol-nsb,balsan-suedtirol,balsan,bari,barletta-trani-andria,barlettatraniandria,belluno,benevento,bergamo,bg,bi,biella,bl,bn,bo,bologna,bolzano-altoadige,bolzano,bozen-sudtirol,xn--bozen-sdtirol-2ob,bozen-suedtirol,bozen,br,brescia,brindisi,bs,bt,bulsan-sudtirol,xn--bulsan-sdtirol-nsb,bulsan-suedtirol,bulsan,bz,ca,cagliari,caltanissetta,campidano-medio,campidanomedio,campobasso,carbonia-iglesias,carboniaiglesias,carrara-massa,carraramassa,caserta,catania,catanzaro,cb,ce,cesena-forli,xn--cesena-forl-mcb,cesenaforli,xn--cesenaforl-i8a,ch,chieti,ci,cl,cn,co,como,cosenza,cr,cremona,crotone,cs,ct,cuneo,cz,dell-ogliastra,dellogliastra,en,enna,fc,fe,fermo,ferrara,fg,fi,firenze,florence,fm,foggia,forli-cesena,xn--forl-cesena-fcb,forlicesena,xn--forlcesena-c8a,fr,frosinone,ge,genoa,genova,go,gorizia,gr,grosseto,iglesias-carbonia,iglesiascarbonia,im,imperia,is,isernia,kr,la-spezia,laquila,laspezia,latina,lc,le,lecce,lecco,li,livorno,lo,lodi,lt,lu,lucca,macerata,mantova,massa-carrara,massacarrara,matera,mb,mc,me,medio-campidano,mediocampidano,messina,mi,milan,milano,mn,mo,modena,monza-brianza,monza-e-della-brianza,monza,monzabrianza,monzaebrianza,monzaedellabrianza,ms,mt,na,naples,napoli,no,novara,nu,nuoro,og,ogliastra,olbia-tempio,olbiatempio,or,oristano,ot,pa,padova,padua,palermo,parma,pavia,pc,pd,pe,perugia,pesaro-urbino,pesarourbino,pescara,pg,pi,piacenza,pisa,pistoia,pn,po,pordenone,potenza,pr,prato,pt,pu,pv,pz,ra,ragusa,ravenna,rc,re,reggio-calabria,reggio-emilia,reggiocalabria,reggioemilia,rg,ri,rieti,rimini,rm,rn,ro,roma,rome,rovigo,sa,salerno,sassari,savona,si,siena,siracusa,so,sondrio,sp,sr,ss,suedtirol,xn--sdtirol-n2a,sv,ta,taranto,te,tempio-olbia,tempioolbia,teramo,terni,tn,to,torino,tp,tr,trani-andria-barletta,trani-barletta-andria,traniandriabarletta,tranibarlettaandria,trapani,trento,treviso,trieste,ts,turin,tv,ud,udine,urbino-pesaro,urbinopesaro,va,varese,vb,vc,ve,venezia,venice,verbania,vercelli,verona,vi,vibo-valentia,vibovalentia,vicenza,viterbo,vr,vs,vt,vv<je>co,net,org<jm>*<jo>com,org,net,edu,sch,gov,mil,name<jobs,jp>ac,ad,co,ed,go,gr,lg,ne,or,aichi>aisai,ama,anjo,asuke,chiryu,chita,fuso,gamagori,handa,hazu,hekinan,higashiura,ichinomiya,inazawa,inuyama,isshiki,iwakura,kanie,kariya,kasugai,kira,kiyosu,komaki,konan,kota,mihama,miyoshi,nishio,nisshin,obu,oguchi,oharu,okazaki,owariasahi,seto,shikatsu,shinshiro,shitara,tahara,takahama,tobishima,toei,togo,tokai,tokoname,toyoake,toyohashi,toyokawa,toyone,toyota,tsushima,yatomi<akita>akita,daisen,fujisato,gojome,hachirogata,happou,higashinaruse,honjo,honjyo,ikawa,kamikoani,kamioka,katagami,kazuno,kitaakita,kosaka,kyowa,misato,mitane,moriyoshi,nikaho,noshiro,odate,oga,ogata,semboku,yokote,yurihonjo<aomori>aomori,gonohe,hachinohe,hashikami,hiranai,hirosaki,itayanagi,kuroishi,misawa,mutsu,nakadomari,noheji,oirase,owani,rokunohe,sannohe,shichinohe,shingo,takko,towada,tsugaru,tsuruta<chiba>abiko,asahi,chonan,chosei,choshi,chuo,funabashi,futtsu,hanamigawa,ichihara,ichikawa,ichinomiya,inzai,isumi,kamagaya,kamogawa,kashiwa,katori,katsuura,kimitsu,kisarazu,kozaki,kujukuri,kyonan,matsudo,midori,mihama,minamiboso,mobara,mutsuzawa,nagara,nagareyama,narashino,narita,noda,oamishirasato,omigawa,onjuku,otaki,sakae,sakura,shimofusa,shirako,shiroi,shisui,sodegaura,sosa,tako,tateyama,togane,tohnosho,tomisato,urayasu,yachimata,yachiyo,yokaichiba,yokoshibahikari,yotsukaido<ehime>ainan,honai,ikata,imabari,iyo,kamijima,kihoku,kumakogen,masaki,matsuno,matsuyama,namikata,niihama,ozu,saijo,seiyo,shikokuchuo,tobe,toon,uchiko,uwajima,yawatahama<fukui>echizen,eiheiji,fukui,ikeda,katsuyama,mihama,minamiechizen,obama,ohi,ono,sabae,sakai,takahama,tsuruga,wakasa<fukuoka>ashiya,buzen,chikugo,chikuho,chikujo,chikushino,chikuzen,chuo,dazaifu,fukuchi,hakata,higashi,hirokawa,hisayama,iizuka,inatsuki,kaho,kasuga,kasuya,kawara,keisen,koga,kurate,kurogi,kurume,minami,miyako,miyama,miyawaka,mizumaki,munakata,nakagawa,nakama,nishi,nogata,ogori,okagaki,okawa,oki,omuta,onga,onojo,oto,saigawa,sasaguri,shingu,shinyoshitomi,shonai,soeda,sue,tachiarai,tagawa,takata,toho,toyotsu,tsuiki,ukiha,umi,usui,yamada,yame,yanagawa,yukuhashi<fukushima>aizubange,aizumisato,aizuwakamatsu,asakawa,bandai,date,fukushima,furudono,futaba,hanawa,higashi,hirata,hirono,iitate,inawashiro,ishikawa,iwaki,izumizaki,kagamiishi,kaneyama,kawamata,kitakata,kitashiobara,koori,koriyama,kunimi,miharu,mishima,namie,nango,nishiaizu,nishigo,okuma,omotego,ono,otama,samegawa,shimogo,shirakawa,showa,soma,sukagawa,taishin,tamakawa,tanagura,tenei,yabuki,yamato,yamatsuri,yanaizu,yugawa<gifu>anpachi,ena,gifu,ginan,godo,gujo,hashima,hichiso,hida,higashishirakawa,ibigawa,ikeda,kakamigahara,kani,kasahara,kasamatsu,kawaue,kitagata,mino,minokamo,mitake,mizunami,motosu,nakatsugawa,ogaki,sakahogi,seki,sekigahara,shirakawa,tajimi,takayama,tarui,toki,tomika,wanouchi,yamagata,yaotsu,yoro<gunma>annaka,chiyoda,fujioka,higashiagatsuma,isesaki,itakura,kanna,kanra,katashina,kawaba,kiryu,kusatsu,maebashi,meiwa,midori,minakami,naganohara,nakanojo,nanmoku,numata,oizumi,ora,ota,shibukawa,shimonita,shinto,showa,takasaki,takayama,tamamura,tatebayashi,tomioka,tsukiyono,tsumagoi,ueno,yoshioka<hiroshima>asaminami,daiwa,etajima,fuchu,fukuyama,hatsukaichi,higashihiroshima,hongo,jinsekikogen,kaita,kui,kumano,kure,mihara,miyoshi,naka,onomichi,osakikamijima,otake,saka,sera,seranishi,shinichi,shobara,takehara<hokkaido>abashiri,abira,aibetsu,akabira,akkeshi,asahikawa,ashibetsu,ashoro,assabu,atsuma,bibai,biei,bifuka,bihoro,biratori,chippubetsu,chitose,date,ebetsu,embetsu,eniwa,erimo,esan,esashi,fukagawa,fukushima,furano,furubira,haboro,hakodate,hamatonbetsu,hidaka,higashikagura,higashikawa,hiroo,hokuryu,hokuto,honbetsu,horokanai,horonobe,ikeda,imakane,ishikari,iwamizawa,iwanai,kamifurano,kamikawa,kamishihoro,kamisunagawa,kamoenai,kayabe,kembuchi,kikonai,kimobetsu,kitahiroshima,kitami,kiyosato,koshimizu,kunneppu,kuriyama,kuromatsunai,kushiro,kutchan,kyowa,mashike,matsumae,mikasa,minamifurano,mombetsu,moseushi,mukawa,muroran,naie,nakagawa,nakasatsunai,nakatombetsu,nanae,nanporo,nayoro,nemuro,niikappu,niki,nishiokoppe,noboribetsu,numata,obihiro,obira,oketo,okoppe,otaru,otobe,otofuke,otoineppu,oumu,ozora,pippu,rankoshi,rebun,rikubetsu,rishiri,rishirifuji,saroma,sarufutsu,shakotan,shari,shibecha,shibetsu,shikabe,shikaoi,shimamaki,shimizu,shimokawa,shinshinotsu,shintoku,shiranuka,shiraoi,shiriuchi,sobetsu,sunagawa,taiki,takasu,takikawa,takinoue,teshikaga,tobetsu,tohma,tomakomai,tomari,toya,toyako,toyotomi,toyoura,tsubetsu,tsukigata,urakawa,urausu,uryu,utashinai,wakkanai,wassamu,yakumo,yoichi<hyogo>aioi,akashi,ako,amagasaki,aogaki,asago,ashiya,awaji,fukusaki,goshiki,harima,himeji,ichikawa,inagawa,itami,kakogawa,kamigori,kamikawa,kasai,kasuga,kawanishi,miki,minamiawaji,nishinomiya,nishiwaki,ono,sanda,sannan,sasayama,sayo,shingu,shinonsen,shiso,sumoto,taishi,taka,takarazuka,takasago,takino,tamba,tatsuno,toyooka,yabu,yashiro,yoka,yokawa<ibaraki>ami,asahi,bando,chikusei,daigo,fujishiro,hitachi,hitachinaka,hitachiomiya,hitachiota,ibaraki,ina,inashiki,itako,iwama,joso,kamisu,kasama,kashima,kasumigaura,koga,miho,mito,moriya,naka,namegata,oarai,ogawa,omitama,ryugasaki,sakai,sakuragawa,shimodate,shimotsuma,shirosato,sowa,suifu,takahagi,tamatsukuri,tokai,tomobe,tone,toride,tsuchiura,tsukuba,uchihara,ushiku,yachiyo,yamagata,yawara,yuki<ishikawa>anamizu,hakui,hakusan,kaga,kahoku,kanazawa,kawakita,komatsu,nakanoto,nanao,nomi,nonoichi,noto,shika,suzu,tsubata,tsurugi,uchinada,wajima<iwate>fudai,fujisawa,hanamaki,hiraizumi,hirono,ichinohe,ichinoseki,iwaizumi,iwate,joboji,kamaishi,kanegasaki,karumai,kawai,kitakami,kuji,kunohe,kuzumaki,miyako,mizusawa,morioka,ninohe,noda,ofunato,oshu,otsuchi,rikuzentakata,shiwa,shizukuishi,sumita,tanohata,tono,yahaba,yamada<kagawa>ayagawa,higashikagawa,kanonji,kotohira,manno,marugame,mitoyo,naoshima,sanuki,tadotsu,takamatsu,tonosho,uchinomi,utazu,zentsuji<kagoshima>akune,amami,hioki,isa,isen,izumi,kagoshima,kanoya,kawanabe,kinko,kouyama,makurazaki,matsumoto,minamitane,nakatane,nishinoomote,satsumasendai,soo,tarumizu,yusui<kanagawa>aikawa,atsugi,ayase,chigasaki,ebina,fujisawa,hadano,hakone,hiratsuka,isehara,kaisei,kamakura,kiyokawa,matsuda,minamiashigara,miura,nakai,ninomiya,odawara,oi,oiso,sagamihara,samukawa,tsukui,yamakita,yamato,yokosuka,yugawara,zama,zushi<kochi>aki,geisei,hidaka,higashitsuno,ino,kagami,kami,kitagawa,kochi,mihara,motoyama,muroto,nahari,nakamura,nankoku,nishitosa,niyodogawa,ochi,okawa,otoyo,otsuki,sakawa,sukumo,susaki,tosa,tosashimizu,toyo,tsuno,umaji,yasuda,yusuhara<kumamoto>amakusa,arao,aso,choyo,gyokuto,kamiamakusa,kikuchi,kumamoto,mashiki,mifune,minamata,minamioguni,nagasu,nishihara,oguni,ozu,sumoto,takamori,uki,uto,yamaga,yamato,yatsushiro<kyoto>ayabe,fukuchiyama,higashiyama,ide,ine,joyo,kameoka,kamo,kita,kizu,kumiyama,kyotamba,kyotanabe,kyotango,maizuru,minami,minamiyamashiro,miyazu,muko,nagaokakyo,nakagyo,nantan,oyamazaki,sakyo,seika,tanabe,uji,ujitawara,wazuka,yamashina,yawata<mie>asahi,inabe,ise,kameyama,kawagoe,kiho,kisosaki,kiwa,komono,kumano,kuwana,matsusaka,meiwa,mihama,minamiise,misugi,miyama,nabari,shima,suzuka,tado,taiki,taki,tamaki,toba,tsu,udono,ureshino,watarai,yokkaichi<miyagi>furukawa,higashimatsushima,ishinomaki,iwanuma,kakuda,kami,kawasaki,marumori,matsushima,minamisanriku,misato,murata,natori,ogawara,ohira,onagawa,osaki,rifu,semine,shibata,shichikashuku,shikama,shiogama,shiroishi,tagajo,taiwa,tome,tomiya,wakuya,watari,yamamoto,zao<miyazaki>aya,ebino,gokase,hyuga,kadogawa,kawaminami,kijo,kitagawa,kitakata,kitaura,kobayashi,kunitomi,kushima,mimata,miyakonojo,miyazaki,morotsuka,nichinan,nishimera,nobeoka,saito,shiiba,shintomi,takaharu,takanabe,takazaki,tsuno<nagano>achi,agematsu,anan,aoki,asahi,azumino,chikuhoku,chikuma,chino,fujimi,hakuba,hara,hiraya,iida,iijima,iiyama,iizuna,ikeda,ikusaka,ina,karuizawa,kawakami,kiso,kisofukushima,kitaaiki,komagane,komoro,matsukawa,matsumoto,miasa,minamiaiki,minamimaki,minamiminowa,minowa,miyada,miyota,mochizuki,nagano,nagawa,nagiso,nakagawa,nakano,nozawaonsen,obuse,ogawa,okaya,omachi,omi,ookuwa,ooshika,otaki,otari,sakae,sakaki,saku,sakuho,shimosuwa,shinanomachi,shiojiri,suwa,suzaka,takagi,takamori,takayama,tateshina,tatsuno,togakushi,togura,tomi,ueda,wada,yamagata,yamanouchi,yasaka,yasuoka<nagasaki>chijiwa,futsu,goto,hasami,hirado,iki,isahaya,kawatana,kuchinotsu,matsuura,nagasaki,obama,omura,oseto,saikai,sasebo,seihi,shimabara,shinkamigoto,togitsu,tsushima,unzen<nara>ando,gose,heguri,higashiyoshino,ikaruga,ikoma,kamikitayama,kanmaki,kashiba,kashihara,katsuragi,kawai,kawakami,kawanishi,koryo,kurotaki,mitsue,miyake,nara,nosegawa,oji,ouda,oyodo,sakurai,sango,shimoichi,shimokitayama,shinjo,soni,takatori,tawaramoto,tenkawa,tenri,uda,yamatokoriyama,yamatotakada,yamazoe,yoshino<niigata>aga,agano,gosen,itoigawa,izumozaki,joetsu,kamo,kariwa,kashiwazaki,minamiuonuma,mitsuke,muika,murakami,myoko,nagaoka,niigata,ojiya,omi,sado,sanjo,seiro,seirou,sekikawa,shibata,tagami,tainai,tochio,tokamachi,tsubame,tsunan,uonuma,yahiko,yoita,yuzawa<oita>beppu,bungoono,bungotakada,hasama,hiji,himeshima,hita,kamitsue,kokonoe,kuju,kunisaki,kusu,oita,saiki,taketa,tsukumi,usa,usuki,yufu<okayama>akaiwa,asakuchi,bizen,hayashima,ibara,kagamino,kasaoka,kibichuo,kumenan,kurashiki,maniwa,misaki,nagi,niimi,nishiawakura,okayama,satosho,setouchi,shinjo,shoo,soja,takahashi,tamano,tsuyama,wake,yakage<okinawa>aguni,ginowan,ginoza,gushikami,haebaru,higashi,hirara,iheya,ishigaki,ishikawa,itoman,izena,kadena,kin,kitadaito,kitanakagusuku,kumejima,kunigami,minamidaito,motobu,nago,naha,nakagusuku,nakijin,nanjo,nishihara,ogimi,okinawa,onna,shimoji,taketomi,tarama,tokashiki,tomigusuku,tonaki,urasoe,uruma,yaese,yomitan,yonabaru,yonaguni,zamami<osaka>abeno,chihayaakasaka,chuo,daito,fujiidera,habikino,hannan,higashiosaka,higashisumiyoshi,higashiyodogawa,hirakata,ibaraki,ikeda,izumi,izumiotsu,izumisano,kadoma,kaizuka,kanan,kashiwara,katano,kawachinagano,kishiwada,kita,kumatori,matsubara,minato,minoh,misaki,moriguchi,neyagawa,nishi,nose,osakasayama,sakai,sayama,sennan,settsu,shijonawate,shimamoto,suita,tadaoka,taishi,tajiri,takaishi,takatsuki,tondabayashi,toyonaka,toyono,yao<saga>ariake,arita,fukudomi,genkai,hamatama,hizen,imari,kamimine,kanzaki,karatsu,kashima,kitagata,kitahata,kiyama,kouhoku,kyuragi,nishiarita,ogi,omachi,ouchi,saga,shiroishi,taku,tara,tosu,yoshinogari<saitama>arakawa,asaka,chichibu,fujimi,fujimino,fukaya,hanno,hanyu,hasuda,hatogaya,hatoyama,hidaka,higashichichibu,higashimatsuyama,honjo,ina,iruma,iwatsuki,kamiizumi,kamikawa,kamisato,kasukabe,kawagoe,kawaguchi,kawajima,kazo,kitamoto,koshigaya,kounosu,kuki,kumagaya,matsubushi,minano,misato,miyashiro,miyoshi,moroyama,nagatoro,namegawa,niiza,ogano,ogawa,ogose,okegawa,omiya,otaki,ranzan,ryokami,saitama,sakado,satte,sayama,shiki,shiraoka,soka,sugito,toda,tokigawa,tokorozawa,tsurugashima,urawa,warabi,yashio,yokoze,yono,yorii,yoshida,yoshikawa,yoshimi<shiga>aisho,gamo,higashiomi,hikone,koka,konan,kosei,koto,kusatsu,maibara,moriyama,nagahama,nishiazai,notogawa,omihachiman,otsu,ritto,ryuoh,takashima,takatsuki,torahime,toyosato,yasu<shimane>akagi,ama,gotsu,hamada,higashiizumo,hikawa,hikimi,izumo,kakinoki,masuda,matsue,misato,nishinoshima,ohda,okinoshima,okuizumo,shimane,tamayu,tsuwano,unnan,yakumo,yasugi,yatsuka<shizuoka>arai,atami,fuji,fujieda,fujikawa,fujinomiya,fukuroi,gotemba,haibara,hamamatsu,higashiizu,ito,iwata,izu,izunokuni,kakegawa,kannami,kawanehon,kawazu,kikugawa,kosai,makinohara,matsuzaki,minamiizu,mishima,morimachi,nishiizu,numazu,omaezaki,shimada,shimizu,shimoda,shizuoka,susono,yaizu,yoshida<tochigi>ashikaga,bato,haga,ichikai,iwafune,kaminokawa,kanuma,karasuyama,kuroiso,mashiko,mibu,moka,motegi,nasu,nasushiobara,nikko,nishikata,nogi,ohira,ohtawara,oyama,sakura,sano,shimotsuke,shioya,takanezawa,tochigi,tsuga,ujiie,utsunomiya,yaita<tokushima>aizumi,anan,ichiba,itano,kainan,komatsushima,matsushige,mima,minami,miyoshi,mugi,nakagawa,naruto,sanagochi,shishikui,tokushima,wajiki<tokyo>adachi,akiruno,akishima,aogashima,arakawa,bunkyo,chiyoda,chofu,chuo,edogawa,fuchu,fussa,hachijo,hachioji,hamura,higashikurume,higashimurayama,higashiyamato,hino,hinode,hinohara,inagi,itabashi,katsushika,kita,kiyose,kodaira,koganei,kokubunji,komae,koto,kouzushima,kunitachi,machida,meguro,minato,mitaka,mizuho,musashimurayama,musashino,nakano,nerima,ogasawara,okutama,ome,oshima,ota,setagaya,shibuya,shinagawa,shinjuku,suginami,sumida,tachikawa,taito,tama,toshima<tottori>chizu,hino,kawahara,koge,kotoura,misasa,nanbu,nichinan,sakaiminato,tottori,wakasa,yazu,yonago<toyama>asahi,fuchu,fukumitsu,funahashi,himi,imizu,inami,johana,kamiichi,kurobe,nakaniikawa,namerikawa,nanto,nyuzen,oyabe,taira,takaoka,tateyama,toga,tonami,toyama,unazuki,uozu,yamada<wakayama>arida,aridagawa,gobo,hashimoto,hidaka,hirogawa,inami,iwade,kainan,kamitonda,katsuragi,kimino,kinokawa,kitayama,koya,koza,kozagawa,kudoyama,kushimoto,mihama,misato,nachikatsuura,shingu,shirahama,taiji,tanabe,wakayama,yuasa,yura<yamagata>asahi,funagata,higashine,iide,kahoku,kaminoyama,kaneyama,kawanishi,mamurogawa,mikawa,murayama,nagai,nakayama,nanyo,nishikawa,obanazawa,oe,oguni,ohkura,oishida,sagae,sakata,sakegawa,shinjo,shirataka,shonai,takahata,tendo,tozawa,tsuruoka,yamagata,yamanobe,yonezawa,yuza<yamaguchi>abu,hagi,hikari,hofu,iwakuni,kudamatsu,mitou,nagato,oshima,shimonoseki,shunan,tabuse,tokuyama,toyota,ube,yuu<yamanashi>chuo,doshi,fuefuki,fujikawa,fujikawaguchiko,fujiyoshida,hayakawa,hokuto,ichikawamisato,kai,kofu,koshu,kosuge,minami-alps,minobu,nakamichi,nanbu,narusawa,nirasaki,nishikatsura,oshino,otsuki,showa,tabayama,tsuru,uenohara,yamanakako,yamanashi<xn--4pvxs,xn--vgu402c,xn--c3s14m,xn--f6qx53a,xn--8pvr4u,xn--uist22h,xn--djrs72d6uy,xn--mkru45i,xn--0trq7p7nn,xn--8ltr62k,xn--2m4a15e,xn--efvn9s,xn--32vp30h,xn--4it797k,xn--1lqs71d,xn--5rtp49c,xn--5js045d,xn--ehqz56n,xn--1lqs03n,xn--qqqt11m,xn--kbrq7o,xn--pssu33l,xn--ntsq17g,xn--uisz3g,xn--6btw5a,xn--1ctwo,xn--6orx2r,xn--rht61e,xn--rht27z,xn--djty4k,xn--nit225k,xn--rht3d,xn--klty5x,xn--kltx9a,xn--kltp7d,xn--uuwu58a,xn--zbx025d,xn--ntso0iqx3a,xn--elqq16h,xn--4it168d,xn--klt787d,xn--rny31h,xn--7t0a264c,xn--5rtq34k,xn--k7yn95e,xn--tor131o,xn--d5qv7z876c,kawasaki>*,!city<kitakyushu>*,!city<kobe>*,!city<nagoya>*,!city<sapporo>*,!city<sendai>*,!city<yokohama>*,!city<<ke>ac,co,go,info,me,mobi,ne,or,sc<kg>org,net,com,edu,gov,mil<kh>*<ki>edu,biz,net,org,gov,info,com<km>org,nom,gov,prd,tm,edu,mil,ass,com,coop,asso,presse,medecin,notaires,pharmaciens,veterinaire,gouv<kn>net,org,edu,gov<kp>com,edu,gov,org,rep,tra<kr>ac,co,es,go,hs,kg,mil,ms,ne,or,pe,re,sc,busan,chungbuk,chungnam,daegu,daejeon,gangwon,gwangju,gyeongbuk,gyeonggi,gyeongnam,incheon,jeju,jeonbuk,jeonnam,seoul,ulsan<kw>com,edu,emb,gov,ind,net,org<ky>com,edu,net,org<kz>org,edu,net,gov,mil,com<la>int,net,info,edu,gov,per,com,org<lb>com,edu,gov,net,org<lc>com,net,co,org,edu,gov<li,lk>gov,sch,net,int,com,org,edu,ngo,soc,web,ltd,assn,grp,hotel,ac<lr>com,edu,gov,org,net<ls>ac,biz,co,edu,gov,info,net,org,sc<lt>gov<lu,lv>com,edu,gov,org,mil,id,net,asn,conf<ly>com,net,gov,plc,edu,sch,med,org,id<ma>co,net,gov,org,ac,press<mc>tm,asso<md,me>co,net,org,edu,ac,gov,its,priv<mg>org,nom,gov,prd,tm,edu,mil,com,co<mh,mil,mk>com,org,net,edu,gov,inf,name<ml>com,edu,gouv,gov,net,org,presse<mm>*<mn>gov,edu,org<mo>com,net,org,edu,gov<mobi,mp,mq,mr>gov<ms>com,edu,gov,net,org<mt>com,edu,net,org<mu>com,net,org,gov,ac,co,or<museum,mv>aero,biz,com,coop,edu,gov,info,int,mil,museum,name,net,org,pro<mw>ac,biz,co,com,coop,edu,gov,int,museum,net,org<mx>com,org,gob,edu,net<my>biz,com,edu,gov,mil,name,net,org<mz>ac,adv,co,edu,gov,mil,net,org<na>info,pro,name,school,or,dr,us,mx,ca,in,cc,tv,ws,mobi,co,com,org<name,nc>asso,nom<ne,net,nf>com,net,per,rec,web,arts,firm,info,other,store<ng>com,edu,gov,i,mil,mobi,name,net,org,sch<ni>ac,biz,co,com,edu,gob,in,info,int,mil,net,nom,org,web<nl,no>fhs,vgs,fylkesbibl,folkebibl,museum,idrett,priv,mil,stat,dep,kommune,herad,aa>gs<ah>gs<bu>gs<fm>gs<hl>gs<hm>gs<jan-mayen>gs<mr>gs<nl>gs<nt>gs<of>gs<ol>gs<oslo>gs<rl>gs<sf>gs<st>gs<svalbard>gs<tm>gs<tr>gs<va>gs<vf>gs<akrehamn,xn--krehamn-dxa,algard,xn--lgrd-poac,arna,brumunddal,bryne,bronnoysund,xn--brnnysund-m8ac,drobak,xn--drbak-wua,egersund,fetsund,floro,xn--flor-jra,fredrikstad,hokksund,honefoss,xn--hnefoss-q1a,jessheim,jorpeland,xn--jrpeland-54a,kirkenes,kopervik,krokstadelva,langevag,xn--langevg-jxa,leirvik,mjondalen,xn--mjndalen-64a,mo-i-rana,mosjoen,xn--mosjen-eya,nesoddtangen,orkanger,osoyro,xn--osyro-wua,raholt,xn--rholt-mra,sandnessjoen,xn--sandnessjen-ogb,skedsmokorset,slattum,spjelkavik,stathelle,stavern,stjordalshalsen,xn--stjrdalshalsen-sqb,tananger,tranby,vossevangen,afjord,xn--fjord-lra,agdenes,al,xn--l-1fa,alesund,xn--lesund-hua,alstahaug,alta,xn--lt-liac,alaheadju,xn--laheadju-7ya,alvdal,amli,xn--mli-tla,amot,xn--mot-tla,andebu,andoy,xn--andy-ira,andasuolo,ardal,xn--rdal-poa,aremark,arendal,xn--s-1fa,aseral,xn--seral-lra,asker,askim,askvoll,askoy,xn--asky-ira,asnes,xn--snes-poa,audnedaln,aukra,aure,aurland,aurskog-holand,xn--aurskog-hland-jnb,austevoll,austrheim,averoy,xn--avery-yua,balestrand,ballangen,balat,xn--blt-elab,balsfjord,bahccavuotna,xn--bhccavuotna-k7a,bamble,bardu,beardu,beiarn,bajddar,xn--bjddar-pta,baidar,xn--bidr-5nac,berg,bergen,berlevag,xn--berlevg-jxa,bearalvahki,xn--bearalvhki-y4a,bindal,birkenes,bjarkoy,xn--bjarky-fya,bjerkreim,bjugn,bodo,xn--bod-2na,badaddja,xn--bdddj-mrabd,budejju,bokn,bremanger,bronnoy,xn--brnny-wuac,bygland,bykle,barum,xn--brum-voa,telemark>bo,xn--b-5ga<nordland>bo,xn--b-5ga,heroy,xn--hery-ira<bievat,xn--bievt-0qa,bomlo,xn--bmlo-gra,batsfjord,xn--btsfjord-9za,bahcavuotna,xn--bhcavuotna-s4a,dovre,drammen,drangedal,dyroy,xn--dyry-ira,donna,xn--dnna-gra,eid,eidfjord,eidsberg,eidskog,eidsvoll,eigersund,elverum,enebakk,engerdal,etne,etnedal,evenes,evenassi,xn--eveni-0qa01ga,evje-og-hornnes,farsund,fauske,fuossko,fuoisku,fedje,fet,finnoy,xn--finny-yua,fitjar,fjaler,fjell,flakstad,flatanger,flekkefjord,flesberg,flora,fla,xn--fl-zia,folldal,forsand,fosnes,frei,frogn,froland,frosta,frana,xn--frna-woa,froya,xn--frya-hra,fusa,fyresdal,forde,xn--frde-gra,gamvik,gangaviika,xn--ggaviika-8ya47h,gaular,gausdal,gildeskal,xn--gildeskl-g0a,giske,gjemnes,gjerdrum,gjerstad,gjesdal,gjovik,xn--gjvik-wua,gloppen,gol,gran,grane,granvin,gratangen,grimstad,grong,kraanghke,xn--kranghke-b0a,grue,gulen,hadsel,halden,halsa,hamar,hamaroy,habmer,xn--hbmer-xqa,hapmir,xn--hpmir-xqa,hammerfest,hammarfeasta,xn--hmmrfeasta-s4ac,haram,hareid,harstad,hasvik,aknoluokta,xn--koluokta-7ya57h,hattfjelldal,aarborte,haugesund,hemne,hemnes,hemsedal,more-og-romsdal>heroy,sande<xn--mre-og-romsdal-qqb>xn--hery-ira,sande<hitra,hjartdal,hjelmeland,hobol,xn--hobl-ira,hof,hol,hole,holmestrand,holtalen,xn--holtlen-hxa,hornindal,horten,hurdal,hurum,hvaler,hyllestad,hagebostad,xn--hgebostad-g3a,hoyanger,xn--hyanger-q1a,hoylandet,xn--hylandet-54a,ha,xn--h-2fa,ibestad,inderoy,xn--indery-fya,iveland,jevnaker,jondal,jolster,xn--jlster-bya,karasjok,karasjohka,xn--krjohka-hwab49j,karlsoy,galsa,xn--gls-elac,karmoy,xn--karmy-yua,kautokeino,guovdageaidnu,klepp,klabu,xn--klbu-woa,kongsberg,kongsvinger,kragero,xn--krager-gya,kristiansand,kristiansund,krodsherad,xn--krdsherad-m8a,kvalsund,rahkkeravju,xn--rhkkervju-01af,kvam,kvinesdal,kvinnherad,kviteseid,kvitsoy,xn--kvitsy-fya,kvafjord,xn--kvfjord-nxa,giehtavuoatna,kvanangen,xn--kvnangen-k0a,navuotna,xn--nvuotna-hwa,kafjord,xn--kfjord-iua,gaivuotna,xn--givuotna-8ya,larvik,lavangen,lavagis,loabat,xn--loabt-0qa,lebesby,davvesiida,leikanger,leirfjord,leka,leksvik,lenvik,leangaviika,xn--leagaviika-52b,lesja,levanger,lier,lierne,lillehammer,lillesand,lindesnes,lindas,xn--linds-pra,lom,loppa,lahppi,xn--lhppi-xqa,lund,lunner,luroy,xn--lury-ira,luster,lyngdal,lyngen,ivgu,lardal,lerdal,xn--lrdal-sra,lodingen,xn--ldingen-q1a,lorenskog,xn--lrenskog-54a,loten,xn--lten-gra,malvik,masoy,xn--msy-ula0h,muosat,xn--muost-0qa,mandal,marker,marnardal,masfjorden,meland,meldal,melhus,meloy,xn--mely-ira,meraker,xn--merker-kua,moareke,xn--moreke-jua,midsund,midtre-gauldal,modalen,modum,molde,moskenes,moss,mosvik,malselv,xn--mlselv-iua,malatvuopmi,xn--mlatvuopmi-s4a,namdalseid,aejrie,namsos,namsskogan,naamesjevuemie,xn--nmesjevuemie-tcba,laakesvuemie,nannestad,narvik,narviika,naustdal,nedre-eiker,akershus>nes<buskerud>nes<nesna,nesodden,nesseby,unjarga,xn--unjrga-rta,nesset,nissedal,nittedal,nord-aurdal,nord-fron,nord-odal,norddal,nordkapp,davvenjarga,xn--davvenjrga-y4a,nordre-land,nordreisa,raisa,xn--risa-5na,nore-og-uvdal,notodden,naroy,xn--nry-yla5g,notteroy,xn--nttery-byae,odda,oksnes,xn--ksnes-uua,oppdal,oppegard,xn--oppegrd-ixa,orkdal,orland,xn--rland-uua,orskog,xn--rskog-uua,orsta,xn--rsta-fra,hedmark>os,valer,xn--vler-qoa<hordaland>os<osen,osteroy,xn--ostery-fya,ostre-toten,xn--stre-toten-zcb,overhalla,ovre-eiker,xn--vre-eiker-k8a,oyer,xn--yer-zna,oygarden,xn--ygarden-p1a,oystre-slidre,xn--ystre-slidre-ujb,porsanger,porsangu,xn--porsgu-sta26f,porsgrunn,radoy,xn--rady-ira,rakkestad,rana,ruovat,randaberg,rauma,rendalen,rennebu,rennesoy,xn--rennesy-v1a,rindal,ringebu,ringerike,ringsaker,rissa,risor,xn--risr-ira,roan,rollag,rygge,ralingen,xn--rlingen-mxa,rodoy,xn--rdy-0nab,romskog,xn--rmskog-bya,roros,xn--rros-gra,rost,xn--rst-0na,royken,xn--ryken-vua,royrvik,xn--ryrvik-bya,rade,xn--rde-ula,salangen,siellak,saltdal,salat,xn--slt-elab,xn--slat-5na,samnanger,vestfold>sande<sandefjord,sandnes,sandoy,xn--sandy-yua,sarpsborg,sauda,sauherad,sel,selbu,selje,seljord,sigdal,siljan,sirdal,skaun,skedsmo,ski,skien,skiptvet,skjervoy,xn--skjervy-v1a,skierva,xn--skierv-uta,skjak,xn--skjk-soa,skodje,skanland,xn--sknland-fxa,skanit,xn--sknit-yqa,smola,xn--smla-hra,snillfjord,snasa,xn--snsa-roa,snoasa,snaase,xn--snase-nra,sogndal,sokndal,sola,solund,songdalen,sortland,spydeberg,stange,stavanger,steigen,steinkjer,stjordal,xn--stjrdal-s1a,stokke,stor-elvdal,stord,stordal,storfjord,omasvuotna,strand,stranda,stryn,sula,suldal,sund,sunndal,surnadal,sveio,svelvik,sykkylven,sogne,xn--sgne-gra,somna,xn--smna-gra,sondre-land,xn--sndre-land-0cb,sor-aurdal,xn--sr-aurdal-l8a,sor-fron,xn--sr-fron-q1a,sor-odal,xn--sr-odal-q1a,sor-varanger,xn--sr-varanger-ggb,matta-varjjat,xn--mtta-vrjjat-k7af,sorfold,xn--srfold-bya,sorreisa,xn--srreisa-q1a,sorum,xn--srum-gra,tana,deatnu,time,tingvoll,tinn,tjeldsund,dielddanuorri,tjome,xn--tjme-hra,tokke,tolga,torsken,tranoy,xn--trany-yua,tromso,xn--troms-zua,tromsa,romsa,trondheim,troandin,trysil,trana,xn--trna-woa,trogstad,xn--trgstad-r1a,tvedestrand,tydal,tynset,tysfjord,divtasvuodna,divttasvuotna,tysnes,tysvar,xn--tysvr-vra,tonsberg,xn--tnsberg-q1a,ullensaker,ullensvang,ulvik,utsira,vadso,xn--vads-jra,cahcesuolo,xn--hcesuolo-7ya35b,vaksdal,valle,vang,vanylven,vardo,xn--vard-jra,varggat,xn--vrggt-xqad,vefsn,vaapste,vega,vegarshei,xn--vegrshei-c0a,vennesla,verdal,verran,vestby,vestnes,vestre-slidre,vestre-toten,vestvagoy,xn--vestvgy-ixa6o,vevelstad,vik,vikna,vindafjord,volda,voss,varoy,xn--vry-yla5g,vagan,xn--vgan-qoa,voagat,vagsoy,xn--vgsy-qoa0j,vaga,xn--vg-yiab,ostfold>valer<xn--stfold-9xa>xn--vler-qoa<<np>*<nr>biz,info,gov,edu,org,net,com<nu,nz>ac,co,cri,geek,gen,govt,health,iwi,kiwi,maori,mil,xn--mori-qsa,net,org,parliament,school<om>co,com,edu,gov,med,museum,net,org,pro<onion,org,pa>ac,gob,com,org,sld,edu,net,ing,abo,med,nom<pe>edu,gob,nom,mil,org,com,net<pf>com,org,edu<pg>*<ph>com,net,org,gov,edu,ngo,mil,i<pk>com,net,edu,org,fam,biz,web,gov,gob,gok,gon,gop,gos,info<pl>com,net,org,aid,agro,atm,auto,biz,edu,gmina,gsm,info,mail,miasta,media,mil,nieruchomosci,nom,pc,powiat,priv,realestate,rel,sex,shop,sklep,sos,szkola,targi,tm,tourism,travel,turystyka,gov>ap,griw,ic,is,kmpsp,konsulat,kppsp,kwp,kwpsp,mup,mw,oia,oirm,oke,oow,oschr,oum,pa,pinb,piw,po,pr,psp,psse,pup,rzgw,sa,sdn,sko,so,sr,starostwo,ug,ugim,um,umig,upow,uppo,us,uw,uzs,wif,wiih,winb,wios,witd,wiw,wkz,wsa,wskr,wsse,wuoz,wzmiuw,zp,zpisdn<augustow,babia-gora,bedzin,beskidy,bialowieza,bialystok,bielawa,bieszczady,boleslawiec,bydgoszcz,bytom,cieszyn,czeladz,czest,dlugoleka,elblag,elk,glogow,gniezno,gorlice,grajewo,ilawa,jaworzno,jelenia-gora,jgora,kalisz,kazimierz-dolny,karpacz,kartuzy,kaszuby,katowice,kepno,ketrzyn,klodzko,kobierzyce,kolobrzeg,konin,konskowola,kutno,lapy,lebork,legnica,lezajsk,limanowa,lomza,lowicz,lubin,lukow,malbork,malopolska,mazowsze,mazury,mielec,mielno,mragowo,naklo,nowaruda,nysa,olawa,olecko,olkusz,olsztyn,opoczno,opole,ostroda,ostroleka,ostrowiec,ostrowwlkp,pila,pisz,podhale,podlasie,polkowice,pomorze,pomorskie,prochowice,pruszkow,przeworsk,pulawy,radom,rawa-maz,rybnik,rzeszow,sanok,sejny,slask,slupsk,sosnowiec,stalowa-wola,skoczow,starachowice,stargard,suwalki,swidnica,swiebodzin,swinoujscie,szczecin,szczytno,tarnobrzeg,tgory,turek,tychy,ustka,walbrzych,warmia,warszawa,waw,wegrow,wielun,wlocl,wloclawek,wodzislaw,wolomin,wroclaw,zachpomor,zagan,zarow,zgora,zgorzelec<pm,pn>gov,co,org,edu,net<post,pr>com,net,org,gov,edu,isla,pro,biz,info,name,est,prof,ac<pro>aaa,aca,acct,avocat,bar,cpa,eng,jur,law,med,recht<ps>edu,gov,sec,plo,com,org,net<pt>net,gov,org,edu,int,publ,com,nome<pw>co,ne,or,ed,go,belau<py>com,coop,edu,gov,mil,net,org<qa>com,edu,gov,mil,name,net,org,sch<re>asso,com,nom<ro>arts,com,firm,info,nom,nt,org,rec,store,tm,www<rs>ac,co,edu,gov,in,org<ru,rw>ac,co,coop,gov,mil,net,org<sa>com,net,org,gov,med,pub,edu,sch<sb>com,edu,gov,net,org<sc>com,gov,net,org,edu<sd>com,net,org,edu,med,tv,gov,info<se>a,ac,b,bd,brand,c,d,e,f,fh,fhsk,fhv,g,h,i,k,komforb,kommunalforbund,komvux,l,lanbib,m,n,naturbruksgymn,o,org,p,parti,pp,press,r,s,t,tm,u,w,x,y,z<sg>com,net,org,gov,edu,per<sh>com,net,gov,org,mil<si,sj,sk,sl>com,net,edu,gov,org<sm,sn>art,com,edu,gouv,org,perso,univ<so>com,edu,gov,me,net,org<sr,ss>biz,com,edu,gov,me,net,org,sch<st>co,com,consulado,edu,embaixada,mil,net,org,principe,saotome,store<su,sv>com,edu,gob,org,red<sx>gov<sy>edu,gov,net,mil,com,org<sz>co,ac,org<tc,td,tel,tf,tg,th>ac,co,go,in,mi,net,or<tj>ac,biz,co,com,edu,go,gov,int,mil,name,net,nic,org,test,web<tk,tl>gov<tm>com,co,org,net,nom,gov,mil,edu<tn>com,ens,fin,gov,ind,info,intl,mincom,nat,net,org,perso,tourism<to>com,gov,net,org,edu,mil<tr>av,bbs,bel,biz,com,dr,edu,gen,gov,info,mil,k12,kep,name,net,org,pol,tel,tsk,tv,web,nc>gov<<tt>co,com,org,net,biz,info,pro,int,coop,jobs,mobi,travel,museum,aero,name,gov,edu<tv,tw>edu,gov,mil,com,net,org,idv,game,ebiz,club,xn--zf0ao64a,xn--uc0atv,xn--czrw28b<tz>ac,co,go,hotel,info,me,mil,mobi,ne,or,sc,tv<ua>com,edu,gov,in,net,org,cherkassy,cherkasy,chernigov,chernihiv,chernivtsi,chernovtsy,ck,cn,cr,crimea,cv,dn,dnepropetrovsk,dnipropetrovsk,donetsk,dp,if,ivano-frankivsk,kh,kharkiv,kharkov,kherson,khmelnitskiy,khmelnytskyi,kiev,kirovograd,km,kr,kropyvnytskyi,krym,ks,kv,kyiv,lg,lt,lugansk,luhansk,lutsk,lv,lviv,mk,mykolaiv,nikolaev,od,odesa,odessa,pl,poltava,rivne,rovno,rv,sb,sebastopol,sevastopol,sm,sumy,te,ternopil,uz,uzhgorod,uzhhorod,vinnica,vinnytsia,vn,volyn,yalta,zakarpattia,zaporizhzhe,zaporizhzhia,zhitomir,zhytomyr,zp,zt<ug>co,or,ac,sc,go,ne,com,org<uk>ac,co,gov,ltd,me,net,nhs,org,plc,police,sch>*<<us>dni,fed,isa,kids,nsn,ak>k12,cc,lib<al>k12,cc,lib<ar>k12,cc,lib<as>k12,cc,lib<az>k12,cc,lib<ca>k12,cc,lib<co>k12,cc,lib<ct>k12,cc,lib<dc>k12,cc,lib<de>cc<fl>k12,cc,lib<ga>k12,cc,lib<gu>k12,cc,lib<hi>cc,lib<ia>k12,cc,lib<id>k12,cc,lib<il>k12,cc,lib<in>k12,cc,lib<ks>k12,cc,lib<ky>k12,cc,lib<la>k12,cc,lib<ma>k12>pvt,chtr,paroch<cc,lib<md>k12,cc,lib<me>k12,cc,lib<mi>k12,cc,lib,ann-arbor,cog,dst,eaton,gen,mus,tec,washtenaw<mn>k12,cc,lib<mo>k12,cc,lib<ms>k12,cc,lib<mt>k12,cc,lib<nc>k12,cc,lib<nd>cc,lib<ne>k12,cc,lib<nh>k12,cc,lib<nj>k12,cc,lib<nm>k12,cc,lib<nv>k12,cc,lib<ny>k12,cc,lib<oh>k12,cc,lib<ok>k12,cc,lib<or>k12,cc,lib<pa>k12,cc,lib<pr>k12,cc,lib<ri>cc,lib<sc>k12,cc,lib<sd>cc,lib<tn>k12,cc,lib<tx>k12,cc,lib<ut>k12,cc,lib<vi>k12,cc,lib<vt>k12,cc,lib<va>k12,cc,lib<wa>k12,cc,lib<wi>k12,cc,lib<wv>cc<wy>k12,cc,lib<<uy>com,edu,gub,mil,net,org<uz>co,com,net,org<va,vc>com,net,org,gov,mil,edu<ve>arts,bib,co,com,e12,edu,firm,gob,gov,info,int,mil,net,nom,org,rar,rec,store,tec,web<vg,vi>co,com,k12,net,org<vn>ac,ai,biz,com,edu,gov,health,id,info,int,io,name,net,org,pro,angiang,bacgiang,backan,baclieu,bacninh,baria-vungtau,bentre,binhdinh,binhduong,binhphuoc,binhthuan,camau,cantho,caobang,daklak,daknong,danang,dienbien,dongnai,dongthap,gialai,hagiang,haiduong,haiphong,hanam,hanoi,hatinh,haugiang,hoabinh,hungyen,khanhhoa,kiengiang,kontum,laichau,lamdong,langson,laocai,longan,namdinh,nghean,ninhbinh,ninhthuan,phutho,phuyen,quangbinh,quangnam,quangngai,quangninh,quangtri,soctrang,sonla,tayninh,thaibinh,thainguyen,thanhhoa,thanhphohochiminh,thuathienhue,tiengiang,travinh,tuyenquang,vinhlong,vinhphuc,yenbai<vu>com,edu,net,org<wf,ws>com,net,org,gov,edu<yt,xn--mgbaam7a8h,xn--y9a3aq,xn--54b7fta0cc,xn--90ae,xn--mgbcpq6gpa1a,xn--90ais,xn--fiqs8s,xn--fiqz9s,xn--lgbbat1ad8j,xn--wgbh1c,xn--e1a4c,xn--qxa6a,xn--mgbah1a3hjkrd,xn--node,xn--qxam,xn--j6w193g>xn--55qx5d,xn--wcvs22d,xn--mxtq1m,xn--gmqw5a,xn--od0alg,xn--uc0atv<xn--2scrj9c,xn--3hcrj9c,xn--45br5cyl,xn--h2breg3eve,xn--h2brj9c8c,xn--mgbgu82a,xn--rvc1e0am3e,xn--h2brj9c,xn--mgbbh1a,xn--mgbbh1a71e,xn--fpcrj9c3d,xn--gecrj9c,xn--s9brj9c,xn--45brj9c,xn--xkc2dl3a5ee0h,xn--mgba3a4f16a,xn--mgba3a4fra,xn--mgbtx2b,xn--mgbayh7gpa,xn--3e0b707e,xn--80ao21a,xn--q7ce6a,xn--fzc2c9e2c,xn--xkc2al3hye2a,xn--mgbc0a9azcg,xn--d1alf,xn--l1acc,xn--mix891f,xn--mix082f,xn--mgbx4cd0ab,xn--mgb9awbf,xn--mgbai9azgqp6j,xn--mgbai9a5eva00b,xn--ygbi2ammx,xn--90a3ac>xn--o1ac,xn--c1avg,xn--90azh,xn--d1at,xn--o1ach,xn--80au<xn--p1ai,xn--wgbl6a,xn--mgberp4a5d4ar,xn--mgberp4a5d4a87g,xn--mgbqly7c0a67fbc,xn--mgbqly7cvafr,xn--mgbpl2fh,xn--yfro4i67o,xn--clchc0ea0b2g2a9gcd,xn--ogbpf8fl,xn--mgbtf8fl,xn--o3cw4h>xn--12c1fe0br,xn--12co0c3b4eva,xn--h3cuzk1di,xn--o3cyx2a,xn--m3ch0j3a,xn--12cfi8ixb8l<xn--pgbs0dh,xn--kpry57d,xn--kprw13d,xn--nnx388a,xn--j1amh,xn--mgb2ddes,xxx,ye>com,edu,gov,net,mil,org<za>ac,agric,alt,co,edu,gov,grondar,law,mil,net,ngo,nic,nis,nom,org,school,tm,web<zm>ac,biz,co,com,edu,gov,info,mil,net,org,sch<zw>ac,co,gov,mil,org<aaa,aarp,abb,abbott,abbvie,abc,able,abogado,abudhabi,academy,accenture,accountant,accountants,aco,actor,ads,adult,aeg,aetna,afl,africa,agakhan,agency,aig,airbus,airforce,airtel,akdn,alibaba,alipay,allfinanz,allstate,ally,alsace,alstom,amazon,americanexpress,americanfamily,amex,amfam,amica,amsterdam,analytics,android,anquan,anz,aol,apartments,app,apple,aquarelle,arab,aramco,archi,army,art,arte,asda,associates,athleta,attorney,auction,audi,audible,audio,auspost,author,auto,autos,avianca,aws,axa,azure,baby,baidu,banamex,bananarepublic,band,bank,bar,barcelona,barclaycard,barclays,barefoot,bargains,baseball,basketball,bauhaus,bayern,bbc,bbt,bbva,bcg,bcn,beats,beauty,beer,bentley,berlin,best,bestbuy,bet,bharti,bible,bid,bike,bing,bingo,bio,black,blackfriday,blockbuster,blog,bloomberg,blue,bms,bmw,bnpparibas,boats,boehringer,bofa,bom,bond,boo,book,booking,bosch,bostik,boston,bot,boutique,box,bradesco,bridgestone,broadway,broker,brother,brussels,build,builders,business,buy,buzz,bzh,cab,cafe,cal,call,calvinklein,cam,camera,camp,canon,capetown,capital,capitalone,car,caravan,cards,care,career,careers,cars,casa,case,cash,casino,catering,catholic,cba,cbn,cbre,center,ceo,cern,cfa,cfd,chanel,channel,charity,chase,chat,cheap,chintai,christmas,chrome,church,cipriani,circle,cisco,citadel,citi,citic,city,claims,cleaning,click,clinic,clinique,clothing,cloud,club,clubmed,coach,codes,coffee,college,cologne,comcast,commbank,community,company,compare,computer,comsec,condos,construction,consulting,contact,contractors,cooking,cool,corsica,country,coupon,coupons,courses,cpa,credit,creditcard,creditunion,cricket,crown,crs,cruise,cruises,cuisinella,cymru,cyou,dabur,dad,dance,data,date,dating,datsun,day,dclk,dds,deal,dealer,deals,degree,delivery,dell,deloitte,delta,democrat,dental,dentist,desi,design,dev,dhl,diamonds,diet,digital,direct,directory,discount,discover,dish,diy,dnp,docs,doctor,dog,domains,dot,download,drive,dtv,dubai,dunlop,dupont,durban,dvag,dvr,earth,eat,eco,edeka,education,email,emerck,energy,engineer,engineering,enterprises,epson,equipment,ericsson,erni,esq,estate,etisalat,eurovision,eus,events,exchange,expert,exposed,express,extraspace,fage,fail,fairwinds,faith,family,fan,fans,farm,farmers,fashion,fast,fedex,feedback,ferrari,ferrero,fidelity,fido,film,final,finance,financial,fire,firestone,firmdale,fish,fishing,fit,fitness,flickr,flights,flir,florist,flowers,fly,foo,food,football,ford,forex,forsale,forum,foundation,fox,free,fresenius,frl,frogans,frontier,ftr,fujitsu,fun,fund,furniture,futbol,fyi,gal,gallery,gallo,gallup,game,games,gap,garden,gay,gbiz,gdn,gea,gent,genting,george,ggee,gift,gifts,gives,giving,glass,gle,global,globo,gmail,gmbh,gmo,gmx,godaddy,gold,goldpoint,golf,goo,goodyear,goog,google,gop,got,grainger,graphics,gratis,green,gripe,grocery,group,guardian,gucci,guge,guide,guitars,guru,hair,hamburg,hangout,haus,hbo,hdfc,hdfcbank,health,healthcare,help,helsinki,here,hermes,hiphop,hisamitsu,hitachi,hiv,hkt,hockey,holdings,holiday,homedepot,homegoods,homes,homesense,honda,horse,hospital,host,hosting,hot,hotels,hotmail,house,how,hsbc,hughes,hyatt,hyundai,ibm,icbc,ice,icu,ieee,ifm,ikano,imamat,imdb,immo,immobilien,inc,industries,infiniti,ing,ink,institute,insurance,insure,international,intuit,investments,ipiranga,irish,ismaili,ist,istanbul,itau,itv,jaguar,java,jcb,jeep,jetzt,jewelry,jio,jll,jmp,jnj,joburg,jot,joy,jpmorgan,jprs,juegos,juniper,kaufen,kddi,kerryhotels,kerrylogistics,kerryproperties,kfh,kia,kids,kim,kinder,kindle,kitchen,kiwi,koeln,komatsu,kosher,kpmg,kpn,krd,kred,kuokgroup,kyoto,lacaixa,lamborghini,lamer,lancaster,land,landrover,lanxess,lasalle,lat,latino,latrobe,law,lawyer,lds,lease,leclerc,lefrak,legal,lego,lexus,lgbt,lidl,life,lifeinsurance,lifestyle,lighting,like,lilly,limited,limo,lincoln,link,lipsy,live,living,llc,llp,loan,loans,locker,locus,lol,london,lotte,lotto,love,lpl,lplfinancial,ltd,ltda,lundbeck,luxe,luxury,madrid,maif,maison,makeup,man,management,mango,map,market,marketing,markets,marriott,marshalls,mattel,mba,mckinsey,med,media,meet,melbourne,meme,memorial,men,menu,merckmsd,miami,microsoft,mini,mint,mit,mitsubishi,mlb,mls,mma,mobile,moda,moe,moi,mom,monash,money,monster,mormon,mortgage,moscow,moto,motorcycles,mov,movie,msd,mtn,mtr,music,nab,nagoya,natura,navy,nba,nec,netbank,netflix,network,neustar,new,news,next,nextdirect,nexus,nfl,ngo,nhk,nico,nike,nikon,ninja,nissan,nissay,nokia,norton,now,nowruz,nowtv,nra,nrw,ntt,nyc,obi,observer,office,okinawa,olayan,olayangroup,oldnavy,ollo,omega,one,ong,onl,online,ooo,open,oracle,orange,organic,origins,osaka,otsuka,ott,ovh,page,panasonic,paris,pars,partners,parts,party,pay,pccw,pet,pfizer,pharmacy,phd,philips,phone,photo,photography,photos,physio,pics,pictet,pictures,pid,pin,ping,pink,pioneer,pizza,place,play,playstation,plumbing,plus,pnc,pohl,poker,politie,porn,pramerica,praxi,press,prime,prod,productions,prof,progressive,promo,properties,property,protection,pru,prudential,pub,pwc,qpon,quebec,quest,racing,radio,read,realestate,realtor,realty,recipes,red,redstone,redumbrella,rehab,reise,reisen,reit,reliance,ren,rent,rentals,repair,report,republican,rest,restaurant,review,reviews,rexroth,rich,richardli,ricoh,ril,rio,rip,rocher,rocks,rodeo,rogers,room,rsvp,rugby,ruhr,run,rwe,ryukyu,saarland,safe,safety,sakura,sale,salon,samsclub,samsung,sandvik,sandvikcoromant,sanofi,sap,sarl,sas,save,saxo,sbi,sbs,sca,scb,schaeffler,schmidt,scholarships,school,schule,schwarz,science,scot,search,seat,secure,security,seek,select,sener,services,seven,sew,sex,sexy,sfr,shangrila,sharp,shaw,shell,shia,shiksha,shoes,shop,shopping,shouji,show,silk,sina,singles,site,ski,skin,sky,skype,sling,smart,smile,sncf,soccer,social,softbank,software,sohu,solar,solutions,song,sony,soy,spa,space,sport,spot,srl,stada,staples,star,statebank,statefarm,stc,stcgroup,stockholm,storage,store,stream,studio,study,style,sucks,supplies,supply,support,surf,surgery,suzuki,swatch,swiss,sydney,systems,tab,taipei,talk,taobao,target,tatamotors,tatar,tattoo,tax,taxi,tci,tdk,team,tech,technology,temasek,tennis,teva,thd,theater,theatre,tiaa,tickets,tienda,tips,tires,tirol,tjmaxx,tjx,tkmaxx,tmall,today,tokyo,tools,top,toray,toshiba,total,tours,town,toyota,toys,trade,trading,training,travel,travelers,travelersinsurance,trust,trv,tube,tui,tunes,tushu,tvs,ubank,ubs,unicom,university,uno,uol,ups,vacations,vana,vanguard,vegas,ventures,verisign,versicherung,vet,viajes,video,vig,viking,villas,vin,vip,virgin,visa,vision,viva,vivo,vlaanderen,vodka,volkswagen,volvo,vote,voting,voto,voyage,wales,walmart,walter,wang,wanggou,watch,watches,weather,weatherchannel,webcam,weber,website,wedding,weibo,weir,whoswho,wien,wiki,williamhill,win,windows,wine,winners,wme,wolterskluwer,woodside,work,works,world,wow,wtc,wtf,xbox,xerox,xfinity,xihuan,xin,xn--11b4c3d,xn--1ck2e1b,xn--1qqw23a,xn--30rr7y,xn--3bst00m,xn--3ds443g,xn--3pxu8k,xn--42c2d9a,xn--45q11c,xn--4gbrim,xn--55qw42g,xn--55qx5d,xn--5su34j936bgsg,xn--5tzm5g,xn--6frz82g,xn--6qq986b3xl,xn--80adxhks,xn--80aqecdr1a,xn--80asehdb,xn--80aswg,xn--8y0a063a,xn--9dbq2a,xn--9et52u,xn--9krt00a,xn--b4w605ferd,xn--bck1b9a5dre4c,xn--c1avg,xn--c2br7g,xn--cck2b3b,xn--cckwcxetd,xn--cg4bki,xn--czr694b,xn--czrs0t,xn--czru2d,xn--d1acj3b,xn--eckvdtc9d,xn--efvy88h,xn--fct429k,xn--fhbei,xn--fiq228c5hs,xn--fiq64b,xn--fjq720a,xn--flw351e,xn--fzys8d69uvgm,xn--g2xx48c,xn--gckr3f0f,xn--gk3at1e,xn--hxt814e,xn--i1b6b1a6a2e,xn--imr513n,xn--io0a7i,xn--j1aef,xn--jlq480n2rg,xn--jvr189m,xn--kcrx77d1x4a,xn--kput3i,xn--mgba3a3ejt,xn--mgba7c0bbn0a,xn--mgbaakc7dvf,xn--mgbab2bd,xn--mgbca7dzdo,xn--mgbi4ecexp,xn--mgbt3dhd,xn--mk1bu44c,xn--mxtq1m,xn--ngbc5azd,xn--ngbe9e0a,xn--ngbrx,xn--nqv7f,xn--nqv7fs00ema,xn--nyqy26a,xn--otu796d,xn--p1acf,xn--pssy2u,xn--q9jyb4c,xn--qcka1pmc,xn--rhqv96g,xn--rovu88b,xn--ses554g,xn--t60b56a,xn--tckwe,xn--tiq49xqyj,xn--unup4y,xn--vermgensberater-ctb,xn--vermgensberatung-pwb,xn--vhquv,xn--vuq861b,xn--w4r85el8fhu5dnra,xn--w4rs40l,xn--xhq521b,xn--zfr164b,xyz,yachts,yahoo,yamaxun,yandex,yodobashi,yoga,yokohama,you,youtube,yun,zappos,zara,zero,zip,zone,zuerich";

  // node_modules/.pnpm/parse-domain@8.0.1/node_modules/parse-domain/serialized-tries/private.js
  var private_default = "ua>cc,inf,ltd,cx,ie,biz,co,pp,v<to>611,oya,rdv,x0,vpnplus,quickconnect>direct<nyan<us>graphox,cloudns,drud,is-by,land-4-sale,stuff-4-sale,enscaled>phx<mircloud,freeddns,golffan,noip,pointto,platterp,de>lib<<com>devcdnaccesso>*<adobeaemcloud>dev>*<<airkitapps,airkitapps-au,aivencloud,kasserver,amazonaws>af-south-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<ap-east-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<ap-northeast-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,analytics-gateway,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<ap-northeast-2>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,analytics-gateway,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<ap-northeast-3>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<ap-south-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,analytics-gateway,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<ap-south-2>execute-api,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website<ap-southeast-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,analytics-gateway,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<ap-southeast-2>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,analytics-gateway,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<ap-southeast-3>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website<ap-southeast-4>execute-api,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website<ca-central-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-accesspoint-fips,s3-fips,s3-website<s3,s3-accesspoint,s3-accesspoint-fips,s3-fips,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<eu-central-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,analytics-gateway,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<eu-central-2>execute-api,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website<eu-north-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<eu-south-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<eu-south-2>execute-api,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website<eu-west-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-deprecated,s3-object-lambda,s3-website,analytics-gateway,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<eu-west-2>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<eu-west-3>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<il-central-1>execute-api,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website<me-central-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website<me-south-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<sa-east-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<us-east-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-accesspoint-fips,s3-fips,s3-website<s3,s3-accesspoint,s3-accesspoint-fips,s3-deprecated,s3-fips,s3-object-lambda,s3-website,analytics-gateway,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<us-east-2>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-accesspoint-fips,s3-fips<s3,s3-accesspoint,s3-accesspoint-fips,s3-deprecated,s3-fips,s3-object-lambda,s3-website,analytics-gateway,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<us-gov-east-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-accesspoint-fips,s3-fips<s3,s3-accesspoint,s3-accesspoint-fips,s3-fips,s3-object-lambda,s3-website<us-gov-west-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-accesspoint-fips,s3-fips<s3,s3-accesspoint,s3-accesspoint-fips,s3-fips,s3-object-lambda,s3-website<us-west-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-accesspoint-fips,s3-fips,s3-website<s3,s3-accesspoint,s3-accesspoint-fips,s3-fips,s3-object-lambda,s3-website,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<us-west-2>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-accesspoint-fips,s3-fips,s3-website<s3,s3-accesspoint,s3-accesspoint-fips,s3-deprecated,s3-fips,s3-object-lambda,s3-website,analytics-gateway,aws-cloud9>webview-assets<cloud9>vfs,webview-assets<<compute>*<compute-1>*<airflow>ap-northeast-1>*<ap-northeast-2>*<ap-south-1>*<ap-southeast-1>*<ap-southeast-2>*<ca-central-1>*<eu-central-1>*<eu-north-1>*<eu-west-1>*<eu-west-2>*<eu-west-3>*<sa-east-1>*<us-east-1>*<us-east-2>*<us-west-2>*<<s3,s3-1,s3-ap-east-1,s3-ap-northeast-1,s3-ap-northeast-2,s3-ap-northeast-3,s3-ap-south-1,s3-ap-southeast-1,s3-ap-southeast-2,s3-ca-central-1,s3-eu-central-1,s3-eu-north-1,s3-eu-west-1,s3-eu-west-2,s3-eu-west-3,s3-external-1,s3-fips-us-gov-east-1,s3-fips-us-gov-west-1,s3-global>accesspoint>mrap<<s3-me-south-1,s3-sa-east-1,s3-us-east-2,s3-us-gov-east-1,s3-us-gov-west-1,s3-us-west-1,s3-us-west-2,s3-website-ap-northeast-1,s3-website-ap-southeast-1,s3-website-ap-southeast-2,s3-website-eu-west-1,s3-website-sa-east-1,s3-website-us-east-1,s3-website-us-gov-west-1,s3-website-us-west-1,s3-website-us-west-2,elb>*<<amazoncognito>af-south-1>auth<ap-northeast-1>auth<ap-northeast-2>auth<ap-northeast-3>auth<ap-south-1>auth<ap-southeast-1>auth<ap-southeast-2>auth<ap-southeast-3>auth<ca-central-1>auth<eu-central-1>auth<eu-north-1>auth<eu-south-1>auth<eu-west-1>auth<eu-west-2>auth<eu-west-3>auth<il-central-1>auth<me-south-1>auth<sa-east-1>auth<us-east-1>auth,auth-fips<us-east-2>auth,auth-fips<us-gov-west-1>auth-fips<us-west-1>auth,auth-fips<us-west-2>auth,auth-fips<<amplifyapp>*<awsapprunner>*<elasticbeanstalk>af-south-1,ap-east-1,ap-northeast-1,ap-northeast-2,ap-northeast-3,ap-south-1,ap-southeast-1,ap-southeast-2,ap-southeast-3,ca-central-1,eu-central-1,eu-north-1,eu-south-1,eu-west-1,eu-west-2,eu-west-3,il-central-1,me-south-1,sa-east-1,us-east-1,us-east-2,us-gov-east-1,us-gov-west-1,us-west-1,us-west-2<awsglobalaccelerator,siiites,appspacehosted,appspaceusercontent,on-aptible,myasustor,balena-devices,betainabox,boutir,bplaced,cafjs,canva-apps,br,cn,de,eu,jpn,mex,ru,sa,uk,us,za,ar,hu,kr,no,qc,uy,africa,gr,co,jdevcloud,wpdevcloud,cloudcontrolled,cloudcontrolapp,cf-ipfs,cloudflare-ipfs,trycloudflare,customer-oci>*,oci>*<ocp>*<ocs>*<<dattolocal,dattorelay,dattoweb,mydatto,builtwithdark,datadetect>demo,instance<ddns5,discordsays,discordsez,drayddns,dreamhosters,mydrobo,dyndns-at-home,dyndns-at-work,dyndns-blog,dyndns-free,dyndns-home,dyndns-ip,dyndns-mail,dyndns-office,dyndns-pics,dyndns-remote,dyndns-server,dyndns-web,dyndns-wiki,dyndns-work,blogdns,cechire,dnsalias,dnsdojo,doesntexist,dontexist,doomdns,dyn-o-saur,dynalias,est-a-la-maison,est-a-la-masion,est-le-patron,est-mon-blogueur,from-ak,from-al,from-ar,from-ca,from-ct,from-dc,from-de,from-fl,from-ga,from-hi,from-ia,from-id,from-il,from-in,from-ks,from-ky,from-ma,from-md,from-mi,from-mn,from-mo,from-ms,from-mt,from-nc,from-nd,from-ne,from-nh,from-nj,from-nm,from-nv,from-oh,from-ok,from-or,from-pa,from-pr,from-ri,from-sc,from-sd,from-tn,from-tx,from-ut,from-va,from-vt,from-wa,from-wi,from-wv,from-wy,getmyip,gotdns,hobby-site,homelinux,homeunix,iamallama,is-a-anarchist,is-a-blogger,is-a-bookkeeper,is-a-bulls-fan,is-a-caterer,is-a-chef,is-a-conservative,is-a-cpa,is-a-cubicle-slave,is-a-democrat,is-a-designer,is-a-doctor,is-a-financialadvisor,is-a-geek,is-a-green,is-a-guru,is-a-hard-worker,is-a-hunter,is-a-landscaper,is-a-lawyer,is-a-liberal,is-a-libertarian,is-a-llama,is-a-musician,is-a-nascarfan,is-a-nurse,is-a-painter,is-a-personaltrainer,is-a-photographer,is-a-player,is-a-republican,is-a-rockstar,is-a-socialist,is-a-student,is-a-teacher,is-a-techie,is-a-therapist,is-an-accountant,is-an-actor,is-an-actress,is-an-anarchist,is-an-artist,is-an-engineer,is-an-entertainer,is-certified,is-gone,is-into-anime,is-into-cars,is-into-cartoons,is-into-games,is-leet,is-not-certified,is-slick,is-uberleet,is-with-theband,isa-geek,isa-hockeynut,issmarterthanyou,likes-pie,likescandy,neat-url,saves-the-whales,selfip,sells-for-less,sells-for-u,servebbs,simple-url,space-to-rent,teaches-yoga,writesthisblog,digitaloceanspaces>*<ddnsfree,ddnsgeek,giize,gleeze,kozow,loseyourip,ooguy,theworkpc,mytuleap,tuleap-partners,encoreapi,evennode>eu-1,eu-2,eu-3,eu-4,us-1,us-2,us-3,us-4<onfabrica,fbsbx>apps<fastly-edge,fastly-terrarium,fastvps-server,mydobiss,firebaseapp,fldrv,forgeblocks,framercanvas,freebox-os,freeboxos,freemyip,gentapps,gentlentapis,githubusercontent,0emm>*<appspot>r>*<<codespot,googleapis,googlecode,pagespeedmobilizer,publishproxy,withgoogle,withyoutube,blogspot,awsmppl,herokuapp,herokussl,impertrixcdn,impertrix,smushcdn,wphostedmail,wpmucdn,pixolino,amscompute,dopaas,hosted-by-previder>paas<hosteur>rag-cloud,rag-cloud-ch<ik-server>jcloud,jcloud-ver-jpc<jelastic>demo<kilatiron,massivegrid>paas<wafaicloud>jed,lon,ryd<joyent>cns>*<<ktistory,lpusercontent,lmpm>app<linode>members,nodebalancer>*<<linodeobjects>*<linodeusercontent>ip<barsycenter,barsyonline,mazeplay,miniserver,meteorapp>eu<hostedpi,mythic-beasts>customer,caracal,fentiger,lynx,ocelot,oncilla,onza,sphinx,vs,x,yali<nospamproxy>cloud<4u,nfshost,001www,ddnslive,myiphost,blogsyte,ciscofreak,damnserver,ditchyourip,dnsiskinky,dynns,geekgalaxy,health-carereform,homesecuritymac,homesecuritypc,myactivedirectory,mysecuritycamera,net-freaks,onthewifi,point2this,quicksytes,securitytactics,serveexchange,servehumour,servep2p,servesarcasm,stufftoread,unusualperson,workisboring,3utilities,ddnsking,myvnc,servebeer,servecounterstrike,serveftp,servegame,servehalflife,servehttp,serveirc,servemp3,servepics,servequake,observableusercontent>static<simplesite,orsites,operaunite,authgear-staging,authgearapps,skygearapp,outsystemscloud,ownprovider,pgfog,pagefrontapp,pagexl,paywhirl>*<gotpantheon,platter-app,pleskns,postman-echo,prgmr>xen<pythonanywhere>eu<qualifioapp,ladesk,qbuser,qa2,dev-myqnapcloud,alpha-myqnapcloud,myqnapcloud,quipelements>*<rackmaze,rhcloud,render>app<onrender,180r,dojin,sakuratan,sakuraweb,x0,code>builder>*<dev-builder>*<stg-builder>*<<logoip,scrysec,firewall-gateway,myshopblocks,myshopify,shopitsite,1kapp,appchizi,applinzi,sinaapp,vipsinaapp,bounty-full>alpha,beta<streamlitapp,try-snowplow,stackhero-network,playstation-cloud,myspreadshop,stdlib>api<temp-dns,dsmynas,familyds,mytabit,tb-hosting>site<reservd,thingdustdata,bloxcms,townnews-staging,typeform>pro<hk,it,vultrobjects>*<wafflecell,reserve-online,hotelwithflight,remotewd,wiardweb>pages<messwithdns,woltlab-demo,wpenginepowered>js<wixsite,xnbay>u2,u2-local<yolasite<io>on-acorn>*<apigee,b-data,backplaneapp,banzaicloud>app,backyards>*<<beagleboard,bitbucket,bluebite,boxfuse,browsersafetymark,bigv>uk0<cleverapps,dappnode>dyndns<dedyn,drud,definima,fh-muenster,shw,forgerock>id<ghost,github,gitlab,lolipop,hasura-app,hostyhosting,moonscale>*<beebyte>paas<beebyteapp>sekd1<jele,unispace>cloud-fr1<webthings,loginline,barsy,azurecontainer>*<ngrok>ap,au,eu,in,jp,sa,us<nodeart>stage<nid,pantheonsite,dyn53,pstmn>mock<protonet,qoto,qcx>sys>*<<vaporcloud,vbrplsbx>g<on-k3s>*<on-rio>*<readthedocs,resindevice,resinstaging>devices<hzc,sandcats,shiftcrypto,shiftedit,mo-siemens,musician,lair>apps<stolos>*<spacekit,utwente,s5y>*<edugit,telebit,thingdust>dev>cust,reservd<disrec>cust,reservd<prod>cust<testing>cust,reservd<<tickets,upli,2038,wedeploy,editorx,wixstudio,basicserver,virtualserver<biz>activetrail,cloudns,jozi,dyndns,for-better,for-more,for-some,for-the,selfip,webhop,orx,mmafan,myftp,no-ip,dscloud<live>hlx<net>adobeaemcloud,adobeio-static,adobeioruntime,akadns,akamai,akamai-staging,akamaiedge,akamaiedge-staging,akamaihd,akamaihd-staging,akamaiorigin,akamaiorigin-staging,akamaized,akamaized-staging,edgekey,edgekey-staging,edgesuite,edgesuite-staging,alwaysdata,myamaze,cloudfront,t3l3p0rt,appudo,atlassian-dev>prod>cdn<<myfritz,onavstack,shopselect,blackbaudcdn,boomla,bplaced,square7,gb,hu,jp,se,uk,in,clickrising,cloudaccess,cdn77-ssl,cdn77>r<feste-ip,knx-server,static-access,cryptonomic>*<dattolocal,mydatto,debian,bitbridge,at-band-camp,blogdns,broke-it,buyshouses,dnsalias,dnsdojo,does-it,dontexist,dynalias,dynathome,endofinternet,from-az,from-co,from-la,from-ny,gets-it,ham-radio-op,homeftp,homeip,homelinux,homeunix,in-the-band,is-a-chef,is-a-geek,isa-geek,kicks-ass,office-on-the,podzone,scrapper-site,selfip,sells-it,servebbs,serveftp,thruhere,webhop,definima,casacam,dynu,dynv6,twmail,ru,channelsdvr>u<fastlylb>map<fastly>freetls,map,prod>a,global<ssl>a,b,global<<edgeapp,flynnhosting,cdn-edges,heteml,cloudfunctions,moonscale,in-dsl,in-vpn,ipifony,iobb,cloudjiffy>fra1-de,west1-us<elastx>jls-sto1,jls-sto2,jls-sto3<faststacks,massivegrid>paas>fr-1,lon-1,lon-2,ny-1,ny-2,sg-1<<saveincloud>jelastic,nordeste-idc<scaleforce>j<tsukaeru>jelastic<kinghost,uni5,krellian,barsy,memset,azurewebsites,azure-mobile,cloudapp,azurestaticapps>1,2,3,4,5,6,7,centralus,eastasia,eastus2,westeurope,westus2<dnsup,hicam,now-dns,ownip,vpndns,eating-organic,mydissent,myeffect,mymediapc,mypsx,mysecuritycamera,nhlfan,no-ip,pgafan,privatizehealthinsurance,bounceme,ddns,redirectme,serveblog,serveminecraft,sytes,cloudycluster,ovh>webpaas>*<hosting>*<<bar0,bar1,bar2,rackmaze,squares,schokokeks,firewall-gateway,seidat,senseering,siteleaf,vps-host>jelastic>atl,njs,ric<<myspreadshop,srcf>soc,user<supabase,dsmynas,familyds,tailscale>beta<ts,torproject>pages<reserve-online,community-pro,meinforum,yandexcloud>storage,website<za<page>hlx,hlx3,translated,codeberg,pdns,plesk,prvcy,rocky,magnet<pl>beep,ecommerce-shop,shoparena,homesklep,sdscloud,unicloud,krasnik,leczna,lubartow,lublin,poniatowa,swidnik,co,simplesite,art,gliwice,krakow,poznan,wroc,zakopane,myspreadshop,gda,gdansk,gdynia,med,sopot<eu>airkitapps,mycd,cloudns,dogado>jelastic<barsy,wellbeingzone,spdns,transurl>*<diskstation<ca>barsy,awdev>*<co,blogspot,no-ip,myspreadshop<estate>compute>*<<network>alces>*<co,arvo,azimuth,tlon<org>altervista,amune>tele<pimienta,poivron,potager,sweetpepper,ae,us,certmgr,cdn77>c,rsc<cdn77-secure>origin>ssl<<cloudns,duckdns,tunk,dyndns>go,home<blogdns,blogsite,boldlygoingnowhere,dnsalias,dnsdojo,doesntexist,dontexist,doomdns,dvrdns,dynalias,endofinternet,endoftheinternet,from-me,game-host,gotdns,hobby-site,homedns,homeftp,homelinux,homeunix,is-a-bruinsfan,is-a-candidate,is-a-celticsfan,is-a-chef,is-a-geek,is-a-knight,is-a-linux-user,is-a-patsfan,is-a-soxfan,is-found,is-lost,is-saved,is-very-bad,is-very-evil,is-very-good,is-very-nice,is-very-sweet,isa-geek,kicks-ass,misconfused,podzone,readmyblog,selfip,sellsyourhome,servebbs,serveftp,servegame,stuff-4-sale,webhop,ddnss,accesscam,camdvr,freeddns,mywire,webredirect,eu>al,asso,at,au,be,bg,ca,cd,ch,cn,cy,cz,de,dk,edu,ee,es,fi,fr,gr,hr,hu,ie,il,in,int,is,it,jp,kr,lt,lu,lv,mc,me,mk,mt,my,net,ng,nl,no,nz,paris,pl,pt,q-a,ro,ru,se,si,sk,tr,uk,us<twmail,fedorainfracloud,fedorapeople,fedoraproject>cloud,os>app<stg>os>app<<<freedesktop,hepforge,in-dsl,in-vpn,js,barsy,mayfirst,mozilla-iot,bmoattachments,dynserv,now-dns,cable-modem,collegefan,couchpotatofries,mlbfan,mysecuritycamera,nflfan,read-books,ufcfan,hopto,myftp,no-ip,zapto,httpbin,pubtls,jpn,my-firewall,myfirewall,spdns,small-web,dsmynas,familyds,teckids>s3<tuxfamily,diskstation,hk,wmflabs,toolforge,wmcloud,za<cn>com>amazonaws>cn-north-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint,s3-website<s3,s3-accesspoint,s3-deprecated,s3-object-lambda,s3-website<cn-northwest-1>execute-api,emrappui-prod,emrnotebooks-prod,emrstudio-prod,dualstack>s3,s3-accesspoint<s3,s3-accesspoint,s3-object-lambda,s3-website<compute>*<airflow>cn-north-1>*<cn-northwest-1>*<<eb>cn-north-1,cn-northwest-1<elb>*<<sagemaker>cn-north-1>notebook,studio<cn-northwest-1>notebook,studio<<<canva-apps,instantcloud,quickconnect>direct<<aws>sagemaker>af-south-1>notebook,studio<ap-east-1>notebook,studio<ap-northeast-1>notebook,studio<ap-northeast-2>notebook,studio<ap-northeast-3>notebook,studio<ap-south-1>notebook,studio<ap-south-2>notebook<ap-southeast-1>notebook,studio<ap-southeast-2>notebook,studio<ap-southeast-3>notebook,studio<ap-southeast-4>notebook<ca-central-1>notebook,studio<eu-central-1>notebook,studio<eu-central-2>notebook<eu-north-1>notebook,studio<eu-south-1>notebook,studio<eu-south-2>notebook<eu-west-1>notebook,studio<eu-west-2>notebook,studio<eu-west-3>notebook,studio<il-central-1>notebook,studio<me-central-1>notebook,studio<me-south-1>notebook,studio<sa-east-1>notebook,studio<us-east-1>notebook,notebook-fips,studio<us-east-2>notebook,notebook-fips,studio<us-gov-east-1>notebook,notebook-fips,studio,studio-fips<us-gov-west-1>notebook,notebook-fips,studio,studio-fips<us-west-1>notebook,studio<us-west-2>notebook,notebook-fips,studio<<<online>eero,eero-stage,barsy<jp>ne>aseinet>user<gehirn,ivory,mail-box,mints,mokuren,opal,sakura,sumomo,topaz<buyshop,fashionstore,handcrafted,kawaiishop,supersale,theshop,usercontent,angry,babyblue,babymilk,backdrop,bambina,bitter,blush,boo,boy,boyfriend,but,candypop,capoo,catfood,cheap,chicappa,chillout,chips,chowder,chu,ciao,cocotte,coolblog,cranky,cutegirl,daa,deca,deci,digick,egoism,fakefur,fem,flier,floppy,fool,frenchkiss,girlfriend,girly,gloomy,gonna,greater,hacca,heavy,her,hiho,hippy,holy,hungry,icurus,itigo,jellybean,kikirara,kill,kilo,kuron,littlestar,lolipopmc,lolitapunk,lomo,lovepop,lovesick,main,mods,mond,mongolian,moo,namaste,nikita,nobushi,noor,oops,parallel,parasite,pecori,peewee,penne,pepper,perma,pigboat,pinoko,punyu,pupu,pussycat,pya,raindrop,readymade,sadist,schoolbus,secret,staba,stripper,sub,sunnyday,thick,tonkotsu,under,upper,velvet,verse,versus,vivian,watson,weblike,whitesnow,zombie,blogspot,2-d,bona,crap,daynight,eek,flop,halfmoon,jeez,matrix,mimoza,netgamers,nyanta,o0o0,rdy,rgr,rulez,sakurastorage>isk01>s3<isk02>s3<<saloon,sblo,skr,tank,uh-oh,undo,webaccel>rs,user<websozai,xii<vc>gv>d<0e<eus>party>user<<dev>autocode,lcl>*<lclstage>*<stg>*<stgstage>*<pages,r2,workers,curv,deno,deno-staging,deta,fly,githubpreview,gateway>*<iserv,localcert>user>*<<loginline,mediatech,ngrok,ngrok-free,platter-app,shiftcrypto,vercel,webhare>*<<ws>advisor>*<cloud66,dyndns,mypets<ba>rs,blogspot<cloud>banzai>*<elementor,encoway>eu<statics>*<ravendb,axarnet>es-1<diadem,jelastic>vip<jele,jenv-aruba>aruba>eur>it1<<it1<keliweb>cs<oxa>tn,uk<primetel>uk<reclaim>ca,uk,us<trendhosting>ch,de<jotelulu,kuleuven,linkyard,magentosite>*<perspecta,vapor,on-rancher>*<scw>baremetal>fr-par-1,fr-par-2,nl-ams-1<fr-par>fnc>functions<k8s>nodes<s3,s3-website,whm<instances>priv,pub<k8s,nl-ams>k8s>nodes<s3,s3-website,whm<pl-waw>k8s>nodes<s3,s3-website<scalebook,smartlabeling<sensiosite>*<trafficplex,urown,voorloper<ec>base,official<shop>base,hoplix,barsy<app>beget>*<clerk,clerkstage,wnext,platform0,deta,ondigitalocean,easypanel,encr,edgecompute,fireweb,onflashdrive,framer,run>a<web,hasura,loginline,messerli,netlify,ngrok,ngrok-free,developer>*<noop,northflank>*<snowflake>privatelink<streamlit,storipress,telebit,typedream,vercel,bookonline<la>bnr,c<je>of<ch>square7,blogspot,flow>ae>alp1<appengine<linkyard-cloud,dnsking,gotdns,123website,myspreadshop,firenet>*,svc>*<<12hp,2ix,4lima,lima-city<de>bplaced,square7,com,cosidns>dyn<dynamisches-dns,dnsupdater,internet-dns,l-o-g-i-n,dnshome,fuettertdasnetz,isteingeek,istmein,lebtimnetz,leitungsen,traeumtgerade,ddnss>dyn,dyndns<dyndns1,dyn-ip24,home-webserver>dyn<myhome-server,frusky>*<goip,blogspot,xn--gnstigbestellen-zvb,xn--gnstigliefern-wob,hs-heilbronn>it>pages<<dyn-berlin,in-berlin,in-brb,in-butter,in-dsl,in-vpn,iservschule,mein-iserv,schulplattform,schulserver,test-iserv,keymachine,git-repos,lcube-server,svn-repos,barsy,123webseite,logoip,firewall-gateway,my-gateway,my-router,spdns,speedpartner>customer<myspreadshop,taifun-dns,12hp,2ix,4lima,lima-city,dd-dns,dray-dns,draydns,dyn-vpn,dynvpn,mein-vigor,my-vigor,my-wan,syno-ds,synology-diskstation,synology-ds,uberspace>*<virtualuser,virtual-user,community-pro,diskussionsbereich<rs>brendly>shop<blogspot,ua,ox<uk>co>bytemark>dh,vm<blogspot,layershift>j<barsy,barsyonline,retrosnub>cust<nh-serv,no-ip,wellbeingzone,adimo,myspreadshop<conn,copro,hosp,independent-commission,independent-inquest,independent-inquiry,independent-panel,independent-review,public-inquiry,royal-commission,gov>campaign,service,api,homeoffice<pymnt,org>glug,lug,lugs,affinitylottery,raffleentry,weeklylottery<barsy<ac>drr<ai>uwu<co>carrd,crd,otap>*<com>blogspot<leadpages,lpages,mypi,n4t,firewalledreplit>id<repl>id<supabase<mp>ju<se>com,blogspot,conf,iopsys,123minsida,itcouldbewor,myspreadshop,paba>su<<bz>za,gsj<in>web,cloudns,blogspot,barsy,supabase<basketball>aus,nz<am>radio,blogspot,neko,nyaa<fm>radio,user>*<<group>discourse<team>discourse,jelastic<me>c66,daplie>localhost<edgestack,filegear,filegear-au,filegear-de,filegear-gb,filegear-ie,filegear-jp,filegear-sg,glitch,ravendb,lohmus,barsy,mcpe,mcdir,soundcast,tcp4,brasilia,ddns,dnsfor,hopto,loginto,noip,webhop,vp4,diskstation,dscloud,i234,myds,synology,transip>site<wedeploy,yombo,nohost<zone>cloud66,hs,triton>*<lima<host>cloudaccess,freesite,easypanel,fastvps,myfast,tempurl,wpmudev,jele,mircloud,pcloud,half<site>cloudera>*<cyon,fnwk,folionetwork,fastvps,jele,lelux,loginline,barsy,mintere,omniwe,opensocial,platformsh>*<tst>*<byen,srht,novecore<cz>co,realm,e4,blogspot,metacentrum>cloud>*<custom<muni>cloud>flt,usr<<<asia>cloudns<club>cloudns,jele,barsy<cc>cloudns,ftpaccess,game-server,myphotos,scrapping,twmail,csx,fantasyleague,spawn>instances<<info>cloudns,dynamic-dns,dyndns,barrel-of-knowledge,barrell-of-knowledge,for-our,groks-the,groks-this,here-for-more,knowsitall,selfip,webhop,barsy,mayfirst,forumz,nsupdate,dvrcam,ilovecollege,no-ip,dnsupdate,v-info<pro>cloudns,dnstrace>bci<barsy<pw>cloudns,x443<gdn>cnpy<nl>co,hosting-cluster,blogspot,gov,khplay,123website,myspreadshop,transurl>*<cistron,demon<no>co,blogspot,123hjemmeside,myspreadshop<be>webhosting,blogspot,interhostsolutions>cloud<kuleuven>ezproxy<123website,myspreadshop,transurl>*<<ru>ac,edu,gov,int,mil,test,eurodir,adygeya,bashkiria,bir,cbg,com,dagestan,grozny,kalmykia,kustanai,marine,mordovia,msk,mytis,nalchik,nov,pyatigorsk,spb,vladikavkaz,vladimir,blogspot,na4u,mircloud,regruhosting>jelastic<myjino>hosting>*<landing>*<spectrum>*<vps>*<<cldmail>hb<mcdir>vps<mcpre,net,org,pp,123sait,lk3,ras<is>cupcake,blogspot<link>cyon,mypep,dweb>*<<dk>biz,co,firm,reg,store,blogspot,123hjemmeside,myspreadshop<earth>dapps>*,bzz>*<<<id>my>rss>*<<flap,co>blogspot<forte<solutions>diher>*<<th>online,shop<sh>bip,hashbang,platform>bc,ent,eu,us<now,vxl,wedeploy<fi>dy,blogspot,xn--hkkinen-5wa,iki,cloudplatform>fi<datacenter>demo,paas<kapsi,123kotisivu,myspreadshop<tv>dyndns,better-than,on-the-web,worse-than,from,sakura<cx>ath,info<name>her>forgot<his>forgot<<nu>merseine,mine,shacknet,enterprisecloud<rocks>myddns,lima-city,webspace<xyz>blogsite,localzone,crafting,zapto,telebit>*<<cool>elementor,de<fr>en-root,fbx-os,fbxos,freebox-os,freeboxos,blogspot,goupile,123siteweb,on-web,chirurgiens-dentistes-en-france,dedibox,aeroport,avocat,chambagri,chirurgiens-dentistes,experts-comptables,medecin,notaires,pharmacien,port,veterinaire,myspreadshop,ynh<one>onred>staging<service,homelink<tw>com>mymailer<url,blogspot<su>abkhazia,adygeya,aktyubinsk,arkhangelsk,armenia,ashgabad,azerbaijan,balashov,bashkiria,bryansk,bukhara,chimkent,dagestan,east-kazakhstan,exnet,georgia,grozny,ivanovo,jambyl,kalmykia,kaluga,karacol,karaganda,karelia,khakassia,krasnodar,kurgan,kustanai,lenug,mangyshlak,mordovia,msk,murmansk,nalchik,navoi,north-kazakhstan,nov,obninsk,penza,pokrovsk,sochi,spb,tashkent,termez,togliatti,troitsk,tselinograd,tula,tuva,vladikavkaz,vladimir,vologda<space>myfast,uber,xs4all<media>framer<photos>framer<website>framer<wiki>framer<il>co>ravpage,blogspot,tabitorder,mytabit<<at>funkfeuer>wien<futurecms>*,ex>*<in>*<<futurehosting,futuremailing,ortsinfo>ex>*<kunden>*<<co>blogspot<biz,info,123webseite,priv,myspreadshop,12hp,2ix,4lima,lima-city<ms>lab,minisite<si>gitapp,gitpage,blogspot<community>nog,ravendb,myforum<ro>co,shop,blogspot,barsy<digital>cloudapps>london<<im>ro<goog>cloud,translate,usercontent>*<<ae>blogspot<al>blogspot<bg>blogspot,barsy<bj>blogspot<cf>blogspot<cl>blogspot<ke>co>blogspot<<nz>co>blogspot<<za>co>blogspot<<ar>com>blogspot<<au>com>blogspot,cloudlets>mel<myspreadshop<<br>com>blogspot,simplesite<leg>ac,al,am,ap,ba,ce,df,es,go,ma,mg,ms,mt,pa,pb,pe,pi,pr,rj,rn,ro,rr,rs,sc,se,sp,to<<by>com>blogspot<mycloud,mediatech<cy>com>blogspot,scaleforce>j<<<ee>com>blogspot<<eg>com>blogspot<<es>com>blogspot<123miweb,myspreadshop<mt>com>blogspot<<ng>com>blogspot<col,firm,gen,ltd,ngo<tr>com>blogspot<<uy>com>blogspot<<cv>blogspot<gr>blogspot,simplesite<hk>blogspot,secaas,ltd,inc<hr>blogspot,free<hu>blogspot<ie>blogspot,myspreadshop<it>blogspot,ibxos,iliadboxos,neen>jc<tim>open>jelastic>cloud<<<16-b,32-b,64-b,123homepage,myspreadshop,syncloud<kr>blogspot<li>blogspot,caa<lt>blogspot<lu>blogspot,123website<md>blogspot,at,de,jp,to<mk>blogspot<mr>blogspot<mx>blogspot<my>blogspot<pe>blogspot<pt>blogspot,123paginaweb<qa>blogspot<re>blogspot<sg>blogspot,enscaled<sk>blogspot<sn>blogspot<td>blogspot<ug>blogspot<vn>blogspot<ci>fin,nl<run>hs,development,ravendb,servers,build>*<code>*<database>*<migration>*<onporter,repl,wix<gl>biz,xx<scot>edu,gov>service<<so>sch<kz>jcloud,kazteleport>upaas<<tn>orangecloud<gg>kaas,cya,panel>daemon<<systems>knightpoint<events>koobin,co<krd>co,edu<business>co<education>co<financial>co<place>co<technology>co<bs>we<services>loginline<menu>barsy<mobi>barsy,dscloud<pub>barsy<support>barsy<vu>cn,blog,dev,me<health>hra<casa>nabu>ui<<pizza>ngrok<news>noticeable<top>now-dns,ntdll<ovh>nerdpol<mn>nyc<lol>omg<hosting>opencraft<orange>tech<pm>own,name<codes>owo>*<<lc>oy<bn>co<today>prequalifyme<builders>cloudsite<edu>rit>git-pages<<xn--p1acf>xn--90amc,xn--j1aef,xn--j1ael8b,xn--h1ahn,xn--j1adp,xn--c1avg,xn--80aaa0cvac,xn--h1aliz,xn--90a1af,xn--41a<st>kirara,noho<store>sellfy,shopware,storebase<land>static>dev,sites<<farm>storj<pictures>1337<rip>clan<tf>sch<wf>biz,sch<yt>org<management>router<ax>be,cat,es,eu,gg,mc,us,xy<gp>app<gt>blog,de,to<gy>be<hn>cc<kg>blog,io,jp,tv,uk,us<ls>de<porn>indie<tc>ch,me,we<vg>at<academy>official<faith>ybo<party>ybo<review>ybo<science>ybo<trade>ybo<design>bss";

  // node_modules/.pnpm/parse-domain@8.0.1/node_modules/parse-domain/build/trie/characters.js
  var UP = "<";
  var SAME = ",";
  var DOWN = ">";
  var RESET = "|";
  var WILDCARD = "*";
  var EXCEPTION = "!";

  // node_modules/.pnpm/parse-domain@8.0.1/node_modules/parse-domain/build/trie/look-up.js
  var lookUpTldsInTrie = (labels, trie) => {
    const labelsToCheck = labels.slice();
    const tlds = [];
    let node = trie;
    while (labelsToCheck.length !== 0) {
      const label = labelsToCheck.pop();
      const labelLowerCase = label.toLowerCase();
      if (node.children.has(WILDCARD)) {
        if (node.children.has(EXCEPTION + labelLowerCase)) {
          break;
        }
        node = node.children.get(WILDCARD);
      } else {
        if (node.children.has(labelLowerCase) === false) {
          break;
        }
        node = node.children.get(labelLowerCase);
      }
      tlds.unshift(label);
    }
    return tlds;
  };

  // node_modules/.pnpm/ip-regex@5.0.0/node_modules/ip-regex/index.js
  var word = "[a-fA-F\\d:]";
  var boundry = (options2) => options2 && options2.includeBoundaries ? `(?:(?<=\\s|^)(?=${word})|(?<=${word})(?=\\s|$))` : "";
  var v4 = "(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}";
  var v6segment = "[a-fA-F\\d]{1,4}";
  var v6 = `
(?:
(?:${v6segment}:){7}(?:${v6segment}|:)|                                    // 1:2:3:4:5:6:7::  1:2:3:4:5:6:7:8
(?:${v6segment}:){6}(?:${v4}|:${v6segment}|:)|                             // 1:2:3:4:5:6::    1:2:3:4:5:6::8   1:2:3:4:5:6::8  1:2:3:4:5:6::1.2.3.4
(?:${v6segment}:){5}(?::${v4}|(?::${v6segment}){1,2}|:)|                   // 1:2:3:4:5::      1:2:3:4:5::7:8   1:2:3:4:5::8    1:2:3:4:5::7:1.2.3.4
(?:${v6segment}:){4}(?:(?::${v6segment}){0,1}:${v4}|(?::${v6segment}){1,3}|:)| // 1:2:3:4::        1:2:3:4::6:7:8   1:2:3:4::8      1:2:3:4::6:7:1.2.3.4
(?:${v6segment}:){3}(?:(?::${v6segment}){0,2}:${v4}|(?::${v6segment}){1,4}|:)| // 1:2:3::          1:2:3::5:6:7:8   1:2:3::8        1:2:3::5:6:7:1.2.3.4
(?:${v6segment}:){2}(?:(?::${v6segment}){0,3}:${v4}|(?::${v6segment}){1,5}|:)| // 1:2::            1:2::4:5:6:7:8   1:2::8          1:2::4:5:6:7:1.2.3.4
(?:${v6segment}:){1}(?:(?::${v6segment}){0,4}:${v4}|(?::${v6segment}){1,6}|:)| // 1::              1::3:4:5:6:7:8   1::8            1::3:4:5:6:7:1.2.3.4
(?::(?:(?::${v6segment}){0,5}:${v4}|(?::${v6segment}){1,7}|:))             // ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8  ::8             ::1.2.3.4
)(?:%[0-9a-zA-Z]{1,})?                                             // %eth0            %1
`.replace(/\s*\/\/.*$/gm, "").replace(/\n/g, "").trim();
  var v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);
  var v4exact = new RegExp(`^${v4}$`);
  var v6exact = new RegExp(`^${v6}$`);
  var ipRegex = (options2) => options2 && options2.exact ? v46Exact : new RegExp(`(?:${boundry(options2)}${v4}${boundry(options2)})|(?:${boundry(options2)}${v6}${boundry(options2)})`, "g");
  ipRegex.v4 = (options2) => options2 && options2.exact ? v4exact : new RegExp(`${boundry(options2)}${v4}${boundry(options2)}`, "g");
  ipRegex.v6 = (options2) => options2 && options2.exact ? v6exact : new RegExp(`${boundry(options2)}${v6}${boundry(options2)}`, "g");
  var ip_regex_default = ipRegex;

  // node_modules/.pnpm/function-timeout@0.1.1/node_modules/function-timeout/browser.js
  function functionTimeout(function_) {
    const wrappedFunction = (...arguments_) => function_(...arguments_);
    Object.defineProperty(wrappedFunction, "name", {
      value: `functionTimeout(${function_.name || "<anonymous>"})`,
      configurable: true
    });
    return wrappedFunction;
  }
  function isTimeoutError() {
    return false;
  }

  // node_modules/.pnpm/is-regexp@3.1.0/node_modules/is-regexp/index.js
  var { toString } = Object.prototype;
  function isRegexp(value) {
    return toString.call(value) === "[object RegExp]";
  }

  // node_modules/.pnpm/clone-regexp@3.0.0/node_modules/clone-regexp/index.js
  var flagMap = {
    global: "g",
    ignoreCase: "i",
    multiline: "m",
    dotAll: "s",
    sticky: "y",
    unicode: "u"
  };
  function clonedRegexp(regexp, options2 = {}) {
    if (!isRegexp(regexp)) {
      throw new TypeError("Expected a RegExp instance");
    }
    const flags = Object.keys(flagMap).map((flag) => (typeof options2[flag] === "boolean" ? options2[flag] : regexp[flag]) ? flagMap[flag] : "").join("");
    const clonedRegexp2 = new RegExp(options2.source || regexp.source, flags);
    clonedRegexp2.lastIndex = typeof options2.lastIndex === "number" ? options2.lastIndex : regexp.lastIndex;
    return clonedRegexp2;
  }

  // node_modules/.pnpm/super-regex@0.2.0/node_modules/super-regex/index.js
  function isMatch(regex, string, { timeout } = {}) {
    try {
      return functionTimeout(() => clonedRegexp(regex).test(string), { timeout })();
    } catch (error) {
      if (isTimeoutError(error)) {
        return false;
      }
      throw error;
    }
  }

  // node_modules/.pnpm/is-ip@5.0.1/node_modules/is-ip/index.js
  var maxIPv4Length = 15;
  var maxIPv6Length = 45;
  var options = {
    timeout: 400
  };
  function isIPv6(string) {
    if (string.length > maxIPv6Length) {
      return false;
    }
    return isMatch(ip_regex_default.v6({ exact: true }), string, options);
  }
  function isIPv4(string) {
    if (string.length > maxIPv4Length) {
      return false;
    }
    return isMatch(ip_regex_default.v4({ exact: true }), string, options);
  }
  function ipVersion(string) {
    if (isIPv6(string)) {
      return 6;
    }
    if (isIPv4(string)) {
      return 4;
    }
  }

  // node_modules/.pnpm/parse-domain@8.0.1/node_modules/parse-domain/build/sanitize.js
  var LABEL_SEPARATOR = ".";
  var LABEL_LENGTH_MIN = 1;
  var LABEL_LENGTH_MAX = 63;
  var DOMAIN_LENGTH_MAX = 253;
  var textEncoder = new TextEncoder();
  var Validation;
  (function(Validation2) {
    Validation2["Lax"] = "LAX";
    Validation2["Strict"] = "STRICT";
  })(Validation || (Validation = {}));
  var ValidationErrorType;
  (function(ValidationErrorType2) {
    ValidationErrorType2["NoHostname"] = "NO_HOSTNAME";
    ValidationErrorType2["DomainMaxLength"] = "DOMAIN_MAX_LENGTH";
    ValidationErrorType2["LabelMinLength"] = "LABEL_MIN_LENGTH";
    ValidationErrorType2["LabelMaxLength"] = "LABEL_MAX_LENGTH";
    ValidationErrorType2["LabelInvalidCharacter"] = "LABEL_INVALID_CHARACTER";
    ValidationErrorType2["LastLabelInvalid"] = "LAST_LABEL_INVALID";
  })(ValidationErrorType || (ValidationErrorType = {}));
  var SanitizationResultType;
  (function(SanitizationResultType2) {
    SanitizationResultType2["ValidIp"] = "VALID_IP";
    SanitizationResultType2["ValidDomain"] = "VALID_DOMAIN";
    SanitizationResultType2["Error"] = "ERROR";
  })(SanitizationResultType || (SanitizationResultType = {}));
  var createNoHostnameError = (input) => {
    return {
      type: ValidationErrorType.NoHostname,
      message: `The given input ${String(input)} does not look like a hostname.`,
      column: 1
    };
  };
  var createDomainMaxLengthError = (domain, length) => {
    return {
      type: ValidationErrorType.DomainMaxLength,
      message: `Domain "${domain}" is too long. Domain is ${length} octets long but should not be longer than ${DOMAIN_LENGTH_MAX}.`,
      column: length
    };
  };
  var createLabelMinLengthError = (label, column) => {
    const length = label.length;
    return {
      type: ValidationErrorType.LabelMinLength,
      message: `Label "${label}" is too short. Label is ${length} octets long but should be at least ${LABEL_LENGTH_MIN}.`,
      column
    };
  };
  var createLabelMaxLengthError = (label, column) => {
    const length = label.length;
    return {
      type: ValidationErrorType.LabelMaxLength,
      message: `Label "${label}" is too long. Label is ${length} octets long but should not be longer than ${LABEL_LENGTH_MAX}.`,
      column
    };
  };
  var createLabelInvalidCharacterError = (label, invalidCharacter, column) => {
    return {
      type: ValidationErrorType.LabelInvalidCharacter,
      message: `Label "${label}" contains invalid character "${invalidCharacter}" at column ${column}.`,
      column
    };
  };
  var createLastLabelInvalidError = (label, column) => {
    return {
      type: ValidationErrorType.LabelInvalidCharacter,
      message: `Last label "${label}" must not be all-numeric.`,
      column
    };
  };
  var sanitize = (input, options2 = {}) => {
    if (typeof input !== "string") {
      return {
        type: SanitizationResultType.Error,
        errors: [createNoHostnameError(input)]
      };
    }
    if (input === "") {
      return {
        type: SanitizationResultType.ValidDomain,
        domain: input,
        labels: []
      };
    }
    const inputTrimmedAsIp = input.replace(/^\[|]$/g, "");
    const ipVersionOfInput = ipVersion(inputTrimmedAsIp);
    if (ipVersionOfInput !== void 0) {
      return {
        type: SanitizationResultType.ValidIp,
        ip: inputTrimmedAsIp,
        ipVersion: ipVersionOfInput
      };
    }
    const lastChar = input.charAt(input.length - 1);
    const canonicalInput = lastChar === LABEL_SEPARATOR ? input.slice(0, -1) : input;
    const octets = new TextEncoder().encode(canonicalInput);
    if (octets.length > DOMAIN_LENGTH_MAX) {
      return {
        type: SanitizationResultType.Error,
        errors: [createDomainMaxLengthError(input, octets.length)]
      };
    }
    const labels = canonicalInput.split(LABEL_SEPARATOR);
    const { validation = Validation.Strict } = options2;
    const labelValidationErrors = validateLabels[validation](labels);
    if (labelValidationErrors.length > 0) {
      return {
        type: SanitizationResultType.Error,
        errors: labelValidationErrors
      };
    }
    return {
      type: SanitizationResultType.ValidDomain,
      domain: input,
      labels
    };
  };
  var validateLabels = {
    [Validation.Lax]: (labels) => {
      const labelValidationErrors = [];
      let column = 1;
      for (const label of labels) {
        const octets = textEncoder.encode(label);
        if (octets.length < LABEL_LENGTH_MIN) {
          labelValidationErrors.push(createLabelMinLengthError(label, column));
        } else if (octets.length > LABEL_LENGTH_MAX) {
          labelValidationErrors.push(createLabelMaxLengthError(label, column));
        }
        column += label.length + LABEL_SEPARATOR.length;
      }
      return labelValidationErrors;
    },
    [Validation.Strict]: (labels) => {
      const labelValidationErrors = [];
      let column = 1;
      let lastLabel;
      for (const label of labels) {
        const invalidCharacter = /[^\da-z-]/i.exec(label);
        if (invalidCharacter) {
          labelValidationErrors.push(createLabelInvalidCharacterError(label, invalidCharacter[0], invalidCharacter.index + 1));
        }
        if (label.startsWith("-")) {
          labelValidationErrors.push(createLabelInvalidCharacterError(label, "-", column));
        } else if (label.endsWith("-")) {
          labelValidationErrors.push(createLabelInvalidCharacterError(label, "-", column + label.length - 1));
        }
        if (
          // We can use .length here to check for the octet size because
          // label can only contain ASCII LDH characters at this point.
          label.length < LABEL_LENGTH_MIN
        ) {
          labelValidationErrors.push(createLabelMinLengthError(label, column));
        } else if (label.length > LABEL_LENGTH_MAX) {
          labelValidationErrors.push(createLabelMaxLengthError(label, column));
        }
        column += label.length + LABEL_SEPARATOR.length;
        lastLabel = label;
      }
      if (lastLabel !== void 0 && /[a-z-]/iu.test(lastLabel) === false) {
        labelValidationErrors.push(createLastLabelInvalidError(lastLabel, column - lastLabel.length - LABEL_SEPARATOR.length));
      }
      return labelValidationErrors;
    }
  };

  // node_modules/.pnpm/parse-domain@8.0.1/node_modules/parse-domain/build/trie/nodes.js
  var NODE_TYPE_ROOT = Symbol("ROOT");
  var NODE_TYPE_CHILD = Symbol("CHILD");
  var createRootNode = () => {
    return {
      type: NODE_TYPE_ROOT,
      children: /* @__PURE__ */ new Map()
    };
  };
  var createOrGetChild = (parent, label) => {
    let child = parent.children.get(label);
    if (child === void 0) {
      child = {
        type: NODE_TYPE_CHILD,
        label,
        children: /* @__PURE__ */ new Map(),
        parent
      };
      parent.children.set(label, child);
    }
    return child;
  };

  // node_modules/.pnpm/parse-domain@8.0.1/node_modules/parse-domain/build/trie/parse-trie.js
  var parseTrie = (serializedTrie) => {
    const rootNode = createRootNode();
    let domain = "";
    let parentNode = rootNode;
    let node = rootNode;
    const addDomain = () => {
      node = createOrGetChild(parentNode, domain);
      domain = "";
    };
    for (let i = 0; i < serializedTrie.length; i++) {
      const char = serializedTrie.charAt(i);
      switch (char) {
        case SAME: {
          addDomain();
          continue;
        }
        case DOWN: {
          addDomain();
          parentNode = node;
          continue;
        }
        case RESET: {
          addDomain();
          parentNode = rootNode;
          continue;
        }
        case UP: {
          if (parentNode.type === NODE_TYPE_ROOT) {
            throw new Error(`Error in serialized trie at position ${i}: Cannot go up, current parent node is already root`);
          }
          addDomain();
          parentNode = parentNode.parent;
          continue;
        }
      }
      domain += char;
    }
    if (domain !== "") {
      addDomain();
    }
    return rootNode;
  };

  // node_modules/.pnpm/parse-domain@8.0.1/node_modules/parse-domain/build/parse-domain.js
  var RESERVED_TOP_LEVEL_DOMAINS = [
    "localhost",
    "local",
    "example",
    "invalid",
    "test"
  ];
  var ParseResultType;
  (function(ParseResultType2) {
    ParseResultType2["Invalid"] = "INVALID";
    ParseResultType2["Ip"] = "IP";
    ParseResultType2["Reserved"] = "RESERVED";
    ParseResultType2["NotListed"] = "NOT_LISTED";
    ParseResultType2["Listed"] = "LISTED";
  })(ParseResultType || (ParseResultType = {}));
  var getAtIndex = (array, index) => {
    return index >= 0 && index < array.length ? array[index] : void 0;
  };
  var splitLabelsIntoDomains = (labels, index) => {
    return {
      subDomains: labels.slice(0, Math.max(0, index)),
      domain: getAtIndex(labels, index),
      topLevelDomains: labels.slice(index + 1)
    };
  };
  var parsedIcannTrie;
  var parsedPrivateTrie;
  var parseDomain = (hostname, options2) => {
    const sanitizationResult = sanitize(hostname, options2);
    if (sanitizationResult.type === SanitizationResultType.Error) {
      return {
        type: ParseResultType.Invalid,
        hostname,
        errors: sanitizationResult.errors
      };
    }
    if (sanitizationResult.type === SanitizationResultType.ValidIp) {
      return {
        type: ParseResultType.Ip,
        hostname: sanitizationResult.ip,
        ipVersion: sanitizationResult.ipVersion
      };
    }
    const { labels, domain } = sanitizationResult;
    if (hostname === "" || RESERVED_TOP_LEVEL_DOMAINS.includes(labels[labels.length - 1])) {
      return {
        type: ParseResultType.Reserved,
        hostname: domain,
        labels
      };
    }
    parsedIcannTrie = parsedIcannTrie !== null && parsedIcannTrie !== void 0 ? parsedIcannTrie : parseTrie(icann_default);
    parsedPrivateTrie = parsedPrivateTrie !== null && parsedPrivateTrie !== void 0 ? parsedPrivateTrie : parseTrie(private_default);
    const icannTlds = lookUpTldsInTrie(labels, parsedIcannTrie);
    const privateTlds = lookUpTldsInTrie(labels, parsedPrivateTrie);
    if (icannTlds.length === 0 && privateTlds.length === 0) {
      return {
        type: ParseResultType.NotListed,
        hostname: domain,
        labels
      };
    }
    const indexOfPublicSuffixDomain = labels.length - Math.max(privateTlds.length, icannTlds.length) - 1;
    const indexOfIcannDomain = labels.length - icannTlds.length - 1;
    return Object.assign({ type: ParseResultType.Listed, hostname: domain, labels, icann: splitLabelsIntoDomains(labels, indexOfIcannDomain) }, splitLabelsIntoDomains(labels, indexOfPublicSuffixDomain));
  };

  // src/utils/isSameSite.ts
  var patchNocookie = (url) => {
    if (url.hostname !== "www.youtube-nocookie.com") {
      return url;
    }
    const cloned = url;
    cloned.hostname = "www.youtube.com";
    return cloned;
  };
  var isSameSite = (a, b) => {
    a = patchNocookie(a);
    b = patchNocookie(b);
    const aParsed = parseDomain(a.hostname);
    const bParsed = parseDomain(b.hostname);
    if ("domain" in aParsed && "domain" in bParsed) {
      return `${aParsed.domain}.${aParsed.topLevelDomains.join(".")}` === `${bParsed.domain}.${bParsed.topLevelDomains.join(".")}`;
    } else {
      return true;
    }
  };

  // src/utils/AnchorEmbed.ts
  var MAX_REOLVE_TIMES = 10;
  var _rules, _resolvers, _excludes, _abortControllersMap, _createAbortController, createAbortController_fn, _resolve, resolve_fn, _appliedRulesMap, _isAppliedRule, isAppliedRule_fn, _observeAnchorController, _testFilter, testFilter_fn;
  var _AnchorEmbed = class {
    constructor({
      rules,
      resolvers = []
    }) {
      __privateAdd(this, _createAbortController);
      __privateAdd(this, _resolve);
      __privateAdd(this, _isAppliedRule);
      __publicField(this, "constructor", _AnchorEmbed);
      __privateAdd(this, _rules, void 0);
      __privateAdd(this, _resolvers, void 0);
      __privateAdd(this, _excludes, /* @__PURE__ */ new WeakSet());
      __privateAdd(this, _abortControllersMap, /* @__PURE__ */ new WeakMap());
      __privateAdd(this, _appliedRulesMap, /* @__PURE__ */ new WeakMap());
      __privateAdd(this, _observeAnchorController, void 0);
      __privateSet(this, _rules, rules);
      __privateSet(this, _resolvers, resolvers);
    }
    exclude(target) {
      __privateGet(this, _excludes).add(target);
    }
    include(target) {
      __privateGet(this, _excludes).delete(target);
    }
    applyRule(target, asHref = target.href) {
      var _a;
      if (__privateGet(this, _excludes).has(target)) {
        return;
      }
      if (!asHref) {
        return;
      }
      const url = __privateMethod(this, _resolve, resolve_fn).call(this, new URL(asHref));
      if (isSameSite(url, new URL(location.href))) {
        return;
      }
      const appliedRulesMap = __privateGet(this, _appliedRulesMap);
      for (const rule of __privateGet(this, _rules)) {
        if (!__privateMethod(_a = this.constructor, _testFilter, testFilter_fn).call(_a, url, rule)) {
          continue;
        }
        if (__privateMethod(this, _isAppliedRule, isAppliedRule_fn).call(this, target, rule)) {
          continue;
        }
        rule.effect({
          anchorEmbed: this,
          rule,
          url,
          target,
          onAbort: (listener) => {
            const { signal } = __privateMethod(this, _createAbortController, createAbortController_fn).call(this, target);
            signal.addEventListener("abort", () => listener());
          }
        });
        const appliedRules = appliedRulesMap.get(target) ?? /* @__PURE__ */ new Set();
        if (!appliedRulesMap.has(target)) {
          appliedRulesMap.set(target, appliedRules);
        }
        appliedRules.add(rule);
      }
    }
    destroyRule(target) {
      const abortControllersMap = __privateGet(this, _abortControllersMap);
      const controllers = abortControllersMap.get(target);
      if (controllers) {
        for (const controller of controllers) {
          controller.abort();
          controllers.delete(controller);
        }
        if (!controllers.size) {
          abortControllersMap.delete(target);
        }
      }
      __privateGet(this, _appliedRulesMap).delete(target);
    }
    apply() {
      const observeAnchorController = __privateSet(this, _observeAnchorController, new AbortController());
      observeAnchor((records) => {
        for (const { type, targets } of records) {
          for (const target of targets) {
            switch (type) {
              case ObserveAnchorRecordTypes.Appeared: {
                this.applyRule(target);
                break;
              }
              case ObserveAnchorRecordTypes.Changed: {
                this.destroyRule(target);
                this.applyRule(target);
                break;
              }
              case ObserveAnchorRecordTypes.Removed: {
                this.destroyRule(target);
                break;
              }
            }
          }
        }
      }, {
        signal: observeAnchorController.signal,
        filter: [
          ObserveAnchorRecordTypes.Appeared,
          ObserveAnchorRecordTypes.Changed,
          ObserveAnchorRecordTypes.Removed
        ]
      });
    }
    destroy() {
      for (const e of findElement("a")) {
        this.destroyRule(e);
      }
      __privateGet(this, _observeAnchorController)?.abort();
      __privateSet(this, _observeAnchorController, void 0);
    }
  };
  var AnchorEmbed = _AnchorEmbed;
  _rules = new WeakMap();
  _resolvers = new WeakMap();
  _excludes = new WeakMap();
  _abortControllersMap = new WeakMap();
  _createAbortController = new WeakSet();
  createAbortController_fn = function(target) {
    const controller = new AbortController();
    const controllersMap = __privateGet(this, _abortControllersMap);
    const controllers = controllersMap.get(target) ?? /* @__PURE__ */ new Set();
    if (!controllersMap.has(target)) {
      controllersMap.set(target, controllers);
    }
    controllers.add(controller);
    return controller;
  };
  _resolve = new WeakSet();
  resolve_fn = function(url) {
    let resolveTimes = 0;
    let resolvers;
    let current = url;
    do {
      resolvers = __privateGet(this, _resolvers).filter((v) => {
        var _a;
        return __privateMethod(_a = this.constructor, _testFilter, testFilter_fn).call(_a, current, v);
      });
      if (resolvers.length > 0 && resolveTimes >= MAX_REOLVE_TIMES) {
        console.warn("[WARN] Stopped resolve with ", resolvers);
        break;
      }
      for (const resolver of resolvers) {
        const resolved = resolver.effect(current);
        if (resolved) {
          current = resolved;
        }
      }
      resolveTimes++;
    } while (resolvers?.length > 0);
    return current;
  };
  _appliedRulesMap = new WeakMap();
  _isAppliedRule = new WeakSet();
  isAppliedRule_fn = function(target, rule) {
    const appliedRules = __privateGet(this, _appliedRulesMap).get(target);
    if (!appliedRules) {
      return false;
    }
    return appliedRules.has(rule);
  };
  _observeAnchorController = new WeakMap();
  _testFilter = new WeakSet();
  testFilter_fn = function(url, filter) {
    const { test } = filter;
    if (test instanceof RegExp) {
      return test.test(url.href);
    }
    if (test instanceof Array) {
      return test.length ? test.some((v) => v.test(url.href)) : false;
    }
    const testMethod = "testMethod" in filter && filter.testMethod || "every";
    const keys = objectKeys(test);
    if (!keys.length) {
      return false;
    }
    return keys[testMethod]((k) => {
      const r = test[k];
      if (!r) {
        return false;
      }
      if (r instanceof RegExp) {
        return r.test(url[k]);
      }
      return r.length ? r.some((v) => v.test(url[k])) : false;
    });
  };
  __privateAdd(AnchorEmbed, _testFilter);

  // node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.js
  var __assign = function() {
    __assign = Object.assign || function __assign2(t) {
      for (var s2, i = 1, n = arguments.length; i < n; i++) {
        s2 = arguments[i];
        for (var p in s2)
          if (Object.prototype.hasOwnProperty.call(s2, p))
            t[p] = s2[p];
      }
      return t;
    };
    return __assign.apply(this, arguments);
  };

  // node_modules/.pnpm/lower-case@2.0.2/node_modules/lower-case/dist.es2015/index.js
  function lowerCase(str) {
    return str.toLowerCase();
  }

  // node_modules/.pnpm/no-case@3.0.4/node_modules/no-case/dist.es2015/index.js
  var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];
  var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;
  function noCase(input, options2) {
    if (options2 === void 0) {
      options2 = {};
    }
    var _a = options2.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options2.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options2.transform, transform = _c === void 0 ? lowerCase : _c, _d = options2.delimiter, delimiter = _d === void 0 ? " " : _d;
    var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0");
    var start = 0;
    var end = result.length;
    while (result.charAt(start) === "\0")
      start++;
    while (result.charAt(end - 1) === "\0")
      end--;
    return result.slice(start, end).split("\0").map(transform).join(delimiter);
  }
  function replace(input, re, value) {
    if (re instanceof RegExp)
      return input.replace(re, value);
    return re.reduce(function(input2, re2) {
      return input2.replace(re2, value);
    }, input);
  }

  // node_modules/.pnpm/dot-case@3.0.4/node_modules/dot-case/dist.es2015/index.js
  function dotCase(input, options2) {
    if (options2 === void 0) {
      options2 = {};
    }
    return noCase(input, __assign({ delimiter: "." }, options2));
  }

  // node_modules/.pnpm/param-case@3.0.4/node_modules/param-case/dist.es2015/index.js
  function paramCase(input, options2) {
    if (options2 === void 0) {
      options2 = {};
    }
    return dotCase(input, __assign({ delimiter: "-" }, options2));
  }

  // src/utils/createStyles.ts
  var s = document.createElement("style");
  document.head.append(s);
  var randomClassName = () => `css-${Math.random().toString(36).slice(2)}`;
  var createStyles = (stylesList) => {
    const classNames8 = {};
    let css = "";
    for (const k of objectKeys(stylesList)) {
      const className = classNames8[k] = randomClassName();
      const styles = stylesList[k];
      for (const k2 in styles) {
        css += `.${className}${k2}{`;
        const style = styles[k2];
        for (const k3 in style) {
          css += `${paramCase(k3)}:${style[k3]};`;
        }
        css += "}";
      }
    }
    s.innerHTML += css;
    return classNames8;
  };

  // src/utils/createElement.ts
  var createElement = (tagName, {
    attributes = {}
  } = {}, ...children) => {
    const e = document.createElement(tagName);
    for (const k in attributes) {
      const v = attributes[k];
      if (!v) {
        continue;
      }
      e[k] = v;
    }
    for (const child of children) {
      e.append(child);
    }
    return e;
  };

  // src/utils/createThumbnail.ts
  var classNames = createStyles({
    cover: {
      "": {
        display: "flex",
        justifyContent: "center",
        alignItems: "center",
        position: "fixed",
        top: "0px",
        left: "0px",
        width: "100vw",
        height: "100vh",
        zIndex: "999999",
        backgroundColor: "rgba(0, 0, 0, 0.75)"
      }
    },
    coverHidden: {
      "": {
        display: "none"
      }
    },
    noScroll: {
      "": {
        overflow: "hidden !important"
      }
    },
    coverImg: {
      "": {
        maxWidth: "50vw"
      }
    }
  });
  var cover = createElement("div", {
    attributes: {
      className: `${classNames.cover} ${classNames.coverHidden}`
    }
  });
  cover.addEventListener("click", () => {
    document.documentElement.classList.remove(classNames.noScroll);
    cover.classList.add(classNames.coverHidden);
  });
  document.body.append(cover);
  var createThumbnail = (src) => {
    const img = createElement("img", {
      attributes: {
        src
      }
    });
    img.addEventListener("click", (ev) => {
      ev.stopPropagation();
      document.documentElement.classList.add(classNames.noScroll);
      cover.classList.remove(classNames.coverHidden);
      while (cover.firstChild) {
        cover.firstChild.remove();
      }
      const coverImg = createElement("img", {
        attributes: {
          src: img.src,
          className: classNames.coverImg
        }
      });
      cover.append(coverImg);
    });
    return img;
  };

  // src/utils/exoticFetch.ts
  var exoticFetch = (url, {
    method = "GET",
    responseType = "blob"
  } = {}) => new Promise((resolve, reject) => {
    GM.xmlHttpRequest({
      method,
      url,
      responseType,
      onload: (res) => {
        resolve({
          response: res.response,
          finalUrl: res.finalUrl
        });
      },
      onerror: (err) => reject(err)
    });
  });

  // src/utils/insertAfter.ts
  var insertAfter = (target, element) => {
    const { parentNode, nextSibling } = target;
    if (!parentNode) {
      throw new Error("No parent node");
    }
    if (nextSibling) {
      parentNode.insertBefore(element, nextSibling);
    } else {
      parentNode.append(element);
    }
  };

  // src/utils/createSpoiler.ts
  var classNames2 = createStyles({
    hiddenSpoilerButton: {
      "": {
        display: "none"
      }
    },
    spoilerButton: {
      "": {
        backgroundColor: "#000",
        color: "#fff",
        padding: "0.5rem",
        cursor: "pointer"
      }
    }
  });
  var createSpoiler = ({
    target,
    onAbort,
    rule
  }, factory) => {
    const spoiler = createElement("div");
    const openSpoilerButton = createElement(
      "div",
      {
        attributes: {
          className: classNames2.spoilerButton
        }
      },
      `「${rule.name}」を表示する`
    );
    const closeSpoilerButton = createElement(
      "div",
      {
        attributes: {
          className: `${classNames2.spoilerButton} ${classNames2.hiddenSpoilerButton}`
        }
      },
      `「${rule.name}」を非表示にする`
    );
    const container = document.createElement("div");
    spoiler.append(openSpoilerButton);
    spoiler.append(closeSpoilerButton);
    spoiler.append(container);
    let controller;
    openSpoilerButton.addEventListener("click", (ev) => {
      ev.stopPropagation();
      openSpoilerButton.classList.add(classNames2.hiddenSpoilerButton);
      closeSpoilerButton.classList.remove(classNames2.hiddenSpoilerButton);
      factory({
        container,
        onAbort: (listener) => {
          controller = new AbortController();
          controller.signal.addEventListener("abort", () => listener());
        }
      });
    });
    closeSpoilerButton.addEventListener("click", (ev) => {
      ev.stopPropagation();
      closeSpoilerButton.classList.add(classNames2.hiddenSpoilerButton);
      openSpoilerButton.classList.remove(classNames2.hiddenSpoilerButton);
      controller?.abort();
      controller = void 0;
    });
    onAbort(() => {
      spoiler.remove();
    });
    insertAfter(target, spoiler);
  };

  // src/rules/imgur.ts
  var classNames3 = createStyles({
    img: {
      "": {
        maxWidth: "90%"
      }
    },
    video: {
      "": {
        maxWidth: "100%"
      }
    }
  });
  var imgur_default = () => ({
    name: "Imgur",
    test: {
      hostname: /^i\.imgur\.com$/
    },
    effect: async (ctx) => {
      const { target, onAbort, url, anchorEmbed: anchorEmbed2 } = ctx;
      const { response } = await exoticFetch(url.href);
      const container = document.createElement("div");
      switch (response.type.replace(/\/.+$/, "")) {
        case "image": {
          const img = createThumbnail(url.href);
          img.classList.add(classNames3.img);
          container.append(img);
          break;
        }
        case "video": {
          createSpoiler(ctx, ({ onAbort: onAbort2, container: container2 }) => {
            const video = createElement("video", {
              attributes: {
                src: url.href,
                controls: true,
                className: classNames3.video
              }
            });
            container2.append(video);
            onAbort2(() => video.remove());
          });
          break;
        }
        default: {
          if (response.type !== "text/html") {
            break;
          }
          const text = await response.text();
          const m = text.match(/<meta\s+property="og:image"\s+data-react-helmet="true"\s+content="(.+?)">/);
          if (!m) {
            break;
          }
          const url2 = new URL(m[1]);
          url2.search = "";
          anchorEmbed2.destroyRule(target);
          anchorEmbed2.applyRule(target, url2.href);
          break;
        }
      }
      if (container.children.length) {
        insertAfter(target, container);
        onAbort(() => container.remove());
      }
    }
  });

  // src/resolvers/feeder-jump-page.ts
  var feeder_jump_page_default = () => ({
    name: "Feeder jump page",
    test: {
      hostname: /^www[12]\.x-feeder\.info$/,
      pathname: /^\/jump\.php$/
    },
    effect: ({ searchParams }) => {
      const href = searchParams.get("url");
      if (typeof href !== "string") {
        return;
      }
      return new URL(href);
    }
  });

  // src/resolvers/net5ch-feeder-jump-page.ts
  var net5ch_feeder_jump_page_default = () => ({
    name: "5ch jump page",
    test: {
      hostname: /^jump\.5ch\.net$/
    },
    effect: ({ search }) => {
      const href = search.slice(1);
      if (typeof href !== "string" || !href) {
        return;
      }
      return new URL(href);
    }
  });

  // src/utils/option.ts
  var option = (func) => {
    try {
      return func();
    } catch {
      return;
    }
  };

  // src/utils/resolveYoutubeId.ts
  var resolveYoutubeId = ({
    hostname,
    searchParams,
    pathname
  }) => {
    switch (hostname) {
      case "m.youtube.com":
      case "www.youtube.com": {
        if (pathname !== "/watch") {
          throw new Error("Unsupported pathname");
        }
        const id = searchParams.get("v");
        if (typeof id !== "string") {
          throw new Error("Could not retrieve id");
        }
        return id;
      }
      case "youtu.be": {
        return pathname;
      }
      default: {
        throw new Error("Unsupported hostname");
      }
    }
  };

  // src/rules/youtube.ts
  var classNames4 = createStyles({
    iframe: {
      "": {
        border: "none",
        maxWidth: "100%"
      }
    },
    container: {
      "": {
        display: "flex",
        justifyContent: "center",
        backgroundColor: "#000"
      }
    }
  });
  var youtube_default = () => ({
    name: "YouTube",
    test: {
      hostname: /^(?:www|m)\.youtube\.com|youtu\.be$/
    },
    effect: (ctx) => {
      const { url } = ctx;
      const id = option(() => resolveYoutubeId(url));
      if (!id) {
        return;
      }
      const src = `https://www.youtube-nocookie.com/embed/${id}`;
      createSpoiler(ctx, ({ onAbort, container }) => {
        container.classList.add(classNames4.container);
        const ifr = createElement("iframe", {
          attributes: {
            src,
            title: "YouTube video player",
            allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
            allowFullscreen: true,
            className: classNames4.iframe,
            width: "560",
            height: "315"
          }
        });
        container.append(ifr);
        onAbort(() => ifr.remove());
      });
    }
  });

  // src/rules/nicovideo.ts
  var classNames5 = createStyles({
    iframe: {
      "": {
        border: "none",
        maxWidth: "100%"
      }
    },
    container: {
      "": {
        display: "flex",
        justifyContent: "center",
        backgroundColor: "#000"
      }
    }
  });
  var nicovideo_default = () => ({
    name: "ニコニコ動画",
    test: {
      hostname: /^(?:www|sp)\.nicovideo\.jp$/,
      pathname: /^\/watch\/sm\d+$/
    },
    effect: (ctx) => {
      const src = `https://embed.nicovideo.jp${ctx.url.pathname}`;
      createSpoiler(ctx, ({ onAbort, container }) => {
        container.classList.add(classNames5.container);
        const ifr = createElement("iframe", {
          attributes: {
            src,
            allowFullscreen: true,
            className: classNames5.iframe
          }
        });
        container.append(ifr);
        onAbort(() => ifr.remove());
      });
    }
  });

  // src/utils/wakeScriptTag.ts
  var wakeScriptTag = (root) => {
    for (const e of findElement("script", root)) {
      const s2 = createElement("script", {
        attributes: {
          src: e.src,
          charset: e.charset,
          async: e.async,
          defer: e.defer,
          type: e.type
        }
      });
      e.parentNode?.insertBefore(s2, e);
      e.remove();
    }
  };

  // src/rules/twitter.ts
  var twitter_default = () => ({
    name: "Twitter",
    test: {
      hostname: /^twitter\.com$/,
      pathname: /^\/[^/]+\/status\/\d+/
    },
    effect: async (ctx) => {
      const { url, anchorEmbed: anchorEmbed2 } = ctx;
      createSpoiler(ctx, async ({ onAbort, container }) => {
        const wrapper = createElement("div");
        onAbort(() => wrapper.remove());
        const { response } = await exoticFetch(
          `https://publish.twitter.com/oembed?url=${url.href}`,
          {
            responseType: "json"
          }
        );
        wrapper.innerHTML = response.html;
        for (const e of findElement("a", wrapper)) {
          anchorEmbed2.exclude(e);
        }
        container.append(wrapper);
        wakeScriptTag(wrapper);
      });
    }
  });

  // src/resolvers/x-to-twitter.ts
  var x_to_twitter_default = () => ({
    name: "X to Twitter",
    test: {
      hostname: /^x\.com$/
    },
    effect: (url) => {
      const cloned = new URL(url);
      cloned.hostname = "twitter.com";
      return cloned;
    }
  });

  // src/rules/facebook.ts
  var classNames6 = createStyles({
    container: {
      "": {
        display: "flex",
        justifyContent: "center",
        backgroundColor: "#fff"
      }
    }
  });
  var initSdk = (() => {
    const initialized = false;
    return () => {
      if (initialized) {
        return;
      }
      const root = createElement("div", {
        attributes: { id: "fb-root" }
      });
      const script = createElement("script", {
        attributes: {
          async: true,
          defer: true,
          crossOrigin: "anonymous",
          src: "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v18.0"
        }
      });
      document.body.append(root, script);
    };
  })();
  var facebook_default = () => ({
    name: "Facebook",
    test: {
      hostname: /^(?:www|m)\.facebook\.com$/,
      pathname: [
        // https://www.facebook.com/watch/?v=nnnnn
        /^\/?watch\/?$/,
        // https://www.facebook.com/xxxxx/videos/nnnnn/
        // https://www.facebook.com/xxxxx/posts/xxxxx
        /^\/?[^/]+\/(?:posts|videos)(?:\/[^/]+)?\/[^/]+\/?$/,
        // https://www.facebook.com/photo/?fbid=nnnnn&set=xxxxx&idorvanity=nnnnn
        /^\/?photo\/?$/
      ]
    },
    effect: (ctx) => {
      initSdk();
      createSpoiler(ctx, ({ onAbort, container }) => {
        container.classList.add(classNames6.container);
        const post = createElement("div");
        post.classList.add("fb-post");
        post.dataset.href = ctx.url.href;
        post.dataset.width = "500";
        post.dataset.showText = "true";
        container.append(post);
        FB.XFBML.parse();
        onAbort(() => post.remove());
      });
    }
  });

  // src/rules/instagram.ts
  var classNames7 = createStyles({
    container: {
      "": {
        display: "flex",
        justifyContent: "center",
        backgroundColor: "#000"
      }
    },
    wrapper: {
      "": {
        width: "100%"
      }
    }
  });
  var initScript = (() => {
    const initialized = false;
    return () => {
      if (initialized) {
        return;
      }
      const script = createElement("script", {
        attributes: {
          async: true,
          src: "https://www.instagram.com/embed.js"
        }
      });
      document.body.append(script);
    };
  })();
  var instagram_default = () => ({
    name: "Instagram",
    test: {
      hostname: /^(?:www|m)\.instagram\.com$/,
      pathname: /^\/?p\/[^/]+\/?$/
    },
    effect: (ctx) => {
      initScript();
      createSpoiler(ctx, async ({ onAbort, container }) => {
        container.classList.add(classNames7.container);
        const wrapper = createElement("div", {
          attributes: {
            className: classNames7.wrapper
          }
        });
        onAbort(() => wrapper.remove());
        const url = new URL("https://www.instagram.com/api/v1/oembed/");
        url.searchParams.append("hidecaption", "0");
        url.searchParams.append("maxwidth", "540");
        url.searchParams.append("url", ctx.url.href);
        const { response } = await exoticFetch(url.href, {
          responseType: "json"
        });
        wrapper.innerHTML = response.html;
        container.append(wrapper);
        instgrm.Embeds.process();
      });
    }
  });

  // src/rules/pinterest.ts
  var initPinterestScript = (() => {
    let initialized = false;
    const methodName = `__parsePin${Math.random().toString(36).slice(2)}`;
    return () => {
      if (!initialized) {
        const script = document.createElement("script");
        script.type = "text/javascript";
        script.async = true;
        script.src = "//assets.pinterest.com/js/pinit.js";
        script.dataset.pinBuild = methodName;
        document.body.append(script);
        initialized = true;
      }
      return methodName;
    };
  })();
  var pinterest_default = () => ({
    name: "Pinterest",
    test: {
      hostname: [
        // www.pinterest.com
        // jp.pinterest.com
        /^(?:www|[a-z]{2})\.pinterest\.com$/,
        // www.pinterest.jp
        /^www\.pinterest\.[a-z]{2}$/
      ],
      pathname: [
        // https://www.pinterest.jp/pin/nnnnn/
        /^\/?pin\/\d+\/?$/,
        // https://www.pinterest.jp/xxxxx/
        /^\/?[^/]+\/?$/,
        // https://www.pinterest.jp/xxxxx/xxxxx/
        /^\/?[^/]+\/[^/]+\/?$/
      ]
    },
    effect: async (ctx) => {
      const methodName = initPinterestScript();
      const a = document.createElement("a");
      const { target, url } = ctx;
      const paths = url.pathname.split("/").filter((v) => v);
      a.href = url.href;
      const reject = (() => {
        if ("pinDo" in target.dataset) {
          return true;
        }
        if (paths.length === 1) {
          a.dataset.pinDo = "embedUser";
          a.dataset.pinBoardWidth = "400";
          a.dataset.pinScaleHeight = "320";
          a.dataset.pinScaleWidth = "80";
          return false;
        }
        if (paths.length !== 2) {
          return true;
        }
        if (paths[0] === "pin") {
          a.dataset.pinDo = "embedPin";
          return false;
        } else {
          a.dataset.pinDo = "embedBoard";
          a.dataset.pinBoardWidth = "400";
          a.dataset.pinScaleHeight = "240";
          a.dataset.pinScaleWidth = "80";
          return false;
        }
      })();
      if (reject) {
        return;
      }
      createSpoiler(ctx, async ({ container, onAbort }) => {
        container.append(a);
        unsafeWindow[methodName](container);
        onAbort(() => container.replaceChildren());
      });
    }
  });

  // src/index.ts
  var anchorEmbed = new AnchorEmbed({
    rules: [
      imgur_default(),
      youtube_default(),
      nicovideo_default(),
      twitter_default(),
      facebook_default(),
      instagram_default(),
      pinterest_default()
    ],
    resolvers: [
      feeder_jump_page_default(),
      net5ch_feeder_jump_page_default(),
      x_to_twitter_default()
    ]
  });
  anchorEmbed.apply();
})();