@heybox/hb-sdk 0.2.0-alpha.2 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -6
- package/dist/cli.cjs +1119 -722
- package/dist/devtools/mock-host/index.html +78 -1
- package/dist/devtools/mock-host/main.js +378 -204
- package/dist/index.cjs.js +2 -14
- package/dist/index.esm.js +3 -2
- package/dist/miniapp-publish.cjs.js +6 -5
- package/dist/miniapp-publish.esm.js +6 -5
- package/dist/templates/vue3-vite-ts/README.md.ejs +3 -1
- package/dist/templates/vue3-vite-ts/package.json.ejs +5 -0
- package/dist/vite.cjs.js +54 -30
- package/dist/vite.esm.js +55 -31
- package/package.json +3 -4
- package/skill/SKILL.md +1 -1
- package/skill/references/api-root.md +16 -89
- package/skill/references/cli.md +6 -4
- package/skill/scripts/skill-metadata.mjs +4 -1
- package/skill/scripts/sync-references.mjs +1 -1
- package/skill/skill.json +4 -4
- package/types/core/client.d.ts +7 -16
- package/types/index.d.ts +2 -6
- package/types/miniapp-manifest/index.d.ts +2 -0
- package/types/miniapp-manifest/node.d.ts +1 -0
- package/types/miniapp-manifest/schema.d.ts +14 -0
- package/types/miniapp-publish/index.d.ts +1 -1
- package/types/skill-metadata.d.ts +6 -0
package/dist/cli.cjs
CHANGED
|
@@ -22,14 +22,14 @@ var require$$4$3 = require('https');
|
|
|
22
22
|
var require$$5$2 = require('zlib');
|
|
23
23
|
var require$$1$4 = require('querystring');
|
|
24
24
|
var require$$3$3 = require('tls');
|
|
25
|
-
var
|
|
25
|
+
var node_crypto = require('node:crypto');
|
|
26
26
|
var node_url = require('node:url');
|
|
27
27
|
var net = require('node:net');
|
|
28
28
|
var os = require('node:os');
|
|
29
|
+
var node_http = require('node:http');
|
|
29
30
|
var process$1 = require('node:process');
|
|
30
31
|
var node_buffer = require('node:buffer');
|
|
31
32
|
var node_util = require('node:util');
|
|
32
|
-
var node_crypto = require('node:crypto');
|
|
33
33
|
|
|
34
34
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
35
35
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
@@ -3839,7 +3839,7 @@ var hasRequiredUtils$5;
|
|
|
3839
3839
|
function requireUtils$5 () {
|
|
3840
3840
|
if (hasRequiredUtils$5) return utils$5;
|
|
3841
3841
|
hasRequiredUtils$5 = 1;
|
|
3842
|
-
(function (exports
|
|
3842
|
+
(function (exports) {
|
|
3843
3843
|
|
|
3844
3844
|
var regExpChars = /[|\\{}()[\]^$+*?.]/g;
|
|
3845
3845
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
@@ -3855,7 +3855,7 @@ function requireUtils$5 () {
|
|
|
3855
3855
|
* @static
|
|
3856
3856
|
* @private
|
|
3857
3857
|
*/
|
|
3858
|
-
exports
|
|
3858
|
+
exports.escapeRegExpChars = function (string) {
|
|
3859
3859
|
// istanbul ignore if
|
|
3860
3860
|
if (!string) {
|
|
3861
3861
|
return '';
|
|
@@ -3910,7 +3910,7 @@ function requireUtils$5 () {
|
|
|
3910
3910
|
* @private
|
|
3911
3911
|
*/
|
|
3912
3912
|
|
|
3913
|
-
exports
|
|
3913
|
+
exports.escapeXML = function (markup) {
|
|
3914
3914
|
return markup == undefined
|
|
3915
3915
|
? ''
|
|
3916
3916
|
: String(markup)
|
|
@@ -3927,10 +3927,10 @@ function requireUtils$5 () {
|
|
|
3927
3927
|
// cannot have the property changed using an assignment. If using strict mode, attempting that will cause an error. If not using strict
|
|
3928
3928
|
// mode, attempting that will be silently ignored.
|
|
3929
3929
|
// However, we can still explicitly shadow the prototype's "toString" property by defining a new "toString" property on this object.
|
|
3930
|
-
Object.defineProperty(exports
|
|
3930
|
+
Object.defineProperty(exports.escapeXML, 'toString', { value: escapeXMLToString });
|
|
3931
3931
|
} else {
|
|
3932
3932
|
// If Object.defineProperty() doesn't exist, attempt to shadow this property using the assignment operator.
|
|
3933
|
-
exports
|
|
3933
|
+
exports.escapeXML.toString = escapeXMLToString;
|
|
3934
3934
|
}
|
|
3935
3935
|
} catch (err) {
|
|
3936
3936
|
console.warn('Unable to set escapeXML.toString (is the Function prototype frozen?)');
|
|
@@ -3947,7 +3947,7 @@ function requireUtils$5 () {
|
|
|
3947
3947
|
* @static
|
|
3948
3948
|
* @private
|
|
3949
3949
|
*/
|
|
3950
|
-
exports
|
|
3950
|
+
exports.shallowCopy = function (to, from) {
|
|
3951
3951
|
from = from || {};
|
|
3952
3952
|
if ((to !== null) && (to !== undefined)) {
|
|
3953
3953
|
for (var p in from) {
|
|
@@ -3975,7 +3975,7 @@ function requireUtils$5 () {
|
|
|
3975
3975
|
* @static
|
|
3976
3976
|
* @private
|
|
3977
3977
|
*/
|
|
3978
|
-
exports
|
|
3978
|
+
exports.shallowCopyFromList = function (to, from, list) {
|
|
3979
3979
|
list = list || [];
|
|
3980
3980
|
from = from || {};
|
|
3981
3981
|
if ((to !== null) && (to !== undefined)) {
|
|
@@ -4003,7 +4003,7 @@ function requireUtils$5 () {
|
|
|
4003
4003
|
* @static
|
|
4004
4004
|
* @private
|
|
4005
4005
|
*/
|
|
4006
|
-
exports
|
|
4006
|
+
exports.cache = {
|
|
4007
4007
|
_data: {},
|
|
4008
4008
|
set: function (key, val) {
|
|
4009
4009
|
this._data[key] = val;
|
|
@@ -4027,7 +4027,7 @@ function requireUtils$5 () {
|
|
|
4027
4027
|
* @static
|
|
4028
4028
|
* @private
|
|
4029
4029
|
*/
|
|
4030
|
-
exports
|
|
4030
|
+
exports.hyphenToCamel = function (str) {
|
|
4031
4031
|
return str.replace(/-[a-z]/g, function (match) { return match[1].toUpperCase(); });
|
|
4032
4032
|
};
|
|
4033
4033
|
|
|
@@ -4038,7 +4038,7 @@ function requireUtils$5 () {
|
|
|
4038
4038
|
* @static
|
|
4039
4039
|
* @private
|
|
4040
4040
|
*/
|
|
4041
|
-
exports
|
|
4041
|
+
exports.createNullProtoObjWherePossible = (function () {
|
|
4042
4042
|
if (typeof Object.create == 'function') {
|
|
4043
4043
|
return function () {
|
|
4044
4044
|
return Object.create(null);
|
|
@@ -4055,8 +4055,8 @@ function requireUtils$5 () {
|
|
|
4055
4055
|
};
|
|
4056
4056
|
})();
|
|
4057
4057
|
|
|
4058
|
-
exports
|
|
4059
|
-
var o = exports
|
|
4058
|
+
exports.hasOwnOnlyObject = function (obj) {
|
|
4059
|
+
var o = exports.createNullProtoObjWherePossible();
|
|
4060
4060
|
for (var p in obj) {
|
|
4061
4061
|
if (hasOwn(obj, p)) {
|
|
4062
4062
|
o[p] = obj[p];
|
|
@@ -4095,7 +4095,7 @@ var hasRequiredEjs;
|
|
|
4095
4095
|
function requireEjs () {
|
|
4096
4096
|
if (hasRequiredEjs) return ejs;
|
|
4097
4097
|
hasRequiredEjs = 1;
|
|
4098
|
-
(function (exports
|
|
4098
|
+
(function (exports) {
|
|
4099
4099
|
|
|
4100
4100
|
/**
|
|
4101
4101
|
* @file Embedded JavaScript templating engine. {@link http://ejs.co}
|
|
@@ -4154,7 +4154,7 @@ function requireEjs () {
|
|
|
4154
4154
|
* @type {Cache}
|
|
4155
4155
|
*/
|
|
4156
4156
|
|
|
4157
|
-
exports
|
|
4157
|
+
exports.cache = utils.cache;
|
|
4158
4158
|
|
|
4159
4159
|
/**
|
|
4160
4160
|
* Custom file loader. Useful for template preprocessing or restricting access
|
|
@@ -4163,7 +4163,7 @@ function requireEjs () {
|
|
|
4163
4163
|
* @type {fileLoader}
|
|
4164
4164
|
*/
|
|
4165
4165
|
|
|
4166
|
-
exports
|
|
4166
|
+
exports.fileLoader = fs.readFileSync;
|
|
4167
4167
|
|
|
4168
4168
|
/**
|
|
4169
4169
|
* Name of the object containing the locals.
|
|
@@ -4175,7 +4175,7 @@ function requireEjs () {
|
|
|
4175
4175
|
* @public
|
|
4176
4176
|
*/
|
|
4177
4177
|
|
|
4178
|
-
exports
|
|
4178
|
+
exports.localsName = _DEFAULT_LOCALS_NAME;
|
|
4179
4179
|
|
|
4180
4180
|
/**
|
|
4181
4181
|
* Promise implementation -- defaults to the native implementation if available
|
|
@@ -4185,7 +4185,7 @@ function requireEjs () {
|
|
|
4185
4185
|
* @public
|
|
4186
4186
|
*/
|
|
4187
4187
|
|
|
4188
|
-
exports
|
|
4188
|
+
exports.promiseImpl = (new Function('return this;'))().Promise;
|
|
4189
4189
|
|
|
4190
4190
|
/**
|
|
4191
4191
|
* Get the path to the included file from the parent file path and the
|
|
@@ -4196,7 +4196,7 @@ function requireEjs () {
|
|
|
4196
4196
|
* @param {Boolean} [isDir=false] whether the parent file path is a directory
|
|
4197
4197
|
* @return {String}
|
|
4198
4198
|
*/
|
|
4199
|
-
exports
|
|
4199
|
+
exports.resolveInclude = function(name, filename, isDir) {
|
|
4200
4200
|
var dirname = path.dirname;
|
|
4201
4201
|
var extname = path.extname;
|
|
4202
4202
|
var resolve = path.resolve;
|
|
@@ -4218,7 +4218,7 @@ function requireEjs () {
|
|
|
4218
4218
|
function resolvePaths(name, paths) {
|
|
4219
4219
|
var filePath;
|
|
4220
4220
|
if (paths.some(function (v) {
|
|
4221
|
-
filePath = exports
|
|
4221
|
+
filePath = exports.resolveInclude(name, v, true);
|
|
4222
4222
|
return fs.existsSync(filePath);
|
|
4223
4223
|
})) {
|
|
4224
4224
|
return filePath;
|
|
@@ -4244,14 +4244,14 @@ function requireEjs () {
|
|
|
4244
4244
|
if (Array.isArray(options.root)) {
|
|
4245
4245
|
includePath = resolvePaths(path, options.root);
|
|
4246
4246
|
} else {
|
|
4247
|
-
includePath = exports
|
|
4247
|
+
includePath = exports.resolveInclude(path, options.root || '/', true);
|
|
4248
4248
|
}
|
|
4249
4249
|
}
|
|
4250
4250
|
// Relative paths
|
|
4251
4251
|
else {
|
|
4252
4252
|
// Look relative to a passed filename first
|
|
4253
4253
|
if (options.filename) {
|
|
4254
|
-
filePath = exports
|
|
4254
|
+
filePath = exports.resolveInclude(path, options.filename);
|
|
4255
4255
|
if (fs.existsSync(filePath)) {
|
|
4256
4256
|
includePath = filePath;
|
|
4257
4257
|
}
|
|
@@ -4295,7 +4295,7 @@ function requireEjs () {
|
|
|
4295
4295
|
if (!filename) {
|
|
4296
4296
|
throw new Error('cache option requires a filename');
|
|
4297
4297
|
}
|
|
4298
|
-
func = exports
|
|
4298
|
+
func = exports.cache.get(filename);
|
|
4299
4299
|
if (func) {
|
|
4300
4300
|
return func;
|
|
4301
4301
|
}
|
|
@@ -4311,9 +4311,9 @@ function requireEjs () {
|
|
|
4311
4311
|
}
|
|
4312
4312
|
template = fileLoader(filename).toString().replace(_BOM, '');
|
|
4313
4313
|
}
|
|
4314
|
-
func = exports
|
|
4314
|
+
func = exports.compile(template, options);
|
|
4315
4315
|
if (options.cache) {
|
|
4316
|
-
exports
|
|
4316
|
+
exports.cache.set(filename, func);
|
|
4317
4317
|
}
|
|
4318
4318
|
return func;
|
|
4319
4319
|
}
|
|
@@ -4333,8 +4333,8 @@ function requireEjs () {
|
|
|
4333
4333
|
function tryHandleCache(options, data, cb) {
|
|
4334
4334
|
var result;
|
|
4335
4335
|
if (!cb) {
|
|
4336
|
-
if (typeof exports
|
|
4337
|
-
return new exports
|
|
4336
|
+
if (typeof exports.promiseImpl == 'function') {
|
|
4337
|
+
return new exports.promiseImpl(function (resolve, reject) {
|
|
4338
4338
|
try {
|
|
4339
4339
|
result = handleCache(options)(data);
|
|
4340
4340
|
resolve(result);
|
|
@@ -4369,7 +4369,7 @@ function requireEjs () {
|
|
|
4369
4369
|
*/
|
|
4370
4370
|
|
|
4371
4371
|
function fileLoader(filePath){
|
|
4372
|
-
return exports
|
|
4372
|
+
return exports.fileLoader(filePath);
|
|
4373
4373
|
}
|
|
4374
4374
|
|
|
4375
4375
|
/**
|
|
@@ -4457,7 +4457,7 @@ function requireEjs () {
|
|
|
4457
4457
|
* @public
|
|
4458
4458
|
*/
|
|
4459
4459
|
|
|
4460
|
-
exports
|
|
4460
|
+
exports.compile = function compile(template, opts) {
|
|
4461
4461
|
var templ;
|
|
4462
4462
|
|
|
4463
4463
|
// v1 compat
|
|
@@ -4491,7 +4491,7 @@ function requireEjs () {
|
|
|
4491
4491
|
* @public
|
|
4492
4492
|
*/
|
|
4493
4493
|
|
|
4494
|
-
exports
|
|
4494
|
+
exports.render = function (template, d, o) {
|
|
4495
4495
|
var data = d || utils.createNullProtoObjWherePossible();
|
|
4496
4496
|
var opts = o || utils.createNullProtoObjWherePossible();
|
|
4497
4497
|
|
|
@@ -4517,7 +4517,7 @@ function requireEjs () {
|
|
|
4517
4517
|
* @public
|
|
4518
4518
|
*/
|
|
4519
4519
|
|
|
4520
|
-
exports
|
|
4520
|
+
exports.renderFile = function () {
|
|
4521
4521
|
var args = Array.prototype.slice.call(arguments);
|
|
4522
4522
|
var filename = args.shift();
|
|
4523
4523
|
var cb;
|
|
@@ -4579,10 +4579,10 @@ function requireEjs () {
|
|
|
4579
4579
|
* EJS template class
|
|
4580
4580
|
* @public
|
|
4581
4581
|
*/
|
|
4582
|
-
exports
|
|
4582
|
+
exports.Template = Template;
|
|
4583
4583
|
|
|
4584
|
-
exports
|
|
4585
|
-
exports
|
|
4584
|
+
exports.clearCache = function () {
|
|
4585
|
+
exports.cache.reset();
|
|
4586
4586
|
};
|
|
4587
4587
|
|
|
4588
4588
|
function Template(text, optsParam) {
|
|
@@ -4599,9 +4599,9 @@ function requireEjs () {
|
|
|
4599
4599
|
options.compileDebug = opts.compileDebug !== false;
|
|
4600
4600
|
options.debug = !!opts.debug;
|
|
4601
4601
|
options.filename = opts.filename;
|
|
4602
|
-
options.openDelimiter = opts.openDelimiter || exports
|
|
4603
|
-
options.closeDelimiter = opts.closeDelimiter || exports
|
|
4604
|
-
options.delimiter = opts.delimiter || exports
|
|
4602
|
+
options.openDelimiter = opts.openDelimiter || exports.openDelimiter || _DEFAULT_OPEN_DELIMITER;
|
|
4603
|
+
options.closeDelimiter = opts.closeDelimiter || exports.closeDelimiter || _DEFAULT_CLOSE_DELIMITER;
|
|
4604
|
+
options.delimiter = opts.delimiter || exports.delimiter || _DEFAULT_DELIMITER;
|
|
4605
4605
|
options.strict = opts.strict || false;
|
|
4606
4606
|
options.context = opts.context;
|
|
4607
4607
|
options.cache = opts.cache || false;
|
|
@@ -4609,7 +4609,7 @@ function requireEjs () {
|
|
|
4609
4609
|
options.root = opts.root;
|
|
4610
4610
|
options.includer = opts.includer;
|
|
4611
4611
|
options.outputFunctionName = opts.outputFunctionName;
|
|
4612
|
-
options.localsName = opts.localsName || exports
|
|
4612
|
+
options.localsName = opts.localsName || exports.localsName || _DEFAULT_LOCALS_NAME;
|
|
4613
4613
|
options.views = opts.views;
|
|
4614
4614
|
options.async = opts.async;
|
|
4615
4615
|
options.destructuredLocals = opts.destructuredLocals;
|
|
@@ -4991,7 +4991,7 @@ function requireEjs () {
|
|
|
4991
4991
|
* @public
|
|
4992
4992
|
* @func
|
|
4993
4993
|
* */
|
|
4994
|
-
exports
|
|
4994
|
+
exports.escapeXML = utils.escapeXML;
|
|
4995
4995
|
|
|
4996
4996
|
/**
|
|
4997
4997
|
* Express.js support.
|
|
@@ -5002,7 +5002,7 @@ function requireEjs () {
|
|
|
5002
5002
|
* @func
|
|
5003
5003
|
*/
|
|
5004
5004
|
|
|
5005
|
-
exports
|
|
5005
|
+
exports.__express = exports.renderFile;
|
|
5006
5006
|
|
|
5007
5007
|
/**
|
|
5008
5008
|
* Version of EJS.
|
|
@@ -5012,7 +5012,7 @@ function requireEjs () {
|
|
|
5012
5012
|
* @public
|
|
5013
5013
|
*/
|
|
5014
5014
|
|
|
5015
|
-
exports
|
|
5015
|
+
exports.VERSION = _VERSION_STRING;
|
|
5016
5016
|
|
|
5017
5017
|
/**
|
|
5018
5018
|
* Name for detection of EJS.
|
|
@@ -5022,11 +5022,11 @@ function requireEjs () {
|
|
|
5022
5022
|
* @public
|
|
5023
5023
|
*/
|
|
5024
5024
|
|
|
5025
|
-
exports
|
|
5025
|
+
exports.name = _NAME;
|
|
5026
5026
|
|
|
5027
5027
|
/* istanbul ignore if */
|
|
5028
5028
|
if (typeof window != 'undefined') {
|
|
5029
|
-
window.ejs = exports
|
|
5029
|
+
window.ejs = exports;
|
|
5030
5030
|
}
|
|
5031
5031
|
} (ejs));
|
|
5032
5032
|
return ejs;
|
|
@@ -5162,15 +5162,55 @@ function quoteShellPath(value) {
|
|
|
5162
5162
|
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
5163
5163
|
}
|
|
5164
5164
|
|
|
5165
|
+
const MINIAPP_TEMPLATE_VERSION = '0.0.0';
|
|
5166
|
+
const PUBLISH_VERSION_RE = /^\d+\.\d+\.\d+$/;
|
|
5167
|
+
function isValidMiniappManifestVersion(version) {
|
|
5168
|
+
return PUBLISH_VERSION_RE.test(String(version || '').trim());
|
|
5169
|
+
}
|
|
5170
|
+
function parseMiniappManifestJson(raw, sourceLabel = 'manifest.json') {
|
|
5171
|
+
const hadBom = raw.charCodeAt(0) === 0xfeff;
|
|
5172
|
+
const text = hadBom ? raw.slice(1) : raw;
|
|
5173
|
+
let parsed;
|
|
5174
|
+
try {
|
|
5175
|
+
parsed = JSON.parse(text);
|
|
5176
|
+
}
|
|
5177
|
+
catch (error) {
|
|
5178
|
+
throw new Error(`${sourceLabel} 不是合法 JSON:${formatReason(error)}`);
|
|
5179
|
+
}
|
|
5180
|
+
if (!isManifestRecord(parsed)) {
|
|
5181
|
+
throw new Error(`${sourceLabel} 必须是 JSON 对象`);
|
|
5182
|
+
}
|
|
5183
|
+
return {
|
|
5184
|
+
manifest: {
|
|
5185
|
+
version: parsed.version,
|
|
5186
|
+
},
|
|
5187
|
+
hadBom,
|
|
5188
|
+
};
|
|
5189
|
+
}
|
|
5190
|
+
function validateMiniappManifestForDeploy(manifest) {
|
|
5191
|
+
if (manifest.version === MINIAPP_TEMPLATE_VERSION) {
|
|
5192
|
+
throw new Error('manifest.version 仍是模板默认的 0.0.0,请改成实际版本号后再发布');
|
|
5193
|
+
}
|
|
5194
|
+
if (typeof manifest.version !== 'string' || !isValidMiniappManifestVersion(manifest.version)) {
|
|
5195
|
+
throw new Error(`manifest.version 格式错误,必须是 x.y.z:${String(manifest.version)}`);
|
|
5196
|
+
}
|
|
5197
|
+
return manifest.version;
|
|
5198
|
+
}
|
|
5199
|
+
function isManifestRecord(value) {
|
|
5200
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
5201
|
+
}
|
|
5202
|
+
function formatReason(error) {
|
|
5203
|
+
if (error instanceof Error && error.message) {
|
|
5204
|
+
return error.message;
|
|
5205
|
+
}
|
|
5206
|
+
return String(error);
|
|
5207
|
+
}
|
|
5208
|
+
|
|
5165
5209
|
const MINIAPP_UPLOAD_SCOPE = 'activity';
|
|
5166
5210
|
const ACTIVITY_UPLOAD_KEY_MAX_LENGTH = 64;
|
|
5167
5211
|
const PUBLISH_USER_MINIPROGRAM_API_PATH = '/mall/developer/user_miniprogram/publish';
|
|
5168
|
-
const VERSION_PATTERN = /^\d+\.\d+\.\d+$/;
|
|
5169
5212
|
const FNV_OFFSET = 0x811c9dc5;
|
|
5170
5213
|
const FNV_PRIME = 0x01000193;
|
|
5171
|
-
function isValidVersion(version) {
|
|
5172
|
-
return VERSION_PATTERN.test(String(version || '').trim());
|
|
5173
|
-
}
|
|
5174
5214
|
function normalizeRelativePath(relativePath) {
|
|
5175
5215
|
return String(relativePath || '')
|
|
5176
5216
|
.replace(/\\/g, '/')
|
|
@@ -6332,7 +6372,7 @@ var hasRequiredFs$1;
|
|
|
6332
6372
|
function requireFs$1 () {
|
|
6333
6373
|
if (hasRequiredFs$1) return fs$2;
|
|
6334
6374
|
hasRequiredFs$1 = 1;
|
|
6335
|
-
(function (exports
|
|
6375
|
+
(function (exports) {
|
|
6336
6376
|
// This is adapted from https://github.com/normalize/mz
|
|
6337
6377
|
// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors
|
|
6338
6378
|
const u = requireUniversalify().fromCallback;
|
|
@@ -6387,16 +6427,16 @@ function requireFs$1 () {
|
|
|
6387
6427
|
});
|
|
6388
6428
|
|
|
6389
6429
|
// Export cloned fs:
|
|
6390
|
-
Object.assign(exports
|
|
6430
|
+
Object.assign(exports, fs);
|
|
6391
6431
|
|
|
6392
6432
|
// Universalify async methods:
|
|
6393
6433
|
api.forEach(method => {
|
|
6394
|
-
exports
|
|
6434
|
+
exports[method] = u(fs[method]);
|
|
6395
6435
|
});
|
|
6396
6436
|
|
|
6397
6437
|
// We differ from mz/fs in that we still ship the old, broken, fs.exists()
|
|
6398
6438
|
// since we are a drop-in replacement for the native module
|
|
6399
|
-
exports
|
|
6439
|
+
exports.exists = function (filename, callback) {
|
|
6400
6440
|
if (typeof callback === 'function') {
|
|
6401
6441
|
return fs.exists(filename, callback)
|
|
6402
6442
|
}
|
|
@@ -6407,7 +6447,7 @@ function requireFs$1 () {
|
|
|
6407
6447
|
|
|
6408
6448
|
// fs.read(), fs.write(), fs.readv(), & fs.writev() need special treatment due to multiple callback args
|
|
6409
6449
|
|
|
6410
|
-
exports
|
|
6450
|
+
exports.read = function (fd, buffer, offset, length, position, callback) {
|
|
6411
6451
|
if (typeof callback === 'function') {
|
|
6412
6452
|
return fs.read(fd, buffer, offset, length, position, callback)
|
|
6413
6453
|
}
|
|
@@ -6424,7 +6464,7 @@ function requireFs$1 () {
|
|
|
6424
6464
|
// OR
|
|
6425
6465
|
// fs.write(fd, string[, position[, encoding]], callback)
|
|
6426
6466
|
// We need to handle both cases, so we use ...args
|
|
6427
|
-
exports
|
|
6467
|
+
exports.write = function (fd, buffer, ...args) {
|
|
6428
6468
|
if (typeof args[args.length - 1] === 'function') {
|
|
6429
6469
|
return fs.write(fd, buffer, ...args)
|
|
6430
6470
|
}
|
|
@@ -6440,7 +6480,7 @@ function requireFs$1 () {
|
|
|
6440
6480
|
// Function signature is
|
|
6441
6481
|
// s.readv(fd, buffers[, position], callback)
|
|
6442
6482
|
// We need to handle the optional arg, so we use ...args
|
|
6443
|
-
exports
|
|
6483
|
+
exports.readv = function (fd, buffers, ...args) {
|
|
6444
6484
|
if (typeof args[args.length - 1] === 'function') {
|
|
6445
6485
|
return fs.readv(fd, buffers, ...args)
|
|
6446
6486
|
}
|
|
@@ -6456,7 +6496,7 @@ function requireFs$1 () {
|
|
|
6456
6496
|
// Function signature is
|
|
6457
6497
|
// s.writev(fd, buffers[, position], callback)
|
|
6458
6498
|
// We need to handle the optional arg, so we use ...args
|
|
6459
|
-
exports
|
|
6499
|
+
exports.writev = function (fd, buffers, ...args) {
|
|
6460
6500
|
if (typeof args[args.length - 1] === 'function') {
|
|
6461
6501
|
return fs.writev(fd, buffers, ...args)
|
|
6462
6502
|
}
|
|
@@ -6471,7 +6511,7 @@ function requireFs$1 () {
|
|
|
6471
6511
|
|
|
6472
6512
|
// fs.realpath.native sometimes not available if fs is monkey-patched
|
|
6473
6513
|
if (typeof fs.realpath.native === 'function') {
|
|
6474
|
-
exports
|
|
6514
|
+
exports.realpath.native = u(fs.realpath.native);
|
|
6475
6515
|
} else {
|
|
6476
6516
|
process.emitWarning(
|
|
6477
6517
|
'fs.realpath.native is not a function. Is fs being monkey-patched?',
|
|
@@ -6596,30 +6636,47 @@ function requireUtimes () {
|
|
|
6596
6636
|
const u = requireUniversalify().fromPromise;
|
|
6597
6637
|
|
|
6598
6638
|
async function utimesMillis (path, atime, mtime) {
|
|
6599
|
-
// if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)
|
|
6600
6639
|
const fd = await fs.open(path, 'r+');
|
|
6601
6640
|
|
|
6602
|
-
let
|
|
6641
|
+
let error = null;
|
|
6603
6642
|
|
|
6604
6643
|
try {
|
|
6605
6644
|
await fs.futimes(fd, atime, mtime);
|
|
6645
|
+
} catch (futimesErr) {
|
|
6646
|
+
error = futimesErr;
|
|
6606
6647
|
} finally {
|
|
6607
6648
|
try {
|
|
6608
6649
|
await fs.close(fd);
|
|
6609
|
-
} catch (
|
|
6610
|
-
|
|
6650
|
+
} catch (closeErr) {
|
|
6651
|
+
if (!error) error = closeErr;
|
|
6611
6652
|
}
|
|
6612
6653
|
}
|
|
6613
6654
|
|
|
6614
|
-
if (
|
|
6615
|
-
throw
|
|
6655
|
+
if (error) {
|
|
6656
|
+
throw error
|
|
6616
6657
|
}
|
|
6617
6658
|
}
|
|
6618
6659
|
|
|
6619
6660
|
function utimesMillisSync (path, atime, mtime) {
|
|
6620
6661
|
const fd = fs.openSync(path, 'r+');
|
|
6621
|
-
|
|
6622
|
-
|
|
6662
|
+
|
|
6663
|
+
let error = null;
|
|
6664
|
+
|
|
6665
|
+
try {
|
|
6666
|
+
fs.futimesSync(fd, atime, mtime);
|
|
6667
|
+
} catch (futimesErr) {
|
|
6668
|
+
error = futimesErr;
|
|
6669
|
+
} finally {
|
|
6670
|
+
try {
|
|
6671
|
+
fs.closeSync(fd);
|
|
6672
|
+
} catch (closeErr) {
|
|
6673
|
+
if (!error) error = closeErr;
|
|
6674
|
+
}
|
|
6675
|
+
}
|
|
6676
|
+
|
|
6677
|
+
if (error) {
|
|
6678
|
+
throw error
|
|
6679
|
+
}
|
|
6623
6680
|
}
|
|
6624
6681
|
|
|
6625
6682
|
utimes = {
|
|
@@ -7383,14 +7440,14 @@ function requireLink () {
|
|
|
7383
7440
|
async function createLink (srcpath, dstpath) {
|
|
7384
7441
|
let dstStat;
|
|
7385
7442
|
try {
|
|
7386
|
-
dstStat = await fs.lstat(dstpath);
|
|
7443
|
+
dstStat = await fs.lstat(dstpath, { bigint: true });
|
|
7387
7444
|
} catch {
|
|
7388
7445
|
// ignore error
|
|
7389
7446
|
}
|
|
7390
7447
|
|
|
7391
7448
|
let srcStat;
|
|
7392
7449
|
try {
|
|
7393
|
-
srcStat = await fs.lstat(srcpath);
|
|
7450
|
+
srcStat = await fs.lstat(srcpath, { bigint: true });
|
|
7394
7451
|
} catch (err) {
|
|
7395
7452
|
err.message = err.message.replace('lstat', 'ensureLink');
|
|
7396
7453
|
throw err
|
|
@@ -7412,11 +7469,11 @@ function requireLink () {
|
|
|
7412
7469
|
function createLinkSync (srcpath, dstpath) {
|
|
7413
7470
|
let dstStat;
|
|
7414
7471
|
try {
|
|
7415
|
-
dstStat = fs.lstatSync(dstpath);
|
|
7472
|
+
dstStat = fs.lstatSync(dstpath, { bigint: true });
|
|
7416
7473
|
} catch {}
|
|
7417
7474
|
|
|
7418
7475
|
try {
|
|
7419
|
-
const srcStat = fs.lstatSync(srcpath);
|
|
7476
|
+
const srcStat = fs.lstatSync(srcpath, { bigint: true });
|
|
7420
7477
|
if (dstStat && areIdentical(srcStat, dstStat)) return
|
|
7421
7478
|
} catch (err) {
|
|
7422
7479
|
err.message = err.message.replace('lstat', 'ensureLink');
|
|
@@ -7620,18 +7677,18 @@ function requireSymlink () {
|
|
|
7620
7677
|
// (standard symlink behavior) or fall back to cwd if that doesn't exist
|
|
7621
7678
|
let srcStat;
|
|
7622
7679
|
if (path.isAbsolute(srcpath)) {
|
|
7623
|
-
srcStat = await fs.stat(srcpath);
|
|
7680
|
+
srcStat = await fs.stat(srcpath, { bigint: true });
|
|
7624
7681
|
} else {
|
|
7625
7682
|
const dstdir = path.dirname(dstpath);
|
|
7626
7683
|
const relativeToDst = path.join(dstdir, srcpath);
|
|
7627
7684
|
try {
|
|
7628
|
-
srcStat = await fs.stat(relativeToDst);
|
|
7685
|
+
srcStat = await fs.stat(relativeToDst, { bigint: true });
|
|
7629
7686
|
} catch {
|
|
7630
|
-
srcStat = await fs.stat(srcpath);
|
|
7687
|
+
srcStat = await fs.stat(srcpath, { bigint: true });
|
|
7631
7688
|
}
|
|
7632
7689
|
}
|
|
7633
7690
|
|
|
7634
|
-
const dstStat = await fs.stat(dstpath);
|
|
7691
|
+
const dstStat = await fs.stat(dstpath, { bigint: true });
|
|
7635
7692
|
if (areIdentical(srcStat, dstStat)) return
|
|
7636
7693
|
}
|
|
7637
7694
|
|
|
@@ -7657,18 +7714,18 @@ function requireSymlink () {
|
|
|
7657
7714
|
// (standard symlink behavior) or fall back to cwd if that doesn't exist
|
|
7658
7715
|
let srcStat;
|
|
7659
7716
|
if (path.isAbsolute(srcpath)) {
|
|
7660
|
-
srcStat = fs.statSync(srcpath);
|
|
7717
|
+
srcStat = fs.statSync(srcpath, { bigint: true });
|
|
7661
7718
|
} else {
|
|
7662
7719
|
const dstdir = path.dirname(dstpath);
|
|
7663
7720
|
const relativeToDst = path.join(dstdir, srcpath);
|
|
7664
7721
|
try {
|
|
7665
|
-
srcStat = fs.statSync(relativeToDst);
|
|
7722
|
+
srcStat = fs.statSync(relativeToDst, { bigint: true });
|
|
7666
7723
|
} catch {
|
|
7667
|
-
srcStat = fs.statSync(srcpath);
|
|
7724
|
+
srcStat = fs.statSync(srcpath, { bigint: true });
|
|
7668
7725
|
}
|
|
7669
7726
|
}
|
|
7670
7727
|
|
|
7671
|
-
const dstStat = fs.statSync(dstpath);
|
|
7728
|
+
const dstStat = fs.statSync(dstpath, { bigint: true });
|
|
7672
7729
|
if (areIdentical(srcStat, dstStat)) return
|
|
7673
7730
|
}
|
|
7674
7731
|
|
|
@@ -7730,6 +7787,10 @@ function requireUtils$3 () {
|
|
|
7730
7787
|
const EOF = finalEOL ? EOL : '';
|
|
7731
7788
|
const str = JSON.stringify(obj, replacer, spaces);
|
|
7732
7789
|
|
|
7790
|
+
if (str === undefined) {
|
|
7791
|
+
throw new TypeError(`Converting ${typeof obj} value to JSON is not supported`)
|
|
7792
|
+
}
|
|
7793
|
+
|
|
7733
7794
|
return str.replace(/\n/g, EOL) + EOF
|
|
7734
7795
|
}
|
|
7735
7796
|
|
|
@@ -8224,7 +8285,7 @@ function createCookie(name, value) {
|
|
|
8224
8285
|
return `${name}=${value}`;
|
|
8225
8286
|
}
|
|
8226
8287
|
function isHeyboxAuthSession(value) {
|
|
8227
|
-
if (!isRecord$
|
|
8288
|
+
if (!isRecord$2(value)) {
|
|
8228
8289
|
return false;
|
|
8229
8290
|
}
|
|
8230
8291
|
return (typeof value.heyboxId === 'string' &&
|
|
@@ -8233,7 +8294,7 @@ function isHeyboxAuthSession(value) {
|
|
|
8233
8294
|
typeof value.cookieHeader === 'string' &&
|
|
8234
8295
|
typeof value.loggedInAt === 'string');
|
|
8235
8296
|
}
|
|
8236
|
-
function isRecord$
|
|
8297
|
+
function isRecord$2(value) {
|
|
8237
8298
|
return Object.prototype.toString.call(value) === '[object Object]';
|
|
8238
8299
|
}
|
|
8239
8300
|
|
|
@@ -8246,7 +8307,7 @@ var hasRequiredUtil$4;
|
|
|
8246
8307
|
function requireUtil$4 () {
|
|
8247
8308
|
if (hasRequiredUtil$4) return util$3;
|
|
8248
8309
|
hasRequiredUtil$4 = 1;
|
|
8249
|
-
(function (exports
|
|
8310
|
+
(function (exports) {
|
|
8250
8311
|
|
|
8251
8312
|
const nameStartChar = ':A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
|
|
8252
8313
|
const nameChar = nameStartChar + '\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040';
|
|
@@ -8274,11 +8335,11 @@ function requireUtil$4 () {
|
|
|
8274
8335
|
return !(match === null || typeof match === 'undefined');
|
|
8275
8336
|
};
|
|
8276
8337
|
|
|
8277
|
-
exports
|
|
8338
|
+
exports.isExist = function(v) {
|
|
8278
8339
|
return typeof v !== 'undefined';
|
|
8279
8340
|
};
|
|
8280
8341
|
|
|
8281
|
-
exports
|
|
8342
|
+
exports.isEmptyObject = function(obj) {
|
|
8282
8343
|
return Object.keys(obj).length === 0;
|
|
8283
8344
|
};
|
|
8284
8345
|
|
|
@@ -8287,7 +8348,7 @@ function requireUtil$4 () {
|
|
|
8287
8348
|
* @param {*} target
|
|
8288
8349
|
* @param {*} a
|
|
8289
8350
|
*/
|
|
8290
|
-
exports
|
|
8351
|
+
exports.merge = function(target, a, arrayMode) {
|
|
8291
8352
|
if (a) {
|
|
8292
8353
|
const keys = Object.keys(a); // will return an array of own properties
|
|
8293
8354
|
const len = keys.length; //don't make it inline
|
|
@@ -8304,8 +8365,8 @@ function requireUtil$4 () {
|
|
|
8304
8365
|
return Object.assign(b,a);
|
|
8305
8366
|
} */
|
|
8306
8367
|
|
|
8307
|
-
exports
|
|
8308
|
-
if (exports
|
|
8368
|
+
exports.getValue = function(v) {
|
|
8369
|
+
if (exports.isExist(v)) {
|
|
8309
8370
|
return v;
|
|
8310
8371
|
} else {
|
|
8311
8372
|
return '';
|
|
@@ -8315,9 +8376,9 @@ function requireUtil$4 () {
|
|
|
8315
8376
|
// const fakeCall = function(a) {return a;};
|
|
8316
8377
|
// const fakeCallNoReturn = function() {};
|
|
8317
8378
|
|
|
8318
|
-
exports
|
|
8319
|
-
exports
|
|
8320
|
-
exports
|
|
8379
|
+
exports.isName = isName;
|
|
8380
|
+
exports.getAllMatches = getAllMatches;
|
|
8381
|
+
exports.nameRegexp = nameRegexp;
|
|
8321
8382
|
} (util$3));
|
|
8322
8383
|
return util$3;
|
|
8323
8384
|
}
|
|
@@ -11387,8 +11448,8 @@ var hasRequiredSemver$2;
|
|
|
11387
11448
|
function requireSemver$2 () {
|
|
11388
11449
|
if (hasRequiredSemver$2) return semver$2.exports;
|
|
11389
11450
|
hasRequiredSemver$2 = 1;
|
|
11390
|
-
(function (module, exports
|
|
11391
|
-
exports
|
|
11451
|
+
(function (module, exports) {
|
|
11452
|
+
exports = module.exports = SemVer;
|
|
11392
11453
|
|
|
11393
11454
|
var debug;
|
|
11394
11455
|
/* istanbul ignore next */
|
|
@@ -11407,7 +11468,7 @@ function requireSemver$2 () {
|
|
|
11407
11468
|
|
|
11408
11469
|
// Note: this is the semver.org version of the spec that it implements
|
|
11409
11470
|
// Not necessarily the package version of this code.
|
|
11410
|
-
exports
|
|
11471
|
+
exports.SEMVER_SPEC_VERSION = '2.0.0';
|
|
11411
11472
|
|
|
11412
11473
|
var MAX_LENGTH = 256;
|
|
11413
11474
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
|
|
@@ -11419,10 +11480,10 @@ function requireSemver$2 () {
|
|
|
11419
11480
|
var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;
|
|
11420
11481
|
|
|
11421
11482
|
// The actual regexps go on exports.re
|
|
11422
|
-
var re = exports
|
|
11423
|
-
var safeRe = exports
|
|
11424
|
-
var src = exports
|
|
11425
|
-
var t = exports
|
|
11483
|
+
var re = exports.re = [];
|
|
11484
|
+
var safeRe = exports.safeRe = [];
|
|
11485
|
+
var src = exports.src = [];
|
|
11486
|
+
var t = exports.tokens = {};
|
|
11426
11487
|
var R = 0;
|
|
11427
11488
|
|
|
11428
11489
|
function tok (n) {
|
|
@@ -11680,7 +11741,7 @@ function requireSemver$2 () {
|
|
|
11680
11741
|
}
|
|
11681
11742
|
}
|
|
11682
11743
|
|
|
11683
|
-
exports
|
|
11744
|
+
exports.parse = parse;
|
|
11684
11745
|
function parse (version, options) {
|
|
11685
11746
|
if (!options || typeof options !== 'object') {
|
|
11686
11747
|
options = {
|
|
@@ -11713,19 +11774,19 @@ function requireSemver$2 () {
|
|
|
11713
11774
|
}
|
|
11714
11775
|
}
|
|
11715
11776
|
|
|
11716
|
-
exports
|
|
11777
|
+
exports.valid = valid;
|
|
11717
11778
|
function valid (version, options) {
|
|
11718
11779
|
var v = parse(version, options);
|
|
11719
11780
|
return v ? v.version : null
|
|
11720
11781
|
}
|
|
11721
11782
|
|
|
11722
|
-
exports
|
|
11783
|
+
exports.clean = clean;
|
|
11723
11784
|
function clean (version, options) {
|
|
11724
11785
|
var s = parse(version.trim().replace(/^[=v]+/, ''), options);
|
|
11725
11786
|
return s ? s.version : null
|
|
11726
11787
|
}
|
|
11727
11788
|
|
|
11728
|
-
exports
|
|
11789
|
+
exports.SemVer = SemVer;
|
|
11729
11790
|
|
|
11730
11791
|
function SemVer (version, options) {
|
|
11731
11792
|
if (!options || typeof options !== 'object') {
|
|
@@ -11996,7 +12057,7 @@ function requireSemver$2 () {
|
|
|
11996
12057
|
return this
|
|
11997
12058
|
};
|
|
11998
12059
|
|
|
11999
|
-
exports
|
|
12060
|
+
exports.inc = inc;
|
|
12000
12061
|
function inc (version, release, loose, identifier) {
|
|
12001
12062
|
if (typeof (loose) === 'string') {
|
|
12002
12063
|
identifier = loose;
|
|
@@ -12010,7 +12071,7 @@ function requireSemver$2 () {
|
|
|
12010
12071
|
}
|
|
12011
12072
|
}
|
|
12012
12073
|
|
|
12013
|
-
exports
|
|
12074
|
+
exports.diff = diff;
|
|
12014
12075
|
function diff (version1, version2) {
|
|
12015
12076
|
if (eq(version1, version2)) {
|
|
12016
12077
|
return null
|
|
@@ -12033,7 +12094,7 @@ function requireSemver$2 () {
|
|
|
12033
12094
|
}
|
|
12034
12095
|
}
|
|
12035
12096
|
|
|
12036
|
-
exports
|
|
12097
|
+
exports.compareIdentifiers = compareIdentifiers;
|
|
12037
12098
|
|
|
12038
12099
|
var numeric = /^[0-9]+$/;
|
|
12039
12100
|
function compareIdentifiers (a, b) {
|
|
@@ -12052,93 +12113,93 @@ function requireSemver$2 () {
|
|
|
12052
12113
|
: 1
|
|
12053
12114
|
}
|
|
12054
12115
|
|
|
12055
|
-
exports
|
|
12116
|
+
exports.rcompareIdentifiers = rcompareIdentifiers;
|
|
12056
12117
|
function rcompareIdentifiers (a, b) {
|
|
12057
12118
|
return compareIdentifiers(b, a)
|
|
12058
12119
|
}
|
|
12059
12120
|
|
|
12060
|
-
exports
|
|
12121
|
+
exports.major = major;
|
|
12061
12122
|
function major (a, loose) {
|
|
12062
12123
|
return new SemVer(a, loose).major
|
|
12063
12124
|
}
|
|
12064
12125
|
|
|
12065
|
-
exports
|
|
12126
|
+
exports.minor = minor;
|
|
12066
12127
|
function minor (a, loose) {
|
|
12067
12128
|
return new SemVer(a, loose).minor
|
|
12068
12129
|
}
|
|
12069
12130
|
|
|
12070
|
-
exports
|
|
12131
|
+
exports.patch = patch;
|
|
12071
12132
|
function patch (a, loose) {
|
|
12072
12133
|
return new SemVer(a, loose).patch
|
|
12073
12134
|
}
|
|
12074
12135
|
|
|
12075
|
-
exports
|
|
12136
|
+
exports.compare = compare;
|
|
12076
12137
|
function compare (a, b, loose) {
|
|
12077
12138
|
return new SemVer(a, loose).compare(new SemVer(b, loose))
|
|
12078
12139
|
}
|
|
12079
12140
|
|
|
12080
|
-
exports
|
|
12141
|
+
exports.compareLoose = compareLoose;
|
|
12081
12142
|
function compareLoose (a, b) {
|
|
12082
12143
|
return compare(a, b, true)
|
|
12083
12144
|
}
|
|
12084
12145
|
|
|
12085
|
-
exports
|
|
12146
|
+
exports.compareBuild = compareBuild;
|
|
12086
12147
|
function compareBuild (a, b, loose) {
|
|
12087
12148
|
var versionA = new SemVer(a, loose);
|
|
12088
12149
|
var versionB = new SemVer(b, loose);
|
|
12089
12150
|
return versionA.compare(versionB) || versionA.compareBuild(versionB)
|
|
12090
12151
|
}
|
|
12091
12152
|
|
|
12092
|
-
exports
|
|
12153
|
+
exports.rcompare = rcompare;
|
|
12093
12154
|
function rcompare (a, b, loose) {
|
|
12094
12155
|
return compare(b, a, loose)
|
|
12095
12156
|
}
|
|
12096
12157
|
|
|
12097
|
-
exports
|
|
12158
|
+
exports.sort = sort;
|
|
12098
12159
|
function sort (list, loose) {
|
|
12099
12160
|
return list.sort(function (a, b) {
|
|
12100
|
-
return exports
|
|
12161
|
+
return exports.compareBuild(a, b, loose)
|
|
12101
12162
|
})
|
|
12102
12163
|
}
|
|
12103
12164
|
|
|
12104
|
-
exports
|
|
12165
|
+
exports.rsort = rsort;
|
|
12105
12166
|
function rsort (list, loose) {
|
|
12106
12167
|
return list.sort(function (a, b) {
|
|
12107
|
-
return exports
|
|
12168
|
+
return exports.compareBuild(b, a, loose)
|
|
12108
12169
|
})
|
|
12109
12170
|
}
|
|
12110
12171
|
|
|
12111
|
-
exports
|
|
12172
|
+
exports.gt = gt;
|
|
12112
12173
|
function gt (a, b, loose) {
|
|
12113
12174
|
return compare(a, b, loose) > 0
|
|
12114
12175
|
}
|
|
12115
12176
|
|
|
12116
|
-
exports
|
|
12177
|
+
exports.lt = lt;
|
|
12117
12178
|
function lt (a, b, loose) {
|
|
12118
12179
|
return compare(a, b, loose) < 0
|
|
12119
12180
|
}
|
|
12120
12181
|
|
|
12121
|
-
exports
|
|
12182
|
+
exports.eq = eq;
|
|
12122
12183
|
function eq (a, b, loose) {
|
|
12123
12184
|
return compare(a, b, loose) === 0
|
|
12124
12185
|
}
|
|
12125
12186
|
|
|
12126
|
-
exports
|
|
12187
|
+
exports.neq = neq;
|
|
12127
12188
|
function neq (a, b, loose) {
|
|
12128
12189
|
return compare(a, b, loose) !== 0
|
|
12129
12190
|
}
|
|
12130
12191
|
|
|
12131
|
-
exports
|
|
12192
|
+
exports.gte = gte;
|
|
12132
12193
|
function gte (a, b, loose) {
|
|
12133
12194
|
return compare(a, b, loose) >= 0
|
|
12134
12195
|
}
|
|
12135
12196
|
|
|
12136
|
-
exports
|
|
12197
|
+
exports.lte = lte;
|
|
12137
12198
|
function lte (a, b, loose) {
|
|
12138
12199
|
return compare(a, b, loose) <= 0
|
|
12139
12200
|
}
|
|
12140
12201
|
|
|
12141
|
-
exports
|
|
12202
|
+
exports.cmp = cmp;
|
|
12142
12203
|
function cmp (a, op, b, loose) {
|
|
12143
12204
|
switch (op) {
|
|
12144
12205
|
case '===':
|
|
@@ -12180,7 +12241,7 @@ function requireSemver$2 () {
|
|
|
12180
12241
|
}
|
|
12181
12242
|
}
|
|
12182
12243
|
|
|
12183
|
-
exports
|
|
12244
|
+
exports.Comparator = Comparator;
|
|
12184
12245
|
function Comparator (comp, options) {
|
|
12185
12246
|
if (!options || typeof options !== 'object') {
|
|
12186
12247
|
options = {
|
|
@@ -12312,7 +12373,7 @@ function requireSemver$2 () {
|
|
|
12312
12373
|
oppositeDirectionsLessThan || oppositeDirectionsGreaterThan
|
|
12313
12374
|
};
|
|
12314
12375
|
|
|
12315
|
-
exports
|
|
12376
|
+
exports.Range = Range;
|
|
12316
12377
|
function Range (range, options) {
|
|
12317
12378
|
if (!options || typeof options !== 'object') {
|
|
12318
12379
|
options = {
|
|
@@ -12456,7 +12517,7 @@ function requireSemver$2 () {
|
|
|
12456
12517
|
}
|
|
12457
12518
|
|
|
12458
12519
|
// Mostly just for testing and legacy API reasons
|
|
12459
|
-
exports
|
|
12520
|
+
exports.toComparators = toComparators;
|
|
12460
12521
|
function toComparators (range, options) {
|
|
12461
12522
|
return new Range(range, options).set.map(function (comp) {
|
|
12462
12523
|
return comp.map(function (c) {
|
|
@@ -12767,7 +12828,7 @@ function requireSemver$2 () {
|
|
|
12767
12828
|
return true
|
|
12768
12829
|
}
|
|
12769
12830
|
|
|
12770
|
-
exports
|
|
12831
|
+
exports.satisfies = satisfies;
|
|
12771
12832
|
function satisfies (version, range, options) {
|
|
12772
12833
|
try {
|
|
12773
12834
|
range = new Range(range, options);
|
|
@@ -12777,7 +12838,7 @@ function requireSemver$2 () {
|
|
|
12777
12838
|
return range.test(version)
|
|
12778
12839
|
}
|
|
12779
12840
|
|
|
12780
|
-
exports
|
|
12841
|
+
exports.maxSatisfying = maxSatisfying;
|
|
12781
12842
|
function maxSatisfying (versions, range, options) {
|
|
12782
12843
|
var max = null;
|
|
12783
12844
|
var maxSV = null;
|
|
@@ -12799,7 +12860,7 @@ function requireSemver$2 () {
|
|
|
12799
12860
|
return max
|
|
12800
12861
|
}
|
|
12801
12862
|
|
|
12802
|
-
exports
|
|
12863
|
+
exports.minSatisfying = minSatisfying;
|
|
12803
12864
|
function minSatisfying (versions, range, options) {
|
|
12804
12865
|
var min = null;
|
|
12805
12866
|
var minSV = null;
|
|
@@ -12821,7 +12882,7 @@ function requireSemver$2 () {
|
|
|
12821
12882
|
return min
|
|
12822
12883
|
}
|
|
12823
12884
|
|
|
12824
|
-
exports
|
|
12885
|
+
exports.minVersion = minVersion;
|
|
12825
12886
|
function minVersion (range, loose) {
|
|
12826
12887
|
range = new Range(range, loose);
|
|
12827
12888
|
|
|
@@ -12875,7 +12936,7 @@ function requireSemver$2 () {
|
|
|
12875
12936
|
return null
|
|
12876
12937
|
}
|
|
12877
12938
|
|
|
12878
|
-
exports
|
|
12939
|
+
exports.validRange = validRange;
|
|
12879
12940
|
function validRange (range, options) {
|
|
12880
12941
|
try {
|
|
12881
12942
|
// Return '*' instead of '' so that truthiness works.
|
|
@@ -12887,18 +12948,18 @@ function requireSemver$2 () {
|
|
|
12887
12948
|
}
|
|
12888
12949
|
|
|
12889
12950
|
// Determine if version is less than all the versions possible in the range
|
|
12890
|
-
exports
|
|
12951
|
+
exports.ltr = ltr;
|
|
12891
12952
|
function ltr (version, range, options) {
|
|
12892
12953
|
return outside(version, range, '<', options)
|
|
12893
12954
|
}
|
|
12894
12955
|
|
|
12895
12956
|
// Determine if version is greater than all the versions possible in the range.
|
|
12896
|
-
exports
|
|
12957
|
+
exports.gtr = gtr;
|
|
12897
12958
|
function gtr (version, range, options) {
|
|
12898
12959
|
return outside(version, range, '>', options)
|
|
12899
12960
|
}
|
|
12900
12961
|
|
|
12901
|
-
exports
|
|
12962
|
+
exports.outside = outside;
|
|
12902
12963
|
function outside (version, range, hilo, options) {
|
|
12903
12964
|
version = new SemVer(version, options);
|
|
12904
12965
|
range = new Range(range, options);
|
|
@@ -12968,20 +13029,20 @@ function requireSemver$2 () {
|
|
|
12968
13029
|
return true
|
|
12969
13030
|
}
|
|
12970
13031
|
|
|
12971
|
-
exports
|
|
13032
|
+
exports.prerelease = prerelease;
|
|
12972
13033
|
function prerelease (version, options) {
|
|
12973
13034
|
var parsed = parse(version, options);
|
|
12974
13035
|
return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
|
|
12975
13036
|
}
|
|
12976
13037
|
|
|
12977
|
-
exports
|
|
13038
|
+
exports.intersects = intersects;
|
|
12978
13039
|
function intersects (r1, r2, options) {
|
|
12979
13040
|
r1 = new Range(r1, options);
|
|
12980
13041
|
r2 = new Range(r2, options);
|
|
12981
13042
|
return r1.intersects(r2)
|
|
12982
13043
|
}
|
|
12983
13044
|
|
|
12984
|
-
exports
|
|
13045
|
+
exports.coerce = coerce;
|
|
12985
13046
|
function coerce (version, options) {
|
|
12986
13047
|
if (version instanceof SemVer) {
|
|
12987
13048
|
return version
|
|
@@ -14130,17 +14191,17 @@ var hasRequiredCode$1;
|
|
|
14130
14191
|
function requireCode$1 () {
|
|
14131
14192
|
if (hasRequiredCode$1) return code$1;
|
|
14132
14193
|
hasRequiredCode$1 = 1;
|
|
14133
|
-
(function (exports
|
|
14134
|
-
Object.defineProperty(exports
|
|
14135
|
-
exports
|
|
14194
|
+
(function (exports) {
|
|
14195
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14196
|
+
exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;
|
|
14136
14197
|
class _CodeOrName {
|
|
14137
14198
|
}
|
|
14138
|
-
exports
|
|
14139
|
-
exports
|
|
14199
|
+
exports._CodeOrName = _CodeOrName;
|
|
14200
|
+
exports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
|
|
14140
14201
|
class Name extends _CodeOrName {
|
|
14141
14202
|
constructor(s) {
|
|
14142
14203
|
super();
|
|
14143
|
-
if (!exports
|
|
14204
|
+
if (!exports.IDENTIFIER.test(s))
|
|
14144
14205
|
throw new Error("CodeGen: name must be a valid identifier");
|
|
14145
14206
|
this.str = s;
|
|
14146
14207
|
}
|
|
@@ -14154,7 +14215,7 @@ function requireCode$1 () {
|
|
|
14154
14215
|
return { [this.str]: 1 };
|
|
14155
14216
|
}
|
|
14156
14217
|
}
|
|
14157
|
-
exports
|
|
14218
|
+
exports.Name = Name;
|
|
14158
14219
|
class _Code extends _CodeOrName {
|
|
14159
14220
|
constructor(code) {
|
|
14160
14221
|
super();
|
|
@@ -14182,8 +14243,8 @@ function requireCode$1 () {
|
|
|
14182
14243
|
}, {})));
|
|
14183
14244
|
}
|
|
14184
14245
|
}
|
|
14185
|
-
exports
|
|
14186
|
-
exports
|
|
14246
|
+
exports._Code = _Code;
|
|
14247
|
+
exports.nil = new _Code("");
|
|
14187
14248
|
function _(strs, ...args) {
|
|
14188
14249
|
const code = [strs[0]];
|
|
14189
14250
|
let i = 0;
|
|
@@ -14193,7 +14254,7 @@ function requireCode$1 () {
|
|
|
14193
14254
|
}
|
|
14194
14255
|
return new _Code(code);
|
|
14195
14256
|
}
|
|
14196
|
-
exports
|
|
14257
|
+
exports._ = _;
|
|
14197
14258
|
const plus = new _Code("+");
|
|
14198
14259
|
function str(strs, ...args) {
|
|
14199
14260
|
const expr = [safeStringify(strs[0])];
|
|
@@ -14206,7 +14267,7 @@ function requireCode$1 () {
|
|
|
14206
14267
|
optimize(expr);
|
|
14207
14268
|
return new _Code(expr);
|
|
14208
14269
|
}
|
|
14209
|
-
exports
|
|
14270
|
+
exports.str = str;
|
|
14210
14271
|
function addCodeArg(code, arg) {
|
|
14211
14272
|
if (arg instanceof _Code)
|
|
14212
14273
|
code.push(...arg._items);
|
|
@@ -14215,7 +14276,7 @@ function requireCode$1 () {
|
|
|
14215
14276
|
else
|
|
14216
14277
|
code.push(interpolate(arg));
|
|
14217
14278
|
}
|
|
14218
|
-
exports
|
|
14279
|
+
exports.addCodeArg = addCodeArg;
|
|
14219
14280
|
function optimize(expr) {
|
|
14220
14281
|
let i = 1;
|
|
14221
14282
|
while (i < expr.length - 1) {
|
|
@@ -14251,7 +14312,7 @@ function requireCode$1 () {
|
|
|
14251
14312
|
function strConcat(c1, c2) {
|
|
14252
14313
|
return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;
|
|
14253
14314
|
}
|
|
14254
|
-
exports
|
|
14315
|
+
exports.strConcat = strConcat;
|
|
14255
14316
|
// TODO do not allow arrays here
|
|
14256
14317
|
function interpolate(x) {
|
|
14257
14318
|
return typeof x == "number" || typeof x == "boolean" || x === null
|
|
@@ -14261,17 +14322,17 @@ function requireCode$1 () {
|
|
|
14261
14322
|
function stringify(x) {
|
|
14262
14323
|
return new _Code(safeStringify(x));
|
|
14263
14324
|
}
|
|
14264
|
-
exports
|
|
14325
|
+
exports.stringify = stringify;
|
|
14265
14326
|
function safeStringify(x) {
|
|
14266
14327
|
return JSON.stringify(x)
|
|
14267
14328
|
.replace(/\u2028/g, "\\u2028")
|
|
14268
14329
|
.replace(/\u2029/g, "\\u2029");
|
|
14269
14330
|
}
|
|
14270
|
-
exports
|
|
14331
|
+
exports.safeStringify = safeStringify;
|
|
14271
14332
|
function getProperty(key) {
|
|
14272
|
-
return typeof key == "string" && exports
|
|
14333
|
+
return typeof key == "string" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;
|
|
14273
14334
|
}
|
|
14274
|
-
exports
|
|
14335
|
+
exports.getProperty = getProperty;
|
|
14275
14336
|
|
|
14276
14337
|
} (code$1));
|
|
14277
14338
|
return code$1;
|
|
@@ -14284,9 +14345,9 @@ var hasRequiredScope;
|
|
|
14284
14345
|
function requireScope () {
|
|
14285
14346
|
if (hasRequiredScope) return scope;
|
|
14286
14347
|
hasRequiredScope = 1;
|
|
14287
|
-
(function (exports
|
|
14288
|
-
Object.defineProperty(exports
|
|
14289
|
-
exports
|
|
14348
|
+
(function (exports) {
|
|
14349
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14350
|
+
exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;
|
|
14290
14351
|
const code_1 = requireCode$1();
|
|
14291
14352
|
class ValueError extends Error {
|
|
14292
14353
|
constructor(name) {
|
|
@@ -14298,8 +14359,8 @@ function requireScope () {
|
|
|
14298
14359
|
(function (UsedValueState) {
|
|
14299
14360
|
UsedValueState[UsedValueState["Started"] = 0] = "Started";
|
|
14300
14361
|
UsedValueState[UsedValueState["Completed"] = 1] = "Completed";
|
|
14301
|
-
})(UsedValueState = exports
|
|
14302
|
-
exports
|
|
14362
|
+
})(UsedValueState = exports.UsedValueState || (exports.UsedValueState = {}));
|
|
14363
|
+
exports.varKinds = {
|
|
14303
14364
|
const: new code_1.Name("const"),
|
|
14304
14365
|
let: new code_1.Name("let"),
|
|
14305
14366
|
var: new code_1.Name("var"),
|
|
@@ -14328,7 +14389,7 @@ function requireScope () {
|
|
|
14328
14389
|
return (this._names[prefix] = { prefix, index: 0 });
|
|
14329
14390
|
}
|
|
14330
14391
|
}
|
|
14331
|
-
exports
|
|
14392
|
+
exports.Scope = Scope;
|
|
14332
14393
|
class ValueScopeName extends code_1.Name {
|
|
14333
14394
|
constructor(prefix, nameStr) {
|
|
14334
14395
|
super(nameStr);
|
|
@@ -14339,7 +14400,7 @@ function requireScope () {
|
|
|
14339
14400
|
this.scopePath = code_1._ `.${new code_1.Name(property)}[${itemIndex}]`;
|
|
14340
14401
|
}
|
|
14341
14402
|
}
|
|
14342
|
-
exports
|
|
14403
|
+
exports.ValueScopeName = ValueScopeName;
|
|
14343
14404
|
const line = code_1._ `\n`;
|
|
14344
14405
|
class ValueScope extends Scope {
|
|
14345
14406
|
constructor(opts) {
|
|
@@ -14410,7 +14471,7 @@ function requireScope () {
|
|
|
14410
14471
|
nameSet.set(name, UsedValueState.Started);
|
|
14411
14472
|
let c = valueCode(name);
|
|
14412
14473
|
if (c) {
|
|
14413
|
-
const def = this.opts.es5 ? exports
|
|
14474
|
+
const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;
|
|
14414
14475
|
code = code_1._ `${code}${def} ${name} = ${c};${this.opts._n}`;
|
|
14415
14476
|
}
|
|
14416
14477
|
else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {
|
|
@@ -14425,7 +14486,7 @@ function requireScope () {
|
|
|
14425
14486
|
return code;
|
|
14426
14487
|
}
|
|
14427
14488
|
}
|
|
14428
|
-
exports
|
|
14489
|
+
exports.ValueScope = ValueScope;
|
|
14429
14490
|
|
|
14430
14491
|
} (scope));
|
|
14431
14492
|
return scope;
|
|
@@ -14436,25 +14497,25 @@ var hasRequiredCodegen;
|
|
|
14436
14497
|
function requireCodegen () {
|
|
14437
14498
|
if (hasRequiredCodegen) return codegen;
|
|
14438
14499
|
hasRequiredCodegen = 1;
|
|
14439
|
-
(function (exports
|
|
14440
|
-
Object.defineProperty(exports
|
|
14441
|
-
exports
|
|
14500
|
+
(function (exports) {
|
|
14501
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14502
|
+
exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;
|
|
14442
14503
|
const code_1 = requireCode$1();
|
|
14443
14504
|
const scope_1 = requireScope();
|
|
14444
14505
|
var code_2 = requireCode$1();
|
|
14445
|
-
Object.defineProperty(exports
|
|
14446
|
-
Object.defineProperty(exports
|
|
14447
|
-
Object.defineProperty(exports
|
|
14448
|
-
Object.defineProperty(exports
|
|
14449
|
-
Object.defineProperty(exports
|
|
14450
|
-
Object.defineProperty(exports
|
|
14451
|
-
Object.defineProperty(exports
|
|
14506
|
+
Object.defineProperty(exports, "_", { enumerable: true, get: function () { return code_2._; } });
|
|
14507
|
+
Object.defineProperty(exports, "str", { enumerable: true, get: function () { return code_2.str; } });
|
|
14508
|
+
Object.defineProperty(exports, "strConcat", { enumerable: true, get: function () { return code_2.strConcat; } });
|
|
14509
|
+
Object.defineProperty(exports, "nil", { enumerable: true, get: function () { return code_2.nil; } });
|
|
14510
|
+
Object.defineProperty(exports, "getProperty", { enumerable: true, get: function () { return code_2.getProperty; } });
|
|
14511
|
+
Object.defineProperty(exports, "stringify", { enumerable: true, get: function () { return code_2.stringify; } });
|
|
14512
|
+
Object.defineProperty(exports, "Name", { enumerable: true, get: function () { return code_2.Name; } });
|
|
14452
14513
|
var scope_2 = requireScope();
|
|
14453
|
-
Object.defineProperty(exports
|
|
14454
|
-
Object.defineProperty(exports
|
|
14455
|
-
Object.defineProperty(exports
|
|
14456
|
-
Object.defineProperty(exports
|
|
14457
|
-
exports
|
|
14514
|
+
Object.defineProperty(exports, "Scope", { enumerable: true, get: function () { return scope_2.Scope; } });
|
|
14515
|
+
Object.defineProperty(exports, "ValueScope", { enumerable: true, get: function () { return scope_2.ValueScope; } });
|
|
14516
|
+
Object.defineProperty(exports, "ValueScopeName", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });
|
|
14517
|
+
Object.defineProperty(exports, "varKinds", { enumerable: true, get: function () { return scope_2.varKinds; } });
|
|
14518
|
+
exports.operators = {
|
|
14458
14519
|
GT: new code_1._Code(">"),
|
|
14459
14520
|
GTE: new code_1._Code(">="),
|
|
14460
14521
|
LT: new code_1._Code("<"),
|
|
@@ -14868,7 +14929,7 @@ function requireCodegen () {
|
|
|
14868
14929
|
}
|
|
14869
14930
|
// `+=` code
|
|
14870
14931
|
add(lhs, rhs) {
|
|
14871
|
-
return this._leafNode(new AssignOp(lhs, exports
|
|
14932
|
+
return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));
|
|
14872
14933
|
}
|
|
14873
14934
|
// appends passed SafeExpr to code or executes Block
|
|
14874
14935
|
code(c) {
|
|
@@ -15070,7 +15131,7 @@ function requireCodegen () {
|
|
|
15070
15131
|
ns[ns.length - 1] = node;
|
|
15071
15132
|
}
|
|
15072
15133
|
}
|
|
15073
|
-
exports
|
|
15134
|
+
exports.CodeGen = CodeGen;
|
|
15074
15135
|
function addNames(names, from) {
|
|
15075
15136
|
for (const n in from)
|
|
15076
15137
|
names[n] = (names[n] || 0) + (from[n] || 0);
|
|
@@ -15112,19 +15173,19 @@ function requireCodegen () {
|
|
|
15112
15173
|
function not(x) {
|
|
15113
15174
|
return typeof x == "boolean" || typeof x == "number" || x === null ? !x : code_1._ `!${par(x)}`;
|
|
15114
15175
|
}
|
|
15115
|
-
exports
|
|
15116
|
-
const andCode = mappend(exports
|
|
15176
|
+
exports.not = not;
|
|
15177
|
+
const andCode = mappend(exports.operators.AND);
|
|
15117
15178
|
// boolean AND (&&) expression with the passed arguments
|
|
15118
15179
|
function and(...args) {
|
|
15119
15180
|
return args.reduce(andCode);
|
|
15120
15181
|
}
|
|
15121
|
-
exports
|
|
15122
|
-
const orCode = mappend(exports
|
|
15182
|
+
exports.and = and;
|
|
15183
|
+
const orCode = mappend(exports.operators.OR);
|
|
15123
15184
|
// boolean OR (||) expression with the passed arguments
|
|
15124
15185
|
function or(...args) {
|
|
15125
15186
|
return args.reduce(orCode);
|
|
15126
15187
|
}
|
|
15127
|
-
exports
|
|
15188
|
+
exports.or = or;
|
|
15128
15189
|
function mappend(op) {
|
|
15129
15190
|
return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : code_1._ `${par(x)} ${op} ${par(y)}`);
|
|
15130
15191
|
}
|
|
@@ -15178,20 +15239,20 @@ var hasRequiredErrors$2;
|
|
|
15178
15239
|
function requireErrors$2 () {
|
|
15179
15240
|
if (hasRequiredErrors$2) return errors$2;
|
|
15180
15241
|
hasRequiredErrors$2 = 1;
|
|
15181
|
-
(function (exports
|
|
15182
|
-
Object.defineProperty(exports
|
|
15183
|
-
exports
|
|
15242
|
+
(function (exports) {
|
|
15243
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15244
|
+
exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;
|
|
15184
15245
|
const codegen_1 = requireCodegen();
|
|
15185
15246
|
const names_1 = requireNames();
|
|
15186
|
-
exports
|
|
15247
|
+
exports.keywordError = {
|
|
15187
15248
|
message: ({ keyword }) => codegen_1.str `should pass "${keyword}" keyword validation`,
|
|
15188
15249
|
};
|
|
15189
|
-
exports
|
|
15250
|
+
exports.keyword$DataError = {
|
|
15190
15251
|
message: ({ keyword, schemaType }) => schemaType
|
|
15191
15252
|
? codegen_1.str `"${keyword}" keyword must be ${schemaType} ($data)`
|
|
15192
15253
|
: codegen_1.str `"${keyword}" keyword is invalid ($data)`,
|
|
15193
15254
|
};
|
|
15194
|
-
function reportError(cxt, error = exports
|
|
15255
|
+
function reportError(cxt, error = exports.keywordError, overrideAllErrors) {
|
|
15195
15256
|
const { it } = cxt;
|
|
15196
15257
|
const { gen, compositeRule, allErrors } = it;
|
|
15197
15258
|
const errObj = errorObjectCode(cxt, error);
|
|
@@ -15202,8 +15263,8 @@ function requireErrors$2 () {
|
|
|
15202
15263
|
returnErrors(it, codegen_1._ `[${errObj}]`);
|
|
15203
15264
|
}
|
|
15204
15265
|
}
|
|
15205
|
-
exports
|
|
15206
|
-
function reportExtraError(cxt, error = exports
|
|
15266
|
+
exports.reportError = reportError;
|
|
15267
|
+
function reportExtraError(cxt, error = exports.keywordError) {
|
|
15207
15268
|
const { it } = cxt;
|
|
15208
15269
|
const { gen, compositeRule, allErrors } = it;
|
|
15209
15270
|
const errObj = errorObjectCode(cxt, error);
|
|
@@ -15212,12 +15273,12 @@ function requireErrors$2 () {
|
|
|
15212
15273
|
returnErrors(it, names_1.default.vErrors);
|
|
15213
15274
|
}
|
|
15214
15275
|
}
|
|
15215
|
-
exports
|
|
15276
|
+
exports.reportExtraError = reportExtraError;
|
|
15216
15277
|
function resetErrorsCount(gen, errsCount) {
|
|
15217
15278
|
gen.assign(names_1.default.errors, errsCount);
|
|
15218
15279
|
gen.if(codegen_1._ `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign(codegen_1._ `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));
|
|
15219
15280
|
}
|
|
15220
|
-
exports
|
|
15281
|
+
exports.resetErrorsCount = resetErrorsCount;
|
|
15221
15282
|
function extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {
|
|
15222
15283
|
/* istanbul ignore if */
|
|
15223
15284
|
if (errsCount === undefined)
|
|
@@ -15233,7 +15294,7 @@ function requireErrors$2 () {
|
|
|
15233
15294
|
}
|
|
15234
15295
|
});
|
|
15235
15296
|
}
|
|
15236
|
-
exports
|
|
15297
|
+
exports.extendErrors = extendErrors;
|
|
15237
15298
|
function addError(gen, errObj) {
|
|
15238
15299
|
const err = gen.const("err", errObj);
|
|
15239
15300
|
gen.if(codegen_1._ `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, codegen_1._ `[${err}]`), codegen_1._ `${names_1.default.vErrors}.push(${err})`);
|
|
@@ -15423,9 +15484,9 @@ var hasRequiredSubschema;
|
|
|
15423
15484
|
function requireSubschema () {
|
|
15424
15485
|
if (hasRequiredSubschema) return subschema;
|
|
15425
15486
|
hasRequiredSubschema = 1;
|
|
15426
|
-
(function (exports
|
|
15427
|
-
Object.defineProperty(exports
|
|
15428
|
-
exports
|
|
15487
|
+
(function (exports) {
|
|
15488
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15489
|
+
exports.applySubschema = exports.Type = void 0;
|
|
15429
15490
|
const validate_1 = requireValidate$2();
|
|
15430
15491
|
const util_1 = requireUtil$2();
|
|
15431
15492
|
const codegen_1 = requireCodegen();
|
|
@@ -15433,7 +15494,7 @@ function requireSubschema () {
|
|
|
15433
15494
|
(function (Type) {
|
|
15434
15495
|
Type[Type["Num"] = 0] = "Num";
|
|
15435
15496
|
Type[Type["Str"] = 1] = "Str";
|
|
15436
|
-
})(Type = exports
|
|
15497
|
+
})(Type = exports.Type || (exports.Type = {}));
|
|
15437
15498
|
function applySubschema(it, appl, valid) {
|
|
15438
15499
|
const subschema = getSubschema(it, appl);
|
|
15439
15500
|
extendSubschemaData(subschema, it, appl);
|
|
@@ -15442,7 +15503,7 @@ function requireSubschema () {
|
|
|
15442
15503
|
validate_1.subschemaCode(nextContext, valid);
|
|
15443
15504
|
return nextContext;
|
|
15444
15505
|
}
|
|
15445
|
-
exports
|
|
15506
|
+
exports.applySubschema = applySubschema;
|
|
15446
15507
|
function getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {
|
|
15447
15508
|
if (keyword !== undefined && schema !== undefined) {
|
|
15448
15509
|
throw new Error('both "keyword" and "schema" passed, only one allowed');
|
|
@@ -16066,10 +16127,10 @@ var hasRequiredUri_all;
|
|
|
16066
16127
|
function requireUri_all () {
|
|
16067
16128
|
if (hasRequiredUri_all) return uri_all$1.exports;
|
|
16068
16129
|
hasRequiredUri_all = 1;
|
|
16069
|
-
(function (module, exports
|
|
16130
|
+
(function (module, exports) {
|
|
16070
16131
|
(function (global, factory) {
|
|
16071
|
-
factory(exports
|
|
16072
|
-
}(uri_all, (function (exports
|
|
16132
|
+
factory(exports) ;
|
|
16133
|
+
}(uri_all, (function (exports) {
|
|
16073
16134
|
function merge() {
|
|
16074
16135
|
for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {
|
|
16075
16136
|
sets[_key] = arguments[_key];
|
|
@@ -17451,20 +17512,20 @@ function requireUri_all () {
|
|
|
17451
17512
|
SCHEMES[handler$5.scheme] = handler$5;
|
|
17452
17513
|
SCHEMES[handler$6.scheme] = handler$6;
|
|
17453
17514
|
|
|
17454
|
-
exports
|
|
17455
|
-
exports
|
|
17456
|
-
exports
|
|
17457
|
-
exports
|
|
17458
|
-
exports
|
|
17459
|
-
exports
|
|
17460
|
-
exports
|
|
17461
|
-
exports
|
|
17462
|
-
exports
|
|
17463
|
-
exports
|
|
17464
|
-
exports
|
|
17465
|
-
exports
|
|
17466
|
-
|
|
17467
|
-
Object.defineProperty(exports
|
|
17515
|
+
exports.SCHEMES = SCHEMES;
|
|
17516
|
+
exports.pctEncChar = pctEncChar;
|
|
17517
|
+
exports.pctDecChars = pctDecChars;
|
|
17518
|
+
exports.parse = parse;
|
|
17519
|
+
exports.removeDotSegments = removeDotSegments;
|
|
17520
|
+
exports.serialize = serialize;
|
|
17521
|
+
exports.resolveComponents = resolveComponents;
|
|
17522
|
+
exports.resolve = resolve;
|
|
17523
|
+
exports.normalize = normalize;
|
|
17524
|
+
exports.equal = equal;
|
|
17525
|
+
exports.escapeComponent = escapeComponent;
|
|
17526
|
+
exports.unescapeComponent = unescapeComponent;
|
|
17527
|
+
|
|
17528
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
17468
17529
|
|
|
17469
17530
|
})));
|
|
17470
17531
|
|
|
@@ -17985,9 +18046,9 @@ var hasRequiredDataType;
|
|
|
17985
18046
|
function requireDataType () {
|
|
17986
18047
|
if (hasRequiredDataType) return dataType;
|
|
17987
18048
|
hasRequiredDataType = 1;
|
|
17988
|
-
(function (exports
|
|
17989
|
-
Object.defineProperty(exports
|
|
17990
|
-
exports
|
|
18049
|
+
(function (exports) {
|
|
18050
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18051
|
+
exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;
|
|
17991
18052
|
const rules_1 = requireRules$1();
|
|
17992
18053
|
const applicability_1 = requireApplicability();
|
|
17993
18054
|
const errors_1 = requireErrors$2();
|
|
@@ -17997,7 +18058,7 @@ function requireDataType () {
|
|
|
17997
18058
|
(function (DataType) {
|
|
17998
18059
|
DataType[DataType["Correct"] = 0] = "Correct";
|
|
17999
18060
|
DataType[DataType["Wrong"] = 1] = "Wrong";
|
|
18000
|
-
})(DataType = exports
|
|
18061
|
+
})(DataType = exports.DataType || (exports.DataType = {}));
|
|
18001
18062
|
function getSchemaTypes(schema) {
|
|
18002
18063
|
const types = getJSONTypes(schema.type);
|
|
18003
18064
|
const hasNull = types.includes("null");
|
|
@@ -18014,14 +18075,14 @@ function requireDataType () {
|
|
|
18014
18075
|
}
|
|
18015
18076
|
return types;
|
|
18016
18077
|
}
|
|
18017
|
-
exports
|
|
18078
|
+
exports.getSchemaTypes = getSchemaTypes;
|
|
18018
18079
|
function getJSONTypes(ts) {
|
|
18019
18080
|
const types = Array.isArray(ts) ? ts : ts ? [ts] : [];
|
|
18020
18081
|
if (types.every(rules_1.isJSONType))
|
|
18021
18082
|
return types;
|
|
18022
18083
|
throw new Error("type must be JSONType or JSONType[]: " + types.join(","));
|
|
18023
18084
|
}
|
|
18024
|
-
exports
|
|
18085
|
+
exports.getJSONTypes = getJSONTypes;
|
|
18025
18086
|
function coerceAndCheckDataType(it, types) {
|
|
18026
18087
|
const { gen, data, opts } = it;
|
|
18027
18088
|
const coerceTo = coerceToTypes(types, opts.coerceTypes);
|
|
@@ -18038,7 +18099,7 @@ function requireDataType () {
|
|
|
18038
18099
|
}
|
|
18039
18100
|
return checkTypes;
|
|
18040
18101
|
}
|
|
18041
|
-
exports
|
|
18102
|
+
exports.coerceAndCheckDataType = coerceAndCheckDataType;
|
|
18042
18103
|
const COERCIBLE = new Set(["string", "number", "integer", "boolean", "null"]);
|
|
18043
18104
|
function coerceToTypes(types, coerceTypes) {
|
|
18044
18105
|
return coerceTypes
|
|
@@ -18138,7 +18199,7 @@ function requireDataType () {
|
|
|
18138
18199
|
return codegen_1.and(codegen_1._ `typeof ${data} == "number"`, _cond, strictNums ? codegen_1._ `isFinite(${data})` : codegen_1.nil);
|
|
18139
18200
|
}
|
|
18140
18201
|
}
|
|
18141
|
-
exports
|
|
18202
|
+
exports.checkDataType = checkDataType;
|
|
18142
18203
|
function checkDataTypes(dataTypes, data, strictNums, correct) {
|
|
18143
18204
|
if (dataTypes.length === 1) {
|
|
18144
18205
|
return checkDataType(dataTypes[0], data, strictNums, correct);
|
|
@@ -18161,7 +18222,7 @@ function requireDataType () {
|
|
|
18161
18222
|
cond = codegen_1.and(cond, checkDataType(t, data, strictNums, correct));
|
|
18162
18223
|
return cond;
|
|
18163
18224
|
}
|
|
18164
|
-
exports
|
|
18225
|
+
exports.checkDataTypes = checkDataTypes;
|
|
18165
18226
|
const typeError = {
|
|
18166
18227
|
message: ({ schema }) => codegen_1.str `should be ${schema}`,
|
|
18167
18228
|
params: ({ schema, schemaValue }) => typeof schema == "string" ? codegen_1._ `{type: ${schema}}` : codegen_1._ `{type: ${schemaValue}}`,
|
|
@@ -18170,7 +18231,7 @@ function requireDataType () {
|
|
|
18170
18231
|
const cxt = getTypeErrorContext(it);
|
|
18171
18232
|
errors_1.reportError(cxt, typeError);
|
|
18172
18233
|
}
|
|
18173
|
-
exports
|
|
18234
|
+
exports.reportTypeError = reportTypeError;
|
|
18174
18235
|
function getTypeErrorContext(it) {
|
|
18175
18236
|
const { gen, data, schema } = it;
|
|
18176
18237
|
const schemaCode = util_1.schemaRefOrVal(it, schema, "type");
|
|
@@ -18446,9 +18507,9 @@ var hasRequiredError_classes$1;
|
|
|
18446
18507
|
function requireError_classes$1 () {
|
|
18447
18508
|
if (hasRequiredError_classes$1) return error_classes$1.exports;
|
|
18448
18509
|
hasRequiredError_classes$1 = 1;
|
|
18449
|
-
(function (module, exports
|
|
18450
|
-
Object.defineProperty(exports
|
|
18451
|
-
exports
|
|
18510
|
+
(function (module, exports) {
|
|
18511
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18512
|
+
exports.MissingRefError = exports.ValidationError = void 0;
|
|
18452
18513
|
const resolve_1 = requireResolve$1();
|
|
18453
18514
|
class ValidationError extends Error {
|
|
18454
18515
|
constructor(errors) {
|
|
@@ -18457,7 +18518,7 @@ function requireError_classes$1 () {
|
|
|
18457
18518
|
this.ajv = this.validation = true;
|
|
18458
18519
|
}
|
|
18459
18520
|
}
|
|
18460
|
-
exports
|
|
18521
|
+
exports.ValidationError = ValidationError;
|
|
18461
18522
|
class MissingRefError extends Error {
|
|
18462
18523
|
constructor(baseId, ref, msg) {
|
|
18463
18524
|
super(msg || `can't resolve reference ${ref} from id ${baseId}`);
|
|
@@ -18465,7 +18526,7 @@ function requireError_classes$1 () {
|
|
|
18465
18526
|
this.missingSchema = resolve_1.normalizeId(resolve_1.getFullPath(this.missingRef));
|
|
18466
18527
|
}
|
|
18467
18528
|
}
|
|
18468
|
-
exports
|
|
18529
|
+
exports.MissingRefError = MissingRefError;
|
|
18469
18530
|
module.exports = {
|
|
18470
18531
|
ValidationError,
|
|
18471
18532
|
MissingRefError,
|
|
@@ -18753,18 +18814,18 @@ var hasRequiredCore$1;
|
|
|
18753
18814
|
function requireCore$1 () {
|
|
18754
18815
|
if (hasRequiredCore$1) return core$1;
|
|
18755
18816
|
hasRequiredCore$1 = 1;
|
|
18756
|
-
(function (exports
|
|
18757
|
-
Object.defineProperty(exports
|
|
18758
|
-
exports
|
|
18817
|
+
(function (exports) {
|
|
18818
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18819
|
+
exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;
|
|
18759
18820
|
const context_1 = requireContext();
|
|
18760
|
-
exports
|
|
18821
|
+
exports.KeywordCxt = context_1.default;
|
|
18761
18822
|
var codegen_1 = requireCodegen();
|
|
18762
|
-
Object.defineProperty(exports
|
|
18763
|
-
Object.defineProperty(exports
|
|
18764
|
-
Object.defineProperty(exports
|
|
18765
|
-
Object.defineProperty(exports
|
|
18766
|
-
Object.defineProperty(exports
|
|
18767
|
-
Object.defineProperty(exports
|
|
18823
|
+
Object.defineProperty(exports, "_", { enumerable: true, get: function () { return codegen_1._; } });
|
|
18824
|
+
Object.defineProperty(exports, "str", { enumerable: true, get: function () { return codegen_1.str; } });
|
|
18825
|
+
Object.defineProperty(exports, "stringify", { enumerable: true, get: function () { return codegen_1.stringify; } });
|
|
18826
|
+
Object.defineProperty(exports, "nil", { enumerable: true, get: function () { return codegen_1.nil; } });
|
|
18827
|
+
Object.defineProperty(exports, "Name", { enumerable: true, get: function () { return codegen_1.Name; } });
|
|
18828
|
+
Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function () { return codegen_1.CodeGen; } });
|
|
18768
18829
|
const error_classes_1 = requireError_classes$1();
|
|
18769
18830
|
const rules_1 = requireRules$1();
|
|
18770
18831
|
const compile_1 = requireCompile$1();
|
|
@@ -19215,7 +19276,7 @@ function requireCore$1 () {
|
|
|
19215
19276
|
}
|
|
19216
19277
|
}
|
|
19217
19278
|
}
|
|
19218
|
-
exports
|
|
19279
|
+
exports.default = Ajv;
|
|
19219
19280
|
Ajv.ValidationError = error_classes_1.ValidationError;
|
|
19220
19281
|
Ajv.MissingRefError = error_classes_1.MissingRefError;
|
|
19221
19282
|
function checkOptions(checkOpts, options, msg, log = "error") {
|
|
@@ -20287,13 +20348,13 @@ var hasRequiredDependencies$1;
|
|
|
20287
20348
|
function requireDependencies$1 () {
|
|
20288
20349
|
if (hasRequiredDependencies$1) return dependencies$1;
|
|
20289
20350
|
hasRequiredDependencies$1 = 1;
|
|
20290
|
-
(function (exports
|
|
20291
|
-
Object.defineProperty(exports
|
|
20292
|
-
exports
|
|
20351
|
+
(function (exports) {
|
|
20352
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20353
|
+
exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;
|
|
20293
20354
|
const codegen_1 = requireCodegen();
|
|
20294
20355
|
const util_1 = requireUtil$2();
|
|
20295
20356
|
const code_1 = requireCode();
|
|
20296
|
-
exports
|
|
20357
|
+
exports.error = {
|
|
20297
20358
|
message: ({ params: { property, depsCount, deps } }) => {
|
|
20298
20359
|
const property_ies = depsCount === 1 ? "property" : "properties";
|
|
20299
20360
|
return codegen_1.str `should have ${property_ies} ${deps} when property ${property} is present`;
|
|
@@ -20307,7 +20368,7 @@ function requireDependencies$1 () {
|
|
|
20307
20368
|
keyword: "dependencies",
|
|
20308
20369
|
type: "object",
|
|
20309
20370
|
schemaType: "object",
|
|
20310
|
-
error: exports
|
|
20371
|
+
error: exports.error,
|
|
20311
20372
|
code(cxt) {
|
|
20312
20373
|
const [propDeps, schDeps] = splitDependencies(cxt);
|
|
20313
20374
|
validatePropertyDeps(cxt, propDeps);
|
|
@@ -20354,7 +20415,7 @@ function requireDependencies$1 () {
|
|
|
20354
20415
|
}
|
|
20355
20416
|
}
|
|
20356
20417
|
}
|
|
20357
|
-
exports
|
|
20418
|
+
exports.validatePropertyDeps = validatePropertyDeps;
|
|
20358
20419
|
function validateSchemaDeps(cxt, schemaDeps = cxt.schema) {
|
|
20359
20420
|
const { gen, data, keyword, it } = cxt;
|
|
20360
20421
|
const valid = gen.name("valid");
|
|
@@ -20369,8 +20430,8 @@ function requireDependencies$1 () {
|
|
|
20369
20430
|
cxt.ok(valid);
|
|
20370
20431
|
}
|
|
20371
20432
|
}
|
|
20372
|
-
exports
|
|
20373
|
-
exports
|
|
20433
|
+
exports.validateSchemaDeps = validateSchemaDeps;
|
|
20434
|
+
exports.default = def;
|
|
20374
20435
|
|
|
20375
20436
|
} (dependencies$1));
|
|
20376
20437
|
return dependencies$1;
|
|
@@ -21405,18 +21466,18 @@ var hasRequiredAjv$1;
|
|
|
21405
21466
|
function requireAjv$1 () {
|
|
21406
21467
|
if (hasRequiredAjv$1) return ajv$1;
|
|
21407
21468
|
hasRequiredAjv$1 = 1;
|
|
21408
|
-
(function (exports
|
|
21409
|
-
Object.defineProperty(exports
|
|
21410
|
-
exports
|
|
21469
|
+
(function (exports) {
|
|
21470
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21471
|
+
exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;
|
|
21411
21472
|
const context_1 = requireContext();
|
|
21412
|
-
exports
|
|
21473
|
+
exports.KeywordCxt = context_1.default;
|
|
21413
21474
|
var codegen_1 = requireCodegen();
|
|
21414
|
-
Object.defineProperty(exports
|
|
21415
|
-
Object.defineProperty(exports
|
|
21416
|
-
Object.defineProperty(exports
|
|
21417
|
-
Object.defineProperty(exports
|
|
21418
|
-
Object.defineProperty(exports
|
|
21419
|
-
Object.defineProperty(exports
|
|
21475
|
+
Object.defineProperty(exports, "_", { enumerable: true, get: function () { return codegen_1._; } });
|
|
21476
|
+
Object.defineProperty(exports, "str", { enumerable: true, get: function () { return codegen_1.str; } });
|
|
21477
|
+
Object.defineProperty(exports, "stringify", { enumerable: true, get: function () { return codegen_1.stringify; } });
|
|
21478
|
+
Object.defineProperty(exports, "nil", { enumerable: true, get: function () { return codegen_1.nil; } });
|
|
21479
|
+
Object.defineProperty(exports, "Name", { enumerable: true, get: function () { return codegen_1.Name; } });
|
|
21480
|
+
Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function () { return codegen_1.CodeGen; } });
|
|
21420
21481
|
const core_1 = requireCore$1();
|
|
21421
21482
|
const draft7_1 = requireDraft7();
|
|
21422
21483
|
const draft7MetaSchema = require$$4$1;
|
|
@@ -21442,7 +21503,7 @@ function requireAjv$1 () {
|
|
|
21442
21503
|
super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));
|
|
21443
21504
|
}
|
|
21444
21505
|
}
|
|
21445
|
-
exports
|
|
21506
|
+
exports.default = Ajv;
|
|
21446
21507
|
|
|
21447
21508
|
} (ajv$1));
|
|
21448
21509
|
return ajv$1;
|
|
@@ -21457,13 +21518,13 @@ var hasRequiredFormats$2;
|
|
|
21457
21518
|
function requireFormats$2 () {
|
|
21458
21519
|
if (hasRequiredFormats$2) return formats$1;
|
|
21459
21520
|
hasRequiredFormats$2 = 1;
|
|
21460
|
-
(function (exports
|
|
21461
|
-
Object.defineProperty(exports
|
|
21462
|
-
exports
|
|
21521
|
+
(function (exports) {
|
|
21522
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21523
|
+
exports.formatNames = exports.fastFormats = exports.fullFormats = void 0;
|
|
21463
21524
|
function fmtDef(validate, compare) {
|
|
21464
21525
|
return { validate, compare };
|
|
21465
21526
|
}
|
|
21466
|
-
exports
|
|
21527
|
+
exports.fullFormats = {
|
|
21467
21528
|
// date: http://tools.ietf.org/html/rfc3339#section-5.6
|
|
21468
21529
|
date: fmtDef(date, compareDate),
|
|
21469
21530
|
// date-time: http://tools.ietf.org/html/rfc3339#section-5.6
|
|
@@ -21493,8 +21554,8 @@ function requireFormats$2 () {
|
|
|
21493
21554
|
// relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
|
|
21494
21555
|
"relative-json-pointer": /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,
|
|
21495
21556
|
};
|
|
21496
|
-
exports
|
|
21497
|
-
...exports
|
|
21557
|
+
exports.fastFormats = {
|
|
21558
|
+
...exports.fullFormats,
|
|
21498
21559
|
date: fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d$/, compareDate),
|
|
21499
21560
|
time: fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareTime),
|
|
21500
21561
|
"date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareDateTime),
|
|
@@ -21506,7 +21567,7 @@ function requireFormats$2 () {
|
|
|
21506
21567
|
// http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')
|
|
21507
21568
|
email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,
|
|
21508
21569
|
};
|
|
21509
|
-
exports
|
|
21570
|
+
exports.formatNames = Object.keys(exports.fullFormats);
|
|
21510
21571
|
function isLeapYear(year) {
|
|
21511
21572
|
// https://tools.ietf.org/html/rfc3339#appendix-C
|
|
21512
21573
|
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
@@ -21609,9 +21670,9 @@ var hasRequiredLimit;
|
|
|
21609
21670
|
function requireLimit () {
|
|
21610
21671
|
if (hasRequiredLimit) return limit;
|
|
21611
21672
|
hasRequiredLimit = 1;
|
|
21612
|
-
(function (exports
|
|
21613
|
-
Object.defineProperty(exports
|
|
21614
|
-
exports
|
|
21673
|
+
(function (exports) {
|
|
21674
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21675
|
+
exports.formatLimitDefinition = void 0;
|
|
21615
21676
|
const context_1 = requireContext();
|
|
21616
21677
|
const codegen_1 = requireCodegen();
|
|
21617
21678
|
const ops = codegen_1.operators;
|
|
@@ -21625,7 +21686,7 @@ function requireLimit () {
|
|
|
21625
21686
|
message: ({ keyword, schemaCode }) => codegen_1.str `should be ${KWDs[keyword].okStr} ${schemaCode}`,
|
|
21626
21687
|
params: ({ keyword, schemaCode }) => codegen_1._ `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,
|
|
21627
21688
|
};
|
|
21628
|
-
exports
|
|
21689
|
+
exports.formatLimitDefinition = {
|
|
21629
21690
|
keyword: Object.keys(KWDs),
|
|
21630
21691
|
type: "string",
|
|
21631
21692
|
schemaType: "string",
|
|
@@ -21673,10 +21734,10 @@ function requireLimit () {
|
|
|
21673
21734
|
dependencies: ["format"],
|
|
21674
21735
|
};
|
|
21675
21736
|
const formatLimitPlugin = (ajv) => {
|
|
21676
|
-
ajv.addKeyword(exports
|
|
21737
|
+
ajv.addKeyword(exports.formatLimitDefinition);
|
|
21677
21738
|
return ajv;
|
|
21678
21739
|
};
|
|
21679
|
-
exports
|
|
21740
|
+
exports.default = formatLimitPlugin;
|
|
21680
21741
|
|
|
21681
21742
|
} (limit));
|
|
21682
21743
|
return limit;
|
|
@@ -21687,8 +21748,8 @@ var hasRequiredDist;
|
|
|
21687
21748
|
function requireDist () {
|
|
21688
21749
|
if (hasRequiredDist) return dist.exports;
|
|
21689
21750
|
hasRequiredDist = 1;
|
|
21690
|
-
(function (module, exports
|
|
21691
|
-
Object.defineProperty(exports
|
|
21751
|
+
(function (module, exports) {
|
|
21752
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21692
21753
|
const formats_1 = requireFormats$2();
|
|
21693
21754
|
const limit_1 = requireLimit();
|
|
21694
21755
|
const codegen_1 = requireCodegen();
|
|
@@ -21720,7 +21781,7 @@ function requireDist () {
|
|
|
21720
21781
|
for (const f of list)
|
|
21721
21782
|
ajv.addFormat(f, fs[f]);
|
|
21722
21783
|
}
|
|
21723
|
-
exports
|
|
21784
|
+
exports.default = formatsPlugin;
|
|
21724
21785
|
module.exports = formatsPlugin;
|
|
21725
21786
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
21726
21787
|
module.exports.default = formatsPlugin;
|
|
@@ -21945,7 +22006,7 @@ var hasRequiredRe;
|
|
|
21945
22006
|
function requireRe () {
|
|
21946
22007
|
if (hasRequiredRe) return re.exports;
|
|
21947
22008
|
hasRequiredRe = 1;
|
|
21948
|
-
(function (module, exports
|
|
22009
|
+
(function (module, exports) {
|
|
21949
22010
|
|
|
21950
22011
|
const {
|
|
21951
22012
|
MAX_SAFE_COMPONENT_LENGTH,
|
|
@@ -21953,14 +22014,14 @@ function requireRe () {
|
|
|
21953
22014
|
MAX_LENGTH,
|
|
21954
22015
|
} = requireConstants();
|
|
21955
22016
|
const debug = requireDebug();
|
|
21956
|
-
exports
|
|
22017
|
+
exports = module.exports = {};
|
|
21957
22018
|
|
|
21958
22019
|
// The actual regexps go on exports.re
|
|
21959
|
-
const re = exports
|
|
21960
|
-
const safeRe = exports
|
|
21961
|
-
const src = exports
|
|
21962
|
-
const safeSrc = exports
|
|
21963
|
-
const t = exports
|
|
22020
|
+
const re = exports.re = [];
|
|
22021
|
+
const safeRe = exports.safeRe = [];
|
|
22022
|
+
const src = exports.src = [];
|
|
22023
|
+
const safeSrc = exports.safeSrc = [];
|
|
22024
|
+
const t = exports.t = {};
|
|
21964
22025
|
let R = 0;
|
|
21965
22026
|
|
|
21966
22027
|
const LETTERDASHNUMBER = '[a-zA-Z0-9-]';
|
|
@@ -22083,7 +22144,7 @@ function requireRe () {
|
|
|
22083
22144
|
createToken('GTLT', '((?:<|>)?=?)');
|
|
22084
22145
|
|
|
22085
22146
|
// Something like "2.*" or "1.2.x".
|
|
22086
|
-
// Note that "x.x" is a valid xRange
|
|
22147
|
+
// Note that "x.x" is a valid xRange identifier, meaning "any version"
|
|
22087
22148
|
// Only the first item is strictly required.
|
|
22088
22149
|
createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);
|
|
22089
22150
|
createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`);
|
|
@@ -22124,7 +22185,7 @@ function requireRe () {
|
|
|
22124
22185
|
createToken('LONETILDE', '(?:~>?)');
|
|
22125
22186
|
|
|
22126
22187
|
createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true);
|
|
22127
|
-
exports
|
|
22188
|
+
exports.tildeTrimReplace = '$1~';
|
|
22128
22189
|
|
|
22129
22190
|
createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);
|
|
22130
22191
|
createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);
|
|
@@ -22134,7 +22195,7 @@ function requireRe () {
|
|
|
22134
22195
|
createToken('LONECARET', '(?:\\^)');
|
|
22135
22196
|
|
|
22136
22197
|
createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true);
|
|
22137
|
-
exports
|
|
22198
|
+
exports.caretTrimReplace = '$1^';
|
|
22138
22199
|
|
|
22139
22200
|
createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);
|
|
22140
22201
|
createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);
|
|
@@ -22147,7 +22208,7 @@ function requireRe () {
|
|
|
22147
22208
|
// it modifies, so that `> 1.2.3` ==> `>1.2.3`
|
|
22148
22209
|
createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]
|
|
22149
22210
|
}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);
|
|
22150
|
-
exports
|
|
22211
|
+
exports.comparatorTrimReplace = '$1$2$3';
|
|
22151
22212
|
|
|
22152
22213
|
// Something like `1.2.3 - 1.2.4`
|
|
22153
22214
|
// Note that these all use the loose form, because they'll be
|
|
@@ -23079,6 +23140,62 @@ function requireCoerce () {
|
|
|
23079
23140
|
return coerce_1;
|
|
23080
23141
|
}
|
|
23081
23142
|
|
|
23143
|
+
var truncate_1;
|
|
23144
|
+
var hasRequiredTruncate;
|
|
23145
|
+
|
|
23146
|
+
function requireTruncate () {
|
|
23147
|
+
if (hasRequiredTruncate) return truncate_1;
|
|
23148
|
+
hasRequiredTruncate = 1;
|
|
23149
|
+
|
|
23150
|
+
const parse = requireParse$1();
|
|
23151
|
+
const constants = requireConstants();
|
|
23152
|
+
const SemVer = requireSemver$1();
|
|
23153
|
+
|
|
23154
|
+
const truncate = (version, truncation, options) => {
|
|
23155
|
+
if (!constants.RELEASE_TYPES.includes(truncation)) {
|
|
23156
|
+
return null
|
|
23157
|
+
}
|
|
23158
|
+
|
|
23159
|
+
const clonedVersion = cloneInputVersion(version, options);
|
|
23160
|
+
return clonedVersion && doTruncation(clonedVersion, truncation)
|
|
23161
|
+
};
|
|
23162
|
+
|
|
23163
|
+
const cloneInputVersion = (version, options) => {
|
|
23164
|
+
const versionStringToParse = (
|
|
23165
|
+
version instanceof SemVer ? version.version : version
|
|
23166
|
+
);
|
|
23167
|
+
|
|
23168
|
+
return parse(versionStringToParse, options)
|
|
23169
|
+
};
|
|
23170
|
+
|
|
23171
|
+
const doTruncation = (version, truncation) => {
|
|
23172
|
+
if (isPrerelease(truncation)) {
|
|
23173
|
+
return version.version
|
|
23174
|
+
}
|
|
23175
|
+
|
|
23176
|
+
version.prerelease = [];
|
|
23177
|
+
|
|
23178
|
+
switch (truncation) {
|
|
23179
|
+
case 'major':
|
|
23180
|
+
version.minor = 0;
|
|
23181
|
+
version.patch = 0;
|
|
23182
|
+
break
|
|
23183
|
+
case 'minor':
|
|
23184
|
+
version.patch = 0;
|
|
23185
|
+
break
|
|
23186
|
+
}
|
|
23187
|
+
|
|
23188
|
+
return version.format()
|
|
23189
|
+
};
|
|
23190
|
+
|
|
23191
|
+
const isPrerelease = (type) => {
|
|
23192
|
+
return type.startsWith('pre')
|
|
23193
|
+
};
|
|
23194
|
+
|
|
23195
|
+
truncate_1 = truncate;
|
|
23196
|
+
return truncate_1;
|
|
23197
|
+
}
|
|
23198
|
+
|
|
23082
23199
|
var lrucache;
|
|
23083
23200
|
var hasRequiredLrucache;
|
|
23084
23201
|
|
|
@@ -24528,6 +24645,7 @@ function requireSemver () {
|
|
|
24528
24645
|
const lte = requireLte();
|
|
24529
24646
|
const cmp = requireCmp();
|
|
24530
24647
|
const coerce = requireCoerce();
|
|
24648
|
+
const truncate = requireTruncate();
|
|
24531
24649
|
const Comparator = requireComparator();
|
|
24532
24650
|
const Range = requireRange();
|
|
24533
24651
|
const satisfies = requireSatisfies();
|
|
@@ -24566,6 +24684,7 @@ function requireSemver () {
|
|
|
24566
24684
|
lte,
|
|
24567
24685
|
cmp,
|
|
24568
24686
|
coerce,
|
|
24687
|
+
truncate,
|
|
24569
24688
|
Comparator,
|
|
24570
24689
|
Range,
|
|
24571
24690
|
satisfies,
|
|
@@ -24674,7 +24793,7 @@ var hasRequiredSource;
|
|
|
24674
24793
|
function requireSource () {
|
|
24675
24794
|
if (hasRequiredSource) return source$1.exports;
|
|
24676
24795
|
hasRequiredSource = 1;
|
|
24677
|
-
(function (module, exports
|
|
24796
|
+
(function (module, exports) {
|
|
24678
24797
|
var __classPrivateFieldSet = (source && source.__classPrivateFieldSet) || function (receiver, privateMap, value) {
|
|
24679
24798
|
if (!privateMap.has(receiver)) {
|
|
24680
24799
|
throw new TypeError("attempted to set private field on non-instance");
|
|
@@ -24690,7 +24809,7 @@ function requireSource () {
|
|
|
24690
24809
|
};
|
|
24691
24810
|
var _a, _b;
|
|
24692
24811
|
var _validator, _encryptionKey, _options, _defaultValues;
|
|
24693
|
-
Object.defineProperty(exports
|
|
24812
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24694
24813
|
const fs = require$$0$2;
|
|
24695
24814
|
const path = require$$1$1;
|
|
24696
24815
|
const crypto = require$$2$1;
|
|
@@ -25137,7 +25256,7 @@ function requireSource () {
|
|
|
25137
25256
|
this.store = store;
|
|
25138
25257
|
}
|
|
25139
25258
|
}
|
|
25140
|
-
exports
|
|
25259
|
+
exports.default = Conf;
|
|
25141
25260
|
// For CommonJS default export support
|
|
25142
25261
|
module.exports = Conf;
|
|
25143
25262
|
module.exports.default = Conf;
|
|
@@ -25687,8 +25806,8 @@ var hasRequiredPsl;
|
|
|
25687
25806
|
function requirePsl () {
|
|
25688
25807
|
if (hasRequiredPsl) return psl;
|
|
25689
25808
|
hasRequiredPsl = 1;
|
|
25690
|
-
(function (exports
|
|
25691
|
-
Object.defineProperties(exports$1,{__esModule:{value:true},[Symbol.toStringTag]:{value:"Module"}});function K(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var O,F;function Q(){if(F)return O;F=1;const e=2147483647,s=36,c=1,o=26,t=38,d=700,z=72,y=128,g="-",P=/^xn--/,V=/[^\0-\x7F]/,G=/[\x2E\u3002\uFF0E\uFF61]/g,W={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},C=s-c,h=Math.floor,I=String.fromCharCode;function v(a){throw new RangeError(W[a])}function U(a,i){const m=[];let n=a.length;for(;n--;)m[n]=i(a[n]);return m}function S(a,i){const m=a.split("@");let n="";m.length>1&&(n=m[0]+"@",a=m[1]),a=a.replace(G,".");const r=a.split("."),p=U(r,i).join(".");return n+p}function L(a){const i=[];let m=0;const n=a.length;for(;m<n;){const r=a.charCodeAt(m++);if(r>=55296&&r<=56319&&m<n){const p=a.charCodeAt(m++);(p&64512)==56320?i.push(((r&1023)<<10)+(p&1023)+65536):(i.push(r),m--);}else i.push(r);}return i}const $=a=>String.fromCodePoint(...a),J=function(a){return a>=48&&a<58?26+(a-48):a>=65&&a<91?a-65:a>=97&&a<123?a-97:s},D=function(a,i){return a+22+75*(a<26)-((i!=0)<<5)},T=function(a,i,m){let n=0;for(a=m?h(a/d):a>>1,a+=h(a/i);a>C*o>>1;n+=s)a=h(a/C);return h(n+(C+1)*a/(a+t))},E=function(a){const i=[],m=a.length;let n=0,r=y,p=z,j=a.lastIndexOf(g);j<0&&(j=0);for(let u=0;u<j;++u)a.charCodeAt(u)>=128&&v("not-basic"),i.push(a.charCodeAt(u));for(let u=j>0?j+1:0;u<m;){const k=n;for(let l=1,b=s;;b+=s){u>=m&&v("invalid-input");const w=J(a.charCodeAt(u++));w>=s&&v("invalid-input"),w>h((e-n)/l)&&v("overflow"),n+=w*l;const x=b<=p?c:b>=p+o?o:b-p;if(w<x)break;const q=s-x;l>h(e/q)&&v("overflow"),l*=q;}const f=i.length+1;p=T(n-k,f,k==0),h(n/f)>e-r&&v("overflow"),r+=h(n/f),n%=f,i.splice(n++,0,r);}return String.fromCodePoint(...i)},B=function(a){const i=[];a=L(a);const m=a.length;let n=y,r=0,p=z;for(const k of a)k<128&&i.push(I(k));const j=i.length;let u=j;for(j&&i.push(g);u<m;){let k=e;for(const l of a)l>=n&&l<k&&(k=l);const f=u+1;k-n>h((e-r)/f)&&v("overflow"),r+=(k-n)*f,n=k;for(const l of a)if(l<n&&++r>e&&v("overflow"),l===n){let b=r;for(let w=s;;w+=s){const x=w<=p?c:w>=p+o?o:w-p;if(b<x)break;const q=b-x,M=s-x;i.push(I(D(x+q%M,0))),b=h(q/M);}i.push(I(D(b,0))),p=T(r,f,u===j),r=0,++u;}++r,++n;}return i.join("")};return O={version:"2.3.1",ucs2:{decode:L,encode:$},decode:E,encode:B,toASCII:function(a){return S(a,function(i){return V.test(i)?"xn--"+B(i):i})},toUnicode:function(a){return S(a,function(i){return P.test(i)?E(i.slice(4).toLowerCase()):i})}},O}var X=Q();const A=K(X),Y=["ac","com.ac","edu.ac","gov.ac","mil.ac","net.ac","org.ac","ad","ae","ac.ae","co.ae","gov.ae","mil.ae","net.ae","org.ae","sch.ae","aero","airline.aero","airport.aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","air-surveillance.aero","air-traffic-control.aero","aircraft.aero","airtraffic.aero","ambulance.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","marketplace.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","taxi.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","com.af","edu.af","gov.af","net.af","org.af","ag","co.ag","com.ag","net.ag","nom.ag","org.ag","ai","com.ai","net.ai","off.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","co.ao","ed.ao","edu.ao","gov.ao","gv.ao","it.ao","og.ao","org.ao","pb.ao","aq","ar","bet.ar","com.ar","coop.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","mutual.ar","net.ar","org.ar","senasa.ar","tur.ar","arpa","e164.arpa","home.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","sth.ac.at","co.at","gv.at","or.at","au","asn.au","com.au","edu.au","gov.au","id.au","net.au","org.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","schools.nsw.edu.au","aw","com.aw","ax","az","biz.az","com.az","edu.az","gov.az","info.az","int.az","mil.az","name.az","net.az","org.az","pp.az","pro.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","bh","com.bh","edu.bh","gov.bh","net.bh","org.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","africa.bj","agro.bj","architectes.bj","assur.bj","avocats.bj","co.bj","com.bj","eco.bj","econo.bj","edu.bj","info.bj","loisirs.bj","money.bj","net.bj","org.bj","ote.bj","restaurant.bj","resto.bj","tourism.bj","univ.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","mil.bo","net.bo","org.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","plurinacional.bo","politica.bo","profesional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","app.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bet.br","bhz.br","bib.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","coz.br","cri.br","cuiaba.br","curitiba.br","def.br","des.br","det.br","dev.br","ecn.br","eco.br","edu.br","emp.br","enf.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","geo.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","leilao.br","lel.br","log.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","rep.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","seg.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","tec.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","edu.bs","gov.bs","net.bs","org.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","co.bz","com.bz","edu.bz","gov.bz","net.bz","org.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","ac.ci","aéroport.ci","asso.ci","co.ci","com.ci","ed.ci","edu.ci","go.ci","gouv.ci","int.ci","net.ci","or.ci","org.ci","*.ck","!www.ck","cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","mil.cn","net.cn","org.cn","公司.cn","網絡.cn","网络.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gx.cn","gz.cn","ha.cn","hb.cn","he.cn","hi.cn","hk.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","mo.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","tw.cn","xj.cn","xz.cn","yn.cn","zj.cn","co","com.co","edu.co","gov.co","mil.co","net.co","nom.co","org.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","gob.cu","inf.cu","nat.cu","net.cu","org.cu","cv","com.cv","edu.cv","id.cv","int.cv","net.cv","nome.cv","org.cv","publ.cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","mil.cy","net.cy","org.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","co.dm","com.dm","edu.dm","gov.dm","net.dm","org.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","art.dz","asso.dz","com.dz","edu.dz","gov.dz","net.dz","org.dz","pol.dz","soc.dz","tm.dz","ec","com.ec","edu.ec","fin.ec","gob.ec","gov.ec","info.ec","k12.ec","med.ec","mil.ec","net.ec","org.ec","pro.ec","edu","ee","aip.ee","com.ee","edu.ee","fie.ee","gov.ee","lib.ee","med.ee","org.ee","pri.ee","riik.ee","eg","ac.eg","com.eg","edu.eg","eun.eg","gov.eg","info.eg","me.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","sport.eg","tv.eg","*.er","es","com.es","edu.es","gob.es","nom.es","org.es","et","biz.et","com.et","edu.et","gov.et","info.et","name.et","net.et","org.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","fm","com.fm","edu.fm","net.fm","org.fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","avoues.fr","cci.fr","greta.fr","huissier-justice.fr","ga","gb","gd","edu.gd","gov.gd","ge","com.ge","edu.ge","gov.ge","net.ge","org.ge","pvt.ge","school.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","mil.gh","org.gh","gi","com.gi","edu.gi","gov.gi","ltd.gi","mod.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","net.gn","org.gn","gov","gp","asso.gp","com.gp","edu.gp","mobi.gp","net.gp","org.gp","gq","gr","com.gr","edu.gr","gov.gr","net.gr","org.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","个人.hk","個人.hk","公司.hk","政府.hk","敎育.hk","教育.hk","箇人.hk","組織.hk","組织.hk","網絡.hk","網络.hk","组織.hk","组织.hk","网絡.hk","网络.hk","hm","hn","com.hn","edu.hn","gob.hn","mil.hn","net.hn","org.hn","hr","com.hr","from.hr","iz.hr","name.hr","ht","adult.ht","art.ht","asso.ht","com.ht","coop.ht","edu.ht","firm.ht","gouv.ht","info.ht","med.ht","net.ht","org.ht","perso.ht","pol.ht","pro.ht","rel.ht","shop.ht","hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","co.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","info.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","org.hu","priv.hu","reklam.hu","sex.hu","shop.hu","sport.hu","suli.hu","szex.hu","tm.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","ישראל","אקדמיה.ישראל","ישוב.ישראל","צהל.ישראל","ממשל.ישראל","im","ac.im","co.im","ltd.co.im","plc.co.im","com.im","net.im","org.im","tt.im","tv.im","in","5g.in","6g.in","ac.in","ai.in","am.in","bihar.in","biz.in","business.in","ca.in","cn.in","co.in","com.in","coop.in","cs.in","delhi.in","dr.in","edu.in","er.in","firm.in","gen.in","gov.in","gujarat.in","ind.in","info.in","int.in","internet.in","io.in","me.in","mil.in","net.in","nic.in","org.in","pg.in","post.in","pro.in","res.in","travel.in","tv.in","uk.in","up.in","us.in","info","int","eu.int","io","co.io","com.io","edu.io","gov.io","mil.io","net.io","nom.io","org.io","iq","com.iq","edu.iq","gov.iq","mil.iq","net.iq","org.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","it","edu.it","gov.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano.it","bolzano-altoadige.it","bozen.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza.it","monza-brianza.it","monza-e-della-brianza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","südtirol.it","suedtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","agri.jo","ai.jo","com.jo","edu.jo","eng.jo","fm.jo","gov.jo","mil.jo","net.jo","org.jo","per.jo","phd.jo","sch.jo","tv.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","三重.jp","京都.jp","佐賀.jp","兵庫.jp","北海道.jp","千葉.jp","和歌山.jp","埼玉.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岐阜.jp","岡山.jp","岩手.jp","島根.jp","広島.jp","徳島.jp","愛媛.jp","愛知.jp","新潟.jp","東京.jp","栃木.jp","沖縄.jp","滋賀.jp","熊本.jp","石川.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","茨城.jp","長崎.jp","長野.jp","青森.jp","静岡.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","!city.kawasaki.jp","*.kitakyushu.jp","!city.kitakyushu.jp","*.kobe.jp","!city.kobe.jp","*.nagoya.jp","!city.nagoya.jp","*.sapporo.jp","!city.sapporo.jp","*.sendai.jp","!city.sendai.jp","*.yokohama.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","com.kg","edu.kg","gov.kg","mil.kg","net.kg","org.kg","*.kh","ki","biz.ki","com.ki","edu.ki","gov.ki","info.ki","net.ki","org.ki","km","ass.km","com.km","edu.km","gov.km","mil.km","nom.km","org.km","prd.km","tm.km","asso.km","coop.km","gouv.km","medecin.km","notaires.km","pharmaciens.km","presse.km","veterinaire.km","kn","edu.kn","gov.kn","net.kn","org.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","com.ky","edu.ky","net.ky","org.ky","kz","com.kz","edu.kz","gov.kz","mil.kz","net.kz","org.kz","la","com.la","edu.la","gov.la","info.la","int.la","net.la","org.la","per.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","co.lc","com.lc","edu.lc","gov.lc","net.lc","org.lc","li","lk","ac.lk","assn.lk","com.lk","edu.lk","gov.lk","grp.lk","hotel.lk","int.lk","ltd.lk","net.lk","ngo.lk","org.lk","sch.lk","soc.lk","web.lk","lr","com.lr","edu.lr","gov.lr","net.lr","org.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","asn.lv","com.lv","conf.lv","edu.lv","gov.lv","id.lv","mil.lv","net.lv","org.lv","ly","com.ly","edu.ly","gov.ly","id.ly","med.ly","net.ly","org.ly","plc.ly","sch.ly","ma","ac.ma","co.ma","gov.ma","net.ma","org.ma","press.ma","mc","asso.mc","tm.mc","md","me","ac.me","co.me","edu.me","gov.me","its.me","net.me","org.me","priv.me","mg","co.mg","com.mg","edu.mg","gov.mg","mil.mg","nom.mg","org.mg","prd.mg","mh","mil","mk","com.mk","edu.mk","gov.mk","inf.mk","name.mk","net.mk","org.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","edu.mn","gov.mn","org.mn","mo","com.mo","edu.mo","gov.mo","net.mo","org.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","ac.mu","co.mu","com.mu","gov.mu","net.mu","or.mu","org.mu","museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","net.mw","org.mw","mx","com.mx","edu.mx","gob.mx","net.mx","org.mx","my","biz.my","com.my","edu.my","gov.my","mil.my","name.my","net.my","org.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","alt.na","co.na","com.na","gov.na","net.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","arts.nf","com.nf","firm.nf","info.nf","net.nf","other.nf","per.nf","rec.nf","store.nf","web.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","folkebibl.no","fylkesbibl.no","idrett.no","museum.no","priv.no","vgs.no","dep.no","herad.no","kommune.no","mil.no","stat.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","bronnoysund.no","brønnøysund.no","brumunddal.no","bryne.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","aarborte.no","aejrie.no","afjord.no","åfjord.no","agdenes.no","nes.akershus.no","aknoluokta.no","ákŋoluokta.no","al.no","ål.no","alaheadju.no","álaheadju.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andasuolo.no","andebu.no","andoy.no","andøy.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askoy.no","askøy.no","askvoll.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","badaddja.no","bådåddjå.no","bærum.no","bahcavuotna.no","báhcavuotna.no","bahccavuotna.no","báhccavuotna.no","baidar.no","báidár.no","bajddar.no","bájddar.no","balat.no","bálát.no","balestrand.no","ballangen.no","balsfjord.no","bamble.no","bardu.no","barum.no","batsfjord.no","båtsfjord.no","bearalvahki.no","bearalváhki.no","beardu.no","beiarn.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bievat.no","bievát.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","bokn.no","bomlo.no","bømlo.no","bremanger.no","bronnoy.no","brønnøy.no","budejju.no","nes.buskerud.no","bygland.no","bykle.no","cahcesuolo.no","čáhcesuolo.no","davvenjarga.no","davvenjárga.no","davvesiida.no","deatnu.no","dielddanuorri.no","divtasvuodna.no","divttasvuotna.no","donna.no","dønna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenassi.no","evenášši.no","evenes.no","evje-og-hornnes.no","farsund.no","fauske.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","fla.no","flå.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","folldal.no","forde.no","førde.no","forsand.no","fosnes.no","fræna.no","frana.no","frei.no","frogn.no","froland.no","frosta.no","froya.no","frøya.no","fuoisku.no","fuossko.no","fusa.no","fyresdal.no","gaivuotna.no","gáivuotna.no","galsa.no","gálsá.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","giehtavuoatna.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","grue.no","gulen.no","guovdageaidnu.no","ha.no","hå.no","habmer.no","hábmer.no","hadsel.no","hægebostad.no","hagebostad.no","halden.no","halsa.no","hamar.no","hamaroy.no","hammarfeasta.no","hámmárfeasta.no","hammerfest.no","hapmir.no","hápmir.no","haram.no","hareid.no","harstad.no","hasvik.no","hattfjelldal.no","haugesund.no","os.hedmark.no","valer.hedmark.no","våler.hedmark.no","hemne.no","hemnes.no","hemsedal.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","os.hordaland.no","hornindal.no","horten.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","ivgu.no","jevnaker.no","jolster.no","jølster.no","jondal.no","kafjord.no","kåfjord.no","karasjohka.no","kárášjohka.no","karasjok.no","karlsoy.no","karmoy.no","karmøy.no","kautokeino.no","klabu.no","klæbu.no","klepp.no","kongsberg.no","kongsvinger.no","kraanghke.no","kråanghke.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvæfjord.no","kvænangen.no","kvafjord.no","kvalsund.no","kvam.no","kvanangen.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","laakesvuemie.no","lærdal.no","lahppi.no","láhppi.no","lardal.no","larvik.no","lavagis.no","lavangen.no","leangaviika.no","leaŋgaviika.no","lebesby.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","lerdal.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindas.no","lindås.no","lindesnes.no","loabat.no","loabát.no","lodingen.no","lødingen.no","lom.no","loppa.no","lorenskog.no","lørenskog.no","loten.no","løten.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","malatvuopmi.no","málatvuopmi.no","malselv.no","målselv.no","malvik.no","mandal.no","marker.no","marnardal.no","masfjorden.no","masoy.no","måsøy.no","matta-varjjat.no","mátta-várjjat.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","midsund.no","midtre-gauldal.no","moareke.no","moåreke.no","modalen.no","modum.no","molde.no","heroy.more-og-romsdal.no","sande.more-og-romsdal.no","herøy.møre-og-romsdal.no","sande.møre-og-romsdal.no","moskenes.no","moss.no","mosvik.no","muosat.no","muosát.no","naamesjevuemie.no","nååmesjevuemie.no","nærøy.no","namdalseid.no","namsos.no","namsskogan.no","nannestad.no","naroy.no","narviika.no","narvik.no","naustdal.no","navuotna.no","návuotna.no","nedre-eiker.no","nesna.no","nesodden.no","nesseby.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","bo.nordland.no","bø.nordland.no","heroy.nordland.no","herøy.nordland.no","nordre-land.no","nordreisa.no","nore-og-uvdal.no","notodden.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","omasvuotna.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","osen.no","osteroy.no","osterøy.no","valer.ostfold.no","våler.østfold.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","rade.no","råde.no","radoy.no","radøy.no","rælingen.no","rahkkeravju.no","ráhkkerávju.no","raisa.no","ráisa.no","rakkestad.no","ralingen.no","rana.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","risor.no","risør.no","rissa.no","roan.no","rodoy.no","rødøy.no","rollag.no","romsa.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","ruovat.no","rygge.no","salangen.no","salat.no","sálat.no","sálát.no","saltdal.no","samnanger.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","siellak.no","sigdal.no","siljan.no","sirdal.no","skanit.no","skánit.no","skanland.no","skånland.no","skaun.no","skedsmo.no","ski.no","skien.no","skierva.no","skiervá.no","skiptvet.no","skjak.no","skjåk.no","skjervoy.no","skjervøy.no","skodje.no","smola.no","smøla.no","snaase.no","snåase.no","snasa.no","snåsa.no","snillfjord.no","snoasa.no","sogndal.no","sogne.no","søgne.no","sokndal.no","sola.no","solund.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","songdalen.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sortland.no","sorum.no","sørum.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","tana.no","bo.telemark.no","bø.telemark.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","tjome.no","tjøme.no","tokke.no","tolga.no","tonsberg.no","tønsberg.no","torsken.no","træna.no","trana.no","tranoy.no","tranøy.no","troandin.no","trogstad.no","trøgstad.no","tromsa.no","tromso.no","tromsø.no","trondheim.no","trysil.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","tysnes.no","tysvær.no","tysvar.no","ullensaker.no","ullensvang.no","ulvik.no","unjarga.no","unjárga.no","utsira.no","vaapste.no","vadso.no","vadsø.no","værøy.no","vaga.no","vågå.no","vagan.no","vågan.no","vagsoy.no","vågsøy.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","varoy.no","vefsn.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","sande.vestfold.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","voagat.no","volda.no","voss.no","*.np","nr","biz.nr","com.nr","edu.nr","gov.nr","info.nr","net.nr","org.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","māori.nz","mil.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","abo.pa","ac.pa","com.pa","edu.pa","gob.pa","ing.pa","med.pa","net.pa","nom.pa","org.pa","sld.pa","pe","com.pe","edu.pe","gob.pe","mil.pe","net.pe","nom.pe","org.pe","pf","com.pf","edu.pf","org.pf","*.pg","ph","com.ph","edu.ph","gov.ph","i.ph","mil.ph","net.ph","ngo.ph","org.ph","pk","ac.pk","biz.pk","com.pk","edu.pk","fam.pk","gkp.pk","gob.pk","gog.pk","gok.pk","gon.pk","gop.pk","gos.pk","gov.pk","net.pk","org.pk","web.pk","pl","com.pl","net.pl","org.pl","agro.pl","aid.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","media.pl","miasta.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","griw.gov.pl","ic.gov.pl","is.gov.pl","kmpsp.gov.pl","konsulat.gov.pl","kppsp.gov.pl","kwp.gov.pl","kwpsp.gov.pl","mup.gov.pl","mw.gov.pl","oia.gov.pl","oirm.gov.pl","oke.gov.pl","oow.gov.pl","oschr.gov.pl","oum.gov.pl","pa.gov.pl","pinb.gov.pl","piw.gov.pl","po.gov.pl","pr.gov.pl","psp.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","sdn.gov.pl","sko.gov.pl","so.gov.pl","sr.gov.pl","starostwo.gov.pl","ug.gov.pl","ugim.gov.pl","um.gov.pl","umig.gov.pl","upow.gov.pl","uppo.gov.pl","us.gov.pl","uw.gov.pl","uzs.gov.pl","wif.gov.pl","wiih.gov.pl","winb.gov.pl","wios.gov.pl","witd.gov.pl","wiw.gov.pl","wkz.gov.pl","wsa.gov.pl","wskr.gov.pl","wsse.gov.pl","wuoz.gov.pl","wzmiuw.gov.pl","zp.gov.pl","zpisdn.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kazimierz-dolny.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorskie.pl","pomorze.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","skoczow.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","co.pn","edu.pn","gov.pn","net.pn","org.pn","post","pr","biz.pr","com.pr","edu.pr","gov.pr","info.pr","isla.pr","name.pr","net.pr","org.pr","pro.pr","ac.pr","est.pr","prof.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","com.ps","edu.ps","gov.ps","net.ps","org.ps","plo.ps","sec.ps","pt","com.pt","edu.pt","gov.pt","int.pt","net.pt","nome.pt","org.pt","publ.pt","pw","belau.pw","co.pw","ed.pw","go.pw","or.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","edu.sa","gov.sa","med.sa","net.sa","org.sa","pub.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","edu.sc","gov.sc","net.sc","org.sc","sd","com.sd","edu.sd","gov.sd","info.sd","med.sd","net.sd","org.sd","tv.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","edu.sg","gov.sg","net.sg","org.sg","sh","com.sh","gov.sh","mil.sh","net.sh","org.sh","si","sj","sk","sl","com.sl","edu.sl","gov.sl","net.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","co.ss","com.ss","edu.ss","gov.ss","me.ss","net.ss","org.ss","sch.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","com.sy","edu.sy","gov.sy","mil.sy","net.sy","org.sy","sz","ac.sz","co.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","co.tm","com.tm","edu.tm","gov.tm","mil.tm","net.tm","nom.tm","org.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","info.tn","intl.tn","mincom.tn","nat.tn","net.tn","org.tn","perso.tn","tourism.tn","to","com.to","edu.to","gov.to","mil.to","net.to","org.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","k12.tr","kep.tr","mil.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","biz.tt","co.tt","com.tt","edu.tt","gov.tt","info.tt","mil.tt","name.tt","net.tt","org.tt","pro.tt","tv","tw","club.tw","com.tw","ebiz.tw","edu.tw","game.tw","gov.tw","idv.tw","mil.tw","net.tw","org.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","kropyvnytskyi.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","luhansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","uzhhorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zakarpattia.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","ac.ug","co.ug","com.ug","go.ug","ne.ug","or.ug","org.ug","sc.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","va.us","vi.us","vt.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.va.us","k12.vi.us","k12.vt.us","k12.wa.us","k12.wi.us","cc.ak.us","lib.ak.us","cc.al.us","lib.al.us","cc.ar.us","lib.ar.us","cc.as.us","lib.as.us","cc.az.us","lib.az.us","cc.ca.us","lib.ca.us","cc.co.us","lib.co.us","cc.ct.us","lib.ct.us","cc.dc.us","lib.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.va.us","cc.vi.us","cc.vt.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","k12.wy.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.va.us","lib.vi.us","lib.vt.us","lib.wa.us","lib.wi.us","lib.wy.us","chtr.k12.ma.us","paroch.k12.ma.us","pvt.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","edu.vc","gov.vc","mil.vc","net.vc","org.vc","ve","arts.ve","bib.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","nom.ve","org.ve","rar.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","ac.vn","ai.vn","biz.vn","com.vn","edu.vn","gov.vn","health.vn","id.vn","info.vn","int.vn","io.vn","name.vn","net.vn","org.vn","pro.vn","angiang.vn","bacgiang.vn","backan.vn","baclieu.vn","bacninh.vn","baria-vungtau.vn","bentre.vn","binhdinh.vn","binhduong.vn","binhphuoc.vn","binhthuan.vn","camau.vn","cantho.vn","caobang.vn","daklak.vn","daknong.vn","danang.vn","dienbien.vn","dongnai.vn","dongthap.vn","gialai.vn","hagiang.vn","haiduong.vn","haiphong.vn","hanam.vn","hanoi.vn","hatinh.vn","haugiang.vn","hoabinh.vn","hungyen.vn","khanhhoa.vn","kiengiang.vn","kontum.vn","laichau.vn","lamdong.vn","langson.vn","laocai.vn","longan.vn","namdinh.vn","nghean.vn","ninhbinh.vn","ninhthuan.vn","phutho.vn","phuyen.vn","quangbinh.vn","quangnam.vn","quangngai.vn","quangninh.vn","quangtri.vn","soctrang.vn","sonla.vn","tayninh.vn","thaibinh.vn","thainguyen.vn","thanhhoa.vn","thanhphohochiminh.vn","thuathienhue.vn","tiengiang.vn","travinh.vn","tuyenquang.vn","vinhlong.vn","vinhphuc.vn","yenbai.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","edu.ws","gov.ws","net.ws","org.ws","yt","امارات","հայ","বাংলা","бг","البحرين","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","個人.香港","公司.香港","政府.香港","教育.香港","組織.香港","網絡.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ລາວ","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","ак.срб","обр.срб","од.срб","орг.срб","пр.срб","упр.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ทหาร.ไทย","ธุรกิจ.ไทย","เน็ต.ไทย","รัฐบาล.ไทย","ศึกษา.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","ye","com.ye","edu.ye","gov.ye","mil.ye","net.ye","org.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","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","aws","axa","azure","baby","baidu","banamex","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","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","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","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","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","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","merck","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","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","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","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","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","shangrila","sharp","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","volvo","vote","voting","voto","voyage","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","食品","飞利浦","手机","ارامكو","العليان","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","co.krd","edu.krd","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","lib.de.us","12chars.dev","12chars.it","12chars.pro","cc.ua","inf.ua","ltd.ua","611.to","a2hosted.com","cpserver.com","aaa.vodka","*.on-acorn.io","activetrail.biz","adaptable.app","adobeaemcloud.com","*.dev.adobeaemcloud.com","aem.live","hlx.live","adobeaemcloud.net","aem.page","hlx.page","hlx3.page","adobeio-static.net","adobeioruntime.net","africa.com","beep.pl","airkitapps.com","airkitapps-au.com","airkitapps.eu","aivencloud.com","akadns.net","akamai.net","akamai-staging.net","akamaiedge.net","akamaiedge-staging.net","akamaihd.net","akamaihd-staging.net","akamaiorigin.net","akamaiorigin-staging.net","akamaized.net","akamaized-staging.net","edgekey.net","edgekey-staging.net","edgesuite.net","edgesuite-staging.net","barsy.ca","*.compute.estate","*.alces.network","kasserver.com","altervista.org","alwaysdata.net","myamaze.net","execute-api.cn-north-1.amazonaws.com.cn","execute-api.cn-northwest-1.amazonaws.com.cn","execute-api.af-south-1.amazonaws.com","execute-api.ap-east-1.amazonaws.com","execute-api.ap-northeast-1.amazonaws.com","execute-api.ap-northeast-2.amazonaws.com","execute-api.ap-northeast-3.amazonaws.com","execute-api.ap-south-1.amazonaws.com","execute-api.ap-south-2.amazonaws.com","execute-api.ap-southeast-1.amazonaws.com","execute-api.ap-southeast-2.amazonaws.com","execute-api.ap-southeast-3.amazonaws.com","execute-api.ap-southeast-4.amazonaws.com","execute-api.ap-southeast-5.amazonaws.com","execute-api.ca-central-1.amazonaws.com","execute-api.ca-west-1.amazonaws.com","execute-api.eu-central-1.amazonaws.com","execute-api.eu-central-2.amazonaws.com","execute-api.eu-north-1.amazonaws.com","execute-api.eu-south-1.amazonaws.com","execute-api.eu-south-2.amazonaws.com","execute-api.eu-west-1.amazonaws.com","execute-api.eu-west-2.amazonaws.com","execute-api.eu-west-3.amazonaws.com","execute-api.il-central-1.amazonaws.com","execute-api.me-central-1.amazonaws.com","execute-api.me-south-1.amazonaws.com","execute-api.sa-east-1.amazonaws.com","execute-api.us-east-1.amazonaws.com","execute-api.us-east-2.amazonaws.com","execute-api.us-gov-east-1.amazonaws.com","execute-api.us-gov-west-1.amazonaws.com","execute-api.us-west-1.amazonaws.com","execute-api.us-west-2.amazonaws.com","cloudfront.net","auth.af-south-1.amazoncognito.com","auth.ap-east-1.amazoncognito.com","auth.ap-northeast-1.amazoncognito.com","auth.ap-northeast-2.amazoncognito.com","auth.ap-northeast-3.amazoncognito.com","auth.ap-south-1.amazoncognito.com","auth.ap-south-2.amazoncognito.com","auth.ap-southeast-1.amazoncognito.com","auth.ap-southeast-2.amazoncognito.com","auth.ap-southeast-3.amazoncognito.com","auth.ap-southeast-4.amazoncognito.com","auth.ca-central-1.amazoncognito.com","auth.ca-west-1.amazoncognito.com","auth.eu-central-1.amazoncognito.com","auth.eu-central-2.amazoncognito.com","auth.eu-north-1.amazoncognito.com","auth.eu-south-1.amazoncognito.com","auth.eu-south-2.amazoncognito.com","auth.eu-west-1.amazoncognito.com","auth.eu-west-2.amazoncognito.com","auth.eu-west-3.amazoncognito.com","auth.il-central-1.amazoncognito.com","auth.me-central-1.amazoncognito.com","auth.me-south-1.amazoncognito.com","auth.sa-east-1.amazoncognito.com","auth.us-east-1.amazoncognito.com","auth-fips.us-east-1.amazoncognito.com","auth.us-east-2.amazoncognito.com","auth-fips.us-east-2.amazoncognito.com","auth-fips.us-gov-west-1.amazoncognito.com","auth.us-west-1.amazoncognito.com","auth-fips.us-west-1.amazoncognito.com","auth.us-west-2.amazoncognito.com","auth-fips.us-west-2.amazoncognito.com","*.compute.amazonaws.com.cn","*.compute.amazonaws.com","*.compute-1.amazonaws.com","us-east-1.amazonaws.com","emrappui-prod.cn-north-1.amazonaws.com.cn","emrnotebooks-prod.cn-north-1.amazonaws.com.cn","emrstudio-prod.cn-north-1.amazonaws.com.cn","emrappui-prod.cn-northwest-1.amazonaws.com.cn","emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn","emrstudio-prod.cn-northwest-1.amazonaws.com.cn","emrappui-prod.af-south-1.amazonaws.com","emrnotebooks-prod.af-south-1.amazonaws.com","emrstudio-prod.af-south-1.amazonaws.com","emrappui-prod.ap-east-1.amazonaws.com","emrnotebooks-prod.ap-east-1.amazonaws.com","emrstudio-prod.ap-east-1.amazonaws.com","emrappui-prod.ap-northeast-1.amazonaws.com","emrnotebooks-prod.ap-northeast-1.amazonaws.com","emrstudio-prod.ap-northeast-1.amazonaws.com","emrappui-prod.ap-northeast-2.amazonaws.com","emrnotebooks-prod.ap-northeast-2.amazonaws.com","emrstudio-prod.ap-northeast-2.amazonaws.com","emrappui-prod.ap-northeast-3.amazonaws.com","emrnotebooks-prod.ap-northeast-3.amazonaws.com","emrstudio-prod.ap-northeast-3.amazonaws.com","emrappui-prod.ap-south-1.amazonaws.com","emrnotebooks-prod.ap-south-1.amazonaws.com","emrstudio-prod.ap-south-1.amazonaws.com","emrappui-prod.ap-south-2.amazonaws.com","emrnotebooks-prod.ap-south-2.amazonaws.com","emrstudio-prod.ap-south-2.amazonaws.com","emrappui-prod.ap-southeast-1.amazonaws.com","emrnotebooks-prod.ap-southeast-1.amazonaws.com","emrstudio-prod.ap-southeast-1.amazonaws.com","emrappui-prod.ap-southeast-2.amazonaws.com","emrnotebooks-prod.ap-southeast-2.amazonaws.com","emrstudio-prod.ap-southeast-2.amazonaws.com","emrappui-prod.ap-southeast-3.amazonaws.com","emrnotebooks-prod.ap-southeast-3.amazonaws.com","emrstudio-prod.ap-southeast-3.amazonaws.com","emrappui-prod.ap-southeast-4.amazonaws.com","emrnotebooks-prod.ap-southeast-4.amazonaws.com","emrstudio-prod.ap-southeast-4.amazonaws.com","emrappui-prod.ca-central-1.amazonaws.com","emrnotebooks-prod.ca-central-1.amazonaws.com","emrstudio-prod.ca-central-1.amazonaws.com","emrappui-prod.ca-west-1.amazonaws.com","emrnotebooks-prod.ca-west-1.amazonaws.com","emrstudio-prod.ca-west-1.amazonaws.com","emrappui-prod.eu-central-1.amazonaws.com","emrnotebooks-prod.eu-central-1.amazonaws.com","emrstudio-prod.eu-central-1.amazonaws.com","emrappui-prod.eu-central-2.amazonaws.com","emrnotebooks-prod.eu-central-2.amazonaws.com","emrstudio-prod.eu-central-2.amazonaws.com","emrappui-prod.eu-north-1.amazonaws.com","emrnotebooks-prod.eu-north-1.amazonaws.com","emrstudio-prod.eu-north-1.amazonaws.com","emrappui-prod.eu-south-1.amazonaws.com","emrnotebooks-prod.eu-south-1.amazonaws.com","emrstudio-prod.eu-south-1.amazonaws.com","emrappui-prod.eu-south-2.amazonaws.com","emrnotebooks-prod.eu-south-2.amazonaws.com","emrstudio-prod.eu-south-2.amazonaws.com","emrappui-prod.eu-west-1.amazonaws.com","emrnotebooks-prod.eu-west-1.amazonaws.com","emrstudio-prod.eu-west-1.amazonaws.com","emrappui-prod.eu-west-2.amazonaws.com","emrnotebooks-prod.eu-west-2.amazonaws.com","emrstudio-prod.eu-west-2.amazonaws.com","emrappui-prod.eu-west-3.amazonaws.com","emrnotebooks-prod.eu-west-3.amazonaws.com","emrstudio-prod.eu-west-3.amazonaws.com","emrappui-prod.il-central-1.amazonaws.com","emrnotebooks-prod.il-central-1.amazonaws.com","emrstudio-prod.il-central-1.amazonaws.com","emrappui-prod.me-central-1.amazonaws.com","emrnotebooks-prod.me-central-1.amazonaws.com","emrstudio-prod.me-central-1.amazonaws.com","emrappui-prod.me-south-1.amazonaws.com","emrnotebooks-prod.me-south-1.amazonaws.com","emrstudio-prod.me-south-1.amazonaws.com","emrappui-prod.sa-east-1.amazonaws.com","emrnotebooks-prod.sa-east-1.amazonaws.com","emrstudio-prod.sa-east-1.amazonaws.com","emrappui-prod.us-east-1.amazonaws.com","emrnotebooks-prod.us-east-1.amazonaws.com","emrstudio-prod.us-east-1.amazonaws.com","emrappui-prod.us-east-2.amazonaws.com","emrnotebooks-prod.us-east-2.amazonaws.com","emrstudio-prod.us-east-2.amazonaws.com","emrappui-prod.us-gov-east-1.amazonaws.com","emrnotebooks-prod.us-gov-east-1.amazonaws.com","emrstudio-prod.us-gov-east-1.amazonaws.com","emrappui-prod.us-gov-west-1.amazonaws.com","emrnotebooks-prod.us-gov-west-1.amazonaws.com","emrstudio-prod.us-gov-west-1.amazonaws.com","emrappui-prod.us-west-1.amazonaws.com","emrnotebooks-prod.us-west-1.amazonaws.com","emrstudio-prod.us-west-1.amazonaws.com","emrappui-prod.us-west-2.amazonaws.com","emrnotebooks-prod.us-west-2.amazonaws.com","emrstudio-prod.us-west-2.amazonaws.com","*.cn-north-1.airflow.amazonaws.com.cn","*.cn-northwest-1.airflow.amazonaws.com.cn","*.af-south-1.airflow.amazonaws.com","*.ap-east-1.airflow.amazonaws.com","*.ap-northeast-1.airflow.amazonaws.com","*.ap-northeast-2.airflow.amazonaws.com","*.ap-northeast-3.airflow.amazonaws.com","*.ap-south-1.airflow.amazonaws.com","*.ap-south-2.airflow.amazonaws.com","*.ap-southeast-1.airflow.amazonaws.com","*.ap-southeast-2.airflow.amazonaws.com","*.ap-southeast-3.airflow.amazonaws.com","*.ap-southeast-4.airflow.amazonaws.com","*.ca-central-1.airflow.amazonaws.com","*.ca-west-1.airflow.amazonaws.com","*.eu-central-1.airflow.amazonaws.com","*.eu-central-2.airflow.amazonaws.com","*.eu-north-1.airflow.amazonaws.com","*.eu-south-1.airflow.amazonaws.com","*.eu-south-2.airflow.amazonaws.com","*.eu-west-1.airflow.amazonaws.com","*.eu-west-2.airflow.amazonaws.com","*.eu-west-3.airflow.amazonaws.com","*.il-central-1.airflow.amazonaws.com","*.me-central-1.airflow.amazonaws.com","*.me-south-1.airflow.amazonaws.com","*.sa-east-1.airflow.amazonaws.com","*.us-east-1.airflow.amazonaws.com","*.us-east-2.airflow.amazonaws.com","*.us-west-1.airflow.amazonaws.com","*.us-west-2.airflow.amazonaws.com","s3.dualstack.cn-north-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn","s3-website.dualstack.cn-north-1.amazonaws.com.cn","s3.cn-north-1.amazonaws.com.cn","s3-accesspoint.cn-north-1.amazonaws.com.cn","s3-deprecated.cn-north-1.amazonaws.com.cn","s3-object-lambda.cn-north-1.amazonaws.com.cn","s3-website.cn-north-1.amazonaws.com.cn","s3.dualstack.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn","s3.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.cn-northwest-1.amazonaws.com.cn","s3-object-lambda.cn-northwest-1.amazonaws.com.cn","s3-website.cn-northwest-1.amazonaws.com.cn","s3.dualstack.af-south-1.amazonaws.com","s3-accesspoint.dualstack.af-south-1.amazonaws.com","s3-website.dualstack.af-south-1.amazonaws.com","s3.af-south-1.amazonaws.com","s3-accesspoint.af-south-1.amazonaws.com","s3-object-lambda.af-south-1.amazonaws.com","s3-website.af-south-1.amazonaws.com","s3.dualstack.ap-east-1.amazonaws.com","s3-accesspoint.dualstack.ap-east-1.amazonaws.com","s3.ap-east-1.amazonaws.com","s3-accesspoint.ap-east-1.amazonaws.com","s3-object-lambda.ap-east-1.amazonaws.com","s3-website.ap-east-1.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com","s3-website.dualstack.ap-northeast-1.amazonaws.com","s3.ap-northeast-1.amazonaws.com","s3-accesspoint.ap-northeast-1.amazonaws.com","s3-object-lambda.ap-northeast-1.amazonaws.com","s3-website.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com","s3-website.dualstack.ap-northeast-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3-accesspoint.ap-northeast-2.amazonaws.com","s3-object-lambda.ap-northeast-2.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3.dualstack.ap-northeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com","s3-website.dualstack.ap-northeast-3.amazonaws.com","s3.ap-northeast-3.amazonaws.com","s3-accesspoint.ap-northeast-3.amazonaws.com","s3-object-lambda.ap-northeast-3.amazonaws.com","s3-website.ap-northeast-3.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3-accesspoint.dualstack.ap-south-1.amazonaws.com","s3-website.dualstack.ap-south-1.amazonaws.com","s3.ap-south-1.amazonaws.com","s3-accesspoint.ap-south-1.amazonaws.com","s3-object-lambda.ap-south-1.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3.dualstack.ap-south-2.amazonaws.com","s3-accesspoint.dualstack.ap-south-2.amazonaws.com","s3-website.dualstack.ap-south-2.amazonaws.com","s3.ap-south-2.amazonaws.com","s3-accesspoint.ap-south-2.amazonaws.com","s3-object-lambda.ap-south-2.amazonaws.com","s3-website.ap-south-2.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com","s3-website.dualstack.ap-southeast-1.amazonaws.com","s3.ap-southeast-1.amazonaws.com","s3-accesspoint.ap-southeast-1.amazonaws.com","s3-object-lambda.ap-southeast-1.amazonaws.com","s3-website.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com","s3-website.dualstack.ap-southeast-2.amazonaws.com","s3.ap-southeast-2.amazonaws.com","s3-accesspoint.ap-southeast-2.amazonaws.com","s3-object-lambda.ap-southeast-2.amazonaws.com","s3-website.ap-southeast-2.amazonaws.com","s3.dualstack.ap-southeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com","s3-website.dualstack.ap-southeast-3.amazonaws.com","s3.ap-southeast-3.amazonaws.com","s3-accesspoint.ap-southeast-3.amazonaws.com","s3-object-lambda.ap-southeast-3.amazonaws.com","s3-website.ap-southeast-3.amazonaws.com","s3.dualstack.ap-southeast-4.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com","s3-website.dualstack.ap-southeast-4.amazonaws.com","s3.ap-southeast-4.amazonaws.com","s3-accesspoint.ap-southeast-4.amazonaws.com","s3-object-lambda.ap-southeast-4.amazonaws.com","s3-website.ap-southeast-4.amazonaws.com","s3.dualstack.ap-southeast-5.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-5.amazonaws.com","s3-website.dualstack.ap-southeast-5.amazonaws.com","s3.ap-southeast-5.amazonaws.com","s3-accesspoint.ap-southeast-5.amazonaws.com","s3-deprecated.ap-southeast-5.amazonaws.com","s3-object-lambda.ap-southeast-5.amazonaws.com","s3-website.ap-southeast-5.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3-accesspoint.dualstack.ca-central-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com","s3-fips.dualstack.ca-central-1.amazonaws.com","s3-website.dualstack.ca-central-1.amazonaws.com","s3.ca-central-1.amazonaws.com","s3-accesspoint.ca-central-1.amazonaws.com","s3-accesspoint-fips.ca-central-1.amazonaws.com","s3-fips.ca-central-1.amazonaws.com","s3-object-lambda.ca-central-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3.dualstack.ca-west-1.amazonaws.com","s3-accesspoint.dualstack.ca-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com","s3-fips.dualstack.ca-west-1.amazonaws.com","s3-website.dualstack.ca-west-1.amazonaws.com","s3.ca-west-1.amazonaws.com","s3-accesspoint.ca-west-1.amazonaws.com","s3-accesspoint-fips.ca-west-1.amazonaws.com","s3-fips.ca-west-1.amazonaws.com","s3-object-lambda.ca-west-1.amazonaws.com","s3-website.ca-west-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3-accesspoint.dualstack.eu-central-1.amazonaws.com","s3-website.dualstack.eu-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3-accesspoint.eu-central-1.amazonaws.com","s3-object-lambda.eu-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3.dualstack.eu-central-2.amazonaws.com","s3-accesspoint.dualstack.eu-central-2.amazonaws.com","s3-website.dualstack.eu-central-2.amazonaws.com","s3.eu-central-2.amazonaws.com","s3-accesspoint.eu-central-2.amazonaws.com","s3-object-lambda.eu-central-2.amazonaws.com","s3-website.eu-central-2.amazonaws.com","s3.dualstack.eu-north-1.amazonaws.com","s3-accesspoint.dualstack.eu-north-1.amazonaws.com","s3.eu-north-1.amazonaws.com","s3-accesspoint.eu-north-1.amazonaws.com","s3-object-lambda.eu-north-1.amazonaws.com","s3-website.eu-north-1.amazonaws.com","s3.dualstack.eu-south-1.amazonaws.com","s3-accesspoint.dualstack.eu-south-1.amazonaws.com","s3-website.dualstack.eu-south-1.amazonaws.com","s3.eu-south-1.amazonaws.com","s3-accesspoint.eu-south-1.amazonaws.com","s3-object-lambda.eu-south-1.amazonaws.com","s3-website.eu-south-1.amazonaws.com","s3.dualstack.eu-south-2.amazonaws.com","s3-accesspoint.dualstack.eu-south-2.amazonaws.com","s3-website.dualstack.eu-south-2.amazonaws.com","s3.eu-south-2.amazonaws.com","s3-accesspoint.eu-south-2.amazonaws.com","s3-object-lambda.eu-south-2.amazonaws.com","s3-website.eu-south-2.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3-accesspoint.dualstack.eu-west-1.amazonaws.com","s3-website.dualstack.eu-west-1.amazonaws.com","s3.eu-west-1.amazonaws.com","s3-accesspoint.eu-west-1.amazonaws.com","s3-deprecated.eu-west-1.amazonaws.com","s3-object-lambda.eu-west-1.amazonaws.com","s3-website.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3-accesspoint.dualstack.eu-west-2.amazonaws.com","s3.eu-west-2.amazonaws.com","s3-accesspoint.eu-west-2.amazonaws.com","s3-object-lambda.eu-west-2.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3-accesspoint.dualstack.eu-west-3.amazonaws.com","s3-website.dualstack.eu-west-3.amazonaws.com","s3.eu-west-3.amazonaws.com","s3-accesspoint.eu-west-3.amazonaws.com","s3-object-lambda.eu-west-3.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3.dualstack.il-central-1.amazonaws.com","s3-accesspoint.dualstack.il-central-1.amazonaws.com","s3-website.dualstack.il-central-1.amazonaws.com","s3.il-central-1.amazonaws.com","s3-accesspoint.il-central-1.amazonaws.com","s3-object-lambda.il-central-1.amazonaws.com","s3-website.il-central-1.amazonaws.com","s3.dualstack.me-central-1.amazonaws.com","s3-accesspoint.dualstack.me-central-1.amazonaws.com","s3-website.dualstack.me-central-1.amazonaws.com","s3.me-central-1.amazonaws.com","s3-accesspoint.me-central-1.amazonaws.com","s3-object-lambda.me-central-1.amazonaws.com","s3-website.me-central-1.amazonaws.com","s3.dualstack.me-south-1.amazonaws.com","s3-accesspoint.dualstack.me-south-1.amazonaws.com","s3.me-south-1.amazonaws.com","s3-accesspoint.me-south-1.amazonaws.com","s3-object-lambda.me-south-1.amazonaws.com","s3-website.me-south-1.amazonaws.com","s3.amazonaws.com","s3-1.amazonaws.com","s3-ap-east-1.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-northeast-3.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-north-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-east-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","mrap.accesspoint.s3-global.amazonaws.com","s3-me-south-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-gov-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-gov-west-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3-accesspoint.dualstack.sa-east-1.amazonaws.com","s3-website.dualstack.sa-east-1.amazonaws.com","s3.sa-east-1.amazonaws.com","s3-accesspoint.sa-east-1.amazonaws.com","s3-object-lambda.sa-east-1.amazonaws.com","s3-website.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3-accesspoint.dualstack.us-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com","s3-fips.dualstack.us-east-1.amazonaws.com","s3-website.dualstack.us-east-1.amazonaws.com","s3.us-east-1.amazonaws.com","s3-accesspoint.us-east-1.amazonaws.com","s3-accesspoint-fips.us-east-1.amazonaws.com","s3-deprecated.us-east-1.amazonaws.com","s3-fips.us-east-1.amazonaws.com","s3-object-lambda.us-east-1.amazonaws.com","s3-website.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-accesspoint.dualstack.us-east-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com","s3-fips.dualstack.us-east-2.amazonaws.com","s3-website.dualstack.us-east-2.amazonaws.com","s3.us-east-2.amazonaws.com","s3-accesspoint.us-east-2.amazonaws.com","s3-accesspoint-fips.us-east-2.amazonaws.com","s3-deprecated.us-east-2.amazonaws.com","s3-fips.us-east-2.amazonaws.com","s3-object-lambda.us-east-2.amazonaws.com","s3-website.us-east-2.amazonaws.com","s3.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com","s3-fips.dualstack.us-gov-east-1.amazonaws.com","s3.us-gov-east-1.amazonaws.com","s3-accesspoint.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.us-gov-east-1.amazonaws.com","s3-fips.us-gov-east-1.amazonaws.com","s3-object-lambda.us-gov-east-1.amazonaws.com","s3-website.us-gov-east-1.amazonaws.com","s3.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com","s3-fips.dualstack.us-gov-west-1.amazonaws.com","s3.us-gov-west-1.amazonaws.com","s3-accesspoint.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.us-gov-west-1.amazonaws.com","s3-fips.us-gov-west-1.amazonaws.com","s3-object-lambda.us-gov-west-1.amazonaws.com","s3-website.us-gov-west-1.amazonaws.com","s3.dualstack.us-west-1.amazonaws.com","s3-accesspoint.dualstack.us-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com","s3-fips.dualstack.us-west-1.amazonaws.com","s3-website.dualstack.us-west-1.amazonaws.com","s3.us-west-1.amazonaws.com","s3-accesspoint.us-west-1.amazonaws.com","s3-accesspoint-fips.us-west-1.amazonaws.com","s3-fips.us-west-1.amazonaws.com","s3-object-lambda.us-west-1.amazonaws.com","s3-website.us-west-1.amazonaws.com","s3.dualstack.us-west-2.amazonaws.com","s3-accesspoint.dualstack.us-west-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com","s3-fips.dualstack.us-west-2.amazonaws.com","s3-website.dualstack.us-west-2.amazonaws.com","s3.us-west-2.amazonaws.com","s3-accesspoint.us-west-2.amazonaws.com","s3-accesspoint-fips.us-west-2.amazonaws.com","s3-deprecated.us-west-2.amazonaws.com","s3-fips.us-west-2.amazonaws.com","s3-object-lambda.us-west-2.amazonaws.com","s3-website.us-west-2.amazonaws.com","labeling.ap-northeast-1.sagemaker.aws","labeling.ap-northeast-2.sagemaker.aws","labeling.ap-south-1.sagemaker.aws","labeling.ap-southeast-1.sagemaker.aws","labeling.ap-southeast-2.sagemaker.aws","labeling.ca-central-1.sagemaker.aws","labeling.eu-central-1.sagemaker.aws","labeling.eu-west-1.sagemaker.aws","labeling.eu-west-2.sagemaker.aws","labeling.us-east-1.sagemaker.aws","labeling.us-east-2.sagemaker.aws","labeling.us-west-2.sagemaker.aws","notebook.af-south-1.sagemaker.aws","notebook.ap-east-1.sagemaker.aws","notebook.ap-northeast-1.sagemaker.aws","notebook.ap-northeast-2.sagemaker.aws","notebook.ap-northeast-3.sagemaker.aws","notebook.ap-south-1.sagemaker.aws","notebook.ap-south-2.sagemaker.aws","notebook.ap-southeast-1.sagemaker.aws","notebook.ap-southeast-2.sagemaker.aws","notebook.ap-southeast-3.sagemaker.aws","notebook.ap-southeast-4.sagemaker.aws","notebook.ca-central-1.sagemaker.aws","notebook-fips.ca-central-1.sagemaker.aws","notebook.ca-west-1.sagemaker.aws","notebook-fips.ca-west-1.sagemaker.aws","notebook.eu-central-1.sagemaker.aws","notebook.eu-central-2.sagemaker.aws","notebook.eu-north-1.sagemaker.aws","notebook.eu-south-1.sagemaker.aws","notebook.eu-south-2.sagemaker.aws","notebook.eu-west-1.sagemaker.aws","notebook.eu-west-2.sagemaker.aws","notebook.eu-west-3.sagemaker.aws","notebook.il-central-1.sagemaker.aws","notebook.me-central-1.sagemaker.aws","notebook.me-south-1.sagemaker.aws","notebook.sa-east-1.sagemaker.aws","notebook.us-east-1.sagemaker.aws","notebook-fips.us-east-1.sagemaker.aws","notebook.us-east-2.sagemaker.aws","notebook-fips.us-east-2.sagemaker.aws","notebook.us-gov-east-1.sagemaker.aws","notebook-fips.us-gov-east-1.sagemaker.aws","notebook.us-gov-west-1.sagemaker.aws","notebook-fips.us-gov-west-1.sagemaker.aws","notebook.us-west-1.sagemaker.aws","notebook-fips.us-west-1.sagemaker.aws","notebook.us-west-2.sagemaker.aws","notebook-fips.us-west-2.sagemaker.aws","notebook.cn-north-1.sagemaker.com.cn","notebook.cn-northwest-1.sagemaker.com.cn","studio.af-south-1.sagemaker.aws","studio.ap-east-1.sagemaker.aws","studio.ap-northeast-1.sagemaker.aws","studio.ap-northeast-2.sagemaker.aws","studio.ap-northeast-3.sagemaker.aws","studio.ap-south-1.sagemaker.aws","studio.ap-southeast-1.sagemaker.aws","studio.ap-southeast-2.sagemaker.aws","studio.ap-southeast-3.sagemaker.aws","studio.ca-central-1.sagemaker.aws","studio.eu-central-1.sagemaker.aws","studio.eu-north-1.sagemaker.aws","studio.eu-south-1.sagemaker.aws","studio.eu-south-2.sagemaker.aws","studio.eu-west-1.sagemaker.aws","studio.eu-west-2.sagemaker.aws","studio.eu-west-3.sagemaker.aws","studio.il-central-1.sagemaker.aws","studio.me-central-1.sagemaker.aws","studio.me-south-1.sagemaker.aws","studio.sa-east-1.sagemaker.aws","studio.us-east-1.sagemaker.aws","studio.us-east-2.sagemaker.aws","studio.us-gov-east-1.sagemaker.aws","studio-fips.us-gov-east-1.sagemaker.aws","studio.us-gov-west-1.sagemaker.aws","studio-fips.us-gov-west-1.sagemaker.aws","studio.us-west-1.sagemaker.aws","studio.us-west-2.sagemaker.aws","studio.cn-north-1.sagemaker.com.cn","studio.cn-northwest-1.sagemaker.com.cn","*.experiments.sagemaker.aws","analytics-gateway.ap-northeast-1.amazonaws.com","analytics-gateway.ap-northeast-2.amazonaws.com","analytics-gateway.ap-south-1.amazonaws.com","analytics-gateway.ap-southeast-1.amazonaws.com","analytics-gateway.ap-southeast-2.amazonaws.com","analytics-gateway.eu-central-1.amazonaws.com","analytics-gateway.eu-west-1.amazonaws.com","analytics-gateway.us-east-1.amazonaws.com","analytics-gateway.us-east-2.amazonaws.com","analytics-gateway.us-west-2.amazonaws.com","amplifyapp.com","*.awsapprunner.com","webview-assets.aws-cloud9.af-south-1.amazonaws.com","vfs.cloud9.af-south-1.amazonaws.com","webview-assets.cloud9.af-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-east-1.amazonaws.com","vfs.cloud9.ap-east-1.amazonaws.com","webview-assets.cloud9.ap-east-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com","vfs.cloud9.ap-northeast-1.amazonaws.com","webview-assets.cloud9.ap-northeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com","vfs.cloud9.ap-northeast-2.amazonaws.com","webview-assets.cloud9.ap-northeast-2.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com","vfs.cloud9.ap-northeast-3.amazonaws.com","webview-assets.cloud9.ap-northeast-3.amazonaws.com","webview-assets.aws-cloud9.ap-south-1.amazonaws.com","vfs.cloud9.ap-south-1.amazonaws.com","webview-assets.cloud9.ap-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com","vfs.cloud9.ap-southeast-1.amazonaws.com","webview-assets.cloud9.ap-southeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com","vfs.cloud9.ap-southeast-2.amazonaws.com","webview-assets.cloud9.ap-southeast-2.amazonaws.com","webview-assets.aws-cloud9.ca-central-1.amazonaws.com","vfs.cloud9.ca-central-1.amazonaws.com","webview-assets.cloud9.ca-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-central-1.amazonaws.com","vfs.cloud9.eu-central-1.amazonaws.com","webview-assets.cloud9.eu-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-north-1.amazonaws.com","vfs.cloud9.eu-north-1.amazonaws.com","webview-assets.cloud9.eu-north-1.amazonaws.com","webview-assets.aws-cloud9.eu-south-1.amazonaws.com","vfs.cloud9.eu-south-1.amazonaws.com","webview-assets.cloud9.eu-south-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-1.amazonaws.com","vfs.cloud9.eu-west-1.amazonaws.com","webview-assets.cloud9.eu-west-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-2.amazonaws.com","vfs.cloud9.eu-west-2.amazonaws.com","webview-assets.cloud9.eu-west-2.amazonaws.com","webview-assets.aws-cloud9.eu-west-3.amazonaws.com","vfs.cloud9.eu-west-3.amazonaws.com","webview-assets.cloud9.eu-west-3.amazonaws.com","webview-assets.aws-cloud9.il-central-1.amazonaws.com","vfs.cloud9.il-central-1.amazonaws.com","webview-assets.aws-cloud9.me-south-1.amazonaws.com","vfs.cloud9.me-south-1.amazonaws.com","webview-assets.cloud9.me-south-1.amazonaws.com","webview-assets.aws-cloud9.sa-east-1.amazonaws.com","vfs.cloud9.sa-east-1.amazonaws.com","webview-assets.cloud9.sa-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-1.amazonaws.com","vfs.cloud9.us-east-1.amazonaws.com","webview-assets.cloud9.us-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-2.amazonaws.com","vfs.cloud9.us-east-2.amazonaws.com","webview-assets.cloud9.us-east-2.amazonaws.com","webview-assets.aws-cloud9.us-west-1.amazonaws.com","vfs.cloud9.us-west-1.amazonaws.com","webview-assets.cloud9.us-west-1.amazonaws.com","webview-assets.aws-cloud9.us-west-2.amazonaws.com","vfs.cloud9.us-west-2.amazonaws.com","webview-assets.cloud9.us-west-2.amazonaws.com","awsapps.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","af-south-1.elasticbeanstalk.com","ap-east-1.elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ap-southeast-3.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-north-1.elasticbeanstalk.com","eu-south-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","il-central-1.elasticbeanstalk.com","me-south-1.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-east-1.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com.cn","*.elb.amazonaws.com","awsglobalaccelerator.com","*.private.repost.aws","eero.online","eero-stage.online","apigee.io","panel.dev","siiites.com","appspacehosted.com","appspaceusercontent.com","appudo.net","on-aptible.com","f5.si","arvanedge.ir","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","cdn.prod.atlassian-dev.net","translated.page","myfritz.link","myfritz.net","onavstack.net","*.awdev.ca","*.advisor.ws","ecommerce-shop.pl","b-data.io","balena-devices.com","base.ec","official.ec","buyshop.jp","fashionstore.jp","handcrafted.jp","kawaiishop.jp","supersale.jp","theshop.jp","shopselect.net","base.shop","beagleboard.io","*.beget.app","pages.gay","bnr.la","bitbucket.io","blackbaudcdn.net","of.je","bluebite.io","boomla.net","boutir.com","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","*.s.brave.io","shop.brendly.hr","shop.brendly.rs","browsersafetymark.io","radio.am","radio.fm","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","cafjs.com","canva-apps.cn","*.my.canvasite.cn","canva-apps.com","*.my.canva.site","drr.ac","uwu.ai","carrd.co","crd.co","ju.mp","api.gov.uk","cdn77-storage.com","rsc.contentproxy9.cz","r.cdn77.net","cdn77-ssl.net","c.cdn77.org","rsc.cdn77.org","ssl.origin.cdn77-secure.org","za.bz","br.com","cn.com","de.com","eu.com","jpn.com","mex.com","ru.com","sa.com","uk.com","us.com","za.com","com.de","gb.net","hu.net","jp.net","se.net","uk.net","ae.org","com.se","cx.ua","discourse.group","discourse.team","clerk.app","clerkstage.app","*.lcl.dev","*.lclstage.dev","*.stg.dev","*.stgstage.dev","cleverapps.cc","*.services.clever-cloud.com","cleverapps.io","cleverapps.tech","clickrising.net","cloudns.asia","cloudns.be","cloud-ip.biz","cloudns.biz","cloudns.cc","cloudns.ch","cloudns.cl","cloudns.club","dnsabr.com","ip-ddns.com","cloudns.cx","cloudns.eu","cloudns.in","cloudns.info","ddns-ip.net","dns-cloud.net","dns-dynamic.net","cloudns.nz","cloudns.org","ip-dynamic.org","cloudns.ph","cloudns.pro","cloudns.pw","cloudns.us","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","*.cloudera.site","cf-ipfs.com","cloudflare-ipfs.com","trycloudflare.com","pages.dev","r2.dev","workers.dev","cloudflare.net","cdn.cloudflare.net","cdn.cloudflareanycast.net","cdn.cloudflarecn.net","cdn.cloudflareglobal.net","cust.cloudscale.ch","objects.lpg.cloudscale.ch","objects.rma.cloudscale.ch","wnext.app","cnpy.gdn","*.otap.co","co.ca","co.com","codeberg.page","csb.app","preview.csb.app","co.nl","co.no","webhosting.be","hosting-cluster.nl","ctfcloud.net","convex.site","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dnsupdater.de","dynamisches-dns.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","craft.me","realm.cz","on.crisp.email","*.cryptonomic.net","curv.dev","cfolks.pl","cyon.link","cyon.site","platform0.app","fnwk.site","folionetwork.site","biz.dk","co.dk","firm.dk","reg.dk","store.dk","dyndns.dappnode.io","builtwithdark.com","darklang.io","demo.datadetect.com","instance.datadetect.com","edgestack.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyn-ip24.de","dyndns1.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","debian.net","definima.io","definima.net","deno.dev","deno-staging.dev","dedyn.io","deta.app","deta.dev","dfirma.pl","dkonto.pl","you2.pl","ondigitalocean.app","*.digitaloceanspaces.com","us.kg","rss.my.id","diher.solutions","discordsays.com","discordsez.com","jozi.biz","dnshome.de","online.th","shop.th","drayddns.com","shoparena.pl","dreamhosters.com","durumis.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns.biz","for-better.biz","for-more.biz","for-some.biz","for-the.biz","selfip.biz","webhop.biz","ftpaccess.cc","game-server.cc","myphotos.cc","scrapping.cc","blogdns.com","cechire.com","dnsalias.com","dnsdojo.com","doesntexist.com","dontexist.com","doomdns.com","dyn-o-saur.com","dynalias.com","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","from-ak.com","from-al.com","from-ar.com","from-ca.com","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-ma.com","from-md.com","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","getmyip.com","gotdns.com","hobby-site.com","homelinux.com","homeunix.com","iamallama.com","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bulls-fan.com","is-a-caterer.com","is-a-chef.com","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-certified.com","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-not-certified.com","is-slick.com","is-uberleet.com","is-with-theband.com","isa-geek.com","isa-hockeynut.com","issmarterthanyou.com","likes-pie.com","likescandy.com","neat-url.com","saves-the-whales.com","selfip.com","sells-for-less.com","sells-for-u.com","servebbs.com","simple-url.com","space-to-rent.com","teaches-yoga.com","writesthisblog.com","ath.cx","fuettertdasnetz.de","isteingeek.de","istmein.de","lebtimnetz.de","leitungsen.de","traeumtgerade.de","barrel-of-knowledge.info","barrell-of-knowledge.info","dyndns.info","for-our.info","groks-the.info","groks-this.info","here-for-more.info","knowsitall.info","selfip.info","webhop.info","forgot.her.name","forgot.his.name","at-band-camp.net","blogdns.net","broke-it.net","buyshouses.net","dnsalias.net","dnsdojo.net","does-it.net","dontexist.net","dynalias.net","dynathome.net","endofinternet.net","from-az.net","from-co.net","from-la.net","from-ny.net","gets-it.net","ham-radio-op.net","homeftp.net","homeip.net","homelinux.net","homeunix.net","in-the-band.net","is-a-chef.net","is-a-geek.net","isa-geek.net","kicks-ass.net","office-on-the.net","podzone.net","scrapper-site.net","selfip.net","sells-it.net","servebbs.net","serveftp.net","thruhere.net","webhop.net","merseine.nu","mine.nu","shacknet.nu","blogdns.org","blogsite.org","boldlygoingnowhere.org","dnsalias.org","dnsdojo.org","doesntexist.org","dontexist.org","doomdns.org","dvrdns.org","dynalias.org","dyndns.org","go.dyndns.org","home.dyndns.org","endofinternet.org","endoftheinternet.org","from-me.org","game-host.org","gotdns.org","hobby-site.org","homedns.org","homeftp.org","homelinux.org","homeunix.org","is-a-bruinsfan.org","is-a-candidate.org","is-a-celticsfan.org","is-a-chef.org","is-a-geek.org","is-a-knight.org","is-a-linux-user.org","is-a-patsfan.org","is-a-soxfan.org","is-found.org","is-lost.org","is-saved.org","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","isa-geek.org","kicks-ass.org","misconfused.org","podzone.org","readmyblog.org","selfip.org","sellsyourhome.org","servebbs.org","serveftp.org","servegame.org","stuff-4-sale.org","webhop.org","better-than.tv","dyndns.tv","on-the-web.tv","worse-than.tv","is-by.us","land-4-sale.us","stuff-4-sale.us","dyndns.ws","mypets.ws","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","dynv6.net","e4.cz","easypanel.app","easypanel.host","*.ewp.live","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","at.emf.camp","rt.ht","elementor.cloud","elementor.cool","en-root.fr","mytuleap.com","tuleap-partners.com","encr.app","encoreapi.com","eu.encoway.cloud","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","pl.eu.org","pt.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eurodir.ru","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","relay.evervault.app","relay.evervault.dev","expo.app","staging.expo.app","onfabrica.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","edgecompute.app","fastly-edge.com","fastly-terrarium.com","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastlylb.net","map.fastlylb.net","*.user.fm","fastvps-server.com","fastvps.host","myfast.host","fastvps.site","myfast.space","conn.uk","copro.uk","hosp.uk","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","fh-muenster.io","filegear.me","firebaseapp.com","fldrv.com","flutterflow.app","fly.dev","shw.io","edgeapp.net","forgeblocks.com","id.forgerock.io","framer.ai","framer.app","framercanvas.com","framer.media","framer.photos","framer.website","framer.wiki","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","freemyip.com","*.frusky.de","wien.funkfeuer.at","daemon.asia","dix.asia","mydns.bz","0am.jp","0g0.jp","0j0.jp","0t0.jp","mydns.jp","pgw.jp","wjg.jp","keyword-on.net","live-on.net","server-on.net","mydns.tw","mydns.vc","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","aliases121.com","campaign.gov.uk","service.gov.uk","independent-commission.uk","independent-inquest.uk","independent-inquiry.uk","independent-panel.uk","independent-review.uk","public-inquiry.uk","royal-commission.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","gentlentapis.com","lab.ms","cdn-edges.net","localcert.net","localhostcert.net","gsj.bz","githubusercontent.com","githubpreview.dev","github.io","gitlab.io","gitapp.si","gitpage.si","glitch.me","nog.community","co.ro","shop.ro","lolipop.io","angry.jp","babyblue.jp","babymilk.jp","backdrop.jp","bambina.jp","bitter.jp","blush.jp","boo.jp","boy.jp","boyfriend.jp","but.jp","candypop.jp","capoo.jp","catfood.jp","cheap.jp","chicappa.jp","chillout.jp","chips.jp","chowder.jp","chu.jp","ciao.jp","cocotte.jp","coolblog.jp","cranky.jp","cutegirl.jp","daa.jp","deca.jp","deci.jp","digick.jp","egoism.jp","fakefur.jp","fem.jp","flier.jp","floppy.jp","fool.jp","frenchkiss.jp","girlfriend.jp","girly.jp","gloomy.jp","gonna.jp","greater.jp","hacca.jp","heavy.jp","her.jp","hiho.jp","hippy.jp","holy.jp","hungry.jp","icurus.jp","itigo.jp","jellybean.jp","kikirara.jp","kill.jp","kilo.jp","kuron.jp","littlestar.jp","lolipopmc.jp","lolitapunk.jp","lomo.jp","lovepop.jp","lovesick.jp","main.jp","mods.jp","mond.jp","mongolian.jp","moo.jp","namaste.jp","nikita.jp","nobushi.jp","noor.jp","oops.jp","parallel.jp","parasite.jp","pecori.jp","peewee.jp","penne.jp","pepper.jp","perma.jp","pigboat.jp","pinoko.jp","punyu.jp","pupu.jp","pussycat.jp","pya.jp","raindrop.jp","readymade.jp","sadist.jp","schoolbus.jp","secret.jp","staba.jp","stripper.jp","sub.jp","sunnyday.jp","thick.jp","tonkotsu.jp","under.jp","upper.jp","velvet.jp","verse.jp","versus.jp","vivian.jp","watson.jp","weblike.jp","whitesnow.jp","zombie.jp","heteml.net","graphic.design","goip.de","blogspot.ae","blogspot.al","blogspot.am","*.hosted.app","*.run.app","web.app","blogspot.com.ar","blogspot.co.at","blogspot.com.au","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.com.br","blogspot.com.by","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.com.co","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.com","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","withgoogle.com","withyoutube.com","blogspot.cv","blogspot.com.cy","blogspot.cz","blogspot.de","*.gateway.dev","blogspot.dk","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.fi","blogspot.fr","cloud.goog","translate.goog","*.usercontent.goog","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.co.id","blogspot.ie","blogspot.co.il","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.co.ke","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.com.mt","blogspot.mx","blogspot.my","cloudfunctions.net","blogspot.com.ng","blogspot.nl","blogspot.no","blogspot.co.nz","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.com.tr","blogspot.tw","blogspot.ug","blogspot.co.uk","blogspot.com.uy","blogspot.vn","blogspot.co.za","goupile.fr","pymnt.uk","cloudapps.digital","london.cloudapps.digital","gov.nl","grafana-dev.net","grayjayleagues.com","günstigbestellen.de","günstigliefern.de","fin.ci","free.hr","caa.li","ua.rs","conf.se","häkkinen.fi","hrsn.dev","hashbang.sh","hasura.app","hasura-app.io","hatenablog.com","hatenadiary.com","hateblo.jp","hatenablog.jp","hatenadiary.jp","hatenadiary.org","pages.it.hs-heilbronn.de","pages-research.it.hs-heilbronn.de","heiyu.space","helioho.st","heliohost.us","hepforge.org","herokuapp.com","herokussl.com","heyflow.page","heyflow.site","ravendb.cloud","ravendb.community","development.run","ravendb.run","homesklep.pl","*.kin.one","*.id.pub","*.kin.pub","secaas.hk","hoplix.shop","orx.biz","biz.gl","biz.ng","co.biz.ng","dl.biz.ng","go.biz.ng","lg.biz.ng","on.biz.ng","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","plc.ng","ie.ua","hostyhosting.io","hf.space","static.hf.space","hypernode.io","iobb.net","co.cz","*.moonscale.io","moonscale.net","gr.com","iki.fi","ibxos.it","iliadboxos.it","smushcdn.com","wphostedmail.com","wpmucdn.com","tempurl.host","wpmudev.host","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-vpn.de","in-dsl.net","in-vpn.net","in-dsl.org","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","na4u.ru","apps-1and1.com","live-website.com","apps-1and1.net","websitebuilder.online","app-ionos.space","iopsys.se","*.dweb.link","ipifony.net","ir.md","is-a-good.dev","is-a.dev","iservschule.de","mein-iserv.de","schulplattform.de","schulserver.de","test-iserv.de","iserv.dev","mel.cloudlets.com.au","cloud.interhostsolutions.be","alp1.ae.flow.ch","appengine.flow.ch","es-1.axarnet.cloud","diadem.cloud","vip.jelastic.cloud","jele.cloud","it1.eur.aruba.jenv-aruba.cloud","it1.jenv-aruba.cloud","keliweb.cloud","cs.keliweb.cloud","oxa.cloud","tn.oxa.cloud","uk.oxa.cloud","primetel.cloud","uk.primetel.cloud","ca.reclaim.cloud","uk.reclaim.cloud","us.reclaim.cloud","ch.trendhosting.cloud","de.trendhosting.cloud","jele.club","dopaas.com","paas.hosted-by-previder.com","rag-cloud.hosteur.com","rag-cloud-ch.hosteur.com","jcloud.ik-server.com","jcloud-ver-jpc.ik-server.com","demo.jelastic.com","paas.massivegrid.com","jed.wafaicloud.com","ryd.wafaicloud.com","j.scaleforce.com.cy","jelastic.dogado.eu","fi.cloudplatform.fi","demo.datacenter.fi","paas.datacenter.fi","jele.host","mircloud.host","paas.beebyte.io","sekd1.beebyteapp.io","jele.io","jc.neen.it","jcloud.kz","cloudjiffy.net","fra1-de.cloudjiffy.net","west1-us.cloudjiffy.net","jls-sto1.elastx.net","jls-sto2.elastx.net","jls-sto3.elastx.net","fr-1.paas.massivegrid.net","lon-1.paas.massivegrid.net","lon-2.paas.massivegrid.net","ny-1.paas.massivegrid.net","ny-2.paas.massivegrid.net","sg-1.paas.massivegrid.net","jelastic.saveincloud.net","nordeste-idc.saveincloud.net","j.scaleforce.net","sdscloud.pl","unicloud.pl","mircloud.ru","enscaled.sg","jele.site","jelastic.team","orangecloud.tn","j.layershift.co.uk","phx.enscaled.us","mircloud.us","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","jotelulu.cloud","webadorsite.com","jouwweb.site","*.cns.joyent.com","*.triton.zone","js.org","kaas.gg","khplay.nl","kapsi.fi","ezproxy.kuleuven.be","kuleuven.cloud","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","koobin.events","webthings.io","krellian.net","oya.to","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","libp2p.direct","runcontainers.dev","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","linkyard-cloud.ch","linkyard.cloud","members.linode.com","*.nodebalancer.linode.com","*.linodeobjects.com","ip.linodeusercontent.com","we.bs","filegear-sg.me","ggff.net","*.user.localcert.dev","lodz.pl","pabianice.pl","plock.pl","sieradz.pl","skierniewice.pl","zgierz.pl","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","lohmus.me","servers.run","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.club","barsycenter.com","barsyonline.com","barsy.de","barsy.dev","barsy.eu","barsy.gr","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsyonline.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.ro","barsy.rs","barsy.shop","barsyonline.shop","barsy.site","barsy.store","barsy.support","barsy.uk","barsy.co.uk","barsyonline.co.uk","*.magentosite.cloud","hb.cldmail.ru","matlab.cloud","modelscape.com","mwcloudnonprod.com","polyspace.com","mayfirst.info","mayfirst.org","mazeplay.com","mcdir.me","mcdir.ru","vps.mcdir.ru","mcpre.ru","mediatech.by","mediatech.dev","hra.health","medusajs.app","miniserver.com","memset.net","messerli.app","atmeta.com","apps.fbsbx.com","*.cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","*.azurecontainer.io","azure-api.net","azure-mobile.net","azureedge.net","azurefd.net","azurestaticapps.net","1.azurestaticapps.net","2.azurestaticapps.net","3.azurestaticapps.net","4.azurestaticapps.net","5.azurestaticapps.net","6.azurestaticapps.net","7.azurestaticapps.net","centralus.azurestaticapps.net","eastasia.azurestaticapps.net","eastus2.azurestaticapps.net","westeurope.azurestaticapps.net","westus2.azurestaticapps.net","azurewebsites.net","cloudapp.net","trafficmanager.net","blob.core.windows.net","servicebus.windows.net","routingthecloud.com","sn.mynetname.net","routingthecloud.net","routingthecloud.org","csx.cc","mydbserver.com","webspaceconfig.de","mittwald.info","mittwaldserver.info","typo3server.info","project.space","modx.dev","bmoattachments.org","net.ru","org.ru","pp.ru","hostedpi.com","caracal.mythic-beasts.com","customer.mythic-beasts.com","fentiger.mythic-beasts.com","lynx.mythic-beasts.com","ocelot.mythic-beasts.com","oncilla.mythic-beasts.com","onza.mythic-beasts.com","sphinx.mythic-beasts.com","vs.mythic-beasts.com","x.mythic-beasts.com","yali.mythic-beasts.com","cust.retrosnub.co.uk","ui.nabu.casa","cloud.nospamproxy.com","netfy.app","netlify.app","4u.com","nfshost.com","ipfs.nftstorage.link","ngo.us","ngrok.app","ngrok-free.app","ngrok.dev","ngrok-free.dev","ngrok.io","ap.ngrok.io","au.ngrok.io","eu.ngrok.io","in.ngrok.io","jp.ngrok.io","sa.ngrok.io","us.ngrok.io","ngrok.pizza","ngrok.pro","torun.pl","nh-serv.co.uk","nimsite.uk","mmafan.biz","myftp.biz","no-ip.biz","no-ip.ca","fantasyleague.cc","gotdns.ch","3utilities.com","blogsyte.com","ciscofreak.com","damnserver.com","ddnsking.com","ditchyourip.com","dnsiskinky.com","dynns.com","geekgalaxy.com","health-carereform.com","homesecuritymac.com","homesecuritypc.com","myactivedirectory.com","mysecuritycamera.com","myvnc.com","net-freaks.com","onthewifi.com","point2this.com","quicksytes.com","securitytactics.com","servebeer.com","servecounterstrike.com","serveexchange.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","servehumour.com","serveirc.com","servemp3.com","servep2p.com","servepics.com","servequake.com","servesarcasm.com","stufftoread.com","unusualperson.com","workisboring.com","dvrcam.info","ilovecollege.info","no-ip.info","brasilia.me","ddns.me","dnsfor.me","hopto.me","loginto.me","noip.me","webhop.me","bounceme.net","ddns.net","eating-organic.net","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.net","nhlfan.net","no-ip.net","pgafan.net","privatizehealthinsurance.net","redirectme.net","serveblog.net","serveminecraft.net","sytes.net","cable-modem.org","collegefan.org","couchpotatofries.org","hopto.org","mlbfan.org","myftp.org","mysecuritycamera.org","nflfan.org","no-ip.org","read-books.org","ufcfan.org","zapto.org","no-ip.co.uk","golffan.us","noip.us","pointto.us","stage.nodeart.io","*.developer.app","noop.app","*.northflank.app","*.build.run","*.code.run","*.database.run","*.migration.run","noticeable.news","notion.site","dnsking.ch","mypi.co","n4t.co","001www.com","myiphost.com","forumz.info","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","nsupdate.info","nerdpol.ovh","nyc.mn","prvcy.page","obl.ong","observablehq.cloud","static.observableusercontent.com","omg.lol","cloudycluster.net","omniwe.site","123webseite.at","123website.be","simplesite.com.br","123website.ch","simplesite.com","123webseite.de","123hjemmeside.dk","123miweb.es","123kotisivu.fi","123siteweb.fr","simplesite.gr","123homepage.it","123website.lu","123website.nl","123hjemmeside.no","service.one","simplesite.pl","123paginaweb.pt","123minsida.se","is-a-fullstack.dev","is-cool.dev","is-not-a.dev","localplayer.dev","is-local.org","opensocial.site","opencraft.hosting","16-b.it","32-b.it","64-b.it","orsites.com","operaunite.com","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","*.oraclecloudapps.com","*.oraclegovcloudapps.com","*.oraclegovcloudapps.uk","tech.orange","can.re","authgear-staging.com","authgearapps.com","skygearapp.com","outsystemscloud.com","*.hosting.ovh.net","*.webpaas.ovh.net","ownprovider.com","own.pm","*.owo.codes","ox.rs","oy.lc","pgfog.com","pagexl.com","gotpantheon.com","pantheonsite.io","*.paywhirl.com","*.xmit.co","xmit.dev","madethis.site","srv.us","gh.srv.us","gl.srv.us","lk3.ru","mypep.link","perspecta.cloud","on-web.fr","*.upsun.app","upsunapp.com","ent.platform.sh","eu.platform.sh","us.platform.sh","*.platformsh.site","*.tst.site","platter-app.com","platter-app.dev","platterp.us","pley.games","onporter.run","co.bn","postman-echo.com","pstmn.io","mock.pstmn.io","httpbin.org","prequalifyme.today","xen.prgmr.com","priv.at","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","pythonanywhere.com","eu.pythonanywhere.com","qa2.com","qcx.io","*.sys.qcx.io","myqnapcloud.cn","alpha-myqnapcloud.com","dev-myqnapcloud.com","mycloudnas.com","mynascloud.com","myqnapcloud.com","qoto.io","qualifioapp.com","ladesk.com","qbuser.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","cloudsite.builders","myradweb.net","servername.us","web.in","in.net","myrdbx.io","site.rb-hosting.io","*.on-rancher.cloud","*.on-k3s.io","*.on-rio.io","ravpage.co.il","readthedocs-hosted.com","readthedocs.io","rhcloud.com","instances.spawn.cc","onrender.com","app.render.com","replit.app","id.replit.app","firewalledreplit.co","id.firewalledreplit.co","repl.co","id.repl.co","replit.dev","archer.replit.dev","bones.replit.dev","canary.replit.dev","global.replit.dev","hacker.replit.dev","id.replit.dev","janeway.replit.dev","kim.replit.dev","kira.replit.dev","kirk.replit.dev","odo.replit.dev","paris.replit.dev","picard.replit.dev","pike.replit.dev","prerelease.replit.dev","reed.replit.dev","riker.replit.dev","sisko.replit.dev","spock.replit.dev","staging.replit.dev","sulu.replit.dev","tarpit.replit.dev","teams.replit.dev","tucker.replit.dev","wesley.replit.dev","worf.replit.dev","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","adimo.co.uk","itcouldbewor.se","aus.basketball","nz.basketball","git-pages.rit.edu","rocky.page","rub.de","ruhr-uni-bochum.de","io.noc.ruhr-uni-bochum.de","биз.рус","ком.рус","крым.рус","мир.рус","мск.рус","орг.рус","самара.рус","сочи.рус","спб.рус","я.рус","ras.ru","nyat.app","180r.com","dojin.com","sakuratan.com","sakuraweb.com","x0.com","2-d.jp","bona.jp","crap.jp","daynight.jp","eek.jp","flop.jp","halfmoon.jp","jeez.jp","matrix.jp","mimoza.jp","ivory.ne.jp","mail-box.ne.jp","mints.ne.jp","mokuren.ne.jp","opal.ne.jp","sakura.ne.jp","sumomo.ne.jp","topaz.ne.jp","netgamers.jp","nyanta.jp","o0o0.jp","rdy.jp","rgr.jp","rulez.jp","s3.isk01.sakurastorage.jp","s3.isk02.sakurastorage.jp","saloon.jp","sblo.jp","skr.jp","tank.jp","uh-oh.jp","undo.jp","rs.webaccel.jp","user.webaccel.jp","websozai.jp","xii.jp","squares.net","jpn.org","kirara.st","x0.to","from.tv","sakura.tv","*.builder.code.com","*.dev-builder.code.com","*.stg-builder.code.com","*.001.test.code-builder-stg.platform.salesforce.com","*.d.crm.dev","*.w.crm.dev","*.wa.crm.dev","*.wb.crm.dev","*.wc.crm.dev","*.wd.crm.dev","*.we.crm.dev","*.wf.crm.dev","sandcats.io","logoip.com","logoip.de","fr-par-1.baremetal.scw.cloud","fr-par-2.baremetal.scw.cloud","nl-ams-1.baremetal.scw.cloud","cockpit.fr-par.scw.cloud","fnc.fr-par.scw.cloud","functions.fnc.fr-par.scw.cloud","k8s.fr-par.scw.cloud","nodes.k8s.fr-par.scw.cloud","s3.fr-par.scw.cloud","s3-website.fr-par.scw.cloud","whm.fr-par.scw.cloud","priv.instances.scw.cloud","pub.instances.scw.cloud","k8s.scw.cloud","cockpit.nl-ams.scw.cloud","k8s.nl-ams.scw.cloud","nodes.k8s.nl-ams.scw.cloud","s3.nl-ams.scw.cloud","s3-website.nl-ams.scw.cloud","whm.nl-ams.scw.cloud","cockpit.pl-waw.scw.cloud","k8s.pl-waw.scw.cloud","nodes.k8s.pl-waw.scw.cloud","s3.pl-waw.scw.cloud","s3-website.pl-waw.scw.cloud","scalebook.scw.cloud","smartlabeling.scw.cloud","dedibox.fr","schokokeks.net","gov.scot","service.gov.scot","scrysec.com","client.scrypted.io","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","seidat.net","sellfy.store","minisite.ms","senseering.net","servebolt.cloud","biz.ua","co.ua","pp.ua","as.sh.cn","sheezy.games","shiftedit.io","myshopblocks.com","myshopify.com","shopitsite.com","shopware.shop","shopware.store","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","small-web.org","aeroport.fr","avocat.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","vp4.me","*.snowflake.app","*.privatelink.snowflake.app","streamlit.app","streamlitapp.com","try-snowplow.com","mafelo.net","playstation-cloud.com","srht.site","apps.lair.io","*.stolos.io","spacekit.io","ind.mom","customer.speedpartner.de","myspreadshop.at","myspreadshop.com.au","myspreadshop.be","myspreadshop.ca","myspreadshop.ch","myspreadshop.com","myspreadshop.de","myspreadshop.dk","myspreadshop.es","myspreadshop.fi","myspreadshop.fr","myspreadshop.ie","myspreadshop.it","myspreadshop.net","myspreadshop.nl","myspreadshop.no","myspreadshop.pl","myspreadshop.se","myspreadshop.co.uk","w-corp-staticblitz.com","w-credentialless-staticblitz.com","w-staticblitz.com","stackhero-network.com","runs.onstackit.cloud","stackit.gg","stackit.rocks","stackit.run","stackit.zone","musician.io","novecore.site","api.stdlib.com","feedback.ac","forms.ac","assessments.cx","calculators.cx","funnels.cx","paynow.cx","quizzes.cx","researched.cx","tests.cx","surveys.so","storebase.store","storipress.app","storj.farm","strapiapp.com","media.strapiapp.com","vps-host.net","atl.jelastic.vps-host.net","njs.jelastic.vps-host.net","ric.jelastic.vps-host.net","streak-link.com","streaklinks.com","streakusercontent.com","soc.srcf.net","user.srcf.net","utwente.io","temp-dns.com","supabase.co","supabase.in","supabase.net","syncloud.it","dscloud.biz","direct.quickconnect.cn","dsmynas.com","familyds.com","diskstation.me","dscloud.me","i234.me","myds.me","synology.me","dscloud.mobi","dsmynas.net","familyds.net","dsmynas.org","familyds.org","direct.quickconnect.to","vpnplus.to","mytabit.com","mytabit.co.il","tabitorder.co.il","taifun-dns.de","ts.net","*.c.ts.net","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","taveusercontent.com","p.tawk.email","p.tawkto.email","site.tb-hosting.com","edugit.io","s3.teckids.org","telebit.app","telebit.io","*.telebit.xyz","*.firenet.ch","*.svc.firenet.ch","reservd.com","thingdustdata.com","cust.dev.thingdust.io","reservd.dev.thingdust.io","cust.disrec.thingdust.io","reservd.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","reservd.testing.thingdust.io","tickets.io","arvo.network","azimuth.network","tlon.network","torproject.net","pages.torproject.net","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","site.transip.me","*.transurl.nl","tuxfamily.org","dd-dns.de","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","diskstation.eu","diskstation.org","typedream.app","pro.typeform.com","*.uberspace.de","uber.space","hk.com","inc.hk","ltd.hk","hk.org","it.com","unison-services.cloud","virtual-user.de","virtualuser.de","name.pm","sch.tf","biz.wf","sch.wf","org.yt","rs.ba","bielsko.pl","upli.io","urown.cloud","dnsupdate.info","us.org","v.ua","express.val.run","web.val.run","vercel.app","v0.build","vercel.dev","vusercontent.net","now.sh","2038.io","router.management","v-info.info","voorloper.cloud","*.vultrobjects.com","wafflecell.com","webflow.io","webflowtest.io","*.webhare.dev","bookonline.app","hotelwithflight.com","reserve-online.com","reserve-online.net","cprapid.com","pleskns.com","wp2.host","pdns.page","plesk.page","wpsquared.site","*.wadl.top","remotewd.com","box.ca","pages.wiardweb.com","toolforge.org","wmcloud.org","wmflabs.org","wdh.app","panel.gg","daemon.panel.gg","wixsite.com","wixstudio.com","editorx.io","wixstudio.io","wix.run","messwithdns.com","woltlab-demo.com","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","affinitylottery.org.uk","raffleentry.org.uk","weeklylottery.org.uk","wpenginepowered.com","js.wpenginepowered.com","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","yombo.me","ynh.fr","nohost.me","noho.st","za.net","za.org","zap.cloud","zeabur.app","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"],Z=Y.reduce((e,s)=>{const c=s.replace(/^(\*\.|\!)/,""),o=A.toASCII(c),t=s.charAt(0);if(e.has(o))throw new Error(`Multiple rules found for ${s} (${o})`);return e.set(o,{rule:s,suffix:c,punySuffix:o,wildcard:t==="*",exception:t==="!"}),e},new Map),aa=e=>{const c=A.toASCII(e).split(".");for(let o=0;o<c.length;o++){const t=c.slice(o).join("."),d=Z.get(t);if(d)return d}return null},H={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},oa=e=>{const s=A.toASCII(e);if(s.length<1)return "DOMAIN_TOO_SHORT";if(s.length>255)return "DOMAIN_TOO_LONG";const c=s.split(".");let o;for(let t=0;t<c.length;++t){if(o=c[t],!o.length)return "LABEL_TOO_SHORT";if(o.length>63)return "LABEL_TOO_LONG";if(o.charAt(0)==="-")return "LABEL_STARTS_WITH_DASH";if(o.charAt(o.length-1)==="-")return "LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-_]+$/.test(o))return "LABEL_INVALID_CHARS"}},_=e=>{if(typeof e!="string")throw new TypeError("Domain name must be a string.");let s=e.slice(0).toLowerCase();s.charAt(s.length-1)==="."&&(s=s.slice(0,s.length-1));const c=oa(s);if(c)return {input:e,error:{message:H[c],code:c}};const o={input:e,tld:null,sld:null,domain:null,subdomain:null,listed:false},t=s.split(".");if(t[t.length-1]==="local")return o;const d=()=>(/xn--/.test(s)&&(o.domain&&(o.domain=A.toASCII(o.domain)),o.subdomain&&(o.subdomain=A.toASCII(o.subdomain))),o),z=aa(s);if(!z)return t.length<2?o:(o.tld=t.pop(),o.sld=t.pop(),o.domain=[o.sld,o.tld].join("."),t.length&&(o.subdomain=t.pop()),d());o.listed=true;const y=z.suffix.split("."),g=t.slice(0,t.length-y.length);return z.exception&&g.push(y.shift()),o.tld=y.join("."),!g.length||(z.wildcard&&(y.unshift(g.pop()),o.tld=y.join(".")),!g.length)||(o.sld=g.pop(),o.domain=[o.sld,o.tld].join("."),g.length&&(o.subdomain=g.join("."))),d()},N=e=>e&&_(e).domain||null,R=e=>{const s=_(e);return !!(s.domain&&s.listed)},sa={parse:_,get:N,isValid:R};exports$1.default=sa;exports$1.errorCodes=H;exports$1.get=N;exports$1.isValid=R;exports$1.parse=_;
|
|
25809
|
+
(function (exports) {
|
|
25810
|
+
Object.defineProperties(exports,{__esModule:{value:true},[Symbol.toStringTag]:{value:"Module"}});function K(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var O,F;function Q(){if(F)return O;F=1;const e=2147483647,s=36,c=1,o=26,t=38,d=700,z=72,y=128,g="-",P=/^xn--/,V=/[^\0-\x7F]/,G=/[\x2E\u3002\uFF0E\uFF61]/g,W={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},C=s-c,h=Math.floor,I=String.fromCharCode;function v(a){throw new RangeError(W[a])}function U(a,i){const m=[];let n=a.length;for(;n--;)m[n]=i(a[n]);return m}function S(a,i){const m=a.split("@");let n="";m.length>1&&(n=m[0]+"@",a=m[1]),a=a.replace(G,".");const r=a.split("."),p=U(r,i).join(".");return n+p}function L(a){const i=[];let m=0;const n=a.length;for(;m<n;){const r=a.charCodeAt(m++);if(r>=55296&&r<=56319&&m<n){const p=a.charCodeAt(m++);(p&64512)==56320?i.push(((r&1023)<<10)+(p&1023)+65536):(i.push(r),m--);}else i.push(r);}return i}const $=a=>String.fromCodePoint(...a),J=function(a){return a>=48&&a<58?26+(a-48):a>=65&&a<91?a-65:a>=97&&a<123?a-97:s},D=function(a,i){return a+22+75*(a<26)-((i!=0)<<5)},T=function(a,i,m){let n=0;for(a=m?h(a/d):a>>1,a+=h(a/i);a>C*o>>1;n+=s)a=h(a/C);return h(n+(C+1)*a/(a+t))},E=function(a){const i=[],m=a.length;let n=0,r=y,p=z,j=a.lastIndexOf(g);j<0&&(j=0);for(let u=0;u<j;++u)a.charCodeAt(u)>=128&&v("not-basic"),i.push(a.charCodeAt(u));for(let u=j>0?j+1:0;u<m;){const k=n;for(let l=1,b=s;;b+=s){u>=m&&v("invalid-input");const w=J(a.charCodeAt(u++));w>=s&&v("invalid-input"),w>h((e-n)/l)&&v("overflow"),n+=w*l;const x=b<=p?c:b>=p+o?o:b-p;if(w<x)break;const q=s-x;l>h(e/q)&&v("overflow"),l*=q;}const f=i.length+1;p=T(n-k,f,k==0),h(n/f)>e-r&&v("overflow"),r+=h(n/f),n%=f,i.splice(n++,0,r);}return String.fromCodePoint(...i)},B=function(a){const i=[];a=L(a);const m=a.length;let n=y,r=0,p=z;for(const k of a)k<128&&i.push(I(k));const j=i.length;let u=j;for(j&&i.push(g);u<m;){let k=e;for(const l of a)l>=n&&l<k&&(k=l);const f=u+1;k-n>h((e-r)/f)&&v("overflow"),r+=(k-n)*f,n=k;for(const l of a)if(l<n&&++r>e&&v("overflow"),l===n){let b=r;for(let w=s;;w+=s){const x=w<=p?c:w>=p+o?o:w-p;if(b<x)break;const q=b-x,M=s-x;i.push(I(D(x+q%M,0))),b=h(q/M);}i.push(I(D(b,0))),p=T(r,f,u===j),r=0,++u;}++r,++n;}return i.join("")};return O={version:"2.3.1",ucs2:{decode:L,encode:$},decode:E,encode:B,toASCII:function(a){return S(a,function(i){return V.test(i)?"xn--"+B(i):i})},toUnicode:function(a){return S(a,function(i){return P.test(i)?E(i.slice(4).toLowerCase()):i})}},O}var X=Q();const A=K(X),Y=["ac","com.ac","edu.ac","gov.ac","mil.ac","net.ac","org.ac","ad","ae","ac.ae","co.ae","gov.ae","mil.ae","net.ae","org.ae","sch.ae","aero","airline.aero","airport.aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","air-surveillance.aero","air-traffic-control.aero","aircraft.aero","airtraffic.aero","ambulance.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","marketplace.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","taxi.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","com.af","edu.af","gov.af","net.af","org.af","ag","co.ag","com.ag","net.ag","nom.ag","org.ag","ai","com.ai","net.ai","off.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","co.ao","ed.ao","edu.ao","gov.ao","gv.ao","it.ao","og.ao","org.ao","pb.ao","aq","ar","bet.ar","com.ar","coop.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","mutual.ar","net.ar","org.ar","senasa.ar","tur.ar","arpa","e164.arpa","home.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","sth.ac.at","co.at","gv.at","or.at","au","asn.au","com.au","edu.au","gov.au","id.au","net.au","org.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","schools.nsw.edu.au","aw","com.aw","ax","az","biz.az","com.az","edu.az","gov.az","info.az","int.az","mil.az","name.az","net.az","org.az","pp.az","pro.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","bh","com.bh","edu.bh","gov.bh","net.bh","org.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","africa.bj","agro.bj","architectes.bj","assur.bj","avocats.bj","co.bj","com.bj","eco.bj","econo.bj","edu.bj","info.bj","loisirs.bj","money.bj","net.bj","org.bj","ote.bj","restaurant.bj","resto.bj","tourism.bj","univ.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","mil.bo","net.bo","org.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","plurinacional.bo","politica.bo","profesional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","app.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bet.br","bhz.br","bib.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","coz.br","cri.br","cuiaba.br","curitiba.br","def.br","des.br","det.br","dev.br","ecn.br","eco.br","edu.br","emp.br","enf.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","geo.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","leilao.br","lel.br","log.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","rep.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","seg.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","tec.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","edu.bs","gov.bs","net.bs","org.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","co.bz","com.bz","edu.bz","gov.bz","net.bz","org.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","ac.ci","aéroport.ci","asso.ci","co.ci","com.ci","ed.ci","edu.ci","go.ci","gouv.ci","int.ci","net.ci","or.ci","org.ci","*.ck","!www.ck","cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","mil.cn","net.cn","org.cn","公司.cn","網絡.cn","网络.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gx.cn","gz.cn","ha.cn","hb.cn","he.cn","hi.cn","hk.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","mo.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","tw.cn","xj.cn","xz.cn","yn.cn","zj.cn","co","com.co","edu.co","gov.co","mil.co","net.co","nom.co","org.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","gob.cu","inf.cu","nat.cu","net.cu","org.cu","cv","com.cv","edu.cv","id.cv","int.cv","net.cv","nome.cv","org.cv","publ.cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","mil.cy","net.cy","org.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","co.dm","com.dm","edu.dm","gov.dm","net.dm","org.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","art.dz","asso.dz","com.dz","edu.dz","gov.dz","net.dz","org.dz","pol.dz","soc.dz","tm.dz","ec","com.ec","edu.ec","fin.ec","gob.ec","gov.ec","info.ec","k12.ec","med.ec","mil.ec","net.ec","org.ec","pro.ec","edu","ee","aip.ee","com.ee","edu.ee","fie.ee","gov.ee","lib.ee","med.ee","org.ee","pri.ee","riik.ee","eg","ac.eg","com.eg","edu.eg","eun.eg","gov.eg","info.eg","me.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","sport.eg","tv.eg","*.er","es","com.es","edu.es","gob.es","nom.es","org.es","et","biz.et","com.et","edu.et","gov.et","info.et","name.et","net.et","org.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","fm","com.fm","edu.fm","net.fm","org.fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","avoues.fr","cci.fr","greta.fr","huissier-justice.fr","ga","gb","gd","edu.gd","gov.gd","ge","com.ge","edu.ge","gov.ge","net.ge","org.ge","pvt.ge","school.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","mil.gh","org.gh","gi","com.gi","edu.gi","gov.gi","ltd.gi","mod.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","net.gn","org.gn","gov","gp","asso.gp","com.gp","edu.gp","mobi.gp","net.gp","org.gp","gq","gr","com.gr","edu.gr","gov.gr","net.gr","org.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","个人.hk","個人.hk","公司.hk","政府.hk","敎育.hk","教育.hk","箇人.hk","組織.hk","組织.hk","網絡.hk","網络.hk","组織.hk","组织.hk","网絡.hk","网络.hk","hm","hn","com.hn","edu.hn","gob.hn","mil.hn","net.hn","org.hn","hr","com.hr","from.hr","iz.hr","name.hr","ht","adult.ht","art.ht","asso.ht","com.ht","coop.ht","edu.ht","firm.ht","gouv.ht","info.ht","med.ht","net.ht","org.ht","perso.ht","pol.ht","pro.ht","rel.ht","shop.ht","hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","co.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","info.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","org.hu","priv.hu","reklam.hu","sex.hu","shop.hu","sport.hu","suli.hu","szex.hu","tm.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","ישראל","אקדמיה.ישראל","ישוב.ישראל","צהל.ישראל","ממשל.ישראל","im","ac.im","co.im","ltd.co.im","plc.co.im","com.im","net.im","org.im","tt.im","tv.im","in","5g.in","6g.in","ac.in","ai.in","am.in","bihar.in","biz.in","business.in","ca.in","cn.in","co.in","com.in","coop.in","cs.in","delhi.in","dr.in","edu.in","er.in","firm.in","gen.in","gov.in","gujarat.in","ind.in","info.in","int.in","internet.in","io.in","me.in","mil.in","net.in","nic.in","org.in","pg.in","post.in","pro.in","res.in","travel.in","tv.in","uk.in","up.in","us.in","info","int","eu.int","io","co.io","com.io","edu.io","gov.io","mil.io","net.io","nom.io","org.io","iq","com.iq","edu.iq","gov.iq","mil.iq","net.iq","org.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","it","edu.it","gov.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano.it","bolzano-altoadige.it","bozen.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza.it","monza-brianza.it","monza-e-della-brianza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","südtirol.it","suedtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","agri.jo","ai.jo","com.jo","edu.jo","eng.jo","fm.jo","gov.jo","mil.jo","net.jo","org.jo","per.jo","phd.jo","sch.jo","tv.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","三重.jp","京都.jp","佐賀.jp","兵庫.jp","北海道.jp","千葉.jp","和歌山.jp","埼玉.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岐阜.jp","岡山.jp","岩手.jp","島根.jp","広島.jp","徳島.jp","愛媛.jp","愛知.jp","新潟.jp","東京.jp","栃木.jp","沖縄.jp","滋賀.jp","熊本.jp","石川.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","茨城.jp","長崎.jp","長野.jp","青森.jp","静岡.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","!city.kawasaki.jp","*.kitakyushu.jp","!city.kitakyushu.jp","*.kobe.jp","!city.kobe.jp","*.nagoya.jp","!city.nagoya.jp","*.sapporo.jp","!city.sapporo.jp","*.sendai.jp","!city.sendai.jp","*.yokohama.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","com.kg","edu.kg","gov.kg","mil.kg","net.kg","org.kg","*.kh","ki","biz.ki","com.ki","edu.ki","gov.ki","info.ki","net.ki","org.ki","km","ass.km","com.km","edu.km","gov.km","mil.km","nom.km","org.km","prd.km","tm.km","asso.km","coop.km","gouv.km","medecin.km","notaires.km","pharmaciens.km","presse.km","veterinaire.km","kn","edu.kn","gov.kn","net.kn","org.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","com.ky","edu.ky","net.ky","org.ky","kz","com.kz","edu.kz","gov.kz","mil.kz","net.kz","org.kz","la","com.la","edu.la","gov.la","info.la","int.la","net.la","org.la","per.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","co.lc","com.lc","edu.lc","gov.lc","net.lc","org.lc","li","lk","ac.lk","assn.lk","com.lk","edu.lk","gov.lk","grp.lk","hotel.lk","int.lk","ltd.lk","net.lk","ngo.lk","org.lk","sch.lk","soc.lk","web.lk","lr","com.lr","edu.lr","gov.lr","net.lr","org.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","asn.lv","com.lv","conf.lv","edu.lv","gov.lv","id.lv","mil.lv","net.lv","org.lv","ly","com.ly","edu.ly","gov.ly","id.ly","med.ly","net.ly","org.ly","plc.ly","sch.ly","ma","ac.ma","co.ma","gov.ma","net.ma","org.ma","press.ma","mc","asso.mc","tm.mc","md","me","ac.me","co.me","edu.me","gov.me","its.me","net.me","org.me","priv.me","mg","co.mg","com.mg","edu.mg","gov.mg","mil.mg","nom.mg","org.mg","prd.mg","mh","mil","mk","com.mk","edu.mk","gov.mk","inf.mk","name.mk","net.mk","org.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","edu.mn","gov.mn","org.mn","mo","com.mo","edu.mo","gov.mo","net.mo","org.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","ac.mu","co.mu","com.mu","gov.mu","net.mu","or.mu","org.mu","museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","net.mw","org.mw","mx","com.mx","edu.mx","gob.mx","net.mx","org.mx","my","biz.my","com.my","edu.my","gov.my","mil.my","name.my","net.my","org.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","alt.na","co.na","com.na","gov.na","net.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","arts.nf","com.nf","firm.nf","info.nf","net.nf","other.nf","per.nf","rec.nf","store.nf","web.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","folkebibl.no","fylkesbibl.no","idrett.no","museum.no","priv.no","vgs.no","dep.no","herad.no","kommune.no","mil.no","stat.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","bronnoysund.no","brønnøysund.no","brumunddal.no","bryne.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","aarborte.no","aejrie.no","afjord.no","åfjord.no","agdenes.no","nes.akershus.no","aknoluokta.no","ákŋoluokta.no","al.no","ål.no","alaheadju.no","álaheadju.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andasuolo.no","andebu.no","andoy.no","andøy.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askoy.no","askøy.no","askvoll.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","badaddja.no","bådåddjå.no","bærum.no","bahcavuotna.no","báhcavuotna.no","bahccavuotna.no","báhccavuotna.no","baidar.no","báidár.no","bajddar.no","bájddar.no","balat.no","bálát.no","balestrand.no","ballangen.no","balsfjord.no","bamble.no","bardu.no","barum.no","batsfjord.no","båtsfjord.no","bearalvahki.no","bearalváhki.no","beardu.no","beiarn.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bievat.no","bievát.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","bokn.no","bomlo.no","bømlo.no","bremanger.no","bronnoy.no","brønnøy.no","budejju.no","nes.buskerud.no","bygland.no","bykle.no","cahcesuolo.no","čáhcesuolo.no","davvenjarga.no","davvenjárga.no","davvesiida.no","deatnu.no","dielddanuorri.no","divtasvuodna.no","divttasvuotna.no","donna.no","dønna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenassi.no","evenášši.no","evenes.no","evje-og-hornnes.no","farsund.no","fauske.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","fla.no","flå.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","folldal.no","forde.no","førde.no","forsand.no","fosnes.no","fræna.no","frana.no","frei.no","frogn.no","froland.no","frosta.no","froya.no","frøya.no","fuoisku.no","fuossko.no","fusa.no","fyresdal.no","gaivuotna.no","gáivuotna.no","galsa.no","gálsá.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","giehtavuoatna.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","grue.no","gulen.no","guovdageaidnu.no","ha.no","hå.no","habmer.no","hábmer.no","hadsel.no","hægebostad.no","hagebostad.no","halden.no","halsa.no","hamar.no","hamaroy.no","hammarfeasta.no","hámmárfeasta.no","hammerfest.no","hapmir.no","hápmir.no","haram.no","hareid.no","harstad.no","hasvik.no","hattfjelldal.no","haugesund.no","os.hedmark.no","valer.hedmark.no","våler.hedmark.no","hemne.no","hemnes.no","hemsedal.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","os.hordaland.no","hornindal.no","horten.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","ivgu.no","jevnaker.no","jolster.no","jølster.no","jondal.no","kafjord.no","kåfjord.no","karasjohka.no","kárášjohka.no","karasjok.no","karlsoy.no","karmoy.no","karmøy.no","kautokeino.no","klabu.no","klæbu.no","klepp.no","kongsberg.no","kongsvinger.no","kraanghke.no","kråanghke.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvæfjord.no","kvænangen.no","kvafjord.no","kvalsund.no","kvam.no","kvanangen.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","laakesvuemie.no","lærdal.no","lahppi.no","láhppi.no","lardal.no","larvik.no","lavagis.no","lavangen.no","leangaviika.no","leaŋgaviika.no","lebesby.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","lerdal.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindas.no","lindås.no","lindesnes.no","loabat.no","loabát.no","lodingen.no","lødingen.no","lom.no","loppa.no","lorenskog.no","lørenskog.no","loten.no","løten.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","malatvuopmi.no","málatvuopmi.no","malselv.no","målselv.no","malvik.no","mandal.no","marker.no","marnardal.no","masfjorden.no","masoy.no","måsøy.no","matta-varjjat.no","mátta-várjjat.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","midsund.no","midtre-gauldal.no","moareke.no","moåreke.no","modalen.no","modum.no","molde.no","heroy.more-og-romsdal.no","sande.more-og-romsdal.no","herøy.møre-og-romsdal.no","sande.møre-og-romsdal.no","moskenes.no","moss.no","mosvik.no","muosat.no","muosát.no","naamesjevuemie.no","nååmesjevuemie.no","nærøy.no","namdalseid.no","namsos.no","namsskogan.no","nannestad.no","naroy.no","narviika.no","narvik.no","naustdal.no","navuotna.no","návuotna.no","nedre-eiker.no","nesna.no","nesodden.no","nesseby.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","bo.nordland.no","bø.nordland.no","heroy.nordland.no","herøy.nordland.no","nordre-land.no","nordreisa.no","nore-og-uvdal.no","notodden.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","omasvuotna.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","osen.no","osteroy.no","osterøy.no","valer.ostfold.no","våler.østfold.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","rade.no","råde.no","radoy.no","radøy.no","rælingen.no","rahkkeravju.no","ráhkkerávju.no","raisa.no","ráisa.no","rakkestad.no","ralingen.no","rana.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","risor.no","risør.no","rissa.no","roan.no","rodoy.no","rødøy.no","rollag.no","romsa.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","ruovat.no","rygge.no","salangen.no","salat.no","sálat.no","sálát.no","saltdal.no","samnanger.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","siellak.no","sigdal.no","siljan.no","sirdal.no","skanit.no","skánit.no","skanland.no","skånland.no","skaun.no","skedsmo.no","ski.no","skien.no","skierva.no","skiervá.no","skiptvet.no","skjak.no","skjåk.no","skjervoy.no","skjervøy.no","skodje.no","smola.no","smøla.no","snaase.no","snåase.no","snasa.no","snåsa.no","snillfjord.no","snoasa.no","sogndal.no","sogne.no","søgne.no","sokndal.no","sola.no","solund.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","songdalen.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sortland.no","sorum.no","sørum.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","tana.no","bo.telemark.no","bø.telemark.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","tjome.no","tjøme.no","tokke.no","tolga.no","tonsberg.no","tønsberg.no","torsken.no","træna.no","trana.no","tranoy.no","tranøy.no","troandin.no","trogstad.no","trøgstad.no","tromsa.no","tromso.no","tromsø.no","trondheim.no","trysil.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","tysnes.no","tysvær.no","tysvar.no","ullensaker.no","ullensvang.no","ulvik.no","unjarga.no","unjárga.no","utsira.no","vaapste.no","vadso.no","vadsø.no","værøy.no","vaga.no","vågå.no","vagan.no","vågan.no","vagsoy.no","vågsøy.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","varoy.no","vefsn.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","sande.vestfold.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","voagat.no","volda.no","voss.no","*.np","nr","biz.nr","com.nr","edu.nr","gov.nr","info.nr","net.nr","org.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","māori.nz","mil.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","abo.pa","ac.pa","com.pa","edu.pa","gob.pa","ing.pa","med.pa","net.pa","nom.pa","org.pa","sld.pa","pe","com.pe","edu.pe","gob.pe","mil.pe","net.pe","nom.pe","org.pe","pf","com.pf","edu.pf","org.pf","*.pg","ph","com.ph","edu.ph","gov.ph","i.ph","mil.ph","net.ph","ngo.ph","org.ph","pk","ac.pk","biz.pk","com.pk","edu.pk","fam.pk","gkp.pk","gob.pk","gog.pk","gok.pk","gon.pk","gop.pk","gos.pk","gov.pk","net.pk","org.pk","web.pk","pl","com.pl","net.pl","org.pl","agro.pl","aid.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","media.pl","miasta.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","griw.gov.pl","ic.gov.pl","is.gov.pl","kmpsp.gov.pl","konsulat.gov.pl","kppsp.gov.pl","kwp.gov.pl","kwpsp.gov.pl","mup.gov.pl","mw.gov.pl","oia.gov.pl","oirm.gov.pl","oke.gov.pl","oow.gov.pl","oschr.gov.pl","oum.gov.pl","pa.gov.pl","pinb.gov.pl","piw.gov.pl","po.gov.pl","pr.gov.pl","psp.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","sdn.gov.pl","sko.gov.pl","so.gov.pl","sr.gov.pl","starostwo.gov.pl","ug.gov.pl","ugim.gov.pl","um.gov.pl","umig.gov.pl","upow.gov.pl","uppo.gov.pl","us.gov.pl","uw.gov.pl","uzs.gov.pl","wif.gov.pl","wiih.gov.pl","winb.gov.pl","wios.gov.pl","witd.gov.pl","wiw.gov.pl","wkz.gov.pl","wsa.gov.pl","wskr.gov.pl","wsse.gov.pl","wuoz.gov.pl","wzmiuw.gov.pl","zp.gov.pl","zpisdn.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kazimierz-dolny.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorskie.pl","pomorze.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","skoczow.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","co.pn","edu.pn","gov.pn","net.pn","org.pn","post","pr","biz.pr","com.pr","edu.pr","gov.pr","info.pr","isla.pr","name.pr","net.pr","org.pr","pro.pr","ac.pr","est.pr","prof.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","com.ps","edu.ps","gov.ps","net.ps","org.ps","plo.ps","sec.ps","pt","com.pt","edu.pt","gov.pt","int.pt","net.pt","nome.pt","org.pt","publ.pt","pw","belau.pw","co.pw","ed.pw","go.pw","or.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","edu.sa","gov.sa","med.sa","net.sa","org.sa","pub.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","edu.sc","gov.sc","net.sc","org.sc","sd","com.sd","edu.sd","gov.sd","info.sd","med.sd","net.sd","org.sd","tv.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","edu.sg","gov.sg","net.sg","org.sg","sh","com.sh","gov.sh","mil.sh","net.sh","org.sh","si","sj","sk","sl","com.sl","edu.sl","gov.sl","net.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","co.ss","com.ss","edu.ss","gov.ss","me.ss","net.ss","org.ss","sch.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","com.sy","edu.sy","gov.sy","mil.sy","net.sy","org.sy","sz","ac.sz","co.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","co.tm","com.tm","edu.tm","gov.tm","mil.tm","net.tm","nom.tm","org.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","info.tn","intl.tn","mincom.tn","nat.tn","net.tn","org.tn","perso.tn","tourism.tn","to","com.to","edu.to","gov.to","mil.to","net.to","org.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","k12.tr","kep.tr","mil.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","biz.tt","co.tt","com.tt","edu.tt","gov.tt","info.tt","mil.tt","name.tt","net.tt","org.tt","pro.tt","tv","tw","club.tw","com.tw","ebiz.tw","edu.tw","game.tw","gov.tw","idv.tw","mil.tw","net.tw","org.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","kropyvnytskyi.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","luhansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","uzhhorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zakarpattia.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","ac.ug","co.ug","com.ug","go.ug","ne.ug","or.ug","org.ug","sc.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","va.us","vi.us","vt.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.va.us","k12.vi.us","k12.vt.us","k12.wa.us","k12.wi.us","cc.ak.us","lib.ak.us","cc.al.us","lib.al.us","cc.ar.us","lib.ar.us","cc.as.us","lib.as.us","cc.az.us","lib.az.us","cc.ca.us","lib.ca.us","cc.co.us","lib.co.us","cc.ct.us","lib.ct.us","cc.dc.us","lib.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.va.us","cc.vi.us","cc.vt.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","k12.wy.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.va.us","lib.vi.us","lib.vt.us","lib.wa.us","lib.wi.us","lib.wy.us","chtr.k12.ma.us","paroch.k12.ma.us","pvt.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","edu.vc","gov.vc","mil.vc","net.vc","org.vc","ve","arts.ve","bib.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","nom.ve","org.ve","rar.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","ac.vn","ai.vn","biz.vn","com.vn","edu.vn","gov.vn","health.vn","id.vn","info.vn","int.vn","io.vn","name.vn","net.vn","org.vn","pro.vn","angiang.vn","bacgiang.vn","backan.vn","baclieu.vn","bacninh.vn","baria-vungtau.vn","bentre.vn","binhdinh.vn","binhduong.vn","binhphuoc.vn","binhthuan.vn","camau.vn","cantho.vn","caobang.vn","daklak.vn","daknong.vn","danang.vn","dienbien.vn","dongnai.vn","dongthap.vn","gialai.vn","hagiang.vn","haiduong.vn","haiphong.vn","hanam.vn","hanoi.vn","hatinh.vn","haugiang.vn","hoabinh.vn","hungyen.vn","khanhhoa.vn","kiengiang.vn","kontum.vn","laichau.vn","lamdong.vn","langson.vn","laocai.vn","longan.vn","namdinh.vn","nghean.vn","ninhbinh.vn","ninhthuan.vn","phutho.vn","phuyen.vn","quangbinh.vn","quangnam.vn","quangngai.vn","quangninh.vn","quangtri.vn","soctrang.vn","sonla.vn","tayninh.vn","thaibinh.vn","thainguyen.vn","thanhhoa.vn","thanhphohochiminh.vn","thuathienhue.vn","tiengiang.vn","travinh.vn","tuyenquang.vn","vinhlong.vn","vinhphuc.vn","yenbai.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","edu.ws","gov.ws","net.ws","org.ws","yt","امارات","հայ","বাংলা","бг","البحرين","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","個人.香港","公司.香港","政府.香港","教育.香港","組織.香港","網絡.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ລາວ","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","ак.срб","обр.срб","од.срб","орг.срб","пр.срб","упр.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ทหาร.ไทย","ธุรกิจ.ไทย","เน็ต.ไทย","รัฐบาล.ไทย","ศึกษา.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","ye","com.ye","edu.ye","gov.ye","mil.ye","net.ye","org.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","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","aws","axa","azure","baby","baidu","banamex","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","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","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","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","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","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","merck","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","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","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","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","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","shangrila","sharp","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","volvo","vote","voting","voto","voyage","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","食品","飞利浦","手机","ارامكو","العليان","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","co.krd","edu.krd","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","lib.de.us","12chars.dev","12chars.it","12chars.pro","cc.ua","inf.ua","ltd.ua","611.to","a2hosted.com","cpserver.com","aaa.vodka","*.on-acorn.io","activetrail.biz","adaptable.app","adobeaemcloud.com","*.dev.adobeaemcloud.com","aem.live","hlx.live","adobeaemcloud.net","aem.page","hlx.page","hlx3.page","adobeio-static.net","adobeioruntime.net","africa.com","beep.pl","airkitapps.com","airkitapps-au.com","airkitapps.eu","aivencloud.com","akadns.net","akamai.net","akamai-staging.net","akamaiedge.net","akamaiedge-staging.net","akamaihd.net","akamaihd-staging.net","akamaiorigin.net","akamaiorigin-staging.net","akamaized.net","akamaized-staging.net","edgekey.net","edgekey-staging.net","edgesuite.net","edgesuite-staging.net","barsy.ca","*.compute.estate","*.alces.network","kasserver.com","altervista.org","alwaysdata.net","myamaze.net","execute-api.cn-north-1.amazonaws.com.cn","execute-api.cn-northwest-1.amazonaws.com.cn","execute-api.af-south-1.amazonaws.com","execute-api.ap-east-1.amazonaws.com","execute-api.ap-northeast-1.amazonaws.com","execute-api.ap-northeast-2.amazonaws.com","execute-api.ap-northeast-3.amazonaws.com","execute-api.ap-south-1.amazonaws.com","execute-api.ap-south-2.amazonaws.com","execute-api.ap-southeast-1.amazonaws.com","execute-api.ap-southeast-2.amazonaws.com","execute-api.ap-southeast-3.amazonaws.com","execute-api.ap-southeast-4.amazonaws.com","execute-api.ap-southeast-5.amazonaws.com","execute-api.ca-central-1.amazonaws.com","execute-api.ca-west-1.amazonaws.com","execute-api.eu-central-1.amazonaws.com","execute-api.eu-central-2.amazonaws.com","execute-api.eu-north-1.amazonaws.com","execute-api.eu-south-1.amazonaws.com","execute-api.eu-south-2.amazonaws.com","execute-api.eu-west-1.amazonaws.com","execute-api.eu-west-2.amazonaws.com","execute-api.eu-west-3.amazonaws.com","execute-api.il-central-1.amazonaws.com","execute-api.me-central-1.amazonaws.com","execute-api.me-south-1.amazonaws.com","execute-api.sa-east-1.amazonaws.com","execute-api.us-east-1.amazonaws.com","execute-api.us-east-2.amazonaws.com","execute-api.us-gov-east-1.amazonaws.com","execute-api.us-gov-west-1.amazonaws.com","execute-api.us-west-1.amazonaws.com","execute-api.us-west-2.amazonaws.com","cloudfront.net","auth.af-south-1.amazoncognito.com","auth.ap-east-1.amazoncognito.com","auth.ap-northeast-1.amazoncognito.com","auth.ap-northeast-2.amazoncognito.com","auth.ap-northeast-3.amazoncognito.com","auth.ap-south-1.amazoncognito.com","auth.ap-south-2.amazoncognito.com","auth.ap-southeast-1.amazoncognito.com","auth.ap-southeast-2.amazoncognito.com","auth.ap-southeast-3.amazoncognito.com","auth.ap-southeast-4.amazoncognito.com","auth.ca-central-1.amazoncognito.com","auth.ca-west-1.amazoncognito.com","auth.eu-central-1.amazoncognito.com","auth.eu-central-2.amazoncognito.com","auth.eu-north-1.amazoncognito.com","auth.eu-south-1.amazoncognito.com","auth.eu-south-2.amazoncognito.com","auth.eu-west-1.amazoncognito.com","auth.eu-west-2.amazoncognito.com","auth.eu-west-3.amazoncognito.com","auth.il-central-1.amazoncognito.com","auth.me-central-1.amazoncognito.com","auth.me-south-1.amazoncognito.com","auth.sa-east-1.amazoncognito.com","auth.us-east-1.amazoncognito.com","auth-fips.us-east-1.amazoncognito.com","auth.us-east-2.amazoncognito.com","auth-fips.us-east-2.amazoncognito.com","auth-fips.us-gov-west-1.amazoncognito.com","auth.us-west-1.amazoncognito.com","auth-fips.us-west-1.amazoncognito.com","auth.us-west-2.amazoncognito.com","auth-fips.us-west-2.amazoncognito.com","*.compute.amazonaws.com.cn","*.compute.amazonaws.com","*.compute-1.amazonaws.com","us-east-1.amazonaws.com","emrappui-prod.cn-north-1.amazonaws.com.cn","emrnotebooks-prod.cn-north-1.amazonaws.com.cn","emrstudio-prod.cn-north-1.amazonaws.com.cn","emrappui-prod.cn-northwest-1.amazonaws.com.cn","emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn","emrstudio-prod.cn-northwest-1.amazonaws.com.cn","emrappui-prod.af-south-1.amazonaws.com","emrnotebooks-prod.af-south-1.amazonaws.com","emrstudio-prod.af-south-1.amazonaws.com","emrappui-prod.ap-east-1.amazonaws.com","emrnotebooks-prod.ap-east-1.amazonaws.com","emrstudio-prod.ap-east-1.amazonaws.com","emrappui-prod.ap-northeast-1.amazonaws.com","emrnotebooks-prod.ap-northeast-1.amazonaws.com","emrstudio-prod.ap-northeast-1.amazonaws.com","emrappui-prod.ap-northeast-2.amazonaws.com","emrnotebooks-prod.ap-northeast-2.amazonaws.com","emrstudio-prod.ap-northeast-2.amazonaws.com","emrappui-prod.ap-northeast-3.amazonaws.com","emrnotebooks-prod.ap-northeast-3.amazonaws.com","emrstudio-prod.ap-northeast-3.amazonaws.com","emrappui-prod.ap-south-1.amazonaws.com","emrnotebooks-prod.ap-south-1.amazonaws.com","emrstudio-prod.ap-south-1.amazonaws.com","emrappui-prod.ap-south-2.amazonaws.com","emrnotebooks-prod.ap-south-2.amazonaws.com","emrstudio-prod.ap-south-2.amazonaws.com","emrappui-prod.ap-southeast-1.amazonaws.com","emrnotebooks-prod.ap-southeast-1.amazonaws.com","emrstudio-prod.ap-southeast-1.amazonaws.com","emrappui-prod.ap-southeast-2.amazonaws.com","emrnotebooks-prod.ap-southeast-2.amazonaws.com","emrstudio-prod.ap-southeast-2.amazonaws.com","emrappui-prod.ap-southeast-3.amazonaws.com","emrnotebooks-prod.ap-southeast-3.amazonaws.com","emrstudio-prod.ap-southeast-3.amazonaws.com","emrappui-prod.ap-southeast-4.amazonaws.com","emrnotebooks-prod.ap-southeast-4.amazonaws.com","emrstudio-prod.ap-southeast-4.amazonaws.com","emrappui-prod.ca-central-1.amazonaws.com","emrnotebooks-prod.ca-central-1.amazonaws.com","emrstudio-prod.ca-central-1.amazonaws.com","emrappui-prod.ca-west-1.amazonaws.com","emrnotebooks-prod.ca-west-1.amazonaws.com","emrstudio-prod.ca-west-1.amazonaws.com","emrappui-prod.eu-central-1.amazonaws.com","emrnotebooks-prod.eu-central-1.amazonaws.com","emrstudio-prod.eu-central-1.amazonaws.com","emrappui-prod.eu-central-2.amazonaws.com","emrnotebooks-prod.eu-central-2.amazonaws.com","emrstudio-prod.eu-central-2.amazonaws.com","emrappui-prod.eu-north-1.amazonaws.com","emrnotebooks-prod.eu-north-1.amazonaws.com","emrstudio-prod.eu-north-1.amazonaws.com","emrappui-prod.eu-south-1.amazonaws.com","emrnotebooks-prod.eu-south-1.amazonaws.com","emrstudio-prod.eu-south-1.amazonaws.com","emrappui-prod.eu-south-2.amazonaws.com","emrnotebooks-prod.eu-south-2.amazonaws.com","emrstudio-prod.eu-south-2.amazonaws.com","emrappui-prod.eu-west-1.amazonaws.com","emrnotebooks-prod.eu-west-1.amazonaws.com","emrstudio-prod.eu-west-1.amazonaws.com","emrappui-prod.eu-west-2.amazonaws.com","emrnotebooks-prod.eu-west-2.amazonaws.com","emrstudio-prod.eu-west-2.amazonaws.com","emrappui-prod.eu-west-3.amazonaws.com","emrnotebooks-prod.eu-west-3.amazonaws.com","emrstudio-prod.eu-west-3.amazonaws.com","emrappui-prod.il-central-1.amazonaws.com","emrnotebooks-prod.il-central-1.amazonaws.com","emrstudio-prod.il-central-1.amazonaws.com","emrappui-prod.me-central-1.amazonaws.com","emrnotebooks-prod.me-central-1.amazonaws.com","emrstudio-prod.me-central-1.amazonaws.com","emrappui-prod.me-south-1.amazonaws.com","emrnotebooks-prod.me-south-1.amazonaws.com","emrstudio-prod.me-south-1.amazonaws.com","emrappui-prod.sa-east-1.amazonaws.com","emrnotebooks-prod.sa-east-1.amazonaws.com","emrstudio-prod.sa-east-1.amazonaws.com","emrappui-prod.us-east-1.amazonaws.com","emrnotebooks-prod.us-east-1.amazonaws.com","emrstudio-prod.us-east-1.amazonaws.com","emrappui-prod.us-east-2.amazonaws.com","emrnotebooks-prod.us-east-2.amazonaws.com","emrstudio-prod.us-east-2.amazonaws.com","emrappui-prod.us-gov-east-1.amazonaws.com","emrnotebooks-prod.us-gov-east-1.amazonaws.com","emrstudio-prod.us-gov-east-1.amazonaws.com","emrappui-prod.us-gov-west-1.amazonaws.com","emrnotebooks-prod.us-gov-west-1.amazonaws.com","emrstudio-prod.us-gov-west-1.amazonaws.com","emrappui-prod.us-west-1.amazonaws.com","emrnotebooks-prod.us-west-1.amazonaws.com","emrstudio-prod.us-west-1.amazonaws.com","emrappui-prod.us-west-2.amazonaws.com","emrnotebooks-prod.us-west-2.amazonaws.com","emrstudio-prod.us-west-2.amazonaws.com","*.cn-north-1.airflow.amazonaws.com.cn","*.cn-northwest-1.airflow.amazonaws.com.cn","*.af-south-1.airflow.amazonaws.com","*.ap-east-1.airflow.amazonaws.com","*.ap-northeast-1.airflow.amazonaws.com","*.ap-northeast-2.airflow.amazonaws.com","*.ap-northeast-3.airflow.amazonaws.com","*.ap-south-1.airflow.amazonaws.com","*.ap-south-2.airflow.amazonaws.com","*.ap-southeast-1.airflow.amazonaws.com","*.ap-southeast-2.airflow.amazonaws.com","*.ap-southeast-3.airflow.amazonaws.com","*.ap-southeast-4.airflow.amazonaws.com","*.ca-central-1.airflow.amazonaws.com","*.ca-west-1.airflow.amazonaws.com","*.eu-central-1.airflow.amazonaws.com","*.eu-central-2.airflow.amazonaws.com","*.eu-north-1.airflow.amazonaws.com","*.eu-south-1.airflow.amazonaws.com","*.eu-south-2.airflow.amazonaws.com","*.eu-west-1.airflow.amazonaws.com","*.eu-west-2.airflow.amazonaws.com","*.eu-west-3.airflow.amazonaws.com","*.il-central-1.airflow.amazonaws.com","*.me-central-1.airflow.amazonaws.com","*.me-south-1.airflow.amazonaws.com","*.sa-east-1.airflow.amazonaws.com","*.us-east-1.airflow.amazonaws.com","*.us-east-2.airflow.amazonaws.com","*.us-west-1.airflow.amazonaws.com","*.us-west-2.airflow.amazonaws.com","s3.dualstack.cn-north-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn","s3-website.dualstack.cn-north-1.amazonaws.com.cn","s3.cn-north-1.amazonaws.com.cn","s3-accesspoint.cn-north-1.amazonaws.com.cn","s3-deprecated.cn-north-1.amazonaws.com.cn","s3-object-lambda.cn-north-1.amazonaws.com.cn","s3-website.cn-north-1.amazonaws.com.cn","s3.dualstack.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn","s3.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.cn-northwest-1.amazonaws.com.cn","s3-object-lambda.cn-northwest-1.amazonaws.com.cn","s3-website.cn-northwest-1.amazonaws.com.cn","s3.dualstack.af-south-1.amazonaws.com","s3-accesspoint.dualstack.af-south-1.amazonaws.com","s3-website.dualstack.af-south-1.amazonaws.com","s3.af-south-1.amazonaws.com","s3-accesspoint.af-south-1.amazonaws.com","s3-object-lambda.af-south-1.amazonaws.com","s3-website.af-south-1.amazonaws.com","s3.dualstack.ap-east-1.amazonaws.com","s3-accesspoint.dualstack.ap-east-1.amazonaws.com","s3.ap-east-1.amazonaws.com","s3-accesspoint.ap-east-1.amazonaws.com","s3-object-lambda.ap-east-1.amazonaws.com","s3-website.ap-east-1.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com","s3-website.dualstack.ap-northeast-1.amazonaws.com","s3.ap-northeast-1.amazonaws.com","s3-accesspoint.ap-northeast-1.amazonaws.com","s3-object-lambda.ap-northeast-1.amazonaws.com","s3-website.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com","s3-website.dualstack.ap-northeast-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3-accesspoint.ap-northeast-2.amazonaws.com","s3-object-lambda.ap-northeast-2.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3.dualstack.ap-northeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com","s3-website.dualstack.ap-northeast-3.amazonaws.com","s3.ap-northeast-3.amazonaws.com","s3-accesspoint.ap-northeast-3.amazonaws.com","s3-object-lambda.ap-northeast-3.amazonaws.com","s3-website.ap-northeast-3.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3-accesspoint.dualstack.ap-south-1.amazonaws.com","s3-website.dualstack.ap-south-1.amazonaws.com","s3.ap-south-1.amazonaws.com","s3-accesspoint.ap-south-1.amazonaws.com","s3-object-lambda.ap-south-1.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3.dualstack.ap-south-2.amazonaws.com","s3-accesspoint.dualstack.ap-south-2.amazonaws.com","s3-website.dualstack.ap-south-2.amazonaws.com","s3.ap-south-2.amazonaws.com","s3-accesspoint.ap-south-2.amazonaws.com","s3-object-lambda.ap-south-2.amazonaws.com","s3-website.ap-south-2.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com","s3-website.dualstack.ap-southeast-1.amazonaws.com","s3.ap-southeast-1.amazonaws.com","s3-accesspoint.ap-southeast-1.amazonaws.com","s3-object-lambda.ap-southeast-1.amazonaws.com","s3-website.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com","s3-website.dualstack.ap-southeast-2.amazonaws.com","s3.ap-southeast-2.amazonaws.com","s3-accesspoint.ap-southeast-2.amazonaws.com","s3-object-lambda.ap-southeast-2.amazonaws.com","s3-website.ap-southeast-2.amazonaws.com","s3.dualstack.ap-southeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com","s3-website.dualstack.ap-southeast-3.amazonaws.com","s3.ap-southeast-3.amazonaws.com","s3-accesspoint.ap-southeast-3.amazonaws.com","s3-object-lambda.ap-southeast-3.amazonaws.com","s3-website.ap-southeast-3.amazonaws.com","s3.dualstack.ap-southeast-4.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com","s3-website.dualstack.ap-southeast-4.amazonaws.com","s3.ap-southeast-4.amazonaws.com","s3-accesspoint.ap-southeast-4.amazonaws.com","s3-object-lambda.ap-southeast-4.amazonaws.com","s3-website.ap-southeast-4.amazonaws.com","s3.dualstack.ap-southeast-5.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-5.amazonaws.com","s3-website.dualstack.ap-southeast-5.amazonaws.com","s3.ap-southeast-5.amazonaws.com","s3-accesspoint.ap-southeast-5.amazonaws.com","s3-deprecated.ap-southeast-5.amazonaws.com","s3-object-lambda.ap-southeast-5.amazonaws.com","s3-website.ap-southeast-5.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3-accesspoint.dualstack.ca-central-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com","s3-fips.dualstack.ca-central-1.amazonaws.com","s3-website.dualstack.ca-central-1.amazonaws.com","s3.ca-central-1.amazonaws.com","s3-accesspoint.ca-central-1.amazonaws.com","s3-accesspoint-fips.ca-central-1.amazonaws.com","s3-fips.ca-central-1.amazonaws.com","s3-object-lambda.ca-central-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3.dualstack.ca-west-1.amazonaws.com","s3-accesspoint.dualstack.ca-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com","s3-fips.dualstack.ca-west-1.amazonaws.com","s3-website.dualstack.ca-west-1.amazonaws.com","s3.ca-west-1.amazonaws.com","s3-accesspoint.ca-west-1.amazonaws.com","s3-accesspoint-fips.ca-west-1.amazonaws.com","s3-fips.ca-west-1.amazonaws.com","s3-object-lambda.ca-west-1.amazonaws.com","s3-website.ca-west-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3-accesspoint.dualstack.eu-central-1.amazonaws.com","s3-website.dualstack.eu-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3-accesspoint.eu-central-1.amazonaws.com","s3-object-lambda.eu-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3.dualstack.eu-central-2.amazonaws.com","s3-accesspoint.dualstack.eu-central-2.amazonaws.com","s3-website.dualstack.eu-central-2.amazonaws.com","s3.eu-central-2.amazonaws.com","s3-accesspoint.eu-central-2.amazonaws.com","s3-object-lambda.eu-central-2.amazonaws.com","s3-website.eu-central-2.amazonaws.com","s3.dualstack.eu-north-1.amazonaws.com","s3-accesspoint.dualstack.eu-north-1.amazonaws.com","s3.eu-north-1.amazonaws.com","s3-accesspoint.eu-north-1.amazonaws.com","s3-object-lambda.eu-north-1.amazonaws.com","s3-website.eu-north-1.amazonaws.com","s3.dualstack.eu-south-1.amazonaws.com","s3-accesspoint.dualstack.eu-south-1.amazonaws.com","s3-website.dualstack.eu-south-1.amazonaws.com","s3.eu-south-1.amazonaws.com","s3-accesspoint.eu-south-1.amazonaws.com","s3-object-lambda.eu-south-1.amazonaws.com","s3-website.eu-south-1.amazonaws.com","s3.dualstack.eu-south-2.amazonaws.com","s3-accesspoint.dualstack.eu-south-2.amazonaws.com","s3-website.dualstack.eu-south-2.amazonaws.com","s3.eu-south-2.amazonaws.com","s3-accesspoint.eu-south-2.amazonaws.com","s3-object-lambda.eu-south-2.amazonaws.com","s3-website.eu-south-2.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3-accesspoint.dualstack.eu-west-1.amazonaws.com","s3-website.dualstack.eu-west-1.amazonaws.com","s3.eu-west-1.amazonaws.com","s3-accesspoint.eu-west-1.amazonaws.com","s3-deprecated.eu-west-1.amazonaws.com","s3-object-lambda.eu-west-1.amazonaws.com","s3-website.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3-accesspoint.dualstack.eu-west-2.amazonaws.com","s3.eu-west-2.amazonaws.com","s3-accesspoint.eu-west-2.amazonaws.com","s3-object-lambda.eu-west-2.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3-accesspoint.dualstack.eu-west-3.amazonaws.com","s3-website.dualstack.eu-west-3.amazonaws.com","s3.eu-west-3.amazonaws.com","s3-accesspoint.eu-west-3.amazonaws.com","s3-object-lambda.eu-west-3.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3.dualstack.il-central-1.amazonaws.com","s3-accesspoint.dualstack.il-central-1.amazonaws.com","s3-website.dualstack.il-central-1.amazonaws.com","s3.il-central-1.amazonaws.com","s3-accesspoint.il-central-1.amazonaws.com","s3-object-lambda.il-central-1.amazonaws.com","s3-website.il-central-1.amazonaws.com","s3.dualstack.me-central-1.amazonaws.com","s3-accesspoint.dualstack.me-central-1.amazonaws.com","s3-website.dualstack.me-central-1.amazonaws.com","s3.me-central-1.amazonaws.com","s3-accesspoint.me-central-1.amazonaws.com","s3-object-lambda.me-central-1.amazonaws.com","s3-website.me-central-1.amazonaws.com","s3.dualstack.me-south-1.amazonaws.com","s3-accesspoint.dualstack.me-south-1.amazonaws.com","s3.me-south-1.amazonaws.com","s3-accesspoint.me-south-1.amazonaws.com","s3-object-lambda.me-south-1.amazonaws.com","s3-website.me-south-1.amazonaws.com","s3.amazonaws.com","s3-1.amazonaws.com","s3-ap-east-1.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-northeast-3.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-north-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-east-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","mrap.accesspoint.s3-global.amazonaws.com","s3-me-south-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-gov-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-gov-west-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3-accesspoint.dualstack.sa-east-1.amazonaws.com","s3-website.dualstack.sa-east-1.amazonaws.com","s3.sa-east-1.amazonaws.com","s3-accesspoint.sa-east-1.amazonaws.com","s3-object-lambda.sa-east-1.amazonaws.com","s3-website.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3-accesspoint.dualstack.us-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com","s3-fips.dualstack.us-east-1.amazonaws.com","s3-website.dualstack.us-east-1.amazonaws.com","s3.us-east-1.amazonaws.com","s3-accesspoint.us-east-1.amazonaws.com","s3-accesspoint-fips.us-east-1.amazonaws.com","s3-deprecated.us-east-1.amazonaws.com","s3-fips.us-east-1.amazonaws.com","s3-object-lambda.us-east-1.amazonaws.com","s3-website.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-accesspoint.dualstack.us-east-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com","s3-fips.dualstack.us-east-2.amazonaws.com","s3-website.dualstack.us-east-2.amazonaws.com","s3.us-east-2.amazonaws.com","s3-accesspoint.us-east-2.amazonaws.com","s3-accesspoint-fips.us-east-2.amazonaws.com","s3-deprecated.us-east-2.amazonaws.com","s3-fips.us-east-2.amazonaws.com","s3-object-lambda.us-east-2.amazonaws.com","s3-website.us-east-2.amazonaws.com","s3.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com","s3-fips.dualstack.us-gov-east-1.amazonaws.com","s3.us-gov-east-1.amazonaws.com","s3-accesspoint.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.us-gov-east-1.amazonaws.com","s3-fips.us-gov-east-1.amazonaws.com","s3-object-lambda.us-gov-east-1.amazonaws.com","s3-website.us-gov-east-1.amazonaws.com","s3.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com","s3-fips.dualstack.us-gov-west-1.amazonaws.com","s3.us-gov-west-1.amazonaws.com","s3-accesspoint.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.us-gov-west-1.amazonaws.com","s3-fips.us-gov-west-1.amazonaws.com","s3-object-lambda.us-gov-west-1.amazonaws.com","s3-website.us-gov-west-1.amazonaws.com","s3.dualstack.us-west-1.amazonaws.com","s3-accesspoint.dualstack.us-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com","s3-fips.dualstack.us-west-1.amazonaws.com","s3-website.dualstack.us-west-1.amazonaws.com","s3.us-west-1.amazonaws.com","s3-accesspoint.us-west-1.amazonaws.com","s3-accesspoint-fips.us-west-1.amazonaws.com","s3-fips.us-west-1.amazonaws.com","s3-object-lambda.us-west-1.amazonaws.com","s3-website.us-west-1.amazonaws.com","s3.dualstack.us-west-2.amazonaws.com","s3-accesspoint.dualstack.us-west-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com","s3-fips.dualstack.us-west-2.amazonaws.com","s3-website.dualstack.us-west-2.amazonaws.com","s3.us-west-2.amazonaws.com","s3-accesspoint.us-west-2.amazonaws.com","s3-accesspoint-fips.us-west-2.amazonaws.com","s3-deprecated.us-west-2.amazonaws.com","s3-fips.us-west-2.amazonaws.com","s3-object-lambda.us-west-2.amazonaws.com","s3-website.us-west-2.amazonaws.com","labeling.ap-northeast-1.sagemaker.aws","labeling.ap-northeast-2.sagemaker.aws","labeling.ap-south-1.sagemaker.aws","labeling.ap-southeast-1.sagemaker.aws","labeling.ap-southeast-2.sagemaker.aws","labeling.ca-central-1.sagemaker.aws","labeling.eu-central-1.sagemaker.aws","labeling.eu-west-1.sagemaker.aws","labeling.eu-west-2.sagemaker.aws","labeling.us-east-1.sagemaker.aws","labeling.us-east-2.sagemaker.aws","labeling.us-west-2.sagemaker.aws","notebook.af-south-1.sagemaker.aws","notebook.ap-east-1.sagemaker.aws","notebook.ap-northeast-1.sagemaker.aws","notebook.ap-northeast-2.sagemaker.aws","notebook.ap-northeast-3.sagemaker.aws","notebook.ap-south-1.sagemaker.aws","notebook.ap-south-2.sagemaker.aws","notebook.ap-southeast-1.sagemaker.aws","notebook.ap-southeast-2.sagemaker.aws","notebook.ap-southeast-3.sagemaker.aws","notebook.ap-southeast-4.sagemaker.aws","notebook.ca-central-1.sagemaker.aws","notebook-fips.ca-central-1.sagemaker.aws","notebook.ca-west-1.sagemaker.aws","notebook-fips.ca-west-1.sagemaker.aws","notebook.eu-central-1.sagemaker.aws","notebook.eu-central-2.sagemaker.aws","notebook.eu-north-1.sagemaker.aws","notebook.eu-south-1.sagemaker.aws","notebook.eu-south-2.sagemaker.aws","notebook.eu-west-1.sagemaker.aws","notebook.eu-west-2.sagemaker.aws","notebook.eu-west-3.sagemaker.aws","notebook.il-central-1.sagemaker.aws","notebook.me-central-1.sagemaker.aws","notebook.me-south-1.sagemaker.aws","notebook.sa-east-1.sagemaker.aws","notebook.us-east-1.sagemaker.aws","notebook-fips.us-east-1.sagemaker.aws","notebook.us-east-2.sagemaker.aws","notebook-fips.us-east-2.sagemaker.aws","notebook.us-gov-east-1.sagemaker.aws","notebook-fips.us-gov-east-1.sagemaker.aws","notebook.us-gov-west-1.sagemaker.aws","notebook-fips.us-gov-west-1.sagemaker.aws","notebook.us-west-1.sagemaker.aws","notebook-fips.us-west-1.sagemaker.aws","notebook.us-west-2.sagemaker.aws","notebook-fips.us-west-2.sagemaker.aws","notebook.cn-north-1.sagemaker.com.cn","notebook.cn-northwest-1.sagemaker.com.cn","studio.af-south-1.sagemaker.aws","studio.ap-east-1.sagemaker.aws","studio.ap-northeast-1.sagemaker.aws","studio.ap-northeast-2.sagemaker.aws","studio.ap-northeast-3.sagemaker.aws","studio.ap-south-1.sagemaker.aws","studio.ap-southeast-1.sagemaker.aws","studio.ap-southeast-2.sagemaker.aws","studio.ap-southeast-3.sagemaker.aws","studio.ca-central-1.sagemaker.aws","studio.eu-central-1.sagemaker.aws","studio.eu-north-1.sagemaker.aws","studio.eu-south-1.sagemaker.aws","studio.eu-south-2.sagemaker.aws","studio.eu-west-1.sagemaker.aws","studio.eu-west-2.sagemaker.aws","studio.eu-west-3.sagemaker.aws","studio.il-central-1.sagemaker.aws","studio.me-central-1.sagemaker.aws","studio.me-south-1.sagemaker.aws","studio.sa-east-1.sagemaker.aws","studio.us-east-1.sagemaker.aws","studio.us-east-2.sagemaker.aws","studio.us-gov-east-1.sagemaker.aws","studio-fips.us-gov-east-1.sagemaker.aws","studio.us-gov-west-1.sagemaker.aws","studio-fips.us-gov-west-1.sagemaker.aws","studio.us-west-1.sagemaker.aws","studio.us-west-2.sagemaker.aws","studio.cn-north-1.sagemaker.com.cn","studio.cn-northwest-1.sagemaker.com.cn","*.experiments.sagemaker.aws","analytics-gateway.ap-northeast-1.amazonaws.com","analytics-gateway.ap-northeast-2.amazonaws.com","analytics-gateway.ap-south-1.amazonaws.com","analytics-gateway.ap-southeast-1.amazonaws.com","analytics-gateway.ap-southeast-2.amazonaws.com","analytics-gateway.eu-central-1.amazonaws.com","analytics-gateway.eu-west-1.amazonaws.com","analytics-gateway.us-east-1.amazonaws.com","analytics-gateway.us-east-2.amazonaws.com","analytics-gateway.us-west-2.amazonaws.com","amplifyapp.com","*.awsapprunner.com","webview-assets.aws-cloud9.af-south-1.amazonaws.com","vfs.cloud9.af-south-1.amazonaws.com","webview-assets.cloud9.af-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-east-1.amazonaws.com","vfs.cloud9.ap-east-1.amazonaws.com","webview-assets.cloud9.ap-east-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com","vfs.cloud9.ap-northeast-1.amazonaws.com","webview-assets.cloud9.ap-northeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com","vfs.cloud9.ap-northeast-2.amazonaws.com","webview-assets.cloud9.ap-northeast-2.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com","vfs.cloud9.ap-northeast-3.amazonaws.com","webview-assets.cloud9.ap-northeast-3.amazonaws.com","webview-assets.aws-cloud9.ap-south-1.amazonaws.com","vfs.cloud9.ap-south-1.amazonaws.com","webview-assets.cloud9.ap-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com","vfs.cloud9.ap-southeast-1.amazonaws.com","webview-assets.cloud9.ap-southeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com","vfs.cloud9.ap-southeast-2.amazonaws.com","webview-assets.cloud9.ap-southeast-2.amazonaws.com","webview-assets.aws-cloud9.ca-central-1.amazonaws.com","vfs.cloud9.ca-central-1.amazonaws.com","webview-assets.cloud9.ca-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-central-1.amazonaws.com","vfs.cloud9.eu-central-1.amazonaws.com","webview-assets.cloud9.eu-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-north-1.amazonaws.com","vfs.cloud9.eu-north-1.amazonaws.com","webview-assets.cloud9.eu-north-1.amazonaws.com","webview-assets.aws-cloud9.eu-south-1.amazonaws.com","vfs.cloud9.eu-south-1.amazonaws.com","webview-assets.cloud9.eu-south-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-1.amazonaws.com","vfs.cloud9.eu-west-1.amazonaws.com","webview-assets.cloud9.eu-west-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-2.amazonaws.com","vfs.cloud9.eu-west-2.amazonaws.com","webview-assets.cloud9.eu-west-2.amazonaws.com","webview-assets.aws-cloud9.eu-west-3.amazonaws.com","vfs.cloud9.eu-west-3.amazonaws.com","webview-assets.cloud9.eu-west-3.amazonaws.com","webview-assets.aws-cloud9.il-central-1.amazonaws.com","vfs.cloud9.il-central-1.amazonaws.com","webview-assets.aws-cloud9.me-south-1.amazonaws.com","vfs.cloud9.me-south-1.amazonaws.com","webview-assets.cloud9.me-south-1.amazonaws.com","webview-assets.aws-cloud9.sa-east-1.amazonaws.com","vfs.cloud9.sa-east-1.amazonaws.com","webview-assets.cloud9.sa-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-1.amazonaws.com","vfs.cloud9.us-east-1.amazonaws.com","webview-assets.cloud9.us-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-2.amazonaws.com","vfs.cloud9.us-east-2.amazonaws.com","webview-assets.cloud9.us-east-2.amazonaws.com","webview-assets.aws-cloud9.us-west-1.amazonaws.com","vfs.cloud9.us-west-1.amazonaws.com","webview-assets.cloud9.us-west-1.amazonaws.com","webview-assets.aws-cloud9.us-west-2.amazonaws.com","vfs.cloud9.us-west-2.amazonaws.com","webview-assets.cloud9.us-west-2.amazonaws.com","awsapps.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","af-south-1.elasticbeanstalk.com","ap-east-1.elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ap-southeast-3.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-north-1.elasticbeanstalk.com","eu-south-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","il-central-1.elasticbeanstalk.com","me-south-1.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-east-1.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com.cn","*.elb.amazonaws.com","awsglobalaccelerator.com","*.private.repost.aws","eero.online","eero-stage.online","apigee.io","panel.dev","siiites.com","appspacehosted.com","appspaceusercontent.com","appudo.net","on-aptible.com","f5.si","arvanedge.ir","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","cdn.prod.atlassian-dev.net","translated.page","myfritz.link","myfritz.net","onavstack.net","*.awdev.ca","*.advisor.ws","ecommerce-shop.pl","b-data.io","balena-devices.com","base.ec","official.ec","buyshop.jp","fashionstore.jp","handcrafted.jp","kawaiishop.jp","supersale.jp","theshop.jp","shopselect.net","base.shop","beagleboard.io","*.beget.app","pages.gay","bnr.la","bitbucket.io","blackbaudcdn.net","of.je","bluebite.io","boomla.net","boutir.com","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","*.s.brave.io","shop.brendly.hr","shop.brendly.rs","browsersafetymark.io","radio.am","radio.fm","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","cafjs.com","canva-apps.cn","*.my.canvasite.cn","canva-apps.com","*.my.canva.site","drr.ac","uwu.ai","carrd.co","crd.co","ju.mp","api.gov.uk","cdn77-storage.com","rsc.contentproxy9.cz","r.cdn77.net","cdn77-ssl.net","c.cdn77.org","rsc.cdn77.org","ssl.origin.cdn77-secure.org","za.bz","br.com","cn.com","de.com","eu.com","jpn.com","mex.com","ru.com","sa.com","uk.com","us.com","za.com","com.de","gb.net","hu.net","jp.net","se.net","uk.net","ae.org","com.se","cx.ua","discourse.group","discourse.team","clerk.app","clerkstage.app","*.lcl.dev","*.lclstage.dev","*.stg.dev","*.stgstage.dev","cleverapps.cc","*.services.clever-cloud.com","cleverapps.io","cleverapps.tech","clickrising.net","cloudns.asia","cloudns.be","cloud-ip.biz","cloudns.biz","cloudns.cc","cloudns.ch","cloudns.cl","cloudns.club","dnsabr.com","ip-ddns.com","cloudns.cx","cloudns.eu","cloudns.in","cloudns.info","ddns-ip.net","dns-cloud.net","dns-dynamic.net","cloudns.nz","cloudns.org","ip-dynamic.org","cloudns.ph","cloudns.pro","cloudns.pw","cloudns.us","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","*.cloudera.site","cf-ipfs.com","cloudflare-ipfs.com","trycloudflare.com","pages.dev","r2.dev","workers.dev","cloudflare.net","cdn.cloudflare.net","cdn.cloudflareanycast.net","cdn.cloudflarecn.net","cdn.cloudflareglobal.net","cust.cloudscale.ch","objects.lpg.cloudscale.ch","objects.rma.cloudscale.ch","wnext.app","cnpy.gdn","*.otap.co","co.ca","co.com","codeberg.page","csb.app","preview.csb.app","co.nl","co.no","webhosting.be","hosting-cluster.nl","ctfcloud.net","convex.site","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dnsupdater.de","dynamisches-dns.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","craft.me","realm.cz","on.crisp.email","*.cryptonomic.net","curv.dev","cfolks.pl","cyon.link","cyon.site","platform0.app","fnwk.site","folionetwork.site","biz.dk","co.dk","firm.dk","reg.dk","store.dk","dyndns.dappnode.io","builtwithdark.com","darklang.io","demo.datadetect.com","instance.datadetect.com","edgestack.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyn-ip24.de","dyndns1.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","debian.net","definima.io","definima.net","deno.dev","deno-staging.dev","dedyn.io","deta.app","deta.dev","dfirma.pl","dkonto.pl","you2.pl","ondigitalocean.app","*.digitaloceanspaces.com","us.kg","rss.my.id","diher.solutions","discordsays.com","discordsez.com","jozi.biz","dnshome.de","online.th","shop.th","drayddns.com","shoparena.pl","dreamhosters.com","durumis.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns.biz","for-better.biz","for-more.biz","for-some.biz","for-the.biz","selfip.biz","webhop.biz","ftpaccess.cc","game-server.cc","myphotos.cc","scrapping.cc","blogdns.com","cechire.com","dnsalias.com","dnsdojo.com","doesntexist.com","dontexist.com","doomdns.com","dyn-o-saur.com","dynalias.com","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","from-ak.com","from-al.com","from-ar.com","from-ca.com","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-ma.com","from-md.com","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","getmyip.com","gotdns.com","hobby-site.com","homelinux.com","homeunix.com","iamallama.com","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bulls-fan.com","is-a-caterer.com","is-a-chef.com","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-certified.com","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-not-certified.com","is-slick.com","is-uberleet.com","is-with-theband.com","isa-geek.com","isa-hockeynut.com","issmarterthanyou.com","likes-pie.com","likescandy.com","neat-url.com","saves-the-whales.com","selfip.com","sells-for-less.com","sells-for-u.com","servebbs.com","simple-url.com","space-to-rent.com","teaches-yoga.com","writesthisblog.com","ath.cx","fuettertdasnetz.de","isteingeek.de","istmein.de","lebtimnetz.de","leitungsen.de","traeumtgerade.de","barrel-of-knowledge.info","barrell-of-knowledge.info","dyndns.info","for-our.info","groks-the.info","groks-this.info","here-for-more.info","knowsitall.info","selfip.info","webhop.info","forgot.her.name","forgot.his.name","at-band-camp.net","blogdns.net","broke-it.net","buyshouses.net","dnsalias.net","dnsdojo.net","does-it.net","dontexist.net","dynalias.net","dynathome.net","endofinternet.net","from-az.net","from-co.net","from-la.net","from-ny.net","gets-it.net","ham-radio-op.net","homeftp.net","homeip.net","homelinux.net","homeunix.net","in-the-band.net","is-a-chef.net","is-a-geek.net","isa-geek.net","kicks-ass.net","office-on-the.net","podzone.net","scrapper-site.net","selfip.net","sells-it.net","servebbs.net","serveftp.net","thruhere.net","webhop.net","merseine.nu","mine.nu","shacknet.nu","blogdns.org","blogsite.org","boldlygoingnowhere.org","dnsalias.org","dnsdojo.org","doesntexist.org","dontexist.org","doomdns.org","dvrdns.org","dynalias.org","dyndns.org","go.dyndns.org","home.dyndns.org","endofinternet.org","endoftheinternet.org","from-me.org","game-host.org","gotdns.org","hobby-site.org","homedns.org","homeftp.org","homelinux.org","homeunix.org","is-a-bruinsfan.org","is-a-candidate.org","is-a-celticsfan.org","is-a-chef.org","is-a-geek.org","is-a-knight.org","is-a-linux-user.org","is-a-patsfan.org","is-a-soxfan.org","is-found.org","is-lost.org","is-saved.org","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","isa-geek.org","kicks-ass.org","misconfused.org","podzone.org","readmyblog.org","selfip.org","sellsyourhome.org","servebbs.org","serveftp.org","servegame.org","stuff-4-sale.org","webhop.org","better-than.tv","dyndns.tv","on-the-web.tv","worse-than.tv","is-by.us","land-4-sale.us","stuff-4-sale.us","dyndns.ws","mypets.ws","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","dynv6.net","e4.cz","easypanel.app","easypanel.host","*.ewp.live","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","at.emf.camp","rt.ht","elementor.cloud","elementor.cool","en-root.fr","mytuleap.com","tuleap-partners.com","encr.app","encoreapi.com","eu.encoway.cloud","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","pl.eu.org","pt.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eurodir.ru","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","relay.evervault.app","relay.evervault.dev","expo.app","staging.expo.app","onfabrica.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","edgecompute.app","fastly-edge.com","fastly-terrarium.com","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastlylb.net","map.fastlylb.net","*.user.fm","fastvps-server.com","fastvps.host","myfast.host","fastvps.site","myfast.space","conn.uk","copro.uk","hosp.uk","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","fh-muenster.io","filegear.me","firebaseapp.com","fldrv.com","flutterflow.app","fly.dev","shw.io","edgeapp.net","forgeblocks.com","id.forgerock.io","framer.ai","framer.app","framercanvas.com","framer.media","framer.photos","framer.website","framer.wiki","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","freemyip.com","*.frusky.de","wien.funkfeuer.at","daemon.asia","dix.asia","mydns.bz","0am.jp","0g0.jp","0j0.jp","0t0.jp","mydns.jp","pgw.jp","wjg.jp","keyword-on.net","live-on.net","server-on.net","mydns.tw","mydns.vc","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","aliases121.com","campaign.gov.uk","service.gov.uk","independent-commission.uk","independent-inquest.uk","independent-inquiry.uk","independent-panel.uk","independent-review.uk","public-inquiry.uk","royal-commission.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","gentlentapis.com","lab.ms","cdn-edges.net","localcert.net","localhostcert.net","gsj.bz","githubusercontent.com","githubpreview.dev","github.io","gitlab.io","gitapp.si","gitpage.si","glitch.me","nog.community","co.ro","shop.ro","lolipop.io","angry.jp","babyblue.jp","babymilk.jp","backdrop.jp","bambina.jp","bitter.jp","blush.jp","boo.jp","boy.jp","boyfriend.jp","but.jp","candypop.jp","capoo.jp","catfood.jp","cheap.jp","chicappa.jp","chillout.jp","chips.jp","chowder.jp","chu.jp","ciao.jp","cocotte.jp","coolblog.jp","cranky.jp","cutegirl.jp","daa.jp","deca.jp","deci.jp","digick.jp","egoism.jp","fakefur.jp","fem.jp","flier.jp","floppy.jp","fool.jp","frenchkiss.jp","girlfriend.jp","girly.jp","gloomy.jp","gonna.jp","greater.jp","hacca.jp","heavy.jp","her.jp","hiho.jp","hippy.jp","holy.jp","hungry.jp","icurus.jp","itigo.jp","jellybean.jp","kikirara.jp","kill.jp","kilo.jp","kuron.jp","littlestar.jp","lolipopmc.jp","lolitapunk.jp","lomo.jp","lovepop.jp","lovesick.jp","main.jp","mods.jp","mond.jp","mongolian.jp","moo.jp","namaste.jp","nikita.jp","nobushi.jp","noor.jp","oops.jp","parallel.jp","parasite.jp","pecori.jp","peewee.jp","penne.jp","pepper.jp","perma.jp","pigboat.jp","pinoko.jp","punyu.jp","pupu.jp","pussycat.jp","pya.jp","raindrop.jp","readymade.jp","sadist.jp","schoolbus.jp","secret.jp","staba.jp","stripper.jp","sub.jp","sunnyday.jp","thick.jp","tonkotsu.jp","under.jp","upper.jp","velvet.jp","verse.jp","versus.jp","vivian.jp","watson.jp","weblike.jp","whitesnow.jp","zombie.jp","heteml.net","graphic.design","goip.de","blogspot.ae","blogspot.al","blogspot.am","*.hosted.app","*.run.app","web.app","blogspot.com.ar","blogspot.co.at","blogspot.com.au","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.com.br","blogspot.com.by","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.com.co","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.com","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","withgoogle.com","withyoutube.com","blogspot.cv","blogspot.com.cy","blogspot.cz","blogspot.de","*.gateway.dev","blogspot.dk","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.fi","blogspot.fr","cloud.goog","translate.goog","*.usercontent.goog","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.co.id","blogspot.ie","blogspot.co.il","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.co.ke","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.com.mt","blogspot.mx","blogspot.my","cloudfunctions.net","blogspot.com.ng","blogspot.nl","blogspot.no","blogspot.co.nz","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.com.tr","blogspot.tw","blogspot.ug","blogspot.co.uk","blogspot.com.uy","blogspot.vn","blogspot.co.za","goupile.fr","pymnt.uk","cloudapps.digital","london.cloudapps.digital","gov.nl","grafana-dev.net","grayjayleagues.com","günstigbestellen.de","günstigliefern.de","fin.ci","free.hr","caa.li","ua.rs","conf.se","häkkinen.fi","hrsn.dev","hashbang.sh","hasura.app","hasura-app.io","hatenablog.com","hatenadiary.com","hateblo.jp","hatenablog.jp","hatenadiary.jp","hatenadiary.org","pages.it.hs-heilbronn.de","pages-research.it.hs-heilbronn.de","heiyu.space","helioho.st","heliohost.us","hepforge.org","herokuapp.com","herokussl.com","heyflow.page","heyflow.site","ravendb.cloud","ravendb.community","development.run","ravendb.run","homesklep.pl","*.kin.one","*.id.pub","*.kin.pub","secaas.hk","hoplix.shop","orx.biz","biz.gl","biz.ng","co.biz.ng","dl.biz.ng","go.biz.ng","lg.biz.ng","on.biz.ng","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","plc.ng","ie.ua","hostyhosting.io","hf.space","static.hf.space","hypernode.io","iobb.net","co.cz","*.moonscale.io","moonscale.net","gr.com","iki.fi","ibxos.it","iliadboxos.it","smushcdn.com","wphostedmail.com","wpmucdn.com","tempurl.host","wpmudev.host","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-vpn.de","in-dsl.net","in-vpn.net","in-dsl.org","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","na4u.ru","apps-1and1.com","live-website.com","apps-1and1.net","websitebuilder.online","app-ionos.space","iopsys.se","*.dweb.link","ipifony.net","ir.md","is-a-good.dev","is-a.dev","iservschule.de","mein-iserv.de","schulplattform.de","schulserver.de","test-iserv.de","iserv.dev","mel.cloudlets.com.au","cloud.interhostsolutions.be","alp1.ae.flow.ch","appengine.flow.ch","es-1.axarnet.cloud","diadem.cloud","vip.jelastic.cloud","jele.cloud","it1.eur.aruba.jenv-aruba.cloud","it1.jenv-aruba.cloud","keliweb.cloud","cs.keliweb.cloud","oxa.cloud","tn.oxa.cloud","uk.oxa.cloud","primetel.cloud","uk.primetel.cloud","ca.reclaim.cloud","uk.reclaim.cloud","us.reclaim.cloud","ch.trendhosting.cloud","de.trendhosting.cloud","jele.club","dopaas.com","paas.hosted-by-previder.com","rag-cloud.hosteur.com","rag-cloud-ch.hosteur.com","jcloud.ik-server.com","jcloud-ver-jpc.ik-server.com","demo.jelastic.com","paas.massivegrid.com","jed.wafaicloud.com","ryd.wafaicloud.com","j.scaleforce.com.cy","jelastic.dogado.eu","fi.cloudplatform.fi","demo.datacenter.fi","paas.datacenter.fi","jele.host","mircloud.host","paas.beebyte.io","sekd1.beebyteapp.io","jele.io","jc.neen.it","jcloud.kz","cloudjiffy.net","fra1-de.cloudjiffy.net","west1-us.cloudjiffy.net","jls-sto1.elastx.net","jls-sto2.elastx.net","jls-sto3.elastx.net","fr-1.paas.massivegrid.net","lon-1.paas.massivegrid.net","lon-2.paas.massivegrid.net","ny-1.paas.massivegrid.net","ny-2.paas.massivegrid.net","sg-1.paas.massivegrid.net","jelastic.saveincloud.net","nordeste-idc.saveincloud.net","j.scaleforce.net","sdscloud.pl","unicloud.pl","mircloud.ru","enscaled.sg","jele.site","jelastic.team","orangecloud.tn","j.layershift.co.uk","phx.enscaled.us","mircloud.us","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","jotelulu.cloud","webadorsite.com","jouwweb.site","*.cns.joyent.com","*.triton.zone","js.org","kaas.gg","khplay.nl","kapsi.fi","ezproxy.kuleuven.be","kuleuven.cloud","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","koobin.events","webthings.io","krellian.net","oya.to","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","libp2p.direct","runcontainers.dev","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","linkyard-cloud.ch","linkyard.cloud","members.linode.com","*.nodebalancer.linode.com","*.linodeobjects.com","ip.linodeusercontent.com","we.bs","filegear-sg.me","ggff.net","*.user.localcert.dev","lodz.pl","pabianice.pl","plock.pl","sieradz.pl","skierniewice.pl","zgierz.pl","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","lohmus.me","servers.run","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.club","barsycenter.com","barsyonline.com","barsy.de","barsy.dev","barsy.eu","barsy.gr","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsyonline.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.ro","barsy.rs","barsy.shop","barsyonline.shop","barsy.site","barsy.store","barsy.support","barsy.uk","barsy.co.uk","barsyonline.co.uk","*.magentosite.cloud","hb.cldmail.ru","matlab.cloud","modelscape.com","mwcloudnonprod.com","polyspace.com","mayfirst.info","mayfirst.org","mazeplay.com","mcdir.me","mcdir.ru","vps.mcdir.ru","mcpre.ru","mediatech.by","mediatech.dev","hra.health","medusajs.app","miniserver.com","memset.net","messerli.app","atmeta.com","apps.fbsbx.com","*.cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","*.azurecontainer.io","azure-api.net","azure-mobile.net","azureedge.net","azurefd.net","azurestaticapps.net","1.azurestaticapps.net","2.azurestaticapps.net","3.azurestaticapps.net","4.azurestaticapps.net","5.azurestaticapps.net","6.azurestaticapps.net","7.azurestaticapps.net","centralus.azurestaticapps.net","eastasia.azurestaticapps.net","eastus2.azurestaticapps.net","westeurope.azurestaticapps.net","westus2.azurestaticapps.net","azurewebsites.net","cloudapp.net","trafficmanager.net","blob.core.windows.net","servicebus.windows.net","routingthecloud.com","sn.mynetname.net","routingthecloud.net","routingthecloud.org","csx.cc","mydbserver.com","webspaceconfig.de","mittwald.info","mittwaldserver.info","typo3server.info","project.space","modx.dev","bmoattachments.org","net.ru","org.ru","pp.ru","hostedpi.com","caracal.mythic-beasts.com","customer.mythic-beasts.com","fentiger.mythic-beasts.com","lynx.mythic-beasts.com","ocelot.mythic-beasts.com","oncilla.mythic-beasts.com","onza.mythic-beasts.com","sphinx.mythic-beasts.com","vs.mythic-beasts.com","x.mythic-beasts.com","yali.mythic-beasts.com","cust.retrosnub.co.uk","ui.nabu.casa","cloud.nospamproxy.com","netfy.app","netlify.app","4u.com","nfshost.com","ipfs.nftstorage.link","ngo.us","ngrok.app","ngrok-free.app","ngrok.dev","ngrok-free.dev","ngrok.io","ap.ngrok.io","au.ngrok.io","eu.ngrok.io","in.ngrok.io","jp.ngrok.io","sa.ngrok.io","us.ngrok.io","ngrok.pizza","ngrok.pro","torun.pl","nh-serv.co.uk","nimsite.uk","mmafan.biz","myftp.biz","no-ip.biz","no-ip.ca","fantasyleague.cc","gotdns.ch","3utilities.com","blogsyte.com","ciscofreak.com","damnserver.com","ddnsking.com","ditchyourip.com","dnsiskinky.com","dynns.com","geekgalaxy.com","health-carereform.com","homesecuritymac.com","homesecuritypc.com","myactivedirectory.com","mysecuritycamera.com","myvnc.com","net-freaks.com","onthewifi.com","point2this.com","quicksytes.com","securitytactics.com","servebeer.com","servecounterstrike.com","serveexchange.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","servehumour.com","serveirc.com","servemp3.com","servep2p.com","servepics.com","servequake.com","servesarcasm.com","stufftoread.com","unusualperson.com","workisboring.com","dvrcam.info","ilovecollege.info","no-ip.info","brasilia.me","ddns.me","dnsfor.me","hopto.me","loginto.me","noip.me","webhop.me","bounceme.net","ddns.net","eating-organic.net","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.net","nhlfan.net","no-ip.net","pgafan.net","privatizehealthinsurance.net","redirectme.net","serveblog.net","serveminecraft.net","sytes.net","cable-modem.org","collegefan.org","couchpotatofries.org","hopto.org","mlbfan.org","myftp.org","mysecuritycamera.org","nflfan.org","no-ip.org","read-books.org","ufcfan.org","zapto.org","no-ip.co.uk","golffan.us","noip.us","pointto.us","stage.nodeart.io","*.developer.app","noop.app","*.northflank.app","*.build.run","*.code.run","*.database.run","*.migration.run","noticeable.news","notion.site","dnsking.ch","mypi.co","n4t.co","001www.com","myiphost.com","forumz.info","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","nsupdate.info","nerdpol.ovh","nyc.mn","prvcy.page","obl.ong","observablehq.cloud","static.observableusercontent.com","omg.lol","cloudycluster.net","omniwe.site","123webseite.at","123website.be","simplesite.com.br","123website.ch","simplesite.com","123webseite.de","123hjemmeside.dk","123miweb.es","123kotisivu.fi","123siteweb.fr","simplesite.gr","123homepage.it","123website.lu","123website.nl","123hjemmeside.no","service.one","simplesite.pl","123paginaweb.pt","123minsida.se","is-a-fullstack.dev","is-cool.dev","is-not-a.dev","localplayer.dev","is-local.org","opensocial.site","opencraft.hosting","16-b.it","32-b.it","64-b.it","orsites.com","operaunite.com","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","*.oraclecloudapps.com","*.oraclegovcloudapps.com","*.oraclegovcloudapps.uk","tech.orange","can.re","authgear-staging.com","authgearapps.com","skygearapp.com","outsystemscloud.com","*.hosting.ovh.net","*.webpaas.ovh.net","ownprovider.com","own.pm","*.owo.codes","ox.rs","oy.lc","pgfog.com","pagexl.com","gotpantheon.com","pantheonsite.io","*.paywhirl.com","*.xmit.co","xmit.dev","madethis.site","srv.us","gh.srv.us","gl.srv.us","lk3.ru","mypep.link","perspecta.cloud","on-web.fr","*.upsun.app","upsunapp.com","ent.platform.sh","eu.platform.sh","us.platform.sh","*.platformsh.site","*.tst.site","platter-app.com","platter-app.dev","platterp.us","pley.games","onporter.run","co.bn","postman-echo.com","pstmn.io","mock.pstmn.io","httpbin.org","prequalifyme.today","xen.prgmr.com","priv.at","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","pythonanywhere.com","eu.pythonanywhere.com","qa2.com","qcx.io","*.sys.qcx.io","myqnapcloud.cn","alpha-myqnapcloud.com","dev-myqnapcloud.com","mycloudnas.com","mynascloud.com","myqnapcloud.com","qoto.io","qualifioapp.com","ladesk.com","qbuser.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","cloudsite.builders","myradweb.net","servername.us","web.in","in.net","myrdbx.io","site.rb-hosting.io","*.on-rancher.cloud","*.on-k3s.io","*.on-rio.io","ravpage.co.il","readthedocs-hosted.com","readthedocs.io","rhcloud.com","instances.spawn.cc","onrender.com","app.render.com","replit.app","id.replit.app","firewalledreplit.co","id.firewalledreplit.co","repl.co","id.repl.co","replit.dev","archer.replit.dev","bones.replit.dev","canary.replit.dev","global.replit.dev","hacker.replit.dev","id.replit.dev","janeway.replit.dev","kim.replit.dev","kira.replit.dev","kirk.replit.dev","odo.replit.dev","paris.replit.dev","picard.replit.dev","pike.replit.dev","prerelease.replit.dev","reed.replit.dev","riker.replit.dev","sisko.replit.dev","spock.replit.dev","staging.replit.dev","sulu.replit.dev","tarpit.replit.dev","teams.replit.dev","tucker.replit.dev","wesley.replit.dev","worf.replit.dev","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","adimo.co.uk","itcouldbewor.se","aus.basketball","nz.basketball","git-pages.rit.edu","rocky.page","rub.de","ruhr-uni-bochum.de","io.noc.ruhr-uni-bochum.de","биз.рус","ком.рус","крым.рус","мир.рус","мск.рус","орг.рус","самара.рус","сочи.рус","спб.рус","я.рус","ras.ru","nyat.app","180r.com","dojin.com","sakuratan.com","sakuraweb.com","x0.com","2-d.jp","bona.jp","crap.jp","daynight.jp","eek.jp","flop.jp","halfmoon.jp","jeez.jp","matrix.jp","mimoza.jp","ivory.ne.jp","mail-box.ne.jp","mints.ne.jp","mokuren.ne.jp","opal.ne.jp","sakura.ne.jp","sumomo.ne.jp","topaz.ne.jp","netgamers.jp","nyanta.jp","o0o0.jp","rdy.jp","rgr.jp","rulez.jp","s3.isk01.sakurastorage.jp","s3.isk02.sakurastorage.jp","saloon.jp","sblo.jp","skr.jp","tank.jp","uh-oh.jp","undo.jp","rs.webaccel.jp","user.webaccel.jp","websozai.jp","xii.jp","squares.net","jpn.org","kirara.st","x0.to","from.tv","sakura.tv","*.builder.code.com","*.dev-builder.code.com","*.stg-builder.code.com","*.001.test.code-builder-stg.platform.salesforce.com","*.d.crm.dev","*.w.crm.dev","*.wa.crm.dev","*.wb.crm.dev","*.wc.crm.dev","*.wd.crm.dev","*.we.crm.dev","*.wf.crm.dev","sandcats.io","logoip.com","logoip.de","fr-par-1.baremetal.scw.cloud","fr-par-2.baremetal.scw.cloud","nl-ams-1.baremetal.scw.cloud","cockpit.fr-par.scw.cloud","fnc.fr-par.scw.cloud","functions.fnc.fr-par.scw.cloud","k8s.fr-par.scw.cloud","nodes.k8s.fr-par.scw.cloud","s3.fr-par.scw.cloud","s3-website.fr-par.scw.cloud","whm.fr-par.scw.cloud","priv.instances.scw.cloud","pub.instances.scw.cloud","k8s.scw.cloud","cockpit.nl-ams.scw.cloud","k8s.nl-ams.scw.cloud","nodes.k8s.nl-ams.scw.cloud","s3.nl-ams.scw.cloud","s3-website.nl-ams.scw.cloud","whm.nl-ams.scw.cloud","cockpit.pl-waw.scw.cloud","k8s.pl-waw.scw.cloud","nodes.k8s.pl-waw.scw.cloud","s3.pl-waw.scw.cloud","s3-website.pl-waw.scw.cloud","scalebook.scw.cloud","smartlabeling.scw.cloud","dedibox.fr","schokokeks.net","gov.scot","service.gov.scot","scrysec.com","client.scrypted.io","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","seidat.net","sellfy.store","minisite.ms","senseering.net","servebolt.cloud","biz.ua","co.ua","pp.ua","as.sh.cn","sheezy.games","shiftedit.io","myshopblocks.com","myshopify.com","shopitsite.com","shopware.shop","shopware.store","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","small-web.org","aeroport.fr","avocat.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","vp4.me","*.snowflake.app","*.privatelink.snowflake.app","streamlit.app","streamlitapp.com","try-snowplow.com","mafelo.net","playstation-cloud.com","srht.site","apps.lair.io","*.stolos.io","spacekit.io","ind.mom","customer.speedpartner.de","myspreadshop.at","myspreadshop.com.au","myspreadshop.be","myspreadshop.ca","myspreadshop.ch","myspreadshop.com","myspreadshop.de","myspreadshop.dk","myspreadshop.es","myspreadshop.fi","myspreadshop.fr","myspreadshop.ie","myspreadshop.it","myspreadshop.net","myspreadshop.nl","myspreadshop.no","myspreadshop.pl","myspreadshop.se","myspreadshop.co.uk","w-corp-staticblitz.com","w-credentialless-staticblitz.com","w-staticblitz.com","stackhero-network.com","runs.onstackit.cloud","stackit.gg","stackit.rocks","stackit.run","stackit.zone","musician.io","novecore.site","api.stdlib.com","feedback.ac","forms.ac","assessments.cx","calculators.cx","funnels.cx","paynow.cx","quizzes.cx","researched.cx","tests.cx","surveys.so","storebase.store","storipress.app","storj.farm","strapiapp.com","media.strapiapp.com","vps-host.net","atl.jelastic.vps-host.net","njs.jelastic.vps-host.net","ric.jelastic.vps-host.net","streak-link.com","streaklinks.com","streakusercontent.com","soc.srcf.net","user.srcf.net","utwente.io","temp-dns.com","supabase.co","supabase.in","supabase.net","syncloud.it","dscloud.biz","direct.quickconnect.cn","dsmynas.com","familyds.com","diskstation.me","dscloud.me","i234.me","myds.me","synology.me","dscloud.mobi","dsmynas.net","familyds.net","dsmynas.org","familyds.org","direct.quickconnect.to","vpnplus.to","mytabit.com","mytabit.co.il","tabitorder.co.il","taifun-dns.de","ts.net","*.c.ts.net","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","taveusercontent.com","p.tawk.email","p.tawkto.email","site.tb-hosting.com","edugit.io","s3.teckids.org","telebit.app","telebit.io","*.telebit.xyz","*.firenet.ch","*.svc.firenet.ch","reservd.com","thingdustdata.com","cust.dev.thingdust.io","reservd.dev.thingdust.io","cust.disrec.thingdust.io","reservd.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","reservd.testing.thingdust.io","tickets.io","arvo.network","azimuth.network","tlon.network","torproject.net","pages.torproject.net","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","site.transip.me","*.transurl.nl","tuxfamily.org","dd-dns.de","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","diskstation.eu","diskstation.org","typedream.app","pro.typeform.com","*.uberspace.de","uber.space","hk.com","inc.hk","ltd.hk","hk.org","it.com","unison-services.cloud","virtual-user.de","virtualuser.de","name.pm","sch.tf","biz.wf","sch.wf","org.yt","rs.ba","bielsko.pl","upli.io","urown.cloud","dnsupdate.info","us.org","v.ua","express.val.run","web.val.run","vercel.app","v0.build","vercel.dev","vusercontent.net","now.sh","2038.io","router.management","v-info.info","voorloper.cloud","*.vultrobjects.com","wafflecell.com","webflow.io","webflowtest.io","*.webhare.dev","bookonline.app","hotelwithflight.com","reserve-online.com","reserve-online.net","cprapid.com","pleskns.com","wp2.host","pdns.page","plesk.page","wpsquared.site","*.wadl.top","remotewd.com","box.ca","pages.wiardweb.com","toolforge.org","wmcloud.org","wmflabs.org","wdh.app","panel.gg","daemon.panel.gg","wixsite.com","wixstudio.com","editorx.io","wixstudio.io","wix.run","messwithdns.com","woltlab-demo.com","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","affinitylottery.org.uk","raffleentry.org.uk","weeklylottery.org.uk","wpenginepowered.com","js.wpenginepowered.com","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","yombo.me","ynh.fr","nohost.me","noho.st","za.net","za.org","zap.cloud","zeabur.app","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"],Z=Y.reduce((e,s)=>{const c=s.replace(/^(\*\.|\!)/,""),o=A.toASCII(c),t=s.charAt(0);if(e.has(o))throw new Error(`Multiple rules found for ${s} (${o})`);return e.set(o,{rule:s,suffix:c,punySuffix:o,wildcard:t==="*",exception:t==="!"}),e},new Map),aa=e=>{const c=A.toASCII(e).split(".");for(let o=0;o<c.length;o++){const t=c.slice(o).join("."),d=Z.get(t);if(d)return d}return null},H={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},oa=e=>{const s=A.toASCII(e);if(s.length<1)return "DOMAIN_TOO_SHORT";if(s.length>255)return "DOMAIN_TOO_LONG";const c=s.split(".");let o;for(let t=0;t<c.length;++t){if(o=c[t],!o.length)return "LABEL_TOO_SHORT";if(o.length>63)return "LABEL_TOO_LONG";if(o.charAt(0)==="-")return "LABEL_STARTS_WITH_DASH";if(o.charAt(o.length-1)==="-")return "LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-_]+$/.test(o))return "LABEL_INVALID_CHARS"}},_=e=>{if(typeof e!="string")throw new TypeError("Domain name must be a string.");let s=e.slice(0).toLowerCase();s.charAt(s.length-1)==="."&&(s=s.slice(0,s.length-1));const c=oa(s);if(c)return {input:e,error:{message:H[c],code:c}};const o={input:e,tld:null,sld:null,domain:null,subdomain:null,listed:false},t=s.split(".");if(t[t.length-1]==="local")return o;const d=()=>(/xn--/.test(s)&&(o.domain&&(o.domain=A.toASCII(o.domain)),o.subdomain&&(o.subdomain=A.toASCII(o.subdomain))),o),z=aa(s);if(!z)return t.length<2?o:(o.tld=t.pop(),o.sld=t.pop(),o.domain=[o.sld,o.tld].join("."),t.length&&(o.subdomain=t.pop()),d());o.listed=true;const y=z.suffix.split("."),g=t.slice(0,t.length-y.length);return z.exception&&g.push(y.shift()),o.tld=y.join("."),!g.length||(z.wildcard&&(y.unshift(g.pop()),o.tld=y.join(".")),!g.length)||(o.sld=g.pop(),o.domain=[o.sld,o.tld].join("."),g.length&&(o.subdomain=g.join("."))),d()},N=e=>e&&_(e).domain||null,R=e=>{const s=_(e);return !!(s.domain&&s.listed)},sa={parse:_,get:N,isValid:R};exports.default=sa;exports.errorCodes=H;exports.get=N;exports.isValid=R;exports.parse=_;
|
|
25692
25811
|
} (psl));
|
|
25693
25812
|
return psl;
|
|
25694
25813
|
}
|
|
@@ -27707,9 +27826,9 @@ var hasRequiredStringify$1;
|
|
|
27707
27826
|
function requireStringify$1 () {
|
|
27708
27827
|
if (hasRequiredStringify$1) return stringify.exports;
|
|
27709
27828
|
hasRequiredStringify$1 = 1;
|
|
27710
|
-
(function (module, exports
|
|
27711
|
-
exports
|
|
27712
|
-
exports
|
|
27829
|
+
(function (module, exports) {
|
|
27830
|
+
exports = module.exports = stringify;
|
|
27831
|
+
exports.getSerialize = serializer;
|
|
27713
27832
|
|
|
27714
27833
|
function stringify(obj, replacer, spaces, cycleReplacer) {
|
|
27715
27834
|
return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)
|
|
@@ -27748,7 +27867,7 @@ var hasRequiredSafeBuffer;
|
|
|
27748
27867
|
function requireSafeBuffer () {
|
|
27749
27868
|
if (hasRequiredSafeBuffer) return safeBuffer.exports;
|
|
27750
27869
|
hasRequiredSafeBuffer = 1;
|
|
27751
|
-
(function (module, exports
|
|
27870
|
+
(function (module, exports) {
|
|
27752
27871
|
/* eslint-disable node/no-deprecated-api */
|
|
27753
27872
|
var buffer = require$$0$8;
|
|
27754
27873
|
var Buffer = buffer.Buffer;
|
|
@@ -27763,8 +27882,8 @@ function requireSafeBuffer () {
|
|
|
27763
27882
|
module.exports = buffer;
|
|
27764
27883
|
} else {
|
|
27765
27884
|
// Copy properties from require('buffer')
|
|
27766
|
-
copyProps(buffer, exports
|
|
27767
|
-
exports
|
|
27885
|
+
copyProps(buffer, exports);
|
|
27886
|
+
exports.Buffer = SafeBuffer;
|
|
27768
27887
|
}
|
|
27769
27888
|
|
|
27770
27889
|
function SafeBuffer (arg, encodingOrOffset, length) {
|
|
@@ -28223,8 +28342,8 @@ var hasRequiredAws4;
|
|
|
28223
28342
|
function requireAws4 () {
|
|
28224
28343
|
if (hasRequiredAws4) return aws4;
|
|
28225
28344
|
hasRequiredAws4 = 1;
|
|
28226
|
-
(function (exports
|
|
28227
|
-
var aws4 = exports
|
|
28345
|
+
(function (exports) {
|
|
28346
|
+
var aws4 = exports,
|
|
28228
28347
|
url = require$$0$6,
|
|
28229
28348
|
querystring = require$$1$4,
|
|
28230
28349
|
crypto = require$$2$1,
|
|
@@ -29927,7 +30046,7 @@ var hasRequiredJsbn;
|
|
|
29927
30046
|
function requireJsbn () {
|
|
29928
30047
|
if (hasRequiredJsbn) return jsbn$1.exports;
|
|
29929
30048
|
hasRequiredJsbn = 1;
|
|
29930
|
-
(function (module, exports
|
|
30049
|
+
(function (module, exports) {
|
|
29931
30050
|
(function(){
|
|
29932
30051
|
|
|
29933
30052
|
// Copyright (c) 2005 Tom Wu
|
|
@@ -31821,13 +31940,13 @@ function requireEc () {
|
|
|
31821
31940
|
return [ Uh, Vl ];
|
|
31822
31941
|
};
|
|
31823
31942
|
|
|
31824
|
-
var exports
|
|
31943
|
+
var exports = {
|
|
31825
31944
|
ECCurveFp: ECCurveFp,
|
|
31826
31945
|
ECPointFp: ECPointFp,
|
|
31827
31946
|
ECFieldElementFp: ECFieldElementFp
|
|
31828
31947
|
};
|
|
31829
31948
|
|
|
31830
|
-
ec = exports
|
|
31949
|
+
ec = exports;
|
|
31831
31950
|
return ec;
|
|
31832
31951
|
}
|
|
31833
31952
|
|
|
@@ -43061,8 +43180,8 @@ function requireValidate$1 () {
|
|
|
43061
43180
|
root.jsonSchema = factory();
|
|
43062
43181
|
}
|
|
43063
43182
|
}(validate$1, function () {// setup primitive classes to be JSON Schema types
|
|
43064
|
-
var exports
|
|
43065
|
-
exports
|
|
43183
|
+
var exports = validate;
|
|
43184
|
+
exports.Integer = {type:"integer"};
|
|
43066
43185
|
var primitiveConstructors = {
|
|
43067
43186
|
String: String,
|
|
43068
43187
|
Boolean: Boolean,
|
|
@@ -43071,7 +43190,7 @@ function requireValidate$1 () {
|
|
|
43071
43190
|
Array: Array,
|
|
43072
43191
|
Date: Date
|
|
43073
43192
|
};
|
|
43074
|
-
exports
|
|
43193
|
+
exports.validate = validate;
|
|
43075
43194
|
function validate(/*Any*/instance,/*Object*/schema) {
|
|
43076
43195
|
// Summary:
|
|
43077
43196
|
// To use the validator call JSONSchema.validate with an instance object and an optional schema object.
|
|
@@ -43086,7 +43205,7 @@ function requireValidate$1 () {
|
|
|
43086
43205
|
// message: which indicates what the error was
|
|
43087
43206
|
//
|
|
43088
43207
|
return validate(instance, schema, {changing: false});//, coerce: false, existingOnly: false});
|
|
43089
|
-
} exports
|
|
43208
|
+
} exports.checkPropertyChange = function(/*Any*/value,/*Object*/schema, /*String*/property) {
|
|
43090
43209
|
// Summary:
|
|
43091
43210
|
// The checkPropertyChange method will check to see if an value can legally be in property with the given schema
|
|
43092
43211
|
// This is slightly different than the validate method in that it will fail if the schema is readonly and it will
|
|
@@ -43096,7 +43215,7 @@ function requireValidate$1 () {
|
|
|
43096
43215
|
//
|
|
43097
43216
|
return validate(value, schema, {changing: property || "property"});
|
|
43098
43217
|
};
|
|
43099
|
-
var validate = exports
|
|
43218
|
+
var validate = exports._validate = function(/*Any*/instance,/*Object*/schema,/*Object*/options) {
|
|
43100
43219
|
|
|
43101
43220
|
if (!options) options = {};
|
|
43102
43221
|
var _changing = options.changing;
|
|
@@ -43291,7 +43410,7 @@ function requireValidate$1 () {
|
|
|
43291
43410
|
}
|
|
43292
43411
|
return {valid:!errors.length,errors:errors};
|
|
43293
43412
|
};
|
|
43294
|
-
exports
|
|
43413
|
+
exports.mustBeValid = function(result){
|
|
43295
43414
|
// summary:
|
|
43296
43415
|
// This checks to ensure that the result is valid and will throw an appropriate error message if it is not
|
|
43297
43416
|
// result: the result returned from checkPropertyChange or validate
|
|
@@ -43300,7 +43419,7 @@ function requireValidate$1 () {
|
|
|
43300
43419
|
}
|
|
43301
43420
|
};
|
|
43302
43421
|
|
|
43303
|
-
return exports
|
|
43422
|
+
return exports;
|
|
43304
43423
|
}));
|
|
43305
43424
|
} (validate$2));
|
|
43306
43425
|
return validate$2.exports;
|
|
@@ -55330,7 +55449,7 @@ var hasRequiredMimeTypes;
|
|
|
55330
55449
|
function requireMimeTypes () {
|
|
55331
55450
|
if (hasRequiredMimeTypes) return mimeTypes;
|
|
55332
55451
|
hasRequiredMimeTypes = 1;
|
|
55333
|
-
(function (exports
|
|
55452
|
+
(function (exports) {
|
|
55334
55453
|
|
|
55335
55454
|
/**
|
|
55336
55455
|
* Module dependencies.
|
|
@@ -55353,16 +55472,16 @@ function requireMimeTypes () {
|
|
|
55353
55472
|
* @public
|
|
55354
55473
|
*/
|
|
55355
55474
|
|
|
55356
|
-
exports
|
|
55357
|
-
exports
|
|
55358
|
-
exports
|
|
55359
|
-
exports
|
|
55360
|
-
exports
|
|
55361
|
-
exports
|
|
55362
|
-
exports
|
|
55475
|
+
exports.charset = charset;
|
|
55476
|
+
exports.charsets = { lookup: charset };
|
|
55477
|
+
exports.contentType = contentType;
|
|
55478
|
+
exports.extension = extension;
|
|
55479
|
+
exports.extensions = Object.create(null);
|
|
55480
|
+
exports.lookup = lookup;
|
|
55481
|
+
exports.types = Object.create(null);
|
|
55363
55482
|
|
|
55364
55483
|
// Populate the extensions/types maps
|
|
55365
|
-
populateMaps(exports
|
|
55484
|
+
populateMaps(exports.extensions, exports.types);
|
|
55366
55485
|
|
|
55367
55486
|
/**
|
|
55368
55487
|
* Get the default charset for a MIME type.
|
|
@@ -55406,7 +55525,7 @@ function requireMimeTypes () {
|
|
|
55406
55525
|
}
|
|
55407
55526
|
|
|
55408
55527
|
var mime = str.indexOf('/') === -1
|
|
55409
|
-
? exports
|
|
55528
|
+
? exports.lookup(str)
|
|
55410
55529
|
: str;
|
|
55411
55530
|
|
|
55412
55531
|
if (!mime) {
|
|
@@ -55415,7 +55534,7 @@ function requireMimeTypes () {
|
|
|
55415
55534
|
|
|
55416
55535
|
// TODO: use content-type or other module
|
|
55417
55536
|
if (mime.indexOf('charset') === -1) {
|
|
55418
|
-
var charset = exports
|
|
55537
|
+
var charset = exports.charset(mime);
|
|
55419
55538
|
if (charset) mime += '; charset=' + charset.toLowerCase();
|
|
55420
55539
|
}
|
|
55421
55540
|
|
|
@@ -55438,7 +55557,7 @@ function requireMimeTypes () {
|
|
|
55438
55557
|
var match = EXTRACT_TYPE_REGEXP.exec(type);
|
|
55439
55558
|
|
|
55440
55559
|
// get extensions
|
|
55441
|
-
var exts = match && exports
|
|
55560
|
+
var exts = match && exports.extensions[match[1].toLowerCase()];
|
|
55442
55561
|
|
|
55443
55562
|
if (!exts || !exts.length) {
|
|
55444
55563
|
return false
|
|
@@ -55468,7 +55587,7 @@ function requireMimeTypes () {
|
|
|
55468
55587
|
return false
|
|
55469
55588
|
}
|
|
55470
55589
|
|
|
55471
|
-
return exports
|
|
55590
|
+
return exports.types[extension] || false
|
|
55472
55591
|
}
|
|
55473
55592
|
|
|
55474
55593
|
/**
|
|
@@ -59663,7 +59782,7 @@ function requireFormats () {
|
|
|
59663
59782
|
|
|
59664
59783
|
function formats(mode) {
|
|
59665
59784
|
mode = mode == 'full' ? 'full' : 'fast';
|
|
59666
|
-
return util.copy(formats[mode]);
|
|
59785
|
+
return util.copy(formats[mode], Object.create(null));
|
|
59667
59786
|
}
|
|
59668
59787
|
|
|
59669
59788
|
|
|
@@ -65868,7 +65987,7 @@ var hasRequiredHawk;
|
|
|
65868
65987
|
function requireHawk () {
|
|
65869
65988
|
if (hasRequiredHawk) return hawk;
|
|
65870
65989
|
hasRequiredHawk = 1;
|
|
65871
|
-
(function (exports
|
|
65990
|
+
(function (exports) {
|
|
65872
65991
|
|
|
65873
65992
|
var crypto = require$$2$1;
|
|
65874
65993
|
|
|
@@ -65888,7 +66007,7 @@ function requireHawk () {
|
|
|
65888
66007
|
return hash.digest('base64')
|
|
65889
66008
|
}
|
|
65890
66009
|
|
|
65891
|
-
exports
|
|
66010
|
+
exports.calculateMac = function (credentials, opts) {
|
|
65892
66011
|
var normalized = 'hawk.1.header\n' +
|
|
65893
66012
|
opts.ts + '\n' +
|
|
65894
66013
|
opts.nonce + '\n' +
|
|
@@ -65913,7 +66032,7 @@ function requireHawk () {
|
|
|
65913
66032
|
return digest
|
|
65914
66033
|
};
|
|
65915
66034
|
|
|
65916
|
-
exports
|
|
66035
|
+
exports.header = function (uri, method, opts) {
|
|
65917
66036
|
var timestamp = opts.timestamp || Math.floor((Date.now() + (opts.localtimeOffsetMsec || 0)) / 1000);
|
|
65918
66037
|
var credentials = opts.credentials;
|
|
65919
66038
|
if (!credentials || !credentials.id || !credentials.key || !credentials.algorithm) {
|
|
@@ -65941,7 +66060,7 @@ function requireHawk () {
|
|
|
65941
66060
|
artifacts.hash = calculatePayloadHash(opts.payload, credentials.algorithm, opts.contentType);
|
|
65942
66061
|
}
|
|
65943
66062
|
|
|
65944
|
-
var mac = exports
|
|
66063
|
+
var mac = exports.calculateMac(credentials, artifacts);
|
|
65945
66064
|
|
|
65946
66065
|
var hasExt = artifacts.ext !== null && artifacts.ext !== undefined && artifacts.ext !== '';
|
|
65947
66066
|
var header = 'Hawk id="' + credentials.id +
|
|
@@ -75090,8 +75209,105 @@ function requireCosNodejsSdkV5 () {
|
|
|
75090
75209
|
var cosNodejsSdkV5Exports = requireCosNodejsSdkV5();
|
|
75091
75210
|
var COS = /*@__PURE__*/getDefaultExportFromCjs(cosNodejsSdkV5Exports);
|
|
75092
75211
|
|
|
75212
|
+
const SIGN_VERSION = '999.0.4';
|
|
75213
|
+
const SIGN_CHARSET = 'AB45STUVWZEFGJ6CH01D237IXYPQRKLMN89';
|
|
75214
|
+
function createHeyboxOpenPlatformSignParams(pathname, options = {}) {
|
|
75215
|
+
const now = options.now ?? new Date();
|
|
75216
|
+
const time = Math.trunc(now.getTime() / 1000);
|
|
75217
|
+
const nonce = options.nonce ?? md5(`${time}${Date.now()}${node_crypto.randomBytes(16).toString('hex')}`).toUpperCase();
|
|
75218
|
+
return {
|
|
75219
|
+
version: SIGN_VERSION,
|
|
75220
|
+
hkey: generateSignature(pathname, time + 1, nonce),
|
|
75221
|
+
_time: time,
|
|
75222
|
+
nonce,
|
|
75223
|
+
};
|
|
75224
|
+
}
|
|
75225
|
+
function generateSignature(path, time, nonce) {
|
|
75226
|
+
const normalizedPath = `/${path
|
|
75227
|
+
.split('/')
|
|
75228
|
+
.filter(Boolean)
|
|
75229
|
+
.join('/')}/`;
|
|
75230
|
+
const transformedTime = transformWithOffset(String(time), SIGN_CHARSET, -2);
|
|
75231
|
+
const transformedPath = transform(normalizedPath, SIGN_CHARSET);
|
|
75232
|
+
const transformedNonce = transform(nonce, SIGN_CHARSET);
|
|
75233
|
+
const combined = interleave([transformedTime, transformedPath, transformedNonce]).slice(0, 20);
|
|
75234
|
+
const hash = md5(combined);
|
|
75235
|
+
let sign = `${mixColumns(hash.slice(-6).split('').map((char) => char.charCodeAt(0))).reduce((sum, value) => sum + value, 0) % 100}`;
|
|
75236
|
+
sign = sign.length < 2 ? `0${sign}` : sign;
|
|
75237
|
+
return `${transformWithOffset(hash.substring(0, 5), SIGN_CHARSET, -4)}${sign}`;
|
|
75238
|
+
}
|
|
75239
|
+
function transformWithOffset(str, charset, offset) {
|
|
75240
|
+
return transform(str, charset.slice(0, offset));
|
|
75241
|
+
}
|
|
75242
|
+
function transform(str, charset) {
|
|
75243
|
+
let output = '';
|
|
75244
|
+
for (let index = 0; index < str.length; index += 1) {
|
|
75245
|
+
output += charset[str.charCodeAt(index) % charset.length];
|
|
75246
|
+
}
|
|
75247
|
+
return output;
|
|
75248
|
+
}
|
|
75249
|
+
function interleave(strings) {
|
|
75250
|
+
let output = '';
|
|
75251
|
+
const maxLength = Math.max(...strings.map((str) => str.length));
|
|
75252
|
+
for (let index = 0; index < maxLength; index += 1) {
|
|
75253
|
+
for (const str of strings) {
|
|
75254
|
+
if (index < str.length) {
|
|
75255
|
+
output += str[index];
|
|
75256
|
+
}
|
|
75257
|
+
}
|
|
75258
|
+
}
|
|
75259
|
+
return output;
|
|
75260
|
+
}
|
|
75261
|
+
function mixColumns(column) {
|
|
75262
|
+
const output = [...column];
|
|
75263
|
+
output[0] = multiplyE(column[0]) ^ multiply4(column[1]) ^ multiply3(column[2]) ^ multiply2(column[3]);
|
|
75264
|
+
output[1] = multiply2(column[0]) ^ multiplyE(column[1]) ^ multiply4(column[2]) ^ multiply3(column[3]);
|
|
75265
|
+
output[2] = multiply3(column[0]) ^ multiply2(column[1]) ^ multiplyE(column[2]) ^ multiply4(column[3]);
|
|
75266
|
+
output[3] = multiply4(column[0]) ^ multiply3(column[1]) ^ multiply2(column[2]) ^ multiplyE(column[3]);
|
|
75267
|
+
return output;
|
|
75268
|
+
}
|
|
75269
|
+
function multiply1(value) {
|
|
75270
|
+
if (value & 0x80) {
|
|
75271
|
+
return ((value << 1) ^ 0x1b) & 0xff;
|
|
75272
|
+
}
|
|
75273
|
+
return value << 1;
|
|
75274
|
+
}
|
|
75275
|
+
function multiply2(value) {
|
|
75276
|
+
return multiply1(value) ^ value;
|
|
75277
|
+
}
|
|
75278
|
+
function multiply3(value) {
|
|
75279
|
+
return multiply2(multiply1(value));
|
|
75280
|
+
}
|
|
75281
|
+
function multiply4(value) {
|
|
75282
|
+
return multiply3(multiply2(multiply1(value)));
|
|
75283
|
+
}
|
|
75284
|
+
function multiplyE(value) {
|
|
75285
|
+
return multiply4(value) ^ multiply3(value) ^ multiply2(value);
|
|
75286
|
+
}
|
|
75287
|
+
function md5(input) {
|
|
75288
|
+
return node_crypto.createHash('md5').update(input).digest('hex');
|
|
75289
|
+
}
|
|
75290
|
+
|
|
75291
|
+
const DEFAULT_PLATFORM_PARAMS = {
|
|
75292
|
+
os_type: 'web',
|
|
75293
|
+
app: 'heybox',
|
|
75294
|
+
x_client_type: 'web',
|
|
75295
|
+
x_os_type: 'Mac',
|
|
75296
|
+
x_app: 'heybox',
|
|
75297
|
+
x_client_version: '999.999.999',
|
|
75298
|
+
};
|
|
75093
75299
|
const HEYBOX_API_BASE_URL = 'https://api.xiaoheihe.cn';
|
|
75094
75300
|
const HEYBOX_WEB_REFERER = 'https://www.xiaoheihe.cn/';
|
|
75301
|
+
function resolveHeyboxId(session) {
|
|
75302
|
+
if (session.heyboxId.trim()) {
|
|
75303
|
+
return session.heyboxId.trim();
|
|
75304
|
+
}
|
|
75305
|
+
return session.cookieHeader
|
|
75306
|
+
.split(';')
|
|
75307
|
+
.map((part) => part.trim())
|
|
75308
|
+
.find((part) => part.startsWith('heybox_id='))
|
|
75309
|
+
?.slice('heybox_id='.length);
|
|
75310
|
+
}
|
|
75095
75311
|
function createHeyboxAuthHeaders(session, options = {}) {
|
|
75096
75312
|
return {
|
|
75097
75313
|
Cookie: session.cookieHeader,
|
|
@@ -75099,6 +75315,94 @@ function createHeyboxAuthHeaders(session, options = {}) {
|
|
|
75099
75315
|
...(options.contentType ? { 'Content-Type': options.contentType } : {}),
|
|
75100
75316
|
};
|
|
75101
75317
|
}
|
|
75318
|
+
function createHeyboxRequestContext(session, options = {}) {
|
|
75319
|
+
const heyboxId = resolveHeyboxId(session);
|
|
75320
|
+
return {
|
|
75321
|
+
baseUrl: HEYBOX_API_BASE_URL,
|
|
75322
|
+
headers: createHeyboxAuthHeaders(session, options),
|
|
75323
|
+
platformParams: {
|
|
75324
|
+
...DEFAULT_PLATFORM_PARAMS,
|
|
75325
|
+
...options.platformParams,
|
|
75326
|
+
...(heyboxId ? { heybox_id: heyboxId } : {}),
|
|
75327
|
+
},
|
|
75328
|
+
};
|
|
75329
|
+
}
|
|
75330
|
+
function createHeyboxOpenPlatformRequestContext(session, pathWithQuery, options = {}) {
|
|
75331
|
+
return createHeyboxRequestContext(session, {
|
|
75332
|
+
...options,
|
|
75333
|
+
platformParams: {
|
|
75334
|
+
x_app: 'heybox_website',
|
|
75335
|
+
...createHeyboxOpenPlatformSignParams(getApiPathname(pathWithQuery)),
|
|
75336
|
+
...options.platformParams,
|
|
75337
|
+
},
|
|
75338
|
+
});
|
|
75339
|
+
}
|
|
75340
|
+
function createHeyboxApiUrl(baseUrl, pathWithQuery, params) {
|
|
75341
|
+
const url = new URL(pathWithQuery, baseUrl);
|
|
75342
|
+
for (const [key, value] of Object.entries(params)) {
|
|
75343
|
+
if (value !== '') {
|
|
75344
|
+
url.searchParams.set(key, String(value));
|
|
75345
|
+
}
|
|
75346
|
+
}
|
|
75347
|
+
return url.toString();
|
|
75348
|
+
}
|
|
75349
|
+
function getApiPathname(pathWithQuery) {
|
|
75350
|
+
return new URL(pathWithQuery, HEYBOX_API_BASE_URL).pathname;
|
|
75351
|
+
}
|
|
75352
|
+
const ENVELOPE_BODY_PREVIEW_LENGTH = 1000;
|
|
75353
|
+
async function readHeyboxApiEnvelope(response, options) {
|
|
75354
|
+
const rawBody = await response.text();
|
|
75355
|
+
let envelope = null;
|
|
75356
|
+
let parseError = null;
|
|
75357
|
+
if (rawBody) {
|
|
75358
|
+
try {
|
|
75359
|
+
envelope = JSON.parse(rawBody);
|
|
75360
|
+
}
|
|
75361
|
+
catch (error) {
|
|
75362
|
+
parseError = error;
|
|
75363
|
+
}
|
|
75364
|
+
}
|
|
75365
|
+
const envelopeOk = envelope?.status === 'ok' && (!options.requireResult || envelope?.result !== undefined);
|
|
75366
|
+
if (response.ok && envelopeOk) {
|
|
75367
|
+
return envelope.result;
|
|
75368
|
+
}
|
|
75369
|
+
throw new Error(formatHeyboxEnvelopeError({ response, envelope, parseError, rawBody, pathWithQuery: options.pathWithQuery }));
|
|
75370
|
+
}
|
|
75371
|
+
function formatHeyboxEnvelopeError(input) {
|
|
75372
|
+
const parts = [`Heybox API ${input.pathWithQuery} failed`, `HTTP ${input.response.status}`];
|
|
75373
|
+
if (input.envelope) {
|
|
75374
|
+
const msg = typeof input.envelope.msg === 'string' ? input.envelope.msg.trim() : '';
|
|
75375
|
+
parts.push(`msg=${msg || '(empty)'}`);
|
|
75376
|
+
if (typeof input.envelope.status === 'string') {
|
|
75377
|
+
parts.push(`envelope.status=${input.envelope.status}`);
|
|
75378
|
+
}
|
|
75379
|
+
const { status: _s, msg: _m, result: _r, ...extras } = input.envelope;
|
|
75380
|
+
if (Object.keys(extras).length > 0) {
|
|
75381
|
+
parts.push(`extras=${truncate(safeJsonStringify(extras), ENVELOPE_BODY_PREVIEW_LENGTH)}`);
|
|
75382
|
+
}
|
|
75383
|
+
if (input.envelope.result !== undefined) {
|
|
75384
|
+
parts.push(`result=${truncate(safeJsonStringify(input.envelope.result), ENVELOPE_BODY_PREVIEW_LENGTH)}`);
|
|
75385
|
+
}
|
|
75386
|
+
return parts.join(' ');
|
|
75387
|
+
}
|
|
75388
|
+
if (input.parseError) {
|
|
75389
|
+
const parseMsg = input.parseError instanceof Error ? input.parseError.message : String(input.parseError);
|
|
75390
|
+
parts.push(`parseError=${parseMsg}`);
|
|
75391
|
+
}
|
|
75392
|
+
parts.push(input.rawBody ? `body=${truncate(input.rawBody, ENVELOPE_BODY_PREVIEW_LENGTH)}` : 'body=(empty)');
|
|
75393
|
+
return parts.join(' ');
|
|
75394
|
+
}
|
|
75395
|
+
function truncate(value, max) {
|
|
75396
|
+
return value.length > max ? `${value.slice(0, max)}...(+${value.length - max} chars)` : value;
|
|
75397
|
+
}
|
|
75398
|
+
function safeJsonStringify(value) {
|
|
75399
|
+
try {
|
|
75400
|
+
return JSON.stringify(value);
|
|
75401
|
+
}
|
|
75402
|
+
catch {
|
|
75403
|
+
return String(value);
|
|
75404
|
+
}
|
|
75405
|
+
}
|
|
75102
75406
|
|
|
75103
75407
|
async function getCDNUploadInfo(options, runtime = {}) {
|
|
75104
75408
|
const body = new URLSearchParams();
|
|
@@ -75110,7 +75414,7 @@ async function getCDNUploadInfo(options, runtime = {}) {
|
|
|
75110
75414
|
async function getCDNUploadToken(options, runtime = {}) {
|
|
75111
75415
|
const body = new URLSearchParams();
|
|
75112
75416
|
body.set('bucket', options.bucket);
|
|
75113
|
-
body.set('
|
|
75417
|
+
body.set('keys', JSON.stringify(options.keys));
|
|
75114
75418
|
body.set('mimetypes', JSON.stringify(options.mimetypes));
|
|
75115
75419
|
body.set('is_multipart_upload', String(options.isMultipartUpload));
|
|
75116
75420
|
return postHeyboxApi('/bbs/app/api/qcloud/cos/upload/token/v2', body, options.session, runtime);
|
|
@@ -75123,17 +75427,14 @@ async function postCDNUploadCallback(options, runtime = {}) {
|
|
|
75123
75427
|
}
|
|
75124
75428
|
async function postHeyboxApi(pathWithQuery, body, session, runtime) {
|
|
75125
75429
|
const fetchImpl = runtime.fetchImpl ?? fetch;
|
|
75126
|
-
const
|
|
75127
|
-
const response = await fetchImpl(
|
|
75430
|
+
const context = createHeyboxRequestContext(session, { contentType: 'application/x-www-form-urlencoded' });
|
|
75431
|
+
const response = await fetchImpl(createHeyboxApiUrl(runtime.baseUrl ?? context.baseUrl, pathWithQuery, context.platformParams), {
|
|
75128
75432
|
method: 'POST',
|
|
75129
|
-
headers:
|
|
75433
|
+
headers: context.headers,
|
|
75130
75434
|
body: body.toString(),
|
|
75131
75435
|
});
|
|
75132
|
-
const
|
|
75133
|
-
|
|
75134
|
-
throw new Error(envelope.msg || `Heybox API ${pathWithQuery} returned status ${envelope.status}`);
|
|
75135
|
-
}
|
|
75136
|
-
return envelope.result;
|
|
75436
|
+
const result = await readHeyboxApiEnvelope(response, { pathWithQuery, requireResult: true });
|
|
75437
|
+
return result;
|
|
75137
75438
|
}
|
|
75138
75439
|
|
|
75139
75440
|
const DEFAULT_CONCURRENCY = 4;
|
|
@@ -75146,8 +75447,6 @@ async function runUpload(options, runtime = {}) {
|
|
|
75146
75447
|
const getCDNUploadToken$1 = runtime.getCDNUploadToken ?? getCDNUploadToken;
|
|
75147
75448
|
const postCDNUploadCallback$1 = runtime.postCDNUploadCallback ?? postCDNUploadCallback;
|
|
75148
75449
|
const createReadStream = runtime.createReadStream ?? fs$4.createReadStream;
|
|
75149
|
-
const createCosClient = runtime.createCosClient ??
|
|
75150
|
-
(({ session }) => createDefaultCosClient(session, { baseUrl: runtime.baseUrl, fetchImpl, getCDNUploadToken: getCDNUploadToken$1 }));
|
|
75151
75450
|
const orderedFiles = [...options.files].sort((a, b) => a.relativePath.localeCompare(b.relativePath));
|
|
75152
75451
|
const fileInfos = orderedFiles.map((file) => ({
|
|
75153
75452
|
name: file.relativePath.split('/').pop() ?? file.relativePath,
|
|
@@ -75161,8 +75460,16 @@ async function runUpload(options, runtime = {}) {
|
|
|
75161
75460
|
}));
|
|
75162
75461
|
log(`[hb-sdk] Uploading ${orderedFiles.length} files (${concurrency} concurrent) ...`);
|
|
75163
75462
|
const uploadInfo = await getCDNUploadInfo$1({ session: options.session, scope: MINIAPP_UPLOAD_SCOPE, fileInfos, needCache: false }, { baseUrl: runtime.baseUrl, fetchImpl });
|
|
75164
|
-
const cos = createCosClient({ session: options.session });
|
|
75165
75463
|
const indexedFiles = orderedFiles.map((file, index) => ({ file, key: uploadInfo.keys[index] }));
|
|
75464
|
+
const cos = runtime.createCosClient
|
|
75465
|
+
? runtime.createCosClient({ session: options.session })
|
|
75466
|
+
: createDefaultCosClient(await getCDNUploadToken$1({
|
|
75467
|
+
session: options.session,
|
|
75468
|
+
bucket: uploadInfo.bucket,
|
|
75469
|
+
keys: indexedFiles.map(({ key }) => key),
|
|
75470
|
+
mimetypes: indexedFiles.map(({ file }) => file.mimeType),
|
|
75471
|
+
isMultipartUpload: 0,
|
|
75472
|
+
}, { baseUrl: runtime.baseUrl, fetchImpl }));
|
|
75166
75473
|
const queue = indexedFiles.slice();
|
|
75167
75474
|
let completed = 0;
|
|
75168
75475
|
const workers = Array.from({ length: Math.min(concurrency, indexedFiles.length) }, async () => {
|
|
@@ -75185,7 +75492,7 @@ async function runUpload(options, runtime = {}) {
|
|
|
75185
75492
|
}
|
|
75186
75493
|
catch (error) {
|
|
75187
75494
|
completed += 1;
|
|
75188
|
-
log(`[hb-sdk] [${String(completed).padStart(2)}/${indexedFiles.length}] error ${task.file.relativePath} -> ${readErrorMessage$
|
|
75495
|
+
log(`[hb-sdk] [${String(completed).padStart(2)}/${indexedFiles.length}] error ${task.file.relativePath} -> ${readErrorMessage$2(error)}`);
|
|
75189
75496
|
throw error;
|
|
75190
75497
|
}
|
|
75191
75498
|
}
|
|
@@ -75194,28 +75501,15 @@ async function runUpload(options, runtime = {}) {
|
|
|
75194
75501
|
await postCDNUploadCallback$1({ session: options.session, keys: uploadInfo.keys, isFinished: true }, { baseUrl: runtime.baseUrl, fetchImpl });
|
|
75195
75502
|
log(`[hb-sdk] Upload finished: ${indexedFiles.length} files.`);
|
|
75196
75503
|
}
|
|
75197
|
-
function createDefaultCosClient(
|
|
75504
|
+
function createDefaultCosClient(uploadToken) {
|
|
75198
75505
|
const cos = new COS({
|
|
75199
|
-
getAuthorization(
|
|
75200
|
-
|
|
75201
|
-
.
|
|
75202
|
-
|
|
75203
|
-
|
|
75204
|
-
|
|
75205
|
-
|
|
75206
|
-
isMultipartUpload: 0,
|
|
75207
|
-
}, { baseUrl: options.baseUrl, fetchImpl: options.fetchImpl })
|
|
75208
|
-
.then((token) => {
|
|
75209
|
-
callback({
|
|
75210
|
-
TmpSecretId: token.credentials.tmpSecretId,
|
|
75211
|
-
TmpSecretKey: token.credentials.tmpSecretKey,
|
|
75212
|
-
XCosSecurityToken: token.credentials.sessionToken,
|
|
75213
|
-
StartTime: token.startTime,
|
|
75214
|
-
ExpiredTime: token.expiredTime,
|
|
75215
|
-
});
|
|
75216
|
-
})
|
|
75217
|
-
.catch((error) => {
|
|
75218
|
-
callback({ error });
|
|
75506
|
+
getAuthorization(_input, callback) {
|
|
75507
|
+
callback({
|
|
75508
|
+
TmpSecretId: uploadToken.credentials.tmpSecretId,
|
|
75509
|
+
TmpSecretKey: uploadToken.credentials.tmpSecretKey,
|
|
75510
|
+
XCosSecurityToken: uploadToken.credentials.sessionToken,
|
|
75511
|
+
StartTime: uploadToken.startTime,
|
|
75512
|
+
ExpiredTime: uploadToken.expiredTime,
|
|
75219
75513
|
});
|
|
75220
75514
|
},
|
|
75221
75515
|
});
|
|
@@ -75224,7 +75518,7 @@ function createDefaultCosClient(session, options) {
|
|
|
75224
75518
|
return new Promise((resolve, reject) => {
|
|
75225
75519
|
cos.putObject(params, (err, result) => {
|
|
75226
75520
|
if (err) {
|
|
75227
|
-
reject(err instanceof Error ? err : new Error(
|
|
75521
|
+
reject(err instanceof Error ? err : new Error(readErrorMessage$2(err)));
|
|
75228
75522
|
return;
|
|
75229
75523
|
}
|
|
75230
75524
|
resolve(result);
|
|
@@ -75242,26 +75536,51 @@ function formatSize(bytes) {
|
|
|
75242
75536
|
}
|
|
75243
75537
|
return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
|
|
75244
75538
|
}
|
|
75245
|
-
function readErrorMessage$
|
|
75246
|
-
|
|
75539
|
+
function readErrorMessage$2(error) {
|
|
75540
|
+
if (error instanceof Error && error.message) {
|
|
75541
|
+
return error.message;
|
|
75542
|
+
}
|
|
75543
|
+
if (isRecord$1(error)) {
|
|
75544
|
+
const primary = readStringField(error, ['message', 'Message', 'errorMessage', 'msg']);
|
|
75545
|
+
const code = readStringField(error, ['code', 'Code', 'errorCode', 'name']);
|
|
75546
|
+
const statusCode = readStringField(error, ['statusCode']);
|
|
75547
|
+
return [code, statusCode, primary].filter(Boolean).join(' ') || JSON.stringify(error);
|
|
75548
|
+
}
|
|
75549
|
+
return String(error);
|
|
75550
|
+
}
|
|
75551
|
+
function readStringField(record, fields) {
|
|
75552
|
+
for (const field of fields) {
|
|
75553
|
+
const value = record[field];
|
|
75554
|
+
if (typeof value === 'string' && value.trim()) {
|
|
75555
|
+
return value.trim();
|
|
75556
|
+
}
|
|
75557
|
+
if (typeof value === 'number') {
|
|
75558
|
+
return String(value);
|
|
75559
|
+
}
|
|
75560
|
+
}
|
|
75561
|
+
return '';
|
|
75562
|
+
}
|
|
75563
|
+
function isRecord$1(value) {
|
|
75564
|
+
return Object.prototype.toString.call(value) === '[object Object]';
|
|
75247
75565
|
}
|
|
75248
75566
|
|
|
75249
75567
|
async function publishUserMiniprogram(options, runtime = {}) {
|
|
75250
75568
|
const fetchImpl = runtime.fetchImpl ?? fetch;
|
|
75251
|
-
const
|
|
75569
|
+
const context = createHeyboxOpenPlatformRequestContext(options.session, PUBLISH_USER_MINIPROGRAM_API_PATH, {
|
|
75570
|
+
contentType: 'application/x-www-form-urlencoded',
|
|
75571
|
+
});
|
|
75252
75572
|
const body = new URLSearchParams();
|
|
75253
75573
|
body.set('mini_program_id', options.miniProgramId);
|
|
75254
75574
|
body.set('manifest', JSON.stringify(options.manifest));
|
|
75255
|
-
const response = await fetchImpl(
|
|
75575
|
+
const response = await fetchImpl(createHeyboxApiUrl(runtime.baseUrl ?? context.baseUrl, PUBLISH_USER_MINIPROGRAM_API_PATH, context.platformParams), {
|
|
75256
75576
|
method: 'POST',
|
|
75257
|
-
headers:
|
|
75577
|
+
headers: context.headers,
|
|
75258
75578
|
body: body.toString(),
|
|
75259
75579
|
});
|
|
75260
|
-
const
|
|
75261
|
-
|
|
75262
|
-
|
|
75263
|
-
}
|
|
75264
|
-
return envelope.result ?? {};
|
|
75580
|
+
const result = await readHeyboxApiEnvelope(response, {
|
|
75581
|
+
pathWithQuery: PUBLISH_USER_MINIPROGRAM_API_PATH,
|
|
75582
|
+
});
|
|
75583
|
+
return result ?? {};
|
|
75265
75584
|
}
|
|
75266
75585
|
|
|
75267
75586
|
const SUPPORTED_PACKAGE_MANAGERS = [
|
|
@@ -75314,14 +75633,11 @@ async function runDeployCommand(options, runtime = {}) {
|
|
|
75314
75633
|
if (!fs$4.existsSync(entryHtmlPath)) {
|
|
75315
75634
|
throw new Error('未找到 dist/index.html,dist 目录残缺,请重新 build');
|
|
75316
75635
|
}
|
|
75317
|
-
const { manifest, hadBom } = await
|
|
75636
|
+
const { manifest, hadBom } = parseMiniappManifestJson(await fs$3.readFile(manifestPath, 'utf8'), 'dist/manifest.json');
|
|
75318
75637
|
if (hadBom) {
|
|
75319
75638
|
output.log('[hb-sdk] dist/manifest.json 包含 BOM,已自动剥离');
|
|
75320
75639
|
}
|
|
75321
|
-
const version = manifest
|
|
75322
|
-
if (typeof version !== 'string' || !isValidVersion(version)) {
|
|
75323
|
-
throw new Error(`manifest.version 格式错误,必须是 x.y.z:${String(version)}`);
|
|
75324
|
-
}
|
|
75640
|
+
const version = validateMiniappManifestForDeploy(manifest);
|
|
75325
75641
|
const allFiles = await walkDistFiles(distDir);
|
|
75326
75642
|
const blocked = allFiles.find((entry) => relativePathContainsNodeModulesSegment(entry.relativePath));
|
|
75327
75643
|
if (blocked) {
|
|
@@ -75332,8 +75648,14 @@ async function runDeployCommand(options, runtime = {}) {
|
|
|
75332
75648
|
if (pathError) {
|
|
75333
75649
|
throw new Error(pathError);
|
|
75334
75650
|
}
|
|
75335
|
-
|
|
75336
|
-
|
|
75651
|
+
let publishResult;
|
|
75652
|
+
try {
|
|
75653
|
+
await (runtime.runUpload ?? runUpload)({ session, miniProgramId, version, files: uploadFiles }, { console: output, fetchImpl: runtime.fetchImpl });
|
|
75654
|
+
publishResult = await (runtime.publishUserMiniprogram ?? publishUserMiniprogram)({ session, miniProgramId, manifest }, { fetchImpl: runtime.fetchImpl });
|
|
75655
|
+
}
|
|
75656
|
+
catch (error) {
|
|
75657
|
+
throw translateHeyboxDeployError(error, { projectRoot, version });
|
|
75658
|
+
}
|
|
75337
75659
|
output.log(`[hb-sdk] Publish ok: ${miniProgramId} ${version}`);
|
|
75338
75660
|
if (publishResult.publish_url) {
|
|
75339
75661
|
output.log(`[hb-sdk] Publish URL: ${publishResult.publish_url}`);
|
|
@@ -75381,17 +75703,6 @@ async function runBuildScript(pm, cwd, spawnImpl) {
|
|
|
75381
75703
|
});
|
|
75382
75704
|
});
|
|
75383
75705
|
}
|
|
75384
|
-
async function readManifest(manifestPath) {
|
|
75385
|
-
const raw = await fs$3.readFile(manifestPath, 'utf8');
|
|
75386
|
-
const hadBom = raw.charCodeAt(0) === 0xfeff;
|
|
75387
|
-
const text = hadBom ? raw.slice(1) : raw;
|
|
75388
|
-
try {
|
|
75389
|
-
return { manifest: JSON.parse(text), hadBom };
|
|
75390
|
-
}
|
|
75391
|
-
catch (error) {
|
|
75392
|
-
throw new Error(`dist/manifest.json 不是合法 JSON:${error instanceof Error ? error.message : String(error)}`);
|
|
75393
|
-
}
|
|
75394
|
-
}
|
|
75395
75706
|
async function walkDistFiles(distDir) {
|
|
75396
75707
|
const results = [];
|
|
75397
75708
|
await walk(distDir, '');
|
|
@@ -75425,6 +75736,39 @@ async function walkDistFiles(distDir) {
|
|
|
75425
75736
|
function inferMimeType(fileName) {
|
|
75426
75737
|
return MIME_BY_EXT[path.extname(fileName).toLowerCase()] || 'application/octet-stream';
|
|
75427
75738
|
}
|
|
75739
|
+
function translateHeyboxDeployError(error, options) {
|
|
75740
|
+
const message = error instanceof Error && error.message ? error.message : String(error);
|
|
75741
|
+
if (isDuplicateUploadErrorMessage(message)) {
|
|
75742
|
+
const packageJsonPath = path.join(options.projectRoot, 'package.json');
|
|
75743
|
+
const nextVersion = suggestNextPatchVersion(options.version);
|
|
75744
|
+
return new Error([
|
|
75745
|
+
`当前小程序版本 ${options.version} 的上传文件已存在,不能覆盖同版本发布产物。`,
|
|
75746
|
+
`请升级 ${packageJsonPath} 中的 version${nextVersion ? `(例如 ${nextVersion})` : ''},重新 build 后再 deploy。`,
|
|
75747
|
+
`原始错误:${message}`,
|
|
75748
|
+
].join('\n'));
|
|
75749
|
+
}
|
|
75750
|
+
if (isAuthExpiredErrorMessage(message)) {
|
|
75751
|
+
return new Error([
|
|
75752
|
+
'Heybox 登录态已失效(服务端 session 已过期或被清除)。',
|
|
75753
|
+
'请运行 `hb-sdk login` 重新登录后再执行 deploy。',
|
|
75754
|
+
`原始错误:${message}`,
|
|
75755
|
+
].join('\n'));
|
|
75756
|
+
}
|
|
75757
|
+
return error instanceof Error ? error : new Error(message);
|
|
75758
|
+
}
|
|
75759
|
+
function isDuplicateUploadErrorMessage(message) {
|
|
75760
|
+
return /重名|duplicate|already exists|exists/i.test(message);
|
|
75761
|
+
}
|
|
75762
|
+
function isAuthExpiredErrorMessage(message) {
|
|
75763
|
+
return /请重新登录|未登录|登录已失效|登录态已失效|unauthorized|未授权/i.test(message);
|
|
75764
|
+
}
|
|
75765
|
+
function suggestNextPatchVersion(version) {
|
|
75766
|
+
const matched = version.match(/^(\d+)\.(\d+)\.(\d+)$/);
|
|
75767
|
+
if (!matched) {
|
|
75768
|
+
return '';
|
|
75769
|
+
}
|
|
75770
|
+
return `${matched[1]}.${matched[2]}.${Number(matched[3]) + 1}`;
|
|
75771
|
+
}
|
|
75428
75772
|
|
|
75429
75773
|
class Locked extends Error {
|
|
75430
75774
|
constructor(port) {
|
|
@@ -75588,6 +75932,337 @@ async function getPorts(options) {
|
|
|
75588
75932
|
throw new Error('No available ports found');
|
|
75589
75933
|
}
|
|
75590
75934
|
|
|
75935
|
+
const MINI_PROGRAM_URL_QUERY_PARAM = 'mini_url';
|
|
75936
|
+
const MOCK_NETWORK_PROXY_PATH = '/__hb_sdk_mock_network__';
|
|
75937
|
+
const MOCK_NETWORK_PROXY_BODY_LIMIT = 1024 * 1024;
|
|
75938
|
+
const MOCK_HOST_ROOT_CANDIDATES = [
|
|
75939
|
+
path.resolve(__dirname, 'devtools/mock-host'),
|
|
75940
|
+
path.resolve(__dirname, '../devtools/mock-host'),
|
|
75941
|
+
path.resolve(__dirname, '../../devtools/mock-host'),
|
|
75942
|
+
path.resolve(__dirname, '../../../devtools/mock-host'),
|
|
75943
|
+
];
|
|
75944
|
+
async function startMiniProgramMockHostServer(options) {
|
|
75945
|
+
const root = options.root ?? resolveMiniProgramMockHostRoot(options.rootCandidates);
|
|
75946
|
+
const server = createMiniProgramMockHostServer(root, {
|
|
75947
|
+
fetchImpl: options.fetchImpl ?? fetch,
|
|
75948
|
+
});
|
|
75949
|
+
const port = await listenHttpServer(server, {
|
|
75950
|
+
host: options.host,
|
|
75951
|
+
port: options.port,
|
|
75952
|
+
}, options.getPort ?? getPorts);
|
|
75953
|
+
return {
|
|
75954
|
+
close: () => new Promise((resolve) => {
|
|
75955
|
+
server.close(() => resolve());
|
|
75956
|
+
}),
|
|
75957
|
+
port,
|
|
75958
|
+
root,
|
|
75959
|
+
server,
|
|
75960
|
+
url: createMiniProgramMockHostUrl({
|
|
75961
|
+
appUrl: options.appUrl,
|
|
75962
|
+
host: options.host,
|
|
75963
|
+
port,
|
|
75964
|
+
}),
|
|
75965
|
+
};
|
|
75966
|
+
}
|
|
75967
|
+
function resolveMiniProgramMockHostRoot(candidates = MOCK_HOST_ROOT_CANDIDATES) {
|
|
75968
|
+
const found = candidates.find((candidate) => fs$4.existsSync(path.join(candidate, 'index.html')));
|
|
75969
|
+
if (!found) {
|
|
75970
|
+
throw new Error('未找到 hb-sdk mock host 静态产物。请先执行 @heybox/hb-sdk 的 build:mock-host。');
|
|
75971
|
+
}
|
|
75972
|
+
return found;
|
|
75973
|
+
}
|
|
75974
|
+
function createMiniProgramMockHostUrl(options) {
|
|
75975
|
+
const url = new URL(`http://${toDisplayHost$1(options.host)}:${options.port}/`);
|
|
75976
|
+
url.searchParams.set(MINI_PROGRAM_URL_QUERY_PARAM, options.appUrl);
|
|
75977
|
+
return url.toString();
|
|
75978
|
+
}
|
|
75979
|
+
function createMiniProgramMockHostServer(root, runtime) {
|
|
75980
|
+
return node_http.createServer(async (request, response) => {
|
|
75981
|
+
const requestUrl = new URL(request.url, 'http://localhost');
|
|
75982
|
+
const pathname = decodeURIComponent(requestUrl.pathname);
|
|
75983
|
+
if (pathname === MOCK_NETWORK_PROXY_PATH) {
|
|
75984
|
+
await handleMockNetworkProxy(request, response, runtime.fetchImpl);
|
|
75985
|
+
return;
|
|
75986
|
+
}
|
|
75987
|
+
const targetPath = resolveStaticPath(root, pathname);
|
|
75988
|
+
if (!targetPath) {
|
|
75989
|
+
response.writeHead(404);
|
|
75990
|
+
response.end('Not found');
|
|
75991
|
+
return;
|
|
75992
|
+
}
|
|
75993
|
+
try {
|
|
75994
|
+
const stat = fs$4.statSync(targetPath);
|
|
75995
|
+
if (stat.isDirectory()) {
|
|
75996
|
+
response.writeHead(404);
|
|
75997
|
+
response.end('Not found');
|
|
75998
|
+
return;
|
|
75999
|
+
}
|
|
76000
|
+
response.writeHead(200, {
|
|
76001
|
+
'content-type': readContentType(targetPath),
|
|
76002
|
+
'cache-control': 'no-store',
|
|
76003
|
+
});
|
|
76004
|
+
fs$4.createReadStream(targetPath).pipe(response);
|
|
76005
|
+
}
|
|
76006
|
+
catch {
|
|
76007
|
+
response.writeHead(404);
|
|
76008
|
+
response.end('Not found');
|
|
76009
|
+
}
|
|
76010
|
+
});
|
|
76011
|
+
}
|
|
76012
|
+
async function handleMockNetworkProxy(request, response, fetchImpl) {
|
|
76013
|
+
if (request.method === 'OPTIONS') {
|
|
76014
|
+
writeJsonResponse(response, 204, undefined);
|
|
76015
|
+
return;
|
|
76016
|
+
}
|
|
76017
|
+
if (request.method !== 'POST') {
|
|
76018
|
+
writeJsonResponse(response, 405, {
|
|
76019
|
+
code: 'METHOD_NOT_ALLOWED',
|
|
76020
|
+
message: 'mock network proxy only supports POST',
|
|
76021
|
+
});
|
|
76022
|
+
return;
|
|
76023
|
+
}
|
|
76024
|
+
try {
|
|
76025
|
+
const payload = await readJsonRequestBody(request);
|
|
76026
|
+
const result = await requestMockNetwork(payload, fetchImpl);
|
|
76027
|
+
writeJsonResponse(response, 200, result);
|
|
76028
|
+
}
|
|
76029
|
+
catch (error) {
|
|
76030
|
+
writeJsonResponse(response, readMockNetworkErrorStatus(error), toMockNetworkErrorPayload(error));
|
|
76031
|
+
}
|
|
76032
|
+
}
|
|
76033
|
+
async function requestMockNetwork(payload, fetchImpl) {
|
|
76034
|
+
if (!isRecord(payload) || typeof payload.url !== 'string' || !payload.url.trim()) {
|
|
76035
|
+
throw createMockNetworkError(400, 'INVALID_NETWORK_REQUEST', 'network.request url 必须是非空字符串');
|
|
76036
|
+
}
|
|
76037
|
+
const url = createMockNetworkUrl(payload.url, payload.params);
|
|
76038
|
+
const method = typeof payload.method === 'string' && payload.method.trim() ? payload.method.trim().toUpperCase() : 'GET';
|
|
76039
|
+
const headers = normalizeMockNetworkHeaders(payload.headers);
|
|
76040
|
+
const controller = new AbortController();
|
|
76041
|
+
const timeout = Number(payload.timeout) > 0 ? Number(payload.timeout) : 10000;
|
|
76042
|
+
const timer = setTimeout(() => controller.abort(), timeout);
|
|
76043
|
+
try {
|
|
76044
|
+
const response = await fetchImpl(url.toString(), {
|
|
76045
|
+
method,
|
|
76046
|
+
headers,
|
|
76047
|
+
body: createMockNetworkBody(method, payload.data, headers),
|
|
76048
|
+
redirect: 'follow',
|
|
76049
|
+
signal: controller.signal,
|
|
76050
|
+
});
|
|
76051
|
+
const contentType = response.headers.get('content-type') || '';
|
|
76052
|
+
const text = await response.text();
|
|
76053
|
+
clearTimeout(timer);
|
|
76054
|
+
return {
|
|
76055
|
+
data: contentType.includes('application/json') ? safeJsonParse(text) : text,
|
|
76056
|
+
status: response.status,
|
|
76057
|
+
statusText: response.statusText,
|
|
76058
|
+
headers: Object.fromEntries(response.headers.entries()),
|
|
76059
|
+
};
|
|
76060
|
+
}
|
|
76061
|
+
catch (error) {
|
|
76062
|
+
clearTimeout(timer);
|
|
76063
|
+
throw createMockNetworkError(502, 'MOCK_NETWORK_REQUEST_FAILED', error instanceof Error && error.name === 'AbortError'
|
|
76064
|
+
? `network.request timeout after ${timeout}ms`
|
|
76065
|
+
: readErrorMessage$1(error));
|
|
76066
|
+
}
|
|
76067
|
+
}
|
|
76068
|
+
function createMockNetworkUrl(input, params) {
|
|
76069
|
+
let url;
|
|
76070
|
+
try {
|
|
76071
|
+
url = new URL(input);
|
|
76072
|
+
}
|
|
76073
|
+
catch {
|
|
76074
|
+
throw createMockNetworkError(400, 'INVALID_NETWORK_REQUEST', 'network.request url 必须是合法 URL');
|
|
76075
|
+
}
|
|
76076
|
+
if (!['http:', 'https:'].includes(url.protocol)) {
|
|
76077
|
+
throw createMockNetworkError(400, 'INVALID_NETWORK_REQUEST', 'network.request 仅支持 HTTP(S) URL');
|
|
76078
|
+
}
|
|
76079
|
+
if (isRecord(params)) {
|
|
76080
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
76081
|
+
if (value !== undefined && value !== null) {
|
|
76082
|
+
url.searchParams.set(key, String(value));
|
|
76083
|
+
}
|
|
76084
|
+
});
|
|
76085
|
+
}
|
|
76086
|
+
return url;
|
|
76087
|
+
}
|
|
76088
|
+
function normalizeMockNetworkHeaders(headers) {
|
|
76089
|
+
const normalized = new Headers();
|
|
76090
|
+
if (!isRecord(headers)) {
|
|
76091
|
+
return normalized;
|
|
76092
|
+
}
|
|
76093
|
+
Object.entries(headers).forEach(([key, value]) => {
|
|
76094
|
+
if (typeof value === 'string' && !isBlockedMockNetworkHeader(key)) {
|
|
76095
|
+
normalized.set(key, value);
|
|
76096
|
+
}
|
|
76097
|
+
});
|
|
76098
|
+
return normalized;
|
|
76099
|
+
}
|
|
76100
|
+
function isBlockedMockNetworkHeader(key) {
|
|
76101
|
+
return [
|
|
76102
|
+
'connection',
|
|
76103
|
+
'content-length',
|
|
76104
|
+
'host',
|
|
76105
|
+
'keep-alive',
|
|
76106
|
+
'proxy-authenticate',
|
|
76107
|
+
'proxy-authorization',
|
|
76108
|
+
'te',
|
|
76109
|
+
'trailer',
|
|
76110
|
+
'transfer-encoding',
|
|
76111
|
+
'upgrade',
|
|
76112
|
+
].includes(key.toLowerCase());
|
|
76113
|
+
}
|
|
76114
|
+
function createMockNetworkBody(method, data, headers) {
|
|
76115
|
+
if (data === undefined || method === 'GET' || method === 'HEAD') {
|
|
76116
|
+
return undefined;
|
|
76117
|
+
}
|
|
76118
|
+
if (typeof data === 'string') {
|
|
76119
|
+
return data;
|
|
76120
|
+
}
|
|
76121
|
+
if (!headers.has('content-type')) {
|
|
76122
|
+
headers.set('content-type', 'application/json');
|
|
76123
|
+
}
|
|
76124
|
+
return JSON.stringify(data);
|
|
76125
|
+
}
|
|
76126
|
+
function readJsonRequestBody(request) {
|
|
76127
|
+
return new Promise((resolve, reject) => {
|
|
76128
|
+
const chunks = [];
|
|
76129
|
+
let size = 0;
|
|
76130
|
+
request.on('data', (chunk) => {
|
|
76131
|
+
const buffer = Buffer.from(chunk);
|
|
76132
|
+
size += buffer.byteLength;
|
|
76133
|
+
if (size > MOCK_NETWORK_PROXY_BODY_LIMIT) {
|
|
76134
|
+
reject(createMockNetworkError(413, 'REQUEST_ENTITY_TOO_LARGE', 'mock network proxy request body too large'));
|
|
76135
|
+
request.destroy();
|
|
76136
|
+
return;
|
|
76137
|
+
}
|
|
76138
|
+
chunks.push(buffer);
|
|
76139
|
+
});
|
|
76140
|
+
request.on('error', reject);
|
|
76141
|
+
request.on('aborted', () => {
|
|
76142
|
+
reject('mock network proxy request aborted');
|
|
76143
|
+
});
|
|
76144
|
+
request.on('end', () => {
|
|
76145
|
+
const rawBody = Buffer.concat(chunks).toString('utf8');
|
|
76146
|
+
if (!rawBody.trim()) {
|
|
76147
|
+
resolve({});
|
|
76148
|
+
return;
|
|
76149
|
+
}
|
|
76150
|
+
try {
|
|
76151
|
+
resolve(JSON.parse(rawBody));
|
|
76152
|
+
}
|
|
76153
|
+
catch {
|
|
76154
|
+
reject(createMockNetworkError(400, 'INVALID_JSON', 'mock network proxy received invalid JSON'));
|
|
76155
|
+
}
|
|
76156
|
+
});
|
|
76157
|
+
});
|
|
76158
|
+
}
|
|
76159
|
+
function writeJsonResponse(response, status, body) {
|
|
76160
|
+
response.writeHead(status, {
|
|
76161
|
+
'content-type': 'application/json; charset=utf-8',
|
|
76162
|
+
'cache-control': 'no-store',
|
|
76163
|
+
});
|
|
76164
|
+
response.end(body === undefined ? '' : JSON.stringify(body));
|
|
76165
|
+
}
|
|
76166
|
+
function safeJsonParse(text) {
|
|
76167
|
+
try {
|
|
76168
|
+
return JSON.parse(text);
|
|
76169
|
+
}
|
|
76170
|
+
catch {
|
|
76171
|
+
return text;
|
|
76172
|
+
}
|
|
76173
|
+
}
|
|
76174
|
+
function isRecord(value) {
|
|
76175
|
+
return Object.prototype.toString.call(value) === '[object Object]';
|
|
76176
|
+
}
|
|
76177
|
+
function createMockNetworkError(status, code, message) {
|
|
76178
|
+
const error = new Error(message);
|
|
76179
|
+
error.code = code;
|
|
76180
|
+
error.status = status;
|
|
76181
|
+
return error;
|
|
76182
|
+
}
|
|
76183
|
+
function readMockNetworkErrorStatus(error) {
|
|
76184
|
+
return isObjectLike(error) && typeof error.status === 'number' ? error.status : 500;
|
|
76185
|
+
}
|
|
76186
|
+
function toMockNetworkErrorPayload(error) {
|
|
76187
|
+
if (isObjectLike(error) && typeof error.code === 'string' && typeof error.message === 'string') {
|
|
76188
|
+
return {
|
|
76189
|
+
code: error.code,
|
|
76190
|
+
message: error.message,
|
|
76191
|
+
};
|
|
76192
|
+
}
|
|
76193
|
+
return {
|
|
76194
|
+
code: 'MOCK_NETWORK_ERROR',
|
|
76195
|
+
message: readErrorMessage$1(error),
|
|
76196
|
+
};
|
|
76197
|
+
}
|
|
76198
|
+
function isObjectLike(value) {
|
|
76199
|
+
return (typeof value === 'object' || typeof value === 'function') && value !== null;
|
|
76200
|
+
}
|
|
76201
|
+
function resolveStaticPath(root, pathname) {
|
|
76202
|
+
const safePathname = pathname === '/' ? '/index.html' : pathname;
|
|
76203
|
+
const normalizedRoot = path.normalize(root);
|
|
76204
|
+
const targetPath = path.normalize(path.join(normalizedRoot, safePathname));
|
|
76205
|
+
if (targetPath !== normalizedRoot && !targetPath.startsWith(`${normalizedRoot}${path.sep}`)) {
|
|
76206
|
+
return undefined;
|
|
76207
|
+
}
|
|
76208
|
+
return targetPath;
|
|
76209
|
+
}
|
|
76210
|
+
function readContentType(filePath) {
|
|
76211
|
+
if (filePath.endsWith('.html')) {
|
|
76212
|
+
return 'text/html; charset=utf-8';
|
|
76213
|
+
}
|
|
76214
|
+
if (filePath.endsWith('.js')) {
|
|
76215
|
+
return 'text/javascript; charset=utf-8';
|
|
76216
|
+
}
|
|
76217
|
+
if (filePath.endsWith('.css')) {
|
|
76218
|
+
return 'text/css; charset=utf-8';
|
|
76219
|
+
}
|
|
76220
|
+
if (filePath.endsWith('.json')) {
|
|
76221
|
+
return 'application/json; charset=utf-8';
|
|
76222
|
+
}
|
|
76223
|
+
if (filePath.endsWith('.svg')) {
|
|
76224
|
+
return 'image/svg+xml';
|
|
76225
|
+
}
|
|
76226
|
+
return 'application/octet-stream';
|
|
76227
|
+
}
|
|
76228
|
+
async function listenHttpServer(server, options, getPortImpl) {
|
|
76229
|
+
const maxAttempts = 20;
|
|
76230
|
+
const port = await getPortImpl({
|
|
76231
|
+
host: options.host,
|
|
76232
|
+
port: createPortCandidates(options.port, maxAttempts),
|
|
76233
|
+
});
|
|
76234
|
+
if (port < options.port || port >= options.port + maxAttempts) {
|
|
76235
|
+
throw new Error(`无法找到可用 mock host 端口,起始端口: ${options.port}`);
|
|
76236
|
+
}
|
|
76237
|
+
await new Promise((resolve, reject) => {
|
|
76238
|
+
const onError = (error) => {
|
|
76239
|
+
server.off('listening', onListening);
|
|
76240
|
+
reject(error);
|
|
76241
|
+
};
|
|
76242
|
+
const onListening = () => {
|
|
76243
|
+
server.off('error', onError);
|
|
76244
|
+
resolve();
|
|
76245
|
+
};
|
|
76246
|
+
server.once('error', onError);
|
|
76247
|
+
server.once('listening', onListening);
|
|
76248
|
+
server.listen(port, options.host);
|
|
76249
|
+
});
|
|
76250
|
+
const address = server.address();
|
|
76251
|
+
return address.port;
|
|
76252
|
+
}
|
|
76253
|
+
function createPortCandidates(startPort, count) {
|
|
76254
|
+
return Array.from({ length: count }, (_, index) => startPort + index);
|
|
76255
|
+
}
|
|
76256
|
+
function toDisplayHost$1(host) {
|
|
76257
|
+
if (!host || host === '0.0.0.0' || host === '::') {
|
|
76258
|
+
return 'localhost';
|
|
76259
|
+
}
|
|
76260
|
+
return host;
|
|
76261
|
+
}
|
|
76262
|
+
function readErrorMessage$1(error) {
|
|
76263
|
+
return error instanceof Error ? error.message : String(error);
|
|
76264
|
+
}
|
|
76265
|
+
|
|
75591
76266
|
let isDockerCached;
|
|
75592
76267
|
|
|
75593
76268
|
function hasDockerEnv() {
|
|
@@ -76221,9 +76896,6 @@ function readErrorMessage(error) {
|
|
|
76221
76896
|
|
|
76222
76897
|
const DEFAULT_APP_PORT = 5173;
|
|
76223
76898
|
const DEFAULT_MOCK_PORT = 5174;
|
|
76224
|
-
const MINI_PROGRAM_URL_QUERY_PARAM = 'mini_url';
|
|
76225
|
-
const MOCK_NETWORK_PROXY_PATH = '/__hb_sdk_mock_network__';
|
|
76226
|
-
const MOCK_NETWORK_PROXY_BODY_LIMIT = 1024 * 1024;
|
|
76227
76899
|
// Shared with Heybox H5 Vite plugins so hb-sdk can own the launch output.
|
|
76228
76900
|
const MANAGED_DEV_OUTPUT_ENV = 'HEYBOX_DEV_SERVER_MANAGED_OUTPUT';
|
|
76229
76901
|
const VITE_LOG_LEVEL = 'warn';
|
|
@@ -76237,26 +76909,29 @@ async function runDevCommand(options, runtime = {}) {
|
|
|
76237
76909
|
await appServer.listen(options.port ?? DEFAULT_APP_PORT);
|
|
76238
76910
|
const appUrl = await resolveViteAppUrl(appServer, options, fetchImpl);
|
|
76239
76911
|
const closers = [() => appServer.close()];
|
|
76240
|
-
|
|
76241
|
-
|
|
76242
|
-
|
|
76243
|
-
|
|
76244
|
-
|
|
76245
|
-
|
|
76246
|
-
|
|
76247
|
-
|
|
76248
|
-
|
|
76249
|
-
|
|
76250
|
-
|
|
76251
|
-
|
|
76252
|
-
|
|
76253
|
-
|
|
76912
|
+
let mockHost;
|
|
76913
|
+
try {
|
|
76914
|
+
mockHost = await startMiniProgramMockHostServer({
|
|
76915
|
+
appUrl,
|
|
76916
|
+
fetchImpl,
|
|
76917
|
+
getPort: runtime.getPort ?? getPorts,
|
|
76918
|
+
host: options.host,
|
|
76919
|
+
port: options.mockPort ?? DEFAULT_MOCK_PORT,
|
|
76920
|
+
root: runtime.mockHostRoot,
|
|
76921
|
+
rootCandidates: runtime.mockHostRootCandidates,
|
|
76922
|
+
});
|
|
76923
|
+
}
|
|
76924
|
+
catch (error) {
|
|
76925
|
+
await closeAll(closers);
|
|
76926
|
+
throw error;
|
|
76927
|
+
}
|
|
76928
|
+
closers.push(() => mockHost.close());
|
|
76254
76929
|
output.log(`\n[hb-sdk] Mock runtime host is ready`);
|
|
76255
|
-
output.log(`[hb-sdk] Mock runtime host: ${
|
|
76930
|
+
output.log(`[hb-sdk] Mock runtime host: ${mockHost.url}`);
|
|
76256
76931
|
output.log(`[hb-sdk] Mini program URL: ${appUrl}`);
|
|
76257
76932
|
output.log(`[hb-sdk] Mac APP: use the button in Mock runtime host`);
|
|
76258
76933
|
if (options.open !== false) {
|
|
76259
|
-
void openUrl(
|
|
76934
|
+
void openUrl(mockHost.url);
|
|
76260
76935
|
}
|
|
76261
76936
|
installShutdownHandlers(closers, runtime.process ?? process);
|
|
76262
76937
|
}
|
|
@@ -76276,6 +76951,10 @@ function findProjectRoot(startDir) {
|
|
|
76276
76951
|
async function loadProjectVite(projectRoot) {
|
|
76277
76952
|
const projectRequire = node_module.createRequire(path.join(projectRoot, 'package.json'));
|
|
76278
76953
|
try {
|
|
76954
|
+
const packageJson = JSON.parse(await fs$3.readFile(path.join(projectRoot, 'package.json'), 'utf8'));
|
|
76955
|
+
if (!hasPackageDependency(packageJson, 'vite')) {
|
|
76956
|
+
throw new Error('package.json 未声明 vite');
|
|
76957
|
+
}
|
|
76279
76958
|
const viteEntry = projectRequire.resolve('vite');
|
|
76280
76959
|
return (await import(node_url.pathToFileURL(viteEntry).href));
|
|
76281
76960
|
}
|
|
@@ -76283,9 +76962,16 @@ async function loadProjectVite(projectRoot) {
|
|
|
76283
76962
|
throw new Error(`当前项目未安装 vite。请先安装项目依赖,或将 vite 放到项目 devDependencies。原始错误: ${readErrorMessage(error)}`);
|
|
76284
76963
|
}
|
|
76285
76964
|
}
|
|
76965
|
+
function hasPackageDependency(packageJson, name) {
|
|
76966
|
+
return Boolean(packageJson.dependencies?.[name] ||
|
|
76967
|
+
packageJson.devDependencies?.[name] ||
|
|
76968
|
+
packageJson.optionalDependencies?.[name] ||
|
|
76969
|
+
packageJson.peerDependencies?.[name]);
|
|
76970
|
+
}
|
|
76286
76971
|
function createViteServerOptions(projectRoot, options) {
|
|
76287
76972
|
const configFile = resolveProjectViteConfig(projectRoot);
|
|
76288
76973
|
const server = {
|
|
76974
|
+
cors: true,
|
|
76289
76975
|
host: options.host,
|
|
76290
76976
|
port: options.port ?? DEFAULT_APP_PORT,
|
|
76291
76977
|
strictPort: false,
|
|
@@ -76379,299 +77065,6 @@ async function canReachDocumentUrl(url, fetchImpl) {
|
|
|
76379
77065
|
function ensureTrailingSlash(value) {
|
|
76380
77066
|
return value.endsWith('/') ? value : `${value}/`;
|
|
76381
77067
|
}
|
|
76382
|
-
const MOCK_HOST_ROOT_CANDIDATES = [
|
|
76383
|
-
path.resolve(__dirname, 'devtools/mock-host'),
|
|
76384
|
-
path.resolve(__dirname, '../devtools/mock-host'),
|
|
76385
|
-
path.resolve(__dirname, '../../devtools/mock-host'),
|
|
76386
|
-
path.resolve(__dirname, '../../../devtools/mock-host'),
|
|
76387
|
-
];
|
|
76388
|
-
function resolveMockHostRoot(candidates = MOCK_HOST_ROOT_CANDIDATES) {
|
|
76389
|
-
const found = candidates.find((candidate) => fs$4.existsSync(path.join(candidate, 'index.html')));
|
|
76390
|
-
if (!found) {
|
|
76391
|
-
throw new Error(`未找到 hb-sdk mock host 静态产物。请先执行 @heybox/hb-sdk 的 build:mock-host。`);
|
|
76392
|
-
}
|
|
76393
|
-
return found;
|
|
76394
|
-
}
|
|
76395
|
-
function createMockHostServer(root, runtime) {
|
|
76396
|
-
return node_http.createServer(async (request, response) => {
|
|
76397
|
-
const requestUrl = new URL(request.url, 'http://localhost');
|
|
76398
|
-
const pathname = decodeURIComponent(requestUrl.pathname);
|
|
76399
|
-
if (pathname === MOCK_NETWORK_PROXY_PATH) {
|
|
76400
|
-
await handleMockNetworkProxy(request, response, runtime.fetchImpl);
|
|
76401
|
-
return;
|
|
76402
|
-
}
|
|
76403
|
-
const targetPath = resolveStaticPath(root, pathname);
|
|
76404
|
-
if (!targetPath) {
|
|
76405
|
-
response.writeHead(404);
|
|
76406
|
-
response.end('Not found');
|
|
76407
|
-
return;
|
|
76408
|
-
}
|
|
76409
|
-
try {
|
|
76410
|
-
const stat = fs$4.statSync(targetPath);
|
|
76411
|
-
if (stat.isDirectory()) {
|
|
76412
|
-
response.writeHead(404);
|
|
76413
|
-
response.end('Not found');
|
|
76414
|
-
return;
|
|
76415
|
-
}
|
|
76416
|
-
response.writeHead(200, {
|
|
76417
|
-
'content-type': readContentType(targetPath),
|
|
76418
|
-
'cache-control': 'no-store',
|
|
76419
|
-
});
|
|
76420
|
-
fs$4.createReadStream(targetPath).pipe(response);
|
|
76421
|
-
}
|
|
76422
|
-
catch {
|
|
76423
|
-
response.writeHead(404);
|
|
76424
|
-
response.end('Not found');
|
|
76425
|
-
}
|
|
76426
|
-
});
|
|
76427
|
-
}
|
|
76428
|
-
async function handleMockNetworkProxy(request, response, fetchImpl) {
|
|
76429
|
-
if (request.method === 'OPTIONS') {
|
|
76430
|
-
writeJsonResponse(response, 204, undefined);
|
|
76431
|
-
return;
|
|
76432
|
-
}
|
|
76433
|
-
if (request.method !== 'POST') {
|
|
76434
|
-
writeJsonResponse(response, 405, {
|
|
76435
|
-
code: 'METHOD_NOT_ALLOWED',
|
|
76436
|
-
message: 'mock network proxy only supports POST',
|
|
76437
|
-
});
|
|
76438
|
-
return;
|
|
76439
|
-
}
|
|
76440
|
-
try {
|
|
76441
|
-
const payload = await readJsonRequestBody(request);
|
|
76442
|
-
const result = await requestMockNetwork(payload, fetchImpl);
|
|
76443
|
-
writeJsonResponse(response, 200, result);
|
|
76444
|
-
}
|
|
76445
|
-
catch (error) {
|
|
76446
|
-
writeJsonResponse(response, readMockNetworkErrorStatus(error), toMockNetworkErrorPayload(error));
|
|
76447
|
-
}
|
|
76448
|
-
}
|
|
76449
|
-
async function requestMockNetwork(payload, fetchImpl) {
|
|
76450
|
-
if (!isRecord(payload) || typeof payload.url !== 'string' || !payload.url.trim()) {
|
|
76451
|
-
throw createMockNetworkError(400, 'INVALID_NETWORK_REQUEST', 'network.request url 必须是非空字符串');
|
|
76452
|
-
}
|
|
76453
|
-
const url = createMockNetworkUrl(payload.url, payload.params);
|
|
76454
|
-
const method = typeof payload.method === 'string' && payload.method.trim() ? payload.method.trim().toUpperCase() : 'GET';
|
|
76455
|
-
const headers = normalizeMockNetworkHeaders(payload.headers);
|
|
76456
|
-
const controller = new AbortController();
|
|
76457
|
-
const timeout = Number(payload.timeout) > 0 ? Number(payload.timeout) : 10000;
|
|
76458
|
-
const timer = setTimeout(() => controller.abort(), timeout);
|
|
76459
|
-
try {
|
|
76460
|
-
const response = await fetchImpl(url.toString(), {
|
|
76461
|
-
method,
|
|
76462
|
-
headers,
|
|
76463
|
-
body: createMockNetworkBody(method, payload.data, headers),
|
|
76464
|
-
redirect: 'follow',
|
|
76465
|
-
signal: controller.signal,
|
|
76466
|
-
});
|
|
76467
|
-
const contentType = response.headers.get('content-type') || '';
|
|
76468
|
-
const text = await response.text();
|
|
76469
|
-
clearTimeout(timer);
|
|
76470
|
-
return {
|
|
76471
|
-
data: contentType.includes('application/json') ? safeJsonParse(text) : text,
|
|
76472
|
-
status: response.status,
|
|
76473
|
-
statusText: response.statusText,
|
|
76474
|
-
headers: Object.fromEntries(response.headers.entries()),
|
|
76475
|
-
};
|
|
76476
|
-
}
|
|
76477
|
-
catch (error) {
|
|
76478
|
-
clearTimeout(timer);
|
|
76479
|
-
throw createMockNetworkError(502, 'MOCK_NETWORK_REQUEST_FAILED', error instanceof Error && error.name === 'AbortError' ? `network.request timeout after ${timeout}ms` : readErrorMessage(error));
|
|
76480
|
-
}
|
|
76481
|
-
}
|
|
76482
|
-
function createMockNetworkUrl(input, params) {
|
|
76483
|
-
let url;
|
|
76484
|
-
try {
|
|
76485
|
-
url = new URL(input);
|
|
76486
|
-
}
|
|
76487
|
-
catch {
|
|
76488
|
-
throw createMockNetworkError(400, 'INVALID_NETWORK_REQUEST', 'network.request url 必须是合法 URL');
|
|
76489
|
-
}
|
|
76490
|
-
if (!['http:', 'https:'].includes(url.protocol)) {
|
|
76491
|
-
throw createMockNetworkError(400, 'INVALID_NETWORK_REQUEST', 'network.request 仅支持 HTTP(S) URL');
|
|
76492
|
-
}
|
|
76493
|
-
if (isRecord(params)) {
|
|
76494
|
-
Object.entries(params).forEach(([key, value]) => {
|
|
76495
|
-
if (value !== undefined && value !== null) {
|
|
76496
|
-
url.searchParams.set(key, String(value));
|
|
76497
|
-
}
|
|
76498
|
-
});
|
|
76499
|
-
}
|
|
76500
|
-
return url;
|
|
76501
|
-
}
|
|
76502
|
-
function normalizeMockNetworkHeaders(headers) {
|
|
76503
|
-
const normalized = new Headers();
|
|
76504
|
-
if (!isRecord(headers)) {
|
|
76505
|
-
return normalized;
|
|
76506
|
-
}
|
|
76507
|
-
Object.entries(headers).forEach(([key, value]) => {
|
|
76508
|
-
if (typeof value === 'string' && !isBlockedMockNetworkHeader(key)) {
|
|
76509
|
-
normalized.set(key, value);
|
|
76510
|
-
}
|
|
76511
|
-
});
|
|
76512
|
-
return normalized;
|
|
76513
|
-
}
|
|
76514
|
-
function isBlockedMockNetworkHeader(key) {
|
|
76515
|
-
return [
|
|
76516
|
-
'connection',
|
|
76517
|
-
'content-length',
|
|
76518
|
-
'host',
|
|
76519
|
-
'keep-alive',
|
|
76520
|
-
'proxy-authenticate',
|
|
76521
|
-
'proxy-authorization',
|
|
76522
|
-
'te',
|
|
76523
|
-
'trailer',
|
|
76524
|
-
'transfer-encoding',
|
|
76525
|
-
'upgrade',
|
|
76526
|
-
].includes(key.toLowerCase());
|
|
76527
|
-
}
|
|
76528
|
-
function createMockNetworkBody(method, data, headers) {
|
|
76529
|
-
if (data === undefined || method === 'GET' || method === 'HEAD') {
|
|
76530
|
-
return undefined;
|
|
76531
|
-
}
|
|
76532
|
-
if (typeof data === 'string') {
|
|
76533
|
-
return data;
|
|
76534
|
-
}
|
|
76535
|
-
if (!headers.has('content-type')) {
|
|
76536
|
-
headers.set('content-type', 'application/json');
|
|
76537
|
-
}
|
|
76538
|
-
return JSON.stringify(data);
|
|
76539
|
-
}
|
|
76540
|
-
function readJsonRequestBody(request) {
|
|
76541
|
-
return new Promise((resolve, reject) => {
|
|
76542
|
-
const chunks = [];
|
|
76543
|
-
let size = 0;
|
|
76544
|
-
request.on('data', (chunk) => {
|
|
76545
|
-
const buffer = Buffer.from(chunk);
|
|
76546
|
-
size += buffer.byteLength;
|
|
76547
|
-
if (size > MOCK_NETWORK_PROXY_BODY_LIMIT) {
|
|
76548
|
-
reject(createMockNetworkError(413, 'REQUEST_ENTITY_TOO_LARGE', 'mock network proxy request body too large'));
|
|
76549
|
-
request.destroy();
|
|
76550
|
-
return;
|
|
76551
|
-
}
|
|
76552
|
-
chunks.push(buffer);
|
|
76553
|
-
});
|
|
76554
|
-
request.on('error', reject);
|
|
76555
|
-
request.on('aborted', () => {
|
|
76556
|
-
reject('mock network proxy request aborted');
|
|
76557
|
-
});
|
|
76558
|
-
request.on('end', () => {
|
|
76559
|
-
const rawBody = Buffer.concat(chunks).toString('utf8');
|
|
76560
|
-
if (!rawBody.trim()) {
|
|
76561
|
-
resolve({});
|
|
76562
|
-
return;
|
|
76563
|
-
}
|
|
76564
|
-
try {
|
|
76565
|
-
resolve(JSON.parse(rawBody));
|
|
76566
|
-
}
|
|
76567
|
-
catch {
|
|
76568
|
-
reject(createMockNetworkError(400, 'INVALID_JSON', 'mock network proxy received invalid JSON'));
|
|
76569
|
-
}
|
|
76570
|
-
});
|
|
76571
|
-
});
|
|
76572
|
-
}
|
|
76573
|
-
function writeJsonResponse(response, status, body) {
|
|
76574
|
-
response.writeHead(status, {
|
|
76575
|
-
'content-type': 'application/json; charset=utf-8',
|
|
76576
|
-
'cache-control': 'no-store',
|
|
76577
|
-
});
|
|
76578
|
-
response.end(body === undefined ? '' : JSON.stringify(body));
|
|
76579
|
-
}
|
|
76580
|
-
function safeJsonParse(text) {
|
|
76581
|
-
try {
|
|
76582
|
-
return JSON.parse(text);
|
|
76583
|
-
}
|
|
76584
|
-
catch {
|
|
76585
|
-
return text;
|
|
76586
|
-
}
|
|
76587
|
-
}
|
|
76588
|
-
function isRecord(value) {
|
|
76589
|
-
return Object.prototype.toString.call(value) === '[object Object]';
|
|
76590
|
-
}
|
|
76591
|
-
function createMockNetworkError(status, code, message) {
|
|
76592
|
-
const error = new Error(message);
|
|
76593
|
-
error.code = code;
|
|
76594
|
-
error.status = status;
|
|
76595
|
-
return error;
|
|
76596
|
-
}
|
|
76597
|
-
function readMockNetworkErrorStatus(error) {
|
|
76598
|
-
return isObjectLike(error) && typeof error.status === 'number' ? error.status : 500;
|
|
76599
|
-
}
|
|
76600
|
-
function toMockNetworkErrorPayload(error) {
|
|
76601
|
-
if (isObjectLike(error) && typeof error.code === 'string' && typeof error.message === 'string') {
|
|
76602
|
-
return {
|
|
76603
|
-
code: error.code,
|
|
76604
|
-
message: error.message,
|
|
76605
|
-
};
|
|
76606
|
-
}
|
|
76607
|
-
return {
|
|
76608
|
-
code: 'MOCK_NETWORK_ERROR',
|
|
76609
|
-
message: readErrorMessage(error),
|
|
76610
|
-
};
|
|
76611
|
-
}
|
|
76612
|
-
function isObjectLike(value) {
|
|
76613
|
-
return (typeof value === 'object' || typeof value === 'function') && value !== null;
|
|
76614
|
-
}
|
|
76615
|
-
function resolveStaticPath(root, pathname) {
|
|
76616
|
-
const safePathname = pathname === '/' ? '/index.html' : pathname;
|
|
76617
|
-
const normalizedRoot = path.normalize(root);
|
|
76618
|
-
const targetPath = path.normalize(path.join(normalizedRoot, safePathname));
|
|
76619
|
-
if (targetPath !== normalizedRoot && !targetPath.startsWith(`${normalizedRoot}${path.sep}`)) {
|
|
76620
|
-
return undefined;
|
|
76621
|
-
}
|
|
76622
|
-
return targetPath;
|
|
76623
|
-
}
|
|
76624
|
-
function readContentType(filePath) {
|
|
76625
|
-
if (filePath.endsWith('.html')) {
|
|
76626
|
-
return 'text/html; charset=utf-8';
|
|
76627
|
-
}
|
|
76628
|
-
if (filePath.endsWith('.js')) {
|
|
76629
|
-
return 'text/javascript; charset=utf-8';
|
|
76630
|
-
}
|
|
76631
|
-
if (filePath.endsWith('.css')) {
|
|
76632
|
-
return 'text/css; charset=utf-8';
|
|
76633
|
-
}
|
|
76634
|
-
if (filePath.endsWith('.json')) {
|
|
76635
|
-
return 'application/json; charset=utf-8';
|
|
76636
|
-
}
|
|
76637
|
-
if (filePath.endsWith('.svg')) {
|
|
76638
|
-
return 'image/svg+xml';
|
|
76639
|
-
}
|
|
76640
|
-
return 'application/octet-stream';
|
|
76641
|
-
}
|
|
76642
|
-
async function listenHttpServer(server, options, getPortImpl) {
|
|
76643
|
-
const maxAttempts = 20;
|
|
76644
|
-
const port = await getPortImpl({
|
|
76645
|
-
host: options.host,
|
|
76646
|
-
port: createPortCandidates(options.port, maxAttempts),
|
|
76647
|
-
});
|
|
76648
|
-
if (port < options.port || port >= options.port + maxAttempts) {
|
|
76649
|
-
throw new Error(`无法找到可用 mock host 端口,起始端口: ${options.port}`);
|
|
76650
|
-
}
|
|
76651
|
-
await new Promise((resolve, reject) => {
|
|
76652
|
-
const onError = (error) => {
|
|
76653
|
-
server.off('listening', onListening);
|
|
76654
|
-
reject(error);
|
|
76655
|
-
};
|
|
76656
|
-
const onListening = () => {
|
|
76657
|
-
server.off('error', onError);
|
|
76658
|
-
resolve();
|
|
76659
|
-
};
|
|
76660
|
-
server.once('error', onError);
|
|
76661
|
-
server.once('listening', onListening);
|
|
76662
|
-
server.listen(port, options.host);
|
|
76663
|
-
});
|
|
76664
|
-
const address = server.address();
|
|
76665
|
-
return address.port;
|
|
76666
|
-
}
|
|
76667
|
-
function createPortCandidates(startPort, count) {
|
|
76668
|
-
return Array.from({ length: count }, (_, index) => startPort + index);
|
|
76669
|
-
}
|
|
76670
|
-
function createMockHostUrl(options) {
|
|
76671
|
-
const url = new URL(`http://${toDisplayHost(options.host)}:${options.port}/`);
|
|
76672
|
-
url.searchParams.set(MINI_PROGRAM_URL_QUERY_PARAM, options.appUrl);
|
|
76673
|
-
return url.toString();
|
|
76674
|
-
}
|
|
76675
77068
|
async function withManagedDevOutputEnv(action, env = process.env) {
|
|
76676
77069
|
const previous = env[MANAGED_DEV_OUTPUT_ENV];
|
|
76677
77070
|
env[MANAGED_DEV_OUTPUT_ENV] = '1';
|
|
@@ -76695,7 +77088,7 @@ function toDisplayHost(host) {
|
|
|
76695
77088
|
}
|
|
76696
77089
|
function installShutdownHandlers(closers, processLike) {
|
|
76697
77090
|
const shutdown = async () => {
|
|
76698
|
-
await
|
|
77091
|
+
await closeAll(closers);
|
|
76699
77092
|
processLike.exit(0);
|
|
76700
77093
|
};
|
|
76701
77094
|
processLike.once('SIGINT', () => {
|
|
@@ -76705,13 +77098,18 @@ function installShutdownHandlers(closers, processLike) {
|
|
|
76705
77098
|
void shutdown();
|
|
76706
77099
|
});
|
|
76707
77100
|
}
|
|
77101
|
+
async function closeAll(closers) {
|
|
77102
|
+
await Promise.allSettled(closers.map((close) => close()));
|
|
77103
|
+
}
|
|
77104
|
+
|
|
77105
|
+
const HB_SDK_PACKAGE_NAME = '@heybox/hb-sdk';
|
|
77106
|
+
const HB_SDK_SKILL_NAME = 'hb-sdk';
|
|
77107
|
+
const HB_SDK_AGENT_SKILLS_BASE_URL = 'https://open.xiaoheihe.cn/agent-skills';
|
|
77108
|
+
const HB_SDK_SKILL_SOURCE = `${HB_SDK_AGENT_SKILLS_BASE_URL}/${HB_SDK_SKILL_NAME}`;
|
|
77109
|
+
const HB_SDK_SKILL_INDEX_URL = `${HB_SDK_AGENT_SKILLS_BASE_URL}/.well-known/agent-skills/index.json`;
|
|
77110
|
+
const HB_SDK_SKILL_INSTALL_COMMAND = `npx skills add ${HB_SDK_SKILL_SOURCE}`;
|
|
76708
77111
|
|
|
76709
|
-
const PACKAGE_NAME$1 = '@heybox/hb-sdk';
|
|
76710
|
-
const SKILL_NAME = 'hb-sdk';
|
|
76711
|
-
const DEFAULT_SKILL_SOURCE = 'https://open.xiaoheihe.cn/agent-skills/hb-sdk';
|
|
76712
|
-
const DEFAULT_REMOTE_INDEX_URL = 'https://open.xiaoheihe.cn/agent-skills/.well-known/agent-skills/index.json';
|
|
76713
77112
|
const DEFAULT_TIMEOUT_MS$1 = 3000;
|
|
76714
|
-
const SKILL_INSTALL_COMMAND = `npx skills add ${DEFAULT_SKILL_SOURCE}`;
|
|
76715
77113
|
const PACKAGE_JSON_CANDIDATES$2 = [
|
|
76716
77114
|
path.resolve(__dirname, '..', 'package.json'),
|
|
76717
77115
|
path.resolve(__dirname, '..', '..', 'package.json'),
|
|
@@ -76756,7 +77154,7 @@ async function getDoctorResult(runtime = {}) {
|
|
|
76756
77154
|
};
|
|
76757
77155
|
}
|
|
76758
77156
|
if (!localSkill.manifest ||
|
|
76759
|
-
localSkill.manifest.name !==
|
|
77157
|
+
localSkill.manifest.name !== HB_SDK_SKILL_NAME ||
|
|
76760
77158
|
localSkill.manifest.skillVersion !== remoteSkill.version ||
|
|
76761
77159
|
localSkill.manifest.sdk?.version !== remoteSkill.sdk?.version) {
|
|
76762
77160
|
return {
|
|
@@ -76788,26 +77186,26 @@ function printDoctorNextStep(result, output) {
|
|
|
76788
77186
|
return;
|
|
76789
77187
|
}
|
|
76790
77188
|
if (result.status === 'SDK_MISMATCH') {
|
|
76791
|
-
output.log(`[hb-sdk] Current SDK does not match the latest skill metadata. Upgrade with: npm i -D ${
|
|
77189
|
+
output.log(`[hb-sdk] Current SDK does not match the latest skill metadata. Upgrade with: npm i -D ${HB_SDK_PACKAGE_NAME}@latest`);
|
|
76792
77190
|
output.log(`[hb-sdk] Then install or refresh the skill manually: ${formatSkillInstallCommand(result)}`);
|
|
76793
77191
|
return;
|
|
76794
77192
|
}
|
|
76795
77193
|
if (result.status === 'REMOTE_UNAVAILABLE') {
|
|
76796
77194
|
output.log('[hb-sdk] Remote skill metadata is unavailable. Try again later.');
|
|
76797
|
-
output.log(`[hb-sdk] Manual install command: ${
|
|
77195
|
+
output.log(`[hb-sdk] Manual install command: ${HB_SDK_SKILL_INSTALL_COMMAND}`);
|
|
76798
77196
|
return;
|
|
76799
77197
|
}
|
|
76800
77198
|
output.log(`[hb-sdk] Install or refresh the skill manually: ${formatSkillInstallCommand(result)}`);
|
|
76801
77199
|
}
|
|
76802
77200
|
function formatSkillInstallCommand(result) {
|
|
76803
|
-
return `npx skills add ${result.remoteSkill?.source ||
|
|
77201
|
+
return `npx skills add ${result.remoteSkill?.source || HB_SDK_SKILL_SOURCE}`;
|
|
76804
77202
|
}
|
|
76805
77203
|
async function fetchRemoteSkill(runtime) {
|
|
76806
77204
|
const fetchImpl = runtime.fetchImpl ?? fetch;
|
|
76807
77205
|
const controller = new AbortController();
|
|
76808
77206
|
const timeout = setTimeout(() => controller.abort(), runtime.timeoutMs ?? DEFAULT_TIMEOUT_MS$1);
|
|
76809
77207
|
try {
|
|
76810
|
-
const response = await fetchImpl(runtime.remoteIndexUrl ??
|
|
77208
|
+
const response = await fetchImpl(runtime.remoteIndexUrl ?? HB_SDK_SKILL_INDEX_URL, {
|
|
76811
77209
|
headers: {
|
|
76812
77210
|
accept: 'application/json',
|
|
76813
77211
|
},
|
|
@@ -76817,8 +77215,8 @@ async function fetchRemoteSkill(runtime) {
|
|
|
76817
77215
|
throw new Error(`remote skill index returned ${response.status}`);
|
|
76818
77216
|
}
|
|
76819
77217
|
const index = (await response.json());
|
|
76820
|
-
const skill = index.skills?.find(item => item.name ===
|
|
76821
|
-
if (!skill?.version || skill.sdk?.package !==
|
|
77218
|
+
const skill = index.skills?.find(item => item.name === HB_SDK_SKILL_NAME);
|
|
77219
|
+
if (!skill?.version || skill.sdk?.package !== HB_SDK_PACKAGE_NAME || !skill.sdk.version) {
|
|
76822
77220
|
throw new Error('remote hb-sdk skill metadata is incomplete');
|
|
76823
77221
|
}
|
|
76824
77222
|
return skill;
|
|
@@ -76862,7 +77260,7 @@ function resolveLocalSkillJsonPath(runtime) {
|
|
|
76862
77260
|
return runtime.localSkillJsonPath;
|
|
76863
77261
|
}
|
|
76864
77262
|
const codexHome = runtime.codexHome ?? runtime.env?.CODEX_HOME ?? process.env.CODEX_HOME ?? path.join(os.homedir(), '.codex');
|
|
76865
|
-
return path.join(codexHome, 'skills',
|
|
77263
|
+
return path.join(codexHome, 'skills', HB_SDK_SKILL_NAME, 'skill.json');
|
|
76866
77264
|
}
|
|
76867
77265
|
async function pathExists$2(filePath) {
|
|
76868
77266
|
try {
|
|
@@ -77028,12 +77426,11 @@ async function clearLoginStatus(options = {}) {
|
|
|
77028
77426
|
output.log(`cache: ${getAuthCacheFilePath(options)}`);
|
|
77029
77427
|
}
|
|
77030
77428
|
|
|
77031
|
-
const PACKAGE_NAME = '@heybox/hb-sdk';
|
|
77032
77429
|
const UPDATE_CHECK_CACHE_VERSION = 1;
|
|
77033
77430
|
const UPDATE_CHECK_TTL_MS = 24 * 60 * 60 * 1000;
|
|
77034
77431
|
const DEFAULT_TIMEOUT_MS = 1500;
|
|
77035
77432
|
const UPDATE_CHECK_CACHE_FILE = 'update-check.json';
|
|
77036
|
-
const NPM_REGISTRY_URL = `https://registry.npmjs.org/${encodeURIComponent(
|
|
77433
|
+
const NPM_REGISTRY_URL = `https://registry.npmjs.org/${encodeURIComponent(HB_SDK_PACKAGE_NAME)}`;
|
|
77037
77434
|
const paths = envPaths('hb-sdk', { suffix: '' });
|
|
77038
77435
|
const PACKAGE_JSON_CANDIDATES$1 = [
|
|
77039
77436
|
path.resolve(__dirname, '..', 'package.json'),
|
|
@@ -77082,7 +77479,7 @@ async function getUpdateReminder(options = {}) {
|
|
|
77082
77479
|
return createUpdateReminder(currentVersion, latestVersion);
|
|
77083
77480
|
}
|
|
77084
77481
|
function formatUpdateReminder(reminder) {
|
|
77085
|
-
return `[hb-sdk] New version available: ${reminder.currentVersion} -> ${reminder.latestVersion}. Upgrade with: npm i -D ${
|
|
77482
|
+
return `[hb-sdk] New version available: ${reminder.currentVersion} -> ${reminder.latestVersion}. Upgrade with: npm i -D ${HB_SDK_PACKAGE_NAME}@latest`;
|
|
77086
77483
|
}
|
|
77087
77484
|
function isVersionGreater(version, baseline) {
|
|
77088
77485
|
const compared = compareSemver(version, baseline);
|
|
@@ -77259,7 +77656,7 @@ async function pathExists$1(filePath) {
|
|
|
77259
77656
|
}
|
|
77260
77657
|
|
|
77261
77658
|
const CLI_VERSION_PLACEHOLDER = ['__HB', 'SDK', 'CLI', 'VERSION__'].join('_');
|
|
77262
|
-
const BUILT_CLI_VERSION = '0.
|
|
77659
|
+
const BUILT_CLI_VERSION = '0.3.2';
|
|
77263
77660
|
const PACKAGE_JSON_CANDIDATES = [
|
|
77264
77661
|
path.resolve(__dirname, '..', '..', 'package.json'),
|
|
77265
77662
|
path.resolve(__dirname, '..', 'package.json'),
|