@bicharts/chart-mcp 0.6.118 → 0.6.119

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.
Files changed (2) hide show
  1. package/dist/index.mjs +2 -2
  2. package/package.json +3 -3
package/dist/index.mjs CHANGED
@@ -92,7 +92,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
92
92
  `:`[${r[l]}\r
93
93
  ]`;continue}n+=r[l],r[l]==="\\"?i=!0:o&&r[l]==="]"?o=!1:!o&&r[l]==="["&&(o=!0)}try{new RegExp(n)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return n}function W6(e,t){if(t.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),t.target==="openApi3"&&e.keyType?._def.typeName===ne.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((r,n)=>({...r,[n]:Ae(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",n]})??Wt(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let a={type:"object",additionalProperties:Ae(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if(t.target==="openApi3")return a;if(e.keyType?._def.typeName===ne.ZodString&&e.keyType._def.checks?.length){let{type:r,...n}=w6(e.keyType._def,t);return{...a,propertyNames:n}}else{if(e.keyType?._def.typeName===ne.ZodEnum)return{...a,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===ne.ZodBranded&&e.keyType._def.type._def.typeName===ne.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...n}=k6(e.keyType._def,t);return{...a,propertyNames:n}}}return a}function ZW(e,t){if(t.mapStrategy==="record")return W6(e,t);let a=Ae(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||Wt(t),r=Ae(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||Wt(t);return{type:"array",maxItems:125,items:{type:"array",items:[a,r],minItems:2,maxItems:2}}}function JW(e){let t=e.values,r=Object.keys(e.values).filter(i=>typeof t[t[i]]!="number").map(i=>t[i]),n=Array.from(new Set(r.map(i=>typeof i)));return{type:n.length===1?n[0]==="string"?"string":"number":["string","number"],enum:r}}function YW(e){return e.target==="openAi"?void 0:{not:Wt({...e,currentPath:[...e.currentPath,"not"]})}}function QW(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var n8={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function tC(e,t){if(t.target==="openApi3")return eC(e,t);let a=e.options instanceof Map?Array.from(e.options.values()):e.options;if(a.every(r=>r._def.typeName in n8&&(!r._def.checks||!r._def.checks.length))){let r=a.reduce((n,i)=>{let o=n8[i._def.typeName];return o&&!n.includes(o)?[...n,o]:n},[]);return{type:r.length>1?r:r[0]}}else if(a.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){let r=a.reduce((n,i)=>{let o=typeof i._def.value;switch(o){case"string":case"number":case"boolean":return[...n,o];case"bigint":return[...n,"integer"];case"object":if(i._def.value===null)return[...n,"null"];default:return n}},[]);if(r.length===a.length){let n=r.filter((i,o,s)=>s.indexOf(i)===o);return{type:n.length>1?n:n[0],enum:a.reduce((i,o)=>i.includes(o._def.value)?i:[...i,o._def.value],[])}}}else if(a.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:a.reduce((r,n)=>[...r,...n._def.values.filter(i=>!r.includes(i))],[])};return eC(e,t)}var eC=(e,t)=>{let a=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((r,n)=>Ae(r._def,{...t,currentPath:[...t.currentPath,"anyOf",`${n}`]})).filter(r=>!!r&&(!t.strictUnions||typeof r=="object"&&Object.keys(r).length>0));return a.length?{anyOf:a}:void 0};function aC(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:n8[e.innerType._def.typeName],nullable:!0}:{type:[n8[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let r=Ae(e.innerType._def,{...t,currentPath:[...t.currentPath]});return r&&"$ref"in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}let a=Ae(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return a&&{anyOf:[a,{type:"null"}]}}function nC(e,t){let a={type:"number"};if(!e.checks)return a;for(let r of e.checks)switch(r.kind){case"int":a.type="integer",wp(a,"type",r.message,t);break;case"min":t.target==="jsonSchema7"?r.inclusive?He(a,"minimum",r.value,r.message,t):He(a,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(a.exclusiveMinimum=!0),He(a,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?He(a,"maximum",r.value,r.message,t):He(a,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(a.exclusiveMaximum=!0),He(a,"maximum",r.value,r.message,t));break;case"multipleOf":He(a,"multipleOf",r.value,r.message,t);break}return a}function rC(e,t){let a=t.target==="openAi",r={type:"object",properties:{}},n=[],i=e.shape();for(let s in i){let l=i[s];if(l===void 0||l._def===void 0)continue;let u=IG(l);u&&a&&(l._def.typeName==="ZodOptional"&&(l=l._def.innerType),l.isNullable()||(l=l.nullable()),u=!1);let c=Ae(l._def,{...t,currentPath:[...t.currentPath,"properties",s],propertyPath:[...t.currentPath,"properties",s]});c!==void 0&&(r.properties[s]=c,u||n.push(s))}n.length&&(r.required=n);let o=xG(e,t);return o!==void 0&&(r.additionalProperties=o),r}function xG(e,t){if(e.catchall._def.typeName!=="ZodNever")return Ae(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function IG(e){try{return e.isOptional()}catch{return!0}}var iC=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return Ae(e.innerType._def,t);let a=Ae(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return a?{anyOf:[{not:Wt(t)},a]}:Wt(t)};var oC=(e,t)=>{if(t.pipeStrategy==="input")return Ae(e.in._def,t);if(t.pipeStrategy==="output")return Ae(e.out._def,t);let a=Ae(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),r=Ae(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",a?"1":"0"]});return{allOf:[a,r].filter(n=>n!==void 0)}};function sC(e,t){return Ae(e.type._def,t)}function lC(e,t){let r={type:"array",uniqueItems:!0,items:Ae(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&He(r,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&He(r,"maxItems",e.maxSize.value,e.maxSize.message,t),r}function uC(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((a,r)=>Ae(a._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((a,r)=>r===void 0?a:[...a,r],[]),additionalItems:Ae(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((a,r)=>Ae(a._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((a,r)=>r===void 0?a:[...a,r],[])}}function cC(e){return{not:Wt(e)}}function dC(e){return Wt(e)}var hC=(e,t)=>Ae(e.innerType._def,t);var pC=(e,t,a)=>{switch(t){case ne.ZodString:return w6(e,a);case ne.ZodNumber:return nC(e,a);case ne.ZodObject:return rC(e,a);case ne.ZodBigInt:return jW(e,a);case ne.ZodBoolean:return FW();case ne.ZodDate:return Wp(e,a);case ne.ZodUndefined:return cC(a);case ne.ZodNull:return QW(a);case ne.ZodArray:return LW(e,a);case ne.ZodUnion:case ne.ZodDiscriminatedUnion:return tC(e,a);case ne.ZodIntersection:return XW(e,a);case ne.ZodTuple:return uC(e,a);case ne.ZodRecord:return W6(e,a);case ne.ZodLiteral:return VW(e,a);case ne.ZodEnum:return KW(e);case ne.ZodNativeEnum:return JW(e);case ne.ZodNullable:return aC(e,a);case ne.ZodOptional:return iC(e,a);case ne.ZodMap:return ZW(e,a);case ne.ZodSet:return lC(e,a);case ne.ZodLazy:return()=>e.getter()._def;case ne.ZodPromise:return sC(e,a);case ne.ZodNaN:case ne.ZodNever:return YW(a);case ne.ZodEffects:return GW(e,a);case ne.ZodAny:return Wt(a);case ne.ZodUnknown:return dC(a);case ne.ZodDefault:return HW(e,a);case ne.ZodBranded:return k6(e,a);case ne.ZodReadonly:return hC(e,a);case ne.ZodCatch:return BW(e,a);case ne.ZodPipeline:return oC(e,a);case ne.ZodFunction:case ne.ZodVoid:case ne.ZodSymbol:return;default:return(r=>{})(t)}};function Ae(e,t,a=!1){let r=t.seen.get(e);if(t.override){let s=t.override?.(e,t,r,a);if(s!==$W)return s}if(r&&!a){let s=PG(r,t);if(s!==void 0)return s}let n={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,n);let i=pC(e,e.typeName,t),o=typeof i=="function"?Ae(i(),t):i;if(o&&UG(e,t,o),t.postProcess){let s=t.postProcess(o,e,t);return n.jsonSchema=o,s}return n.jsonSchema=o,o}var PG=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:S6(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every((a,r)=>t.currentPath[r]===a)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),Wt(t)):t.$refStrategy==="seen"?Wt(t):void 0}},UG=(e,t,a)=>(e.description&&(a.description=e.description,t.markdownDescription&&(a.markdownDescription=e.description)),a);var _p=(e,t)=>{let a=DW(t),r=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((l,[u,c])=>({...l,[u]:Ae(c._def,{...a,currentPath:[...a.basePath,a.definitionPath,u]},!0)??Wt(a)}),{}):void 0,n=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,i=Ae(e._def,n===void 0?a:{...a,currentPath:[...a.basePath,a.definitionPath,n]},!1)??Wt(a),o=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;o!==void 0&&(i.title=o),a.flags.hasReferencedOpenAiAnyType&&(r||(r={}),r[a.openAiAnyTypeName]||(r[a.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:a.$refStrategy==="relative"?"1":[...a.basePath,a.definitionPath,a.openAiAnyTypeName].join("/")}}));let s=n===void 0?r?{...i,[a.definitionPath]:r}:i:{$ref:[...a.$refStrategy==="relative"?[]:a.basePath,a.definitionPath,n].join("/"),[a.definitionPath]:{...r,[n]:i}};return a.target==="jsonSchema7"?s.$schema="http://json-schema.org/draft-07/schema#":(a.target==="jsonSchema2019-09"||a.target==="openAi")&&(s.$schema="https://json-schema.org/draft/2019-09/schema#"),a.target==="openAi"&&("anyOf"in s||"oneOf"in s||"allOf"in s||"type"in s&&Array.isArray(s.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),s};function TG(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function Mp(e,t){return Oa(e)?V3(e,{target:TG(t?.target),io:t?.pipeStrategy??"input"}):_p(e,{strictUnions:t?.strictUnions??!0,pipeStrategy:t?.pipeStrategy??"input"})}function xp(e){let a=Qn(e)?.method;if(!a)throw new Error("Schema is missing a method literal");let r=H4(a);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Ip(e,t){let a=Yn(e,t);if(!a.success)throw a.error;return a.data}var EG=6e4,C6=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(n6,a=>{this._oncancel(a)}),this.setNotificationHandler(o6,a=>{this._onprogress(a)}),this.setRequestHandler(i6,a=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(s6,async(a,r)=>{let n=await this._taskStore.getTask(a.params.taskId,r.sessionId);if(!n)throw new ge(be.InvalidParams,"Failed to retrieve task: Task not found");return{...n}}),this.setRequestHandler(u6,async(a,r)=>{let n=async()=>{let i=a.params.taskId;if(!await this._taskStore.getTask(i,r.sessionId))throw new ge(be.InvalidParams,`Task not found: ${i}`);if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(i,r.sessionId);){if(s.type==="response"||s.type==="error"){let l=s.message,u=l.id,c=this._requestResolvers.get(u);if(c)if(this._requestResolvers.delete(u),s.type==="response")c(l);else{let d=l,h=new ge(d.error.code,d.error.message,d.error.data);c(h)}else{let d=s.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(s.message,{relatedRequestId:r.requestId})}}let o=await this._taskStore.getTask(i,r.sessionId);if(!o)throw new ge(be.InvalidParams,`Task not found: ${i}`);if(!i3(o.status))return await this._waitForTaskUpdate(i,r.signal,r.sessionId),await n();if(i3(o.status)){let s=await this._taskStore.getTaskResult(i,r.sessionId);return this._clearTaskQueue(i,r.sessionId),{...s,_meta:{...s._meta,[r3]:{taskId:i}}}}return await n()};return await n()}),this.setRequestHandler(c6,async(a,r)=>{try{let{tasks:n,nextCursor:i}=await this._taskStore.listTasks(a.params?.cursor,r.sessionId);return{tasks:n,nextCursor:i,_meta:{}}}catch(n){throw new ge(be.InvalidParams,`Failed to list tasks: ${n instanceof Error?n.message:String(n)}`)}}),this.setRequestHandler(h6,async(a,r)=>{try{let n=await this._taskStore.getTask(a.params.taskId,r.sessionId);if(!n)throw new ge(be.InvalidParams,`Task not found: ${a.params.taskId}`);if(i3(n.status))throw new ge(be.InvalidParams,`Cannot cancel task in terminal status: ${n.status}`);await this._taskStore.updateTaskStatus(a.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(a.params.taskId,r.sessionId);let i=await this._taskStore.getTask(a.params.taskId,r.sessionId);if(!i)throw new ge(be.InvalidParams,`Task not found after cancellation: ${a.params.taskId}`);return{_meta:{},...i}}catch(n){throw n instanceof ge?n:new ge(be.InvalidRequest,`Failed to cancel task: ${n instanceof Error?n.message:String(n)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,a,r,n,i=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(n,a),startTime:Date.now(),timeout:a,maxTotalTimeout:r,resetTimeoutOnProgress:i,onTimeout:n})}_resetTimeout(t){let a=this._timeoutInfo.get(t);if(!a)return!1;let r=Date.now()-a.startTime;if(a.maxTotalTimeout&&r>=a.maxTotalTimeout)throw this._timeoutInfo.delete(t),ge.fromError(be.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:a.maxTotalTimeout,totalElapsed:r});return clearTimeout(a.timeoutId),a.timeoutId=setTimeout(a.onTimeout,a.timeout),!0}_cleanupTimeout(t){let a=this._timeoutInfo.get(t);a&&(clearTimeout(a.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;let a=this.transport?.onclose;this._transport.onclose=()=>{a?.(),this._onclose()};let r=this.transport?.onerror;this._transport.onerror=i=>{r?.(i),this._onerror(i)};let n=this._transport?.onmessage;this._transport.onmessage=(i,o)=>{n?.(i,o),vn(i)||ti(i)?this._onresponse(i):bn(i)?this._onrequest(i,o):AW(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let r of this._timeoutInfo.values())clearTimeout(r.timeoutId);this._timeoutInfo.clear();for(let r of this._requestHandlerAbortControllers.values())r.abort();this._requestHandlerAbortControllers.clear();let a=ge.fromError(be.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let r of t.values())r(a)}_onerror(t){this.onerror?.(t)}_onnotification(t){let a=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;a!==void 0&&Promise.resolve().then(()=>a(t)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(t,a){let r=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,n=this._transport,i=t.params?._meta?.[r3]?.taskId,o=n?.sessionId,s=this._taskStore,l=!0,u;if(i&&s&&this._taskMessageQueue&&o!==void 0&&(l=!1,u=(async()=>{if(!await s.getTask(i,o))throw new ge(be.InvalidParams,`Task not found: ${i}`);l=!0})()),r===void 0){let m={jsonrpc:"2.0",id:t.id,error:{code:be.MethodNotFound,message:"Method not found"}};if(i&&u){let g={type:"error",message:m,timestamp:Date.now()};u.then(()=>this._enqueueTaskMessage(i,g,o),()=>n?.send(m)).catch(f=>this._onerror(new Error(`Failed to send an error response: ${f}`)))}else i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:m,timestamp:Date.now()},n?.sessionId).catch(g=>this._onerror(new Error(`Failed to enqueue error response: ${g}`))):n?.send(m).catch(g=>this._onerror(new Error(`Failed to send an error response: ${g}`)));return}let c=new AbortController;this._requestHandlerAbortControllers.set(t.id,c);let d=wW(t.params)?t.params.task:void 0,h=this._taskStore?this.requestTaskStore(t,n?.sessionId):void 0,p={signal:c.signal,sessionId:n?.sessionId,_meta:t.params?._meta,sendNotification:async m=>{if(c.signal.aborted)return;let g={relatedRequestId:t.id};i&&(g.relatedTask={taskId:i}),await this.notification(m,g)},sendRequest:async(m,g,f)=>{if(c.signal.aborted)throw new ge(be.ConnectionClosed,"Request was cancelled");let y={...f,relatedRequestId:t.id};i&&!y.relatedTask&&(y.relatedTask={taskId:i});let b=y.relatedTask?.taskId??i;return b&&h&&await h.updateTaskStatus(b,"input_required"),await this.request(m,g,y)},authInfo:a?.authInfo,requestId:t.id,requestInfo:a?.requestInfo,taskId:i,taskStore:h,taskRequestedTtl:d?.ttl,closeSSEStream:a?.closeSSEStream,closeStandaloneSSEStream:a?.closeStandaloneSSEStream};(u??Promise.resolve()).then(()=>{if(u&&c.signal.aborted)throw new ge(be.ConnectionClosed,"Request was cancelled");d&&this.assertTaskHandlerCapability(t.method)}).then(()=>r(t,p)).then(async m=>{if(c.signal.aborted)return;let g={result:m,jsonrpc:"2.0",id:t.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:g,timestamp:Date.now()},n?.sessionId):await n?.send(g)},async m=>{if(c.signal.aborted)return;let g={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(m.code)?m.code:be.InternalError,message:m.message??"Internal error",...m.data!==void 0&&{data:m.data}}};i&&this._taskMessageQueue&&l?await this._enqueueTaskMessage(i,{type:"error",message:g,timestamp:Date.now()},n?.sessionId):await n?.send(g)}).catch(m=>this._onerror(new Error(`Failed to send response: ${m}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===c&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:a,...r}=t.params,n=Number(a),i=this._progressHandlers.get(n);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let o=this._responseHandlers.get(n),s=this._timeoutInfo.get(n);if(s&&o&&s.resetTimeoutOnProgress)try{this._resetTimeout(n)}catch(l){this._responseHandlers.delete(n),this._progressHandlers.delete(n),this._cleanupTimeout(n),o(l);return}i(r)}_onresponse(t){let a=Number(t.id),r=this._requestResolvers.get(a);if(r){if(this._requestResolvers.delete(a),vn(t))r(t);else{let o=new ge(t.error.code,t.error.message,t.error.data);r(o)}return}let n=this._responseHandlers.get(a);if(n===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(a),this._cleanupTimeout(a);let i=!1;if(vn(t)&&t.result&&typeof t.result=="object"){let o=t.result;if(o.task&&typeof o.task=="object"){let s=o.task;typeof s.taskId=="string"&&(i=!0,this._taskProgressTokens.set(s.taskId,a))}}if(i||this._progressHandlers.delete(a),vn(t))n(t);else{let o=ge.fromError(t.error.code,t.error.message,t.error.data);n(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,a,r){let{task:n}=r??{};if(!n){try{yield{type:"result",result:await this.request(t,a,r)}}catch(o){yield{type:"error",error:o instanceof ge?o:new ge(be.InternalError,String(o))}}return}let i;try{let o=await this.request(t,ai,r);if(o.task)i=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new ge(be.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:i},r);if(yield{type:"taskStatus",task:s},i3(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},a,r)}:s.status==="failed"?yield{type:"error",error:new ge(be.InternalError,`Task ${i} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new ge(be.InternalError,`Task ${i} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},a,r)};return}let l=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,l)),r?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof ge?o:new ge(be.InternalError,String(o))}}}request(t,a,r){let{relatedRequestId:n,resumptionToken:i,onresumptiontoken:o,task:s,relatedTask:l}=r??{};return new Promise((u,c)=>{let d=b=>{c(b)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),s&&this.assertTaskCapability(t.method)}catch(b){d(b);return}r?.signal?.throwIfAborted();let h=this._requestMessageId++,p={...t,jsonrpc:"2.0",id:h};r?.onprogress&&(this._progressHandlers.set(h,r.onprogress),p.params={...t.params,_meta:{...t.params?._meta||{},progressToken:h}}),s&&(p.params={...p.params,task:s}),l&&(p.params={...p.params,_meta:{...p.params?._meta||{},[r3]:l}});let m=b=>{this._responseHandlers.delete(h),this._progressHandlers.delete(h),this._cleanupTimeout(h),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:h,reason:String(b)}},{relatedRequestId:n,resumptionToken:i,onresumptiontoken:o}).catch(k=>this._onerror(new Error(`Failed to send cancellation: ${k}`)));let v=b instanceof ge?b:new ge(be.RequestTimeout,String(b));c(v)};this._responseHandlers.set(h,b=>{if(!r?.signal?.aborted){if(b instanceof Error)return c(b);try{let v=Yn(a,b.result);v.success?u(v.data):c(v.error)}catch(v){c(v)}}}),r?.signal?.addEventListener("abort",()=>{m(r?.signal?.reason)});let g=r?.timeout??EG,f=()=>m(ge.fromError(be.RequestTimeout,"Request timed out",{timeout:g}));this._setupTimeout(h,g,r?.maxTotalTimeout,f,r?.resetTimeoutOnProgress??!1);let y=l?.taskId;if(y){let b=v=>{let k=this._responseHandlers.get(h);k?k(v):this._onerror(new Error(`Response handler missing for side-channeled request ${h}`))};this._requestResolvers.set(h,b),this._enqueueTaskMessage(y,{type:"request",message:p,timestamp:Date.now()}).catch(v=>{this._cleanupTimeout(h),c(v)})}else this._transport.send(p,{relatedRequestId:n,resumptionToken:i,onresumptiontoken:o}).catch(b=>{this._cleanupTimeout(h),c(b)})})}async getTask(t,a){return this.request({method:"tasks/get",params:t},l6,a)}async getTaskResult(t,a,r){return this.request({method:"tasks/result",params:t},a,r)}async listTasks(t,a){return this.request({method:"tasks/list",params:t},d6,a)}async cancelTask(t,a){return this.request({method:"tasks/cancel",params:t},MW,a)}async notification(t,a){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let r=a?.relatedTask?.taskId;if(r){let s={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[r3]:a.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!a?.relatedRequestId&&!a?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let s={...t,jsonrpc:"2.0"};a?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[r3]:a.relatedTask}}}),this._transport?.send(s,a).catch(l=>this._onerror(l))});return}let o={...t,jsonrpc:"2.0"};a?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[r3]:a.relatedTask}}}),await this._transport.send(o,a)}setRequestHandler(t,a){let r=xp(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(n,i)=>{let o=Ip(t,n);return Promise.resolve(a(o,i))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,a){let r=xp(t);this._notificationHandlers.set(r,n=>{let i=Ip(t,n);return Promise.resolve(a(i))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let a=this._taskProgressTokens.get(t);a!==void 0&&(this._progressHandlers.delete(a),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,a,r){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let n=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,a,r??this._transport?.sessionId,n)}async _clearTaskQueue(t,a){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(t,a);for(let n of r)if(n.type==="request"&&bn(n.message)){let i=n.message.id,o=this._requestResolvers.get(i);o?(o(new ge(be.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,a,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(t,r);i?.pollInterval&&(n=i.pollInterval)}catch{}return new Promise((i,o)=>{if(a.aborted){o(new ge(be.InvalidRequest,"Request cancelled"));return}let s=setTimeout(i,n);a.addEventListener("abort",()=>{clearTimeout(s),o(new ge(be.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,a){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async n=>{if(!t)throw new Error("No request provided");return await r.createTask(n,t.id,{method:t.method,params:t.params},a)},getTask:async n=>{let i=await r.getTask(n,a);if(!i)throw new ge(be.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(n,i,o)=>{await r.storeTaskResult(n,i,o,a);let s=await r.getTask(n,a);if(s){let l=Q2.parse({method:"notifications/tasks/status",params:s});await this.notification(l),i3(s.status)&&this._cleanupTaskProgressHandler(n)}},getTaskResult:n=>r.getTaskResult(n,a),updateTaskStatus:async(n,i,o)=>{let s=await r.getTask(n,a);if(!s)throw new ge(be.InvalidParams,`Task "${n}" not found - it may have been cleaned up`);if(i3(s.status))throw new ge(be.InvalidParams,`Cannot update task "${n}" from terminal status "${s.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(n,i,o,a);let l=await r.getTask(n,a);if(l){let u=Q2.parse({method:"notifications/tasks/status",params:l});await this.notification(u),i3(l.status)&&this._cleanupTaskProgressHandler(n)}},listTasks:n=>r.listTasks(n,a)}}};function mC(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function gC(e,t){let a={...e};for(let r in t){let n=r,i=t[n];if(i===void 0)continue;let o=a[n];mC(o)&&mC(i)?a[n]={...o,...i}:a[n]=i}return a}var mM=vo(kg(),1),gM=vo(pM(),1);function GJ(){let e=new mM.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,gM.default)(e),e}var l0=class{constructor(t){this._ajv=t??GJ()}getValidator(t){let a="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return r=>a(r)?{valid:!0,data:r,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(a.errors)}}};var u0=class{constructor(t){this._server=t}requestStream(t,a,r){return this._server.requestStream(t,a,r)}createMessageStream(t,a){let r=this._server.getClientCapabilities();if((t.tools||t.toolChoice)&&!r?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let n=t.messages[t.messages.length-1],i=Array.isArray(n.content)?n.content:[n.content],o=i.some(c=>c.type==="tool_result"),s=t.messages.length>1?t.messages[t.messages.length-2]:void 0,l=s?Array.isArray(s.content)?s.content:[s.content]:[],u=l.some(c=>c.type==="tool_use");if(o){if(i.some(c=>c.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let c=new Set(l.filter(h=>h.type==="tool_use").map(h=>h.id)),d=new Set(i.filter(h=>h.type==="tool_result").map(h=>h.toolUseId));if(c.size!==d.size||![...c].every(h=>d.has(h)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:t},a8,a)}elicitInputStream(t,a){let r=this._server.getClientCapabilities(),n=t.mode??"form";switch(n){case"url":{if(!r?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!r?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let i=n==="form"&&t.mode===void 0?{...t,mode:"form"}:t;return this.requestStream({method:"elicitation/create",params:i},ii,a)}async getTask(t,a){return this._server.getTask({taskId:t},a)}async getTaskResult(t,a,r){return this._server.getTaskResult({taskId:t},a,r)}async listTasks(t,a){return this._server.listTasks(t?{cursor:t}:void 0,a)}async cancelTask(t,a){return this._server.cancelTask({taskId:t},a)}};function fM(e,t,a){if(!e)throw new Error(`${a} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${a} does not support task creation for tools/call (required for ${t})`);break;default:break}}function yM(e,t,a){if(!e)throw new Error(`${a} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${a} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${a} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var c0=class extends C6{constructor(t,a){super(a),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(t8.options.map((r,n)=>[r,n])),this.isMessageIgnored=(r,n)=>{let i=this._loggingLevels.get(n);return i?this.LOG_LEVEL_SEVERITY.get(r)<this.LOG_LEVEL_SEVERITY.get(i):!1},this._capabilities=a?.capabilities??{},this._instructions=a?.instructions,this._jsonSchemaValidator=a?.jsonSchemaValidator??new l0,this.setRequestHandler(r6,r=>this._oninitialize(r)),this.setNotificationHandler(pp,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(Np,async(r,n)=>{let i=n.sessionId||n.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,s=t8.safeParse(o);return s.success&&this._loggingLevels.set(i,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new u0(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=gC(this._capabilities,t)}setRequestHandler(t,a){let n=Qn(t)?.method;if(!n)throw new Error("Schema is missing a method literal");let i=H4(n);if(typeof i!="string")throw new Error("Schema method literal must be a string");if(i==="tools/call"){let s=async(l,u)=>{let c=Yn(ri,l);if(!c.success){let m=c.error instanceof Error?c.error.message:String(c.error);throw new ge(be.InvalidParams,`Invalid tools/call request: ${m}`)}let{params:d}=c.data,h=await Promise.resolve(a(l,u));if(d.task){let m=Yn(ai,h);if(!m.success){let g=m.error instanceof Error?m.error.message:String(m.error);throw new ge(be.InvalidParams,`Invalid task creation result: ${g}`)}return m.data}let p=Yn(v6,h);if(!p.success){let m=p.error instanceof Error?p.error.message:String(p.error);throw new ge(be.InvalidParams,`Invalid tools/call result: ${m}`)}return p.data};return super.setRequestHandler(t,s)}return super.setRequestHandler(t,a)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){yM(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&fM(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let a=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:ei.includes(a)?a:lp,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},a6)}async createMessage(t,a){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let r=t.messages[t.messages.length-1],n=Array.isArray(r.content)?r.content:[r.content],i=n.some(u=>u.type==="tool_result"),o=t.messages.length>1?t.messages[t.messages.length-2]:void 0,s=o?Array.isArray(o.content)?o.content:[o.content]:[],l=s.some(u=>u.type==="tool_use");if(i){if(n.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!l)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(l){let u=new Set(s.filter(d=>d.type==="tool_use").map(d=>d.id)),c=new Set(n.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(u.size!==c.size||![...u].every(d=>c.has(d)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},Sp,a):this.request({method:"sampling/createMessage",params:t},a8,a)}async elicitInput(t,a){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let n=t;return this.request({method:"elicitation/create",params:n},ii,a)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let n=t.mode==="form"?t:{...t,mode:"form"},i=await this.request({method:"elicitation/create",params:n},ii,a);if(i.action==="accept"&&i.content&&n.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(n.requestedSchema)(i.content);if(!s.valid)throw new ge(be.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(o){throw o instanceof ge?o:new ge(be.InternalError,`Error validating elicitation response: ${o instanceof Error?o.message:String(o)}`)}return i}}}createElicitationCompletionNotifier(t,a){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},a)}async listRoots(t,a){return this.request({method:"roots/list",params:t},kp,a)}async sendLoggingMessage(t,a){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,a))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};var vM=Symbol.for("mcp.completable");function Ig(e){return!!e&&typeof e=="object"&&vM in e}function NM(e){return e[vM]?.complete}var bM;(function(e){e.Completable="McpCompletable"})(bM||(bM={}));var KJ=/^[A-Za-z0-9._-]{1,128}$/;function XJ(e){let t=[];if(e.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(" ")&&t.push("Tool name contains spaces, which may cause parsing issues"),e.includes(",")&&t.push("Tool name contains commas, which may cause parsing issues"),(e.startsWith("-")||e.endsWith("-"))&&t.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(e.startsWith(".")||e.endsWith("."))&&t.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!KJ.test(e)){let a=e.split("").filter(r=>!/[A-Za-z0-9._-]/.test(r)).filter((r,n,i)=>i.indexOf(r)===n);return t.push(`Tool name contains invalid characters: ${a.map(r=>`"${r}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function VJ(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let a of t)console.warn(` - ${a}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function Pg(e){let t=XJ(e);return VJ(e,t.warnings),t.isValid}var d0=class{constructor(t){this._mcpServer=t}registerToolTask(t,a,r){let n={taskSupport:"required",...a.execution};if(n.taskSupport==="forbidden")throw new Error(`Cannot register task-based tool '${t}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(t,a.title,a.description,a.inputSchema,a.outputSchema,a.annotations,n,a._meta,r)}};function qJ(e,t){let a=0,r=[e];for(;r.length>0;){let n=r.pop();if(!(n===null||typeof n!="object"))if(Array.isArray(n))for(let i of n){if(++a>t)return a;i!==null&&typeof i=="object"&&r.push(i)}else for(let i in n){if(!Object.prototype.hasOwnProperty.call(n,i))continue;if(++a>t)return a;let o=n[i];o!==null&&typeof o=="object"&&r.push(o)}}return a}function ZJ(e){if(!(e===void 0||e===1/0)){if(typeof e!="number"||Number.isNaN(e)||e<1)throw new RangeError(`maxToolInputElements must be a number of at least 1, or Infinity, got ${String(e)}`);return e}}var R8=class{constructor(t,a){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new c0(t,a),this._maxToolInputElements=ZJ(a?.maxToolInputElements)}get experimental(){return this._experimental||(this._experimental={tasks:new d0(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(m3(b6)),this.server.assertCanSetRequestHandler(m3(ri)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(b6,()=>({tools:Object.entries(this._registeredTools).filter(([,t])=>t.enabled).map(([t,a])=>{let r={name:t,title:a.title,description:a.description,inputSchema:(()=>{let n=B4(a.inputSchema);return n?Mp(n,{strictUnions:!0,pipeStrategy:"input"}):JJ})(),annotations:a.annotations,execution:a.execution,_meta:a._meta};if(a.outputSchema){let n=B4(a.outputSchema);n&&(r.outputSchema=Mp(n,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(ri,async(t,a)=>{try{let r=this._registeredTools[t.params.name];if(!r)throw new ge(be.InvalidParams,`Tool ${t.params.name} not found`);if(!r.enabled)throw new ge(be.InvalidParams,`Tool ${t.params.name} disabled`);let n=!!t.params.task,i=r.execution?.taskSupport,o="createTask"in r.handler;if((i==="required"||i==="optional")&&!o)throw new ge(be.InternalError,`Tool ${t.params.name} has taskSupport '${i}' but was not registered with registerToolTask`);if(i==="required"&&!n)throw new ge(be.MethodNotFound,`Tool ${t.params.name} requires task augmentation (taskSupport: 'required')`);if(i==="optional"&&!n&&o)return await this.handleAutomaticTaskPolling(r,t,a);let s=await this.validateToolInput(r,t.params.arguments,t.params.name),l=await this.executeToolHandler(r,s,a);return n||await this.validateToolOutput(r,l,t.params.name),l}catch(r){if(r instanceof ge&&r.code===be.UrlElicitationRequired)throw r;return this.createToolError(r instanceof Error?r.message:String(r))}}),this._toolHandlersInitialized=!0)}createToolError(t){return{content:[{type:"text",text:t}],isError:!0}}async validateToolInput(t,a,r){if(this._maxToolInputElements!==void 0&&qJ(a,this._maxToolInputElements)>this._maxToolInputElements)throw new ge(be.InvalidParams,`Invalid arguments for tool ${r}: arguments contain more than the maximum of ${this._maxToolInputElements} elements`);if(!t.inputSchema)return;let i=B4(t.inputSchema)??t.inputSchema,o=await w5(i,a??{});if(!o.success){let s="error"in o?o.error:"Unknown error",l=W5(s);throw new ge(be.InvalidParams,`Input validation error: Invalid arguments for tool ${r}: ${l}`)}return o.data}async validateToolOutput(t,a,r){if(!t.outputSchema||!("content"in a)||a.isError)return;if(!a.structuredContent)throw new ge(be.InvalidParams,`Output validation error: Tool ${r} has an output schema but no structured content was provided`);let n=B4(t.outputSchema),i=await w5(n,a.structuredContent);if(!i.success){let o="error"in i?i.error:"Unknown error",s=W5(o);throw new ge(be.InvalidParams,`Output validation error: Invalid structured content for tool ${r}: ${s}`)}}async executeToolHandler(t,a,r){let n=t.handler;if("createTask"in n){if(!r.taskStore)throw new Error("No task store provided.");let o={...r,taskStore:r.taskStore};if(t.inputSchema){let s=n;return await Promise.resolve(s.createTask(a,o))}else{let s=n;return await Promise.resolve(s.createTask(o))}}if(t.inputSchema){let o=n;return await Promise.resolve(o(a,r))}else{let o=n;return await Promise.resolve(o(r))}}async handleAutomaticTaskPolling(t,a,r){if(!r.taskStore)throw new Error("No task store provided for task-capable tool.");let n=await this.validateToolInput(t,a.params.arguments,a.params.name),i=t.handler,o={...r,taskStore:r.taskStore},s=n?await Promise.resolve(i.createTask(n,o)):await Promise.resolve(i.createTask(o)),l=s.task.taskId,u=s.task,c=u.pollInterval??5e3;for(;u.status!=="completed"&&u.status!=="failed"&&u.status!=="cancelled";){await new Promise(h=>setTimeout(h,c));let d=await r.taskStore.getTask(l);if(!d)throw new ge(be.InternalError,`Task ${l} not found during polling`);u=d}return await r.taskStore.getTaskResult(l)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(m3(N6)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(N6,async t=>{switch(t.params.ref.type){case"ref/prompt":return EW(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return RW(t),this.handleResourceCompletion(t,t.params.ref);default:throw new ge(be.InvalidParams,`Invalid completion reference: ${t.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(t,a){let r=this._registeredPrompts[a.name];if(!r)throw new ge(be.InvalidParams,`Prompt ${a.name} not found`);if(!r.enabled)throw new ge(be.InvalidParams,`Prompt ${a.name} disabled`);if(!r.argsSchema)return E8;let i=Qn(r.argsSchema)?.[t.params.argument.name];if(!Ig(i))return E8;let o=NM(i);if(!o)return E8;let s=await o(t.params.argument.value,t.params.context);return kM(s)}async handleResourceCompletion(t,a){let r=Object.values(this._registeredResourceTemplates).find(o=>o.resourceTemplate.uriTemplate.toString()===a.uri);if(!r){if(this._registeredResources[a.uri])return E8;throw new ge(be.InvalidParams,`Resource template ${t.params.ref.uri} not found`)}let n=r.resourceTemplate.completeCallback(t.params.argument.name);if(!n)return E8;let i=await n(t.params.argument.value,t.params.context);return kM(i)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(m3(p6)),this.server.assertCanSetRequestHandler(m3(m6)),this.server.assertCanSetRequestHandler(m3(g6)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(p6,async(t,a)=>{let r=Object.entries(this._registeredResources).filter(([i,o])=>o.enabled).map(([i,o])=>({uri:i,name:o.name,...o.metadata})),n=[];for(let i of Object.values(this._registeredResourceTemplates)){if(!i.resourceTemplate.listCallback)continue;let o=await i.resourceTemplate.listCallback(a);for(let s of o.resources)n.push({...i.metadata,...s})}return{resources:[...r,...n]}}),this.server.setRequestHandler(m6,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([a,r])=>({name:a,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(g6,async(t,a)=>{let r=new URL(t.params.uri),n=this._registeredResources[r.toString()];if(n){if(!n.enabled)throw new ge(be.InvalidParams,`Resource ${r} disabled`);return n.readCallback(r,a)}for(let i of Object.values(this._registeredResourceTemplates)){let o=i.resourceTemplate.uriTemplate.match(r.toString());if(o)return i.readCallback(r,o,a)}throw new ge(be.InvalidParams,`Resource ${r} not found`)}),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(m3(f6)),this.server.assertCanSetRequestHandler(m3(y6)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(f6,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,a])=>({name:t,title:a.title,description:a.description,arguments:a.argsSchema?YJ(a.argsSchema):void 0}))})),this.server.setRequestHandler(y6,async(t,a)=>{let r=this._registeredPrompts[t.params.name];if(!r)throw new ge(be.InvalidParams,`Prompt ${t.params.name} not found`);if(!r.enabled)throw new ge(be.InvalidParams,`Prompt ${t.params.name} disabled`);if(r.argsSchema){let n=B4(r.argsSchema),i=await w5(n,t.params.arguments??{});if(!i.success){let l="error"in i?i.error:"Unknown error",u=W5(l);throw new ge(be.InvalidParams,`Invalid arguments for prompt ${t.params.name}: ${u}`)}let o=i.data,s=r.callback;return await Promise.resolve(s(o,a))}else{let n=r.callback;return await Promise.resolve(n(a))}}),this._promptHandlersInitialized=!0)}resource(t,a,...r){let n;typeof r[0]=="object"&&(n=r.shift());let i=r[0];if(typeof a=="string"){if(this._registeredResources[a])throw new Error(`Resource ${a} is already registered`);let o=this._createRegisteredResource(t,void 0,a,n,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let o=this._createRegisteredResourceTemplate(t,void 0,a,n,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}}registerResource(t,a,r,n){if(typeof a=="string"){if(this._registeredResources[a])throw new Error(`Resource ${a} is already registered`);let i=this._createRegisteredResource(t,r.title,a,r,n);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let i=this._createRegisteredResourceTemplate(t,r.title,a,r,n);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}}_createRegisteredResource(t,a,r,n,i){let o={name:t,title:a,metadata:n,readCallback:i,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({uri:null}),update:s=>{typeof s.uri<"u"&&s.uri!==r&&(delete this._registeredResources[r],s.uri&&(this._registeredResources[s.uri]=o)),typeof s.name<"u"&&(o.name=s.name),typeof s.title<"u"&&(o.title=s.title),typeof s.metadata<"u"&&(o.metadata=s.metadata),typeof s.callback<"u"&&(o.readCallback=s.callback),typeof s.enabled<"u"&&(o.enabled=s.enabled),this.sendResourceListChanged()}};return this._registeredResources[r]=o,o}_createRegisteredResourceTemplate(t,a,r,n,i){let o={resourceTemplate:r,title:a,metadata:n,readCallback:i,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:u=>{typeof u.name<"u"&&u.name!==t&&(delete this._registeredResourceTemplates[t],u.name&&(this._registeredResourceTemplates[u.name]=o)),typeof u.title<"u"&&(o.title=u.title),typeof u.template<"u"&&(o.resourceTemplate=u.template),typeof u.metadata<"u"&&(o.metadata=u.metadata),typeof u.callback<"u"&&(o.readCallback=u.callback),typeof u.enabled<"u"&&(o.enabled=u.enabled),this.sendResourceListChanged()}};this._registeredResourceTemplates[t]=o;let s=r.uriTemplate.variableNames;return Array.isArray(s)&&s.some(u=>!!r.completeCallback(u))&&this.setCompletionRequestHandler(),o}_createRegisteredPrompt(t,a,r,n,i){let o={title:a,description:r,argsSchema:n===void 0?void 0:q3(n),callback:i,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:s=>{typeof s.name<"u"&&s.name!==t&&(delete this._registeredPrompts[t],s.name&&(this._registeredPrompts[s.name]=o)),typeof s.title<"u"&&(o.title=s.title),typeof s.description<"u"&&(o.description=s.description),typeof s.argsSchema<"u"&&(o.argsSchema=q3(s.argsSchema)),typeof s.callback<"u"&&(o.callback=s.callback),typeof s.enabled<"u"&&(o.enabled=s.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[t]=o,n&&Object.values(n).some(l=>{let u=l instanceof Q3?l._def?.innerType:l;return Ig(u)})&&this.setCompletionRequestHandler(),o}_createRegisteredTool(t,a,r,n,i,o,s,l,u){Pg(t);let c={title:a,description:r,inputSchema:SM(n),outputSchema:SM(i),annotations:o,execution:s,_meta:l,handler:u,enabled:!0,disable:()=>c.update({enabled:!1}),enable:()=>c.update({enabled:!0}),remove:()=>c.update({name:null}),update:d=>{typeof d.name<"u"&&d.name!==t&&(typeof d.name=="string"&&Pg(d.name),delete this._registeredTools[t],d.name&&(this._registeredTools[d.name]=c)),typeof d.title<"u"&&(c.title=d.title),typeof d.description<"u"&&(c.description=d.description),typeof d.paramsSchema<"u"&&(c.inputSchema=q3(d.paramsSchema)),typeof d.outputSchema<"u"&&(c.outputSchema=q3(d.outputSchema)),typeof d.callback<"u"&&(c.handler=d.callback),typeof d.annotations<"u"&&(c.annotations=d.annotations),typeof d._meta<"u"&&(c._meta=d._meta),typeof d.enabled<"u"&&(c.enabled=d.enabled),this.sendToolListChanged()}};return this._registeredTools[t]=c,this.setToolRequestHandlers(),this.sendToolListChanged(),c}tool(t,...a){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let r,n,i,o;if(typeof a[0]=="string"&&(r=a.shift()),a.length>1){let l=a[0];if(Ug(l))n=a.shift(),a.length>1&&typeof a[0]=="object"&&a[0]!==null&&!Ug(a[0])&&(o=a.shift());else if(typeof l=="object"&&l!==null){if(Object.values(l).some(u=>typeof u=="object"&&u!==null))throw new Error(`Tool ${t} expected a Zod schema or ToolAnnotations, but received an unrecognized object`);o=a.shift()}}let s=a[0];return this._createRegisteredTool(t,void 0,r,n,i,o,{taskSupport:"forbidden"},void 0,s)}registerTool(t,a,r){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let{title:n,description:i,inputSchema:o,outputSchema:s,annotations:l,_meta:u}=a;return this._createRegisteredTool(t,n,i,o,s,l,{taskSupport:"forbidden"},u,r)}prompt(t,...a){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let r;typeof a[0]=="string"&&(r=a.shift());let n;a.length>1&&(n=a.shift());let i=a[0],o=this._createRegisteredPrompt(t,void 0,r,n,i);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),o}registerPrompt(t,a,r){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let{title:n,description:i,argsSchema:o}=a,s=this._createRegisteredPrompt(t,n,i,o,r);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),s}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(t,a){return this.server.sendLoggingMessage(t,a)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}};var JJ={type:"object",properties:{}};function wM(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function WM(e){return"_def"in e||"_zod"in e||wM(e)}function Ug(e){return typeof e!="object"||e===null||WM(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(wM)}function SM(e){if(e){if(Ug(e))return q3(e);if(!WM(e))throw new Error("inputSchema must be a Zod schema or raw shape, received an unrecognized object");return e}}function YJ(e){let t=Qn(e);return t?Object.entries(t).map(([a,r])=>{let n=qk(r),i=Zk(r);return{name:a,description:n,required:!i}}):[]}function m3(e){let a=Qn(e)?.method;if(!a)throw new Error("Schema is missing a method literal");let r=H4(a);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function kM(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}var E8={completion:{values:[],hasMore:!1}};import AM from"node:process";var QJ=10*1024*1024,h0=class{constructor(t){this._maxBufferSize=t?.maxBufferSize??QJ}append(t){if((this._buffer?.length??0)+t.length>this._maxBufferSize)throw this.clear(),new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(`
94
94
  `);if(t===-1)return null;let a=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),eY(a)}clear(){this._buffer=void 0}};function eY(e){return V2.parse(JSON.parse(e))}function CM(e){return JSON.stringify(e)+`
95
- `}var p0=class{constructor(t=AM.stdin,a=AM.stdout,r){this._stdin=t,this._stdout=a,this._started=!1,this._ondata=n=>{try{this._readBuffer.append(n),this.processReadBuffer()}catch(i){this.onerror?.(i),this.close().catch(()=>{})}},this._onerror=n=>{this.onerror?.(n)},this._readBuffer=new h0({maxBufferSize:r?.maxBufferSize})}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(a=>{let r=CM(t);this._stdout.write(r)?a():this._stdout.once("drain",a)})}};import{readFileSync as eN,writeFileSync as Pa,mkdirSync as su,existsSync as LO}from"node:fs";import{join as V1,resolve as Or}from"node:path";/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */function tY(e){if(e==null)return null;let t=String(e);if(t.length===0)return null;let a=t.length;if(a===36&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t))return"UUID";if(/^[^\s@]+@[^\s@]+\.[A-Za-z]{2,}$/.test(t))return"EMAIL_LIKE";if(/^https?:\/\//i.test(t)||/^www\./i.test(t))return"URL_LIKE";if(/^[+\d][\d\s().\-]{5,17}\d$/.test(t)){let i=(t.match(/\d/g)||[]).length;if(i>=7&&i<=15)return"PHONE_LIKE"}if(/^\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2}(:\d{2})?(\.\d+)?Z?)?$/.test(t)||/^\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}$/.test(t))return"DATE_STR";if(/^(true|false|yes|no|t|f|y|n)$/i.test(t))return"BOOLEAN";if(/^\d+$/.test(t))return a>=6?"NUMERIC_ID":null;if(a>=8&&/^[0-9a-f]+$/i.test(t))return"HEX_ID";if(/^[A-Z][A-Z0-9]*$/.test(t)&&!/^\d+$/.test(t))return"ALL_UPPER";if(a>=6&&/^[A-Za-z0-9_-]+$/.test(t)&&/\d/.test(t)&&/[A-Za-z]/.test(t))return"OPAQUE_ID_ALPHANUMERIC";let r=t.trim().split(/\s+/).length,n=/[.!?,;:]/.test(t);return r>=2?n||new RegExp("\\p{Ll}\\p{Lu}","u").test(t)||t.length>40?"SENTENCE_TEXT":new RegExp("^\\p{Lu}","u").test(t)&&aY.test(t)?"TITLE_CASE_WORDS":new RegExp("^\\p{Ll}","u").test(t)&&!new RegExp("\\p{Lu}","u").test(t)?"LOWER_WORDS":"SENTENCE_TEXT":new RegExp("^\\p{Lu}[\\p{Ll}\\p{M}]*\\p{Ll}[\\p{Ll}\\p{M}]*$","u").test(t)?"TITLE_CASE_WORDS":new RegExp("^\\p{Ll}[\\p{Ll}\\p{M}]*$","u").test(t)?"LOWER_WORDS":null}var aY=new RegExp("(?<![\\p{L}\\p{M}\\p{N}_])\\p{Lu}\\p{M}*\\p{Ll}","u");function Tg(e){if(!e||e.length===0)return"OTHER";let t=new Map,a=new Map,r=0;for(let o of e){let s=tY(o);s&&(r++,t.set(s,(t.get(s)||0)+1),a.has(s)||a.set(s,new Set),a.get(s).add(String(o).length))}if(r===0)return"OTHER";let n=null,i=0;for(let[o,s]of t.entries())s>i&&(i=s,n=o);if(!n)return"OTHER";if(i/e.length<.7)return"MIXED";if(n==="ALL_UPPER"){let o=a.get("ALL_UPPER");if(o.size===1)return`ALL_UPPER_FIXED_${o.values().next().value}`}return n}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var _M=Object.freeze({\u00F8:"o",\u0153:"oe",\u00E6:"ae",\u00DF:"ss",\u0142:"l",\u0111:"d",\u00F0:"d",\u00FE:"th",\u0131:"i",\u0127:"h",\u0167:"t",\u014B:"n",\u0138:"k",\u0259:"e",\u01DD:"e",\u0133:"ij",\u0140:"l",\u017F:"s"}),nY=new RegExp(`[${Object.keys(_M).join("")}]`,"gu");function mr(e){return e.replace(nY,t=>_M[t]??t)}function Wn(e){return e==null?"":mr(String(e).replace(new RegExp("\\p{No}","gu")," ").normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/&/g,"and").replace(/[^\p{L}\p{Nd}]/gu,"")}var rY=4;function pr(e){return e.length>=rY}var m0=class{constructor(e=(t,a)=>t===a){this.same=e}same;map=new Map;add(e,t){let a=Wn(e);if(!pr(a))return;let r=this.map.get(a);if(!r){this.map.set(a,{value:t,ambiguous:!1});return}!r.ambiguous&&!this.same(r.value,t)&&(r.ambiguous=!0)}get(e){if(!pr(e))return;let t=this.map.get(e);return t&&!t.ambiguous?t.value:void 0}isAmbiguous(e){return this.map.get(e)?.ambiguous===!0}entries(){return Array.from(this.map.entries())}};/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var rt=(e,t,a,r={})=>({code:e,name:t,script:a,dir:"ltr",intl:e,aliases:[],wordBreaks:!0,compounds:!1,gluedPrefixes:[],foldSensitive:!1,...r}),z8=Object.freeze([rt("en","English","Latn"),rt("nl","Dutch","Latn",{compounds:!0}),rt("de","German","Latn",{compounds:!0}),rt("fr","French","Latn"),rt("es","Spanish","Latn"),rt("pt","Portuguese","Latn"),rt("it","Italian","Latn"),rt("pl","Polish","Latn"),rt("cs","Czech","Latn"),rt("sk","Slovak","Latn"),rt("sv","Swedish","Latn",{compounds:!0}),rt("da","Danish","Latn",{compounds:!0}),rt("nb","Norwegian Bokmal","Latn",{compounds:!0,aliases:["no"]}),rt("fi","Finnish","Latn",{compounds:!0}),rt("hu","Hungarian","Latn",{compounds:!0}),rt("tr","Turkish","Latn"),rt("ro","Romanian","Latn"),rt("hr","Croatian","Latn"),rt("id","Indonesian","Latn",{aliases:["in"]}),rt("vi","Vietnamese","Latn",{foldSensitive:!0}),rt("ru","Russian","Cyrl"),rt("uk","Ukrainian","Cyrl"),rt("el","Greek","Grek"),rt("zh","Chinese (Simplified)","Hani",{intl:"zh-Hans",wordBreaks:!1}),rt("ja","Japanese","Jpan",{wordBreaks:!1}),rt("ko","Korean","Hang"),rt("ar","Arabic","Arab",{dir:"rtl",gluedPrefixes:["\u0627\u0644","\u0648\u0627\u0644","\u0628\u0627\u0644","\u0641\u0627\u0644","\u0643\u0627\u0644","\u0644\u0644","\u0648","\u0641","\u0628","\u0643","\u0644"]}),rt("he","Hebrew","Hebr",{dir:"rtl",aliases:["iw"],gluedPrefixes:["\u05D4","\u05D5","\u05D1","\u05DC","\u05DE","\u05E9","\u05DB","\u05D5\u05D4","\u05E9\u05D4","\u05DE\u05D4","\u05D5\u05D1","\u05D5\u05DC","\u05D5\u05DE","\u05D1\u05D4","\u05DC\u05D4"]}),rt("hi","Hindi","Deva"),rt("th","Thai","Thai",{wordBreaks:!1})]),iY=Object.freeze(z8.map(e=>e.code)),oY=new Map(z8.map(e=>[e.code,e])),sY=new Map(z8.flatMap(e=>e.aliases.map(t=>[t,e])));function $8(e){let t=String(e??"").trim().toLowerCase();return oY.get(t)??sY.get(t)}var MM=Object.freeze([rt("fa","Persian","Arab",{dir:"rtl"})]),hhe=Object.freeze([...iY,...MM.map(e=>e.code)]),lY=new Map(MM.map(e=>[e.code,e]));function Ga(e){let t=String(e??"").trim().toLowerCase();return $8(t)??lY.get(t)}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var UM=[1632,1776,2406,2534,2662,2790,2918,3046,3174,3302,3430,3664,3792,3872,4160,6112,65296],uY=new RegExp("["+UM.map(e=>String.fromCharCode(e)+"-"+String.fromCharCode(e+9)).join("")+"\\u066B\\u066C\\uFF0C\\uFF0E]","g"),cY=/[^\x00-\x7F]/;function g3(e){return cY.test(e)?e.replace(uY,t=>{let a=t.charCodeAt(0);if(a===1643||a===65294)return".";if(a===1644||a===65292)return",";for(let r of UM)if(a>=r&&a<=r+9)return String(a-r);return t}):e}function dY(e){if(!e)return".";try{return new Intl.NumberFormat(e).formatToParts(1.5).find(t=>t.type==="decimal")?.value===","?",":"."}catch{return"."}}var TM="[ \\u00A0\\u202F]",f0="(?:[eE][+-]?\\d+)?",hY=new RegExp(`^[+-]?(?:\\d{1,3}(?:,\\d{3})+|\\d+)(?:\\.\\d+)?${f0}$`),pY=new RegExp(`^[+-]?(?:\\d{1,3}(?:\\.\\d{3})+|\\d{1,3}(?:${TM}\\d{3})+|\\d+)(?:,\\d+)?${f0}$`),mY=/^[+-]?\d{1,3}[.,]\d{3}$/,gY=[/^[+-]?\d{1,3}(?:,\d{3}){2,}$/,new RegExp(`^[+-]?(?:\\d{1,3}(?:,\\d{3})+|\\d+)\\.\\d+${f0}$`)],fY=[/^[+-]?\d{1,3}(?:\.\d{3}){2,}$/,new RegExp(`^[+-]?(?:\\d{1,3}(?:\\.\\d{3})+|\\d{1,3}(?:${TM}\\d{3})+|\\d+),\\d+${f0}$`)];function EM(e,t){let a=0,r=0;for(let n of e){if(typeof n!="string")continue;let i=g3(n.trim());i===""||mY.test(i)||(gY.some(o=>o.test(i))?a++:fY.some(o=>o.test(i))&&r++)}return r>0&&a===0?",":a>0?".":dY(t)}function Eg(e,t){let a=g3(String(e??"").trim());return a===""?null:t===","?pY.test(a)?parseFloat(a.replace(/[.   ]/g,"").replace(",",".")):null:hY.test(a)?parseFloat(a.replace(/,/g,"")):null}function RM(e,t){return Eg(e,t)!==null}var xM={};function Ka(e){return mr(e.normalize("NFD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/[.‎‏\s]/g,"")}function Rg(e){let t=e||"en",a=xM[t];if(a)return a;let r={};try{let n=new Intl.DateTimeFormat(t,{month:"long"}),i=new Intl.DateTimeFormat(t,{month:"short"});for(let o=0;o<12;++o){let s=new Date(Date.UTC(2020,o,15));r[Ka(n.format(s))]=o,r[Ka(i.format(s))]=o}}catch{}return xM[t]=r,r}var yY=new Set(["zh","ja","ko","vi"]),bY=[["en","sept",8],["de","j\xE4nner",0]],g0=null,zM=[];function $M(){let e=new Map,t=[],a=(r,n,i)=>{let o=Ka(n);if(o.length<2||/^\d+$/.test(o))return;let s=e.get(o);s||e.set(o,s=[]),!s.some(l=>l.lang===r&&l.month===i)&&(r==="en"?s.unshift({lang:r,month:i}):s.push({lang:r,month:i}))};for(let r of z8)if(!yY.has(r.code))try{let n=`${r.intl}-u-ca-gregory-nu-latn`,i=[{month:"long"},{month:"short"},{day:"numeric",month:"long"},{day:"numeric",month:"short"},{year:"numeric",month:"long"},{year:"numeric",month:"short"}].map(o=>new Intl.DateTimeFormat(n,{timeZone:"UTC",...o}));for(let o=0;o<12;++o){let s=new Date(Date.UTC(2020,o,15));for(let l of i){let u=l.formatToParts(s).filter(c=>c.type==="month").map(c=>c.value).join("");a(r.code,u,o)}}t.push(r.code)}catch{}for(let[r,n,i]of bY)a(r,n,i);return zM=t,e}function y0(e){return g0??=$M(),g0.get(Ka(e))??[]}var vY="\u05D1\u05DC\u05DE\u05D4\u05D5\u05E9\u05DB";function NY(e,t){if(e.length<3||!vY.includes(e[0]))return;let a=t.get(e.slice(1))?.filter(r=>r.lang==="he");return a&&a.length?a:void 0}function zg(e,t){g0??=$M();let a=g0,r=[];for(let d of e){let h=Ka(d);if(!h)return null;r.includes(h)||r.push(h)}if(r.length===0)return null;let n=r.map(d=>a.get(d)??NY(d,a));if(n.some(d=>!d))return null;let i=d=>{let h=[];for(let p of n){let m=p.find(g=>g.lang===d)??p.find(g=>g.lang==="en");if(!m)return null;h.push(m.month)}return h},o=d=>new Map(r.map((h,p)=>[h,d[p]]));if(n.every(d=>d.some(h=>h.lang==="en")))return o(i("en"));let s=new Map;for(let d of zM){if(d==="en")continue;let h=i(d);h&&s.set(d,h)}if(s.size===0)return null;let l=[...s.values()];if(l.every(d=>d.every((h,p)=>h===l[0][p])))return o(l[0]);let u=$8(String(t??"").split(/[-_]/)[0])?.code,c=u?s.get(u):void 0;return c?o(c):null}var SY=/^((?:19|20)\d{2})\s*[年년]\s*(\d{1,2})\s*[月월]$/,kY=new Set(["de","del","of"]),IM=/^(?:19|20)\d{2}$/,PM=/^[\p{L}\p{M}\u0970\u05f3]+$/u;function O8(e){let t=g3(String(e??"").replace(/[\u200e\u200f\u061c]/g,"")).replace(/\s+/g," ").trim();t=t.replace(/(\d{4})\s*(?:г|р|r)\.?$/iu,"$1");let a=SY.exec(t);if(a){let o=+a[2];return o>=1&&o<=12?{year:+a[1],month:o}:null}let r=t.split(/[\s\-/.,']+/).filter(o=>o!==""&&!kY.has(o.toLowerCase()));if(r.length!==2)return null;let[n,i]=r;return IM.test(i)&&PM.test(n)?{year:+i,word:n}:IM.test(n)&&PM.test(i)?{year:+n,word:i}:null}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var OM="6th of October City|giza|EG|31.05|29.82|368|W|,A Coruna|galicia|ES|-8.4|43.37|250|W|corunha;la coruna;coruna;la corogne;the groyne,Aachen|north rhine westphalia|DE|6.08|50.78|265|W|aix la chapelle;aquisgrao;aken;akwizgran;aquisgrana;aquisgrano;aquisgran;cachy;kreisfreie stadt aachen,Aalborg|north denmark|DK|9.92|57.05|142|W|alborg,Aba|abia state|NG|7.37|5.11|1160|W|,Abadan|khuzestan|IR|48.3|30.34|231|W|,Abaetetuba|para|BR|-48.88|-1.72|158|W|,Abakaliki|ebonyi state|NG|8.11|6.32|134|W|,Abakan|khakasiya republic|RU|91.43|53.72|184|W|,Abasolo|MX11|MX|-101.53|20.45|27|N|,Abbotsford|BC|CA|-122.25|49.06|141|NW|,Abbottabad|khyber pakhtunkhwa|PK|73.21|34.15|275|W|,Abeche|ouadai|TD|20.83|13.83|139|W|,Abengourou|comoe district|CI|-3.5|6.73|130|W|,Abeokuta|ogun state|NG|3.35|7.16|735|W|,Aberdeen|scotland|GB|-2.1|57.14|198|W|,Aberdeen|southern district|HK|114.15|22.25|157|W|aberdeen harbour,Aberdeen|SD|US|-98.49|45.46|28|N|,Abha|asir region|SA|42.51|18.22|210|W|,Abidjan|abidjan autonomous district|CI|-4|5.35|6321|W|abican;abidzan;abiyan,Abiko|chiba|JP|140.02|35.87|131|W|,Abilene|TX|US|-99.73|32.45|125|N|,Abington|PA|US|-75.12|40.12|55|N|abington township;municipio de abington,Abobo|abidjan autonomous district|CI|-4.02|5.42|1340|W|,Abohar|punjab|IN|74.2|30.14|145|W|,Abomey-Calavi|atlantique|BJ|2.36|6.45|385|W|,Abu al-Kahsib|basra|IQ|47.88|30.44|357|W|,Abu Dhabi|abu dhabi|AE|54.4|24.45|1807|W|abou dabi;abu dabi;abu zabi,Abu Ghurayb|baghdad|IQ|44.18|33.31|900|W|abou ghraib;abu ghraib;abu ghuraib,Abu Kabir|sharqia|EG|31.67|30.73|154|W|,Abuja|fct|NG|7.5|9.06|2690|W|abudza;abuya,Acambaro|MX11|MX|-100.72|20.03|57|N|,Acapulco de Juarez|MX12|MX|-99.91|16.85|658|NW|acapulco,Acarigua|portuguesa|VE|-69.2|9.55|188|W|,Acatzingo|MX21|MX|-97.78|18.98|25|N|san juan acatzingo,Acayucan|MX30|MX|-94.91|17.95|50|N|,Accra|greater accra|GH|-0.2|5.56|1963|W|acra;akra,Acheng|heilongjiang|CN|126.95|45.55|144|W|,Actopan|MX13|MX|-98.94|20.27|32|N|,Ad-Damazin|blue nile|SD|34.36|11.79|186|W|damazin,Ad-Dawahy|port said|EG|32.28|31.24|148|W|al dawahi,Adachi|tokyo|JP|139.81|35.76|695|W|adachi city,Adana|adana|TR|35.33|36.99|1816|W|antioch on sarus,Adapazari|sakarya|TR|30.4|40.78|286|W|,Addis Ababa|addis ababa|ET|38.75|9.02|3860|W|addis abeba;adis abeba,Addison|IL|US|-87.99|41.93|37|N|,Adelaide|south australia|AU|138.6|-34.93|1469|W|adelaida;adelajda,Adelanto|CA|US|-117.41|34.58|33|N|,Aden|aden|YE|45.04|12.78|1079|W|adem,Adiwerna|central java|ID|109.13|-6.94|134|W|,Adiyaman|adiyaman province|TR|38.28|37.76|290|W|adiyamanska,Admiralteisky|st petersburg|RU|30.3|59.92|157|W|,Ado-Ekiti|ekiti state|NG|5.22|7.62|435|W|,Adoni|andhra pradesh|IN|77.27|15.63|184|W|,Afyonkarahisar|afyonkarahisar province|TR|30.54|38.76|251|W|afyon;afyonkarahissar,Agadez|agadez|NE|7.99|16.97|149|W|agades,Agadir|souss massa|MA|-9.6|30.42|698|W|santa cruz,Agartala|tripura|IN|91.28|23.84|400|W|,Agawam|MA|US|-72.61|42.07|28|N|,Agege|lagos|NG|3.33|6.62|683|W|,Ageo|saitama|JP|139.61|35.97|226|W|,Agincourt North|ON|CA|-79.28|43.8|29|N|,Agra|uttar pradesh|IN|78.02|27.18|1430|W|,Agua Caliente|CA|US|-122.49|38.32|27|N|,Agua Dulce|MX30|MX|-94.15|18.14|36|N|,Agua Prieta|MX26|MX|-109.54|31.32|77|N|,Aguas Lindas de Goias|goias|BR|-48.28|-15.76|245|W|,Aguascalientes|MX01|MX|-102.28|21.88|722|NW|aguascalientes city;aguascalientes by,Ahilyanagar|maharashtra|IN|74.74|19.09|367|W|,Ahmadpur East|punjab|PK|71.26|29.14|196|W|ahmedpur east;ahmedpur sharqia;ahmedpur sarki,Ahmedabad|gujarat|IN|72.59|23.03|6357|W|ahmadabad,Ahuntsic-Cartierville|QC|CA|-73.67|45.57|135|NW|,Ahvaz|khuzestan|IR|48.68|31.32|841|W|ahwas;ahwaz,Ahwatukee Foothills|AZ|US|-111.98|33.34|83|N|,Aihara|kanagawa|JP|139.32|35.6|725|W|,Aihui|heilongjiang|CN|127.48|49.98|192|W|,Aiken|SC|US|-81.72|33.56|30|N|,Airdrie|AB|CA|-114.04|51.3|90|N|,Airport|HI|US|-157.93|21.34|28|N|,Ait Melloul|souss massa|MA|-9.5|30.34|187|W|,Aix-en-Provence|provence alpes cote d azur|FR|5.45|43.53|146|W|,Aizawl|mizoram|IN|92.72|23.73|293|W|aijal;aizol;aizwal,Ajalpan|MX21|MX|-97.26|18.38|28|N|,Ajax|ON|CA|-79.03|43.85|119|N|,Ajdabiya|al wahat|LY|20.23|30.76|131|W|adjdabia;adschdabiya;adzdabija;adzedabija;ajdabiyah;ecdebiye,Ajegunle|lagos|NG|3.33|6.45|550|W|,Ajman|ajman|AE|55.48|25.4|490|W|acman;adschman;adzman;ajman city;ajma;ujman,Ajmer|rajasthan|IN|74.64|26.45|542|W|adzmer,Akashi|hyogo|JP|135.01|34.66|303|W|,Akhmim|sohag|EG|31.75|26.56|151|W|,Akita|akita|JP|140.12|39.72|307|W|akita shi,Akola|maharashtra|IN|77|20.71|428|W|,Akowonjo|lagos|NG|3.31|6.61|308|W|,Akron|OH|US|-81.52|41.08|197|NW|,Aksaray|aksaray|TR|34.03|38.37|327|W|,Aktau|mangystau|KZ|51.17|43.66|147|W|aktaou;aktav;aqtau;aqtaw;shevchenko,Aktobe|aktobe|KZ|57.21|50.28|500|W|aktioube;aktiube;aqtobe;aktyubinsk,Akure|ondo state|NG|5.19|7.25|730|W|,Al Ahmadi|al ahmadi|KW|48.08|29.08|637|W|el ahmedi,Al Ain City|abu dhabi|AE|55.76|24.19|846|W|al ain;al ajn;al ayn,Al Ajaylat|an nuqat al khams|LY|12.38|32.76|130|W|,Al 'Amarah|maysan|IQ|47.14|31.84|323|W|amarah;amara,Al 'Ashir min Ramadan|sharqia|EG|31.75|30.3|246|W|cidade do ramadao;citta del decimo ramadan,Al Bab|aleppo|SY|37.52|36.37|130|W|,Al Basrah al Qadimah|basra|IQ|47.82|30.5|2015|W|,Al Diwaniyah|al qadisiyah|IQ|44.93|31.99|318|W|ad diwaniyah;diwaniya;diwaniyya;divanija;ed divaniye,Al Fallujah|anbar|IQ|43.79|33.35|190|W|al falludza;al falluja;falloujah;falludscha;falluja;fallujah;falludza;faluja;faluya;felluce,Al Fayyum|faiyum|EG|30.84|29.31|519|W|el fayum;faijum;fajum;fayoum;fayyum;fayun,Al Hasakah|al hasakah|SY|40.75|36.5|422|W|al hasaka;hasaka;hasakah;haseke;hassake,Al Hawamidiyah|giza|EG|31.25|29.9|155|W|,Al Hillah|babil|IQ|44.42|32.46|455|W|hillah;al hilla;el hille;hilla,Al Hindiyah|karbala|IQ|44.22|32.54|139|W|,Al Hoceima|tanger tetouan al hoceima|MA|-3.94|35.25|395|W|al husajma;alhucemas;villa alhucemas;villa sanjurjo,Al Hudaydah|al hudaydah|YE|42.95|14.8|734|W|el hudeyda,Al Hufuf|eastern province|SA|49.59|25.36|293|W|hofuf;al hofuf;hufuf,Al Jubayl|eastern province|SA|49.62|27.02|237|W|jubail;al jubail;al dschubail;al dzubajl;el cubeyl,Al-Junaynah|western darfur|SD|22.45|13.45|162|W|geneina;al dschunaina;al dzunajna;el geneina,Al Kharj|riyadh region|SA|47.33|24.16|425|W|al khardj;el harc,Al Khums|al marqab|LY|14.26|32.65|201|W|al jums;al chums;el hums;qabilat al khums,Al Khusus|qalyubia|EG|31.32|30.15|488|W|,Al-Kut|wasit|IQ|45.82|32.51|315|W|kut;al koet,Al Madinah|basra|IQ|47.27|30.96|255|W|,Al Mahallah al Kubra|gharbia|EG|31.17|30.97|592|W|,Al Mahmudiyah|baghdad|IQ|44.37|33.06|350|W|,Al Mansurah|dakahlia|EG|31.38|31.04|621|W|al mansura;el mansura;mansourah;mansura,Al Matariyah|dakahlia|EG|32.03|31.18|162|W|,Al Mawsil al Jadidah|nineveh|IQ|43.11|36.33|2065|W|,Al'met'yevsk|tatarstan republic|RU|52.32|54.9|140|W|almetjevsk;almetjewsk,Al Miqdadiyah|diyala|IQ|44.94|33.98|155|W|,Al Mubarraz|eastern province|SA|49.59|25.41|290|W|,Al Muharraq|muharraq|BH|50.61|26.26|176|W|al muharrak;muharraq,Al Qadarif|al qadarif|SD|35.38|14.03|363|W|gedaref;al kadarif;el gadarif;gadaref;gadarif,Al Qahirah al Jadidah||EG|31.44|30.04|313|W|,Al Qamishli|al hasakah|SY|41.23|37.05|184|W|kamischli;kamishli;kamishlie;kamisli;qamichli;qamischli,Al Qurnah|basra|IQ|47.43|31.02|134|W|,Al-'Ubur|qalyubia|EG|31.48|30.23|138|W|,Alabaster|AL|US|-86.82|33.24|32|N|,Alafaya|FL|US|-81.21|28.56|78|N|,Alagoinhas|bahia|BR|-38.42|-12.14|161|W|,Alameda|CA|US|-122.26|37.77|78|N|,Alamo|MX30|MX|-97.68|20.91|25|N|,Alamogordo|NM|US|-105.96|32.9|30|N|,Alandur|tamil nadu|IN|80.21|13|164|W|,Alanya|antalya|TR|32|36.54|364|W|,Alappuzha|kerala|IN|76.33|9.49|240|W|alleppey,Albacete|castille la mancha|ES|-1.86|38.99|173|W|,Albany|NY|US|-73.76|42.65|101|N|,Albany|GA|US|-84.16|31.58|74|N|albania,Albany|OR|US|-123.11|44.64|52|N|,Albany Park|IL|US|-87.72|41.97|52|N|,Albuquerque|NM|US|-106.65|35.08|564|NW|alburquerque;methville,Alcala de Henares|madrid|ES|-3.36|40.48|193|W|compluto,Alcorcon|madrid|ES|-3.82|40.35|172|W|,Aleppo|aleppo|SY|37.16|36.2|2098|W|alep;alepo;halep,Alexandra|gauteng|ZA|28.1|-26.11|179|W|,Alexandria|alexandria|EG|29.92|31.2|5263|W|alejandria;aleksandria;alessandria d egitto;alexandrie;iskandariyah;iskenderiye,Alexandria|VA|US|-77.05|38.8|159|NW|,Alexandria|LA|US|-92.45|31.31|47|N|,Aley|mount lebanon|LB|35.6|33.81|130|W|alayh,Algiers|algiers|DZ|3.09|36.73|2364|W|alger;algeri;algier;aljir;alzir;argel;cezayir,Algonquin|IL|US|-88.29|42.17|30|N|,Alhambra|AZ|US|-112.13|33.5|127|N|,Alhambra|CA|US|-118.13|34.1|85|N|,Aliamanu / Salt Lakes / Foster Village|HI|US|-157.92|21.36|38|N|salt lake,Aliayabiagba|lagos|NG|3.33|6.45|228|W|,Alicante|valencia|ES|-0.48|38.35|348|W|alacante,Alief|TX|US|-95.6|29.71|98|N|,Aligarh|uttar pradesh|IN|78.07|27.88|753|W|,Alimosho|lagos|NG|3.3|6.61|308|W|,Aliso Viejo|CA|US|-117.73|33.57|50|N|,Allapattah|FL|US|-80.22|25.81|54|N|,Allen|TX|US|-96.67|33.1|98|N|,Allen Park|MI|US|-83.21|42.26|27|N|,Allentown|PA|US|-75.49|40.61|120|N|,Allston|MA|US|-71.13|42.36|28|N|,Alma|QC|CA|-71.65|48.55|29|N|,Almaty|almaty|KZ|76.91|43.25|1977|W|almati;alma ata;werny,Almendares|havana|CU|-82.42|23.11|240|W|,Almere Stad|flevoland|NL|5.21|52.37|176|W|almere,Almeria|andalusia|ES|-2.46|36.84|196|W|,Aloha|OR|US|-122.87|45.49|49|N|,Alor Setar|kedah|MY|100.36|6.12|417|W|alor star,Alpharetta|GA|US|-84.29|34.08|63|N|,Altadena|CA|US|-118.13|34.19|42|N|,Altamira|para|BR|-52.21|-3.2|138|W|,Altamira|MX28|MX|-97.94|22.39|59|N|,Altamonte Springs|FL|US|-81.37|28.66|43|N|,Alto Barinas|barinas|VE|-70.23|8.59|284|W|,Alto Hospicio|tarapaca|CL|-70.1|-20.27|142|W|,Alton|IL|US|-90.18|38.89|27|N|,Altona|hamburg|DE|9.93|53.55|250|W|arrondissement daltona;bezirk altona;distretto di altona;hamburgo altona,Altoona|PA|US|-78.39|40.52|45|N|,Alvaro Obregon|MX09|MX|-99.2|19.36|726|NW|,Alvin|TX|US|-95.24|29.42|25|N|,Alvorada|rio grande do sul|BR|-51.08|-30|187|W|,Alwar|rajasthan|IN|76.62|27.56|322|W|,Amadora|lisbon|PT|-9.23|38.75|178|W|,Amagasaki|hyogo|JP|135.42|34.72|459|W|,Amarapura|mandalay region|MM|96.05|21.91|237|W|,Amarillo|TX|US|-101.83|35.22|198|NW|,Ambala|haryana|IN|76.8|30.36|195|W|,Ambarnath|maharashtra|IN|73.17|19.2|253|W|,Ambato|tungurahua province|EC|-78.62|-1.25|387|W|,Ambattur|tamil nadu|IN|80.16|13.1|466|W|,Ambon|maluku|ID|128.18|-3.7|347|W|ambon city;kota ambon,Ameca|MX14|MX|-104.05|20.55|36|N|municipio ameca,Amecameca|MX15|MX|-98.77|19.12|31|N|amecameca de juarez,American Fork|UT|US|-111.8|40.38|28|N|,Americana|sao paulo|BR|-47.33|-22.74|246|W|,Amersfoort|utrecht|NL|5.39|52.16|139|W|,Ames|IA|US|-93.62|42.03|65|N|,Amherst|NY|US|-78.8|42.98|122|N|,Amherst|MA|US|-72.52|42.37|39|N|,Amiens|hauts de france|FR|2.3|49.9|143|W|,Amman|amman|JO|35.95|31.96|1275|W|aman;ama,Amol|mazandaran|IR|52.35|36.47|237|W|,Amozoc de Mota|MX21|MX|-98.05|19.05|95|N|amozoc,Amravati|maharashtra|IN|77.75|20.93|647|W|,Amritsar|punjab|IN|74.88|31.62|1159|W|,Amroha|uttar pradesh|IN|78.47|28.9|176|W|,Amsterdam|north holland|NL|4.89|52.37|741|W|amesterda;amesterdao;amseutereudam;amsterda;amsterodam;amsut erudam;amusuterudamu;aemstelredamme;aemsterdam,An Nhon|gia lai|VN|109.11|13.89|308|W|,Anaco|anzoategui|VE|-64.46|9.43|139|W|,Anaheim|CA|US|-117.91|33.84|350|NW|,Anand|gujarat|IN|72.96|22.55|209|W|,Ananindeua|para|BR|-48.37|-1.37|535|W|,Anantapur|andhra pradesh|IN|77.61|14.68|267|W|,Anantnag|jammu and kashmir|IN|75.15|33.73|150|W|,Anapolis|goias|BR|-48.95|-16.33|319|W|,Anbu|guangdong|CN|116.68|23.45|162|W|,Ancaster|ON|CA|-79.99|43.22|40|N|,Anchorage|AK|US|-149.9|61.22|289|NW|,Anda|heilongjiang|CN|125.3|46.45|181|W|,Anderlecht|brussels capital|BE|4.31|50.84|160|W|,Anderson|IN|US|-85.68|40.11|55|N|,Anderson|SC|US|-82.65|34.5|27|N|,Andijon|andijan region|UZ|72.35|40.78|747|W|andican;andijan;andisjan;andizan;andizjan,Andimeshk|khuzestan|IR|48.35|32.46|135|W|,Andong|gyeongsangbuk do|KR|128.72|36.57|153|W|,Andover|MN|US|-93.29|45.23|32|N|,Ang Mo Kio New Town||SG|103.84|1.38|159|W|,Angarsk|irkutsk oblast|RU|103.91|52.56|243|W|,Angeles City|central luzon|PH|120.58|15.15|483|W|,Angers|pays de la loire|FR|-0.55|47.47|168|W|,Angono|calabarzon|PH|121.15|14.53|134|W|,Angra dos Reis|rio de janeiro|BR|-44.32|-23.01|179|W|,Angren|tashkent region|UZ|70.14|41.02|191|W|,Anjo|aichi|JP|137.08|34.96|188|W|,Ankang|shaanxi|CN|109.02|32.68|870|W|,Ankara|ankara|TR|32.85|39.92|3517|W|ancara;angora,Ankeny|IA|US|-93.61|41.73|56|N|,Ann Arbor|MI|US|-83.74|42.28|117|N|,Annaba|annaba|DZ|7.77|36.9|342|W|bone,Annandale|VA|US|-77.2|38.83|41|N|,Annapolis|MD|US|-76.49|38.98|40|N|,Annex|ON|CA|-79.4|43.67|30|N|,Anqing|anhui|CN|117.05|30.51|804|W|an khanh;an cching;anking,Anqiu|shandong|CN|119.19|36.43|364|W|,Ansan-si|gyeonggi do|KR|126.82|37.32|623|W|ansan,Anshan|liaoning|CN|122.99|41.12|1450|W|an son;an san,Anshun|guizhou|CN|105.93|26.25|765|W|an sun,Antakya|hatay|TR|36.16|36.21|399|W|antioche;antiochia am orontes;antiochia di siria;antiochia vid orontes;antiochie;antiokia;antioquia;antioch;teopolis,Antalya|antalya|TR|30.7|36.91|1335|W|antalia,Antananarivo|analamanga|MG|47.54|-18.91|1349|W|antananarywa;tananarive,Antelope|CA|US|-121.33|38.71|45|N|,Antioch|CA|US|-121.81|38|110|N|,Antipolo|calabarzon|PH|121.12|14.63|913|W|antipolo city,Antofagasta|antofagasta|CL|-70.4|-23.65|401|W|,Antsirabe|vakinankaratra|MG|47.03|-19.87|260|W|,Antsiranana|diana|MG|49.29|-12.32|136|W|diego suarez,Antwerp|flanders|BE|4.4|51.22|529|W|amberes;antuerpia;antverpy;antwerpen;antwerpia;anvers;anversa;kota antwerpen,Anyama|abidjan autonomous district|CI|-4.05|5.49|133|W|,Anyang|henan|CN|114.38|36.1|1146|W|an duong;an jang,Anyang-si|gyeonggi do|KR|126.93|37.39|595|W|anyang,Aomori|aomori|JP|140.73|40.82|298|W|,Apache Junction|AZ|US|-111.55|33.42|38|N|,Apan|MX13|MX|-98.45|19.71|26|N|,Aparecida de Goiania|goias|BR|-49.24|-16.82|527|W|,Apaseo el Alto|MX11|MX|-100.62|20.46|27|N|,Apaseo el Grande|MX11|MX|-100.69|20.55|26|N|,Apatzingan|MX16|MX|-102.36|19.09|102|N|,Apeldoorn|gelderland|NL|5.97|52.21|136|W|,Apex|NC|US|-78.85|35.73|45|N|,Apizaco|MX29|MX|-98.14|19.41|49|N|ciudad de apizaco,Apopka|FL|US|-81.51|28.68|48|N|,Apple Valley|CA|US|-117.19|34.5|72|N|,Apple Valley|MN|US|-93.22|44.73|51|N|,Appleton|WI|US|-88.42|44.26|74|N|,Apucarana|parana|BR|-51.46|-23.55|134|W|,Aqsu|xinjiang|CN|80.28|41.18|535|W|aksou;aksu;ciudad de aksu,Ar Ramtha|irbid|JO|36.01|32.56|155|W|,Ar Raqqah|raqqa|SY|39.01|35.95|531|W|raqqa;rakka,Ar Rayyan|baladiyat ar rayyan|QA|51.42|25.29|272|W|al rayyan,Arabi|somali|ET|42.49|9.96|148|W|,Aracaju|sergipe|BR|-37.07|-10.91|664|W|,Aracatuba|sao paulo|BR|-50.43|-21.21|208|W|,Arad|arad county|RO|21.32|46.18|169|W|,Araguaina|tocantins|BR|-48.21|-7.19|183|W|,Arak|markazi|IR|49.7|34.09|503|W|,Arakawa|tokyo|JP|139.78|35.74|216|W|arakawa city,Arandas|MX14|MX|-102.35|20.71|52|N|,Arapiraca|alagoas|BR|-36.66|-9.75|243|W|,Arar|northern borders region|SA|41.04|30.98|148|W|,Araraquara|sao paulo|BR|-48.18|-21.79|168|W|,Araras|sao paulo|BR|-47.38|-22.36|135|W|,Araruama|rio de janeiro|BR|-42.34|-22.87|137|W|,Araucaria|parana|BR|-49.41|-25.59|162|W|,Araure|portuguesa|VE|-69.24|9.58|181|W|,Arba Minch|south ethiopia regional state|ET|37.55|6.03|201|W|,Arcadia|CA|US|-118.04|34.14|58|N|,Arcahaie|ouest|HT|-72.51|18.77|130|W|,Archway|england|GB|-0.13|51.57|215|W|,Arcola East|SK|CA|-104.54|50.43|33|N|,Ardabil|ardabil province|IR|48.29|38.25|410|W|ardebil;erdebil,Arden-Arcade|CA|US|-121.38|38.6|92|N|,Ardmore|OK|US|-97.14|34.17|25|N|,Arequipa|arequipa|PE|-71.54|-16.4|1195|W|,Arganzuela|madrid|ES|-3.7|40.4|148|W|,Arhus|central jutland|DK|10.21|56.16|285|W|aarhus,Arica|arica y parinacota region|CL|-70.3|-18.48|241|W|,Arif Wala|balochistan|PK|66.3|26.32|157|W|,Arifwala|punjab|PK|73.07|30.29|854|W|,Arish|north sinai|EG|33.8|31.13|199|W|al arisch;al arish;al arisz;alarixe;aris;el arish;el aris;el arich;city of cut noses,Arkhangel'sk|arkhangelskaya|RU|40.55|64.55|349|W|arkhangelsk;arcangelo;archangelsk;arcangel;arkangeli,Arlington|TX|US|-97.11|32.74|388|NW|,Arlington|VA|US|-77.1|38.88|207|NW|,Arlington|MA|US|-71.16|42.42|42|N|,Arlington Heights|IL|US|-87.98|42.09|75|N|,Armavir|krasnodar krai|RU|41.11|45|199|W|armawir,Armenia|quindio department|CO|-75.67|4.54|304|W|armenien;armenie;ermenistan,Arnavutkoey|istanbul|TR|28.74|41.18|198|W|arnavutkoy,Arnhem|gelderland|NL|5.91|51.98|162|W|arnheim;arnhemia,Arrah|bihar|IN|84.66|25.56|261|W|,Arroyo Naranjo|havana|CU|-82.38|23.04|210|W|,Artux|xinjiang|CN|76.18|39.71|285|W|,Arusha|arusha|TZ|36.68|-3.37|617|W|,Arvada|CO|US|-105.09|39.8|115|N|,As Salimiyah|hawalli|KW|48.08|29.33|147|W|,As Samawah|muthanna|IQ|45.29|31.33|152|W|samawa;samawah;semave,Asahikawa|hokkaido|JP|142.36|43.77|333|W|,Asaka|saitama|JP|139.6|35.8|141|W|,Asansol|west bengal|IN|86.98|23.68|504|W|,Asela|oromiya|ET|39.13|7.95|139|W|,Ash Sharqat|salah ad din|IQ|43.23|35.52|160|W|,Ash Shatrah|dhi qar|IQ|46.17|31.41|182|W|,Ashaiman|greater accra|GH|-0.03|5.7|190|W|ashiaman,Ashburn|VA|US|-77.49|39.04|43|N|,Ashburn|IL|US|-87.71|41.75|42|N|,Ashdod|southern district|IL|34.65|31.79|226|W|aschdod;asdod;asdode;ashdod yam;asjdod;aszdod,Asheboro|NC|US|-79.81|35.71|26|N|,Asheville|NC|US|-82.55|35.6|95|N|,Ashgabat|ashgabat|TM|58.38|37.95|1030|W|achgabat;aschgabat;asgabate;ashkabad;ashkhabad;asjabad;asjchabad;asjkhabad;aszchabad;asgabat;askabat;aschabad,Ashikaga|tochigi|JP|139.45|36.33|144|W|,Ashkelon|southern district|IL|34.57|31.67|144|W|ashqelon;ashquelon,Ashmont|MA|US|-71.07|42.28|30|N|,Ashuganj City|chittagong|BD|91.01|24.04|210|W|,Asmara|maekel|ER|38.93|15.34|563|W|,Aspen Hill|MD|US|-77.07|39.08|48|N|,Assiut|asyut|EG|31.18|27.18|528|W|asyut,Astana|astana|KZ|71.45|51.18|1544|W|akmolinsk;noer soeltan;nour soultan;nur sultan;tselinograd,Astanajapura|west java|ID|108.63|-6.8|148|W|,Astoria|NY|US|-73.93|40.77|150|NW|,Astrakhan|astrakhan oblast|RU|48.04|46.35|533|W|astrachan;astracan;astraca;astrahan,Asuncion|asuncion|PY|-57.65|-25.29|1482|W|assuncao,Aswan|aswan|EG|32.9|24.09|379|W|assouan;assuan;assuao;asuan;asvan,Atani|anambra|NG|6.75|6.01|230|W|,Atascadero|CA|US|-120.67|35.49|29|N|,Atascocita|TX|US|-95.18|30|65|N|,Atasehir|istanbul|TR|29.12|40.98|361|W|,Athens|attica|GR|23.73|37.98|664|W|ateena;aten;atena;atenas;atene;ateny;athen;athena;athene;athenes;atheny;athinai;atina;kota athena,Athens|GA|US|-83.38|33.96|127|N|,Athens|OH|US|-82.1|39.33|25|N|,Athlone|western cape|ZA|18.5|-33.97|237|W|,Atibaia|sao paulo|BR|-46.55|-23.12|158|W|,Atlanta|GA|US|-84.39|33.75|510|NW|,Atlantic City|NJ|US|-74.42|39.36|39|N|kota atlantic,Atlixco|MX21|MX|-98.44|18.91|86|N|,Atotonilco el Alto|MX14|MX|-102.51|20.55|26|N|,Atsiaman|greater accra|GH|-0.33|5.7|202|W|achiaman;ashaiman,Atsugi|kanagawa|JP|139.37|35.44|223|W|acugi,Attleboro|MA|US|-71.29|41.94|44|N|,Attock City|punjab|PK|72.36|33.77|141|W|,Atwater|CA|US|-120.61|37.35|29|N|,Atyrau|atyrau oblisi|KZ|51.88|47.1|290|W|atyraou;atyraw;atirau;atirav;atiraw,Auburn|WA|US|-122.23|47.31|77|N|,Auburn|AL|US|-85.48|32.61|62|N|,Auburn|NY|US|-76.57|42.93|26|N|,Auburn Gresham|IL|US|-87.65|41.74|45|N|,Auckland|auckland|NZ|174.76|-36.85|1547|W|,Augsburg|bavaria|DE|10.9|48.37|301|W|augsbourg;augsburg innenstadt;augsburgo;augusta,Augusta|GA|US|-81.97|33.47|43|N|,Aurangabad|maharashtra|IN|75.34|19.88|1175|W|,Aurora|CO|US|-104.83|39.73|359|NW|,Aurora|IL|US|-88.32|41.76|200|NW|,Aurora|ON|CA|-79.47|44|55|N|,Austin|TX|US|-97.74|30.27|974|NW|,Austintown|OH|US|-80.76|41.1|29|N|,Autlan de Navarro|MX14|MX|-104.37|19.77|45|N|,Avadi|tamil nadu|IN|80.11|13.11|345|W|,Avellaneda|buenos aires|AR|-58.37|-34.66|367|W|,Aventura|FL|US|-80.14|25.96|37|N|,Avondale|AZ|US|-112.35|33.44|80|N|,Avondale|IL|US|-87.71|41.94|39|N|,Avtozavodskyi|poltava|UA|33.43|49.1|157|W|avtozavodskyi rayon;avtozavodskyy;avtozavodskyy rayon,Awasa|sidama region|ET|38.48|7.06|422|W|awassa,Awka|anambra|NG|7.07|6.21|167|W|avka,Ayacucho|ayacucho|PE|-74.22|-13.16|140|W|,Aydin|aydin|TR|27.84|37.85|163|W|tralleis;tralli,Aylmer|QC|CA|-75.81|45.4|56|N|,Az Zawiyah|az zawiyah|LY|12.73|32.76|200|W|ez zaviye;zawiyah,Az-Zuhur|port said|EG|32.26|31.27|266|W|al zohur,Azcapotzalco|MX09|MX|-99.19|19.49|414|NW|,Azusa|CA|US|-117.91|34.13|49|N|,Ba Dinh|hanoi|VN|105.83|21.04|221|W|,Ba Vi|hanoi|VN|105.38|21.08|282|W|,Bab Ezzouar|algiers|DZ|3.18|36.73|275|W|,Babol|mazandaran|IR|52.68|36.55|202|W|,Bac Giang|bac ninh|VN|106.19|21.27|450|W|,Bac Lieu|ca mau|VN|105.73|9.29|156|W|,Bac Ninh|bac ninh|VN|106.08|21.19|287|W|,Bac Tu Liem|hanoi|VN|105.75|21.07|340|W|,Bacau|bacau county|RO|26.91|46.57|136|W|,Bachuan|chongqing|CN|106.05|29.85|208|W|,Back Mountain|PA|US|-76|41.34|26|N|,Bacolod City|western visayas|PH|122.95|10.67|454|W|bacolod,Bacoor|calabarzon|PH|120.94|14.46|356|W|,Badajoz|extremadura|ES|-6.97|38.88|150|W|badajos,Badalona|catalonia|ES|2.25|41.45|217|W|,Bade|taiwan|TW|121.28|24.93|209|W|bade district,Badlapur|maharashtra|IN|73.27|19.16|174|W|,Bafoussam|west|CM|10.42|5.48|373|W|bafousam;bafusam;befoussam,Bagcilar|istanbul|TR|28.86|41.04|740|W|,Bagerhat|khulna division|BD|89.79|22.66|266|W|,Baghdad|baghdad|IQ|44.4|33.34|7216|W|bagdad;bagda;bagdat,Bago|bago region|MM|96.48|17.34|244|W|pegu;pegou,Bago City|western visayas|PH|122.83|10.53|192|W|bago,Bagong Silang|national capital region|PH|121.04|14.78|261|W|,Baguio|cordillera|PH|120.59|16.42|272|W|baguio city;kota baguio,Bahadurgarh|haryana|IN|76.94|28.69|170|W|,Baharampur|west bengal|IN|88.25|24.1|180|W|,Baharkah|erbil|IQ|44.04|36.32|130|W|,Bahawalnagar|punjab|PK|73.25|30|241|W|bahawalpur,Bahawalpur|punjab|PK|71.68|29.4|903|W|,Bahcelievler|istanbul|TR|28.86|41|576|W|,Bahia Blanca|buenos aires|AR|-62.27|-38.72|299|W|,Bahir Dar|amhara|ET|37.39|11.59|350|W|bahar dar;baher dar;bahyr dar,Bahraigh|uttar pradesh|IN|81.59|27.57|182|W|bahraich,Baicheng|jilin|CN|122.83|45.62|316|W|paj ccheng,Baise|guangxi|CN|106.63|23.89|686|W|baise city,Baishan|jilin|CN|126.42|41.94|183|W|paj san,Baiyin|gansu|CN|104.17|36.55|294|W|paj jin,Bakersfield|CA|US|-119.02|35.37|373|NW|,Baku|baki|AZ|49.89|40.38|2351|W|bacu;bakoe;bakou,Balakovo|saratov oblast|RU|47.8|52.03|199|W|balakowo,Balashikha|moscow oblast|RU|37.95|55.79|150|W|balachikha;balaschicha;balasjicha;balasjikha;balasiha;balasicha;balaszycha,Balasore|odisha|IN|86.93|21.49|144|W|baleshwar;baleswar,Balbala|djibouti|DJ|43.11|11.56|554|W|,Balch Springs|TX|US|-96.62|32.73|25|N|,Balcon de la Lisa|havana|CU|-82.45|23.05|147|W|,Baldwin Park|CA|US|-117.96|34.09|77|N|,Bali|west bengal|IN|88.34|22.65|296|W|,Balikesir|balikesir|TR|27.89|39.65|238|W|,Balikpapan|east kalimantan|ID|116.83|-1.27|695|W|kota balikpapan,Baliuag|central luzon|PH|120.9|14.95|135|W|,Ballari|karnataka|IN|76.92|15.14|410|W|bellary,Ballwin|MO|US|-90.55|38.6|30|N|,Balneario Camboriu|santa catarina|BR|-48.63|-26.99|139|W|camboriu,Baltimore|MD|US|-76.61|39.29|585|NW|baltimora,Balurghat|west bengal|IN|88.78|25.22|153|W|,Balvanera|buenos aires f d|AR|-58.4|-34.61|152|W|,Bamako|bamako|ML|-7.98|12.61|4227|W|,Bamenda|north west|CM|10.15|5.96|420|W|,Ban Khlong Prawet|bangkok|TH|100.68|13.72|160|W|,Banan|chongqing|CN|106.54|29.38|508|W|,Banbury-Don Mills|ON|CA|-79.35|43.74|27|N|,Banda|uttar pradesh|IN|80.33|25.48|152|W|,Banda Aceh|aceh|ID|95.33|5.54|267|W|banda acheh;banda achem;banda atjeh;kota banda aceh,Bandar Abbas|hormozgan|IR|56.28|27.19|352|W|bandar e abbas;bender abbas;cambarao;gombroon;gumrun;port comorao,Bandar Bukit Raja|selangor|MY|101.43|3.09|146|W|,Bandar-e Mahshahr|khuzestan|IR|49.19|30.56|162|W|,Bandar Lampung|lampung|ID|105.26|-5.43|1166|W|bandarlampung;kota bandar lampung,Bandar Seri Alam|johor|MY|103.88|1.5|220|W|seri alam city,Bandar Sunway|selangor|MY|101.61|3.07|200|W|sunway city,Bandar Tasik Puteri|selangor|MY|101.47|3.29|150|W|puteri lake city,Bandar Utama|kuala lumpur|MY|101.61|3.15|200|W|,Bandarban|chittagong|BD|92.22|22.2|495|W|,Bandundu Province|kwilu|CD|17.38|-3.32|202|W|bandundu;bandundu bolgesi;provincia de bandundu;provincia di bandundu;provinsi bandundu;provinz bandundu,Bandung|west java|ID|107.61|-6.92|2528|W|kota bandung,Bang Kapi|bangkok|TH|100.65|13.77|147|W|,Bang Khae|bangkok|TH|100.41|13.69|193|W|,Bang Khun Thian|bangkok|TH|100.43|13.66|165|W|,Bangkok|bangkok|TH|100.5|13.75|5104|W|banguecoque;bancoque,Bangor|ME|US|-68.77|44.8|32|N|,Bangui|bangui|CF|18.55|4.36|812|W|bangi,Banha|qalyubia|EG|31.18|30.46|182|W|,Bani Suwayf|beni suweif|EG|31.1|29.07|273|W|,Banja Luka|srpska|BA|17.21|44.78|221|W|bania luka;banya luka,Banjar|west java|ID|107.43|-7.2|209|W|,Banjaran|west java|ID|107.59|-7.05|164|W|,Banjarbaru|south kalimantan|ID|114.84|-3.44|293|W|bandjarbaru,Banjarmasin|south kalimantan|ID|114.59|-3.32|657|W|,Bankura|west bengal|IN|87.07|23.23|133|W|,Banning|CA|US|-116.88|33.93|30|N|,Bannu|khyber pakhtunkhwa|PK|70.6|32.99|1357|W|,Banqiao|taipei|TW|121.47|25.01|551|W|banqiao district;banciao;banciao district,Bao'an|guangdong|CN|113.88|22.55|4476|W|,Bao Loc|lam dong|VN|107.81|11.55|170|W|,Baoding|hebei|CN|115.46|38.87|2739|W|prefettura di baoding,Baoji|shaanxi|CN|107.24|34.37|1437|W|,Baoshan|shanghai|CN|121.49|31.41|2265|W|,Baoshan|yunnan|CN|99.16|25.12|935|W|pao san,Baotou|inner mongolia|CN|109.84|40.65|2150|W|pao tchou,Baqubah|diyala|IQ|44.61|33.75|152|W|bakouba;bakuba;baquba,Barakpur|west bengal|IN|88.36|22.77|148|W|,Baranagar|west bengal|IN|88.38|22.64|260|W|barahanagore,Baranovichi|brest|BY|26.01|53.13|170|W|baranavitsjy;baranawitschy;baranovitchi;baranovitsi;baranowicze,Barasat|west bengal|IN|88.48|22.72|298|W|,Barberton|OH|US|-81.61|41.01|26|N|,Barcarena|para|BR|-48.63|-1.51|139|W|,Barcelona|catalonia|ES|2.16|41.39|1686|W|barcellona;barcelone;barselona;la ciudad condal,Barcelona|anzoategui|VE|-64.69|10.14|815|W|barselona,Barddhaman|west bengal|IN|87.86|23.26|301|W|bardhaman;burdwan,Bareilly|uttar pradesh|IN|79.43|28.37|745|W|bareli,Bari|apulia|IT|16.87|41.12|316|W|,Bariadi|simiyu|TZ|33.98|-2.8|260|W|,Barinas|barinas|VE|-70.23|8.62|397|W|,Barishal|barisal division|BD|90.37|22.7|202|W|,Barking|england|GB|0.08|51.53|218|W|barking town,Barnaul|altai krai|RU|83.73|53.36|632|W|barnaoel;barnaoul,Barnstable|MA|US|-70.3|41.7|47|N|,Barquisimeto|lara|VE|-69.36|10.06|1240|W|,Barra da Tijuca|rio de janeiro|BR|-43.37|-23|421|W|kiki,Barra Mansa|rio de janeiro|BR|-44.17|-22.54|181|W|,Barrancabermeja|santander department|CO|-73.85|7.07|191|W|barracana bermeja,Barranquilla|atlantico|CO|-74.78|10.97|1206|W|barranquilha,Barreiras|bahia|BR|-44.99|-12.15|171|W|,Barrie|ON|CA|-79.67|44.4|147|NW|,Bartlesville|OK|US|-95.98|36.75|36|N|,Bartlett|TN|US|-89.87|35.2|58|N|,Bartlett|IL|US|-88.19|42|41|N|,Barueri|sao paulo|BR|-46.88|-23.51|316|W|tambore,Baruta|miranda|VE|-66.88|10.43|244|W|,Barysaw|minsk|BY|28.5|54.23|133|W|borisov,Basaksehir|istanbul|TR|28.79|41.11|193|W|,Basel|basel city|CH|7.57|47.56|177|W|basilea;basileia;basilej;bazel;bazylea;bale,Basildon|england|GB|0.46|51.57|144|W|,Basirhat City|west bengal|IN|88.85|22.66|143|W|,Basrah|basra|IQ|47.78|30.51|1326|W|basra;al basra;basora;bassora;bassorah;bacora,Basuo|hainan|CN|108.67|19.1|444|W|,Bata|litoral|GQ|9.77|1.86|173|W|,Batala|punjab|IN|75.2|31.81|158|W|,Batam|riau|ID|104.02|1.15|1296|W|kota batam,Batang|central java|ID|110.71|-6.48|139|W|,Batangas|calabarzon|PH|121.06|13.76|237|W|,Batavia|IL|US|-88.31|41.85|26|N|,Bath Beach|NY|US|-74|40.6|33|N|,Bathinda|punjab|IN|74.94|30.21|285|W|,Batikent|ankara|TR|32.73|39.97|300|W|,Batman|batman|TR|41.13|37.89|452|W|,Batna|batna|DZ|6.17|35.56|289|W|batina;batna city;batnah,Baton Rouge|LA|US|-91.19|30.44|227|NW|,Battagram|khyber pakhtunkhwa|PK|73.02|34.68|700|W|battagram city,Battle Creek|MI|US|-85.18|42.32|51|N|,Batu|east java|ID|112.53|-7.87|225|W|kota batu,Batu Caves|selangor|MY|101.68|3.24|254|W|,Batu Pahat|johor|MY|102.93|1.85|156|W|,Batumi|adjara|GE|41.63|41.64|186|W|bat umi;batoemi;batoumi;batum,Baturaja|south sumatra|ID|104.17|-4.13|134|W|,Baubau|southeast sulawesi|ID|122.6|-5.46|161|W|bau bau,Bauchi|bauchi|NG|9.84|10.31|693|W|bauczi,Bauru|sao paulo|BR|-49.06|-22.31|392|W|,Bawshar|muscat|OM|58.4|23.58|383|W|,Bay City|MI|US|-83.89|43.59|33|N|kota bay,Bay Shore|NY|US|-73.25|40.73|26|N|,Bay Street Corridor|ON|CA|-79.39|43.66|25|N|,Bayamo|granma province|CU|-76.64|20.37|192|W|,Bayamon|bayamon|PR|-66.16|18.4|203|W|,Bayan Lepas|penang|MY|100.26|5.3|130|W|,Bayan Nur|inner mongolia|CN|107.39|40.74|1760|W|,Bayji|salah ad din|IQ|43.49|34.93|173|W|,Bayonne|NJ|US|-74.11|40.67|66|N|,Bayside|NY|US|-73.78|40.77|66|N|,Baytown|TX|US|-94.98|29.74|76|N|,Bayview-Hunters Point|CA|US|-122.38|37.73|34|N|,Bazhong|sichuan|CN|106.74|31.87|2712|W|,Beaumont|TX|US|-94.1|30.09|115|N|,Beaumont|CA|US|-116.98|33.93|43|N|,Beauport|QC|CA|-71.19|46.86|81|N|montmorency,Beavercreek|OH|US|-84.06|39.71|46|N|beaver creek,Beaverton|OR|US|-122.8|45.49|96|N|,Beawar|rajasthan|IN|74.32|26.1|151|W|,Bechar|bechar|DZ|-2.22|31.62|165|W|basyar;baszszar,Bedford|TX|US|-97.14|32.84|49|N|,Bedok New Town||SG|103.94|1.33|276|W|,Beed|maharashtra|IN|75.76|18.99|146|W|,Beersheba|southern district|IL|34.79|31.25|186|W|be er scheva;be er sheva;beer sheba;beer szewa;beer seva;beer sheva;beerseba;beerseva;berseba;bersyeba;beer sjeva,Begoua|ombella m poko|CF|18.53|4.45|264|W|,Begusarai|bihar|IN|86.13|25.42|252|W|,Bei'an|heilongjiang|CN|126.6|48.27|436|W|,Beibei|chongqing|CN|106.44|29.83|247|W|,Beihai|guangxi|CN|109.12|21.48|525|W|pej chaj,Beijing|beijing|CN|116.4|39.91|18960|W|pechino;pekin;peking;pequim,Beiliu|guangxi|CN|110.35|22.71|199|W|,Beining|liaoning|CN|121.79|41.6|152|W|,Beipiao|liaoning|CN|120.78|41.79|190|W|,Beira|sofala|MZ|34.84|-19.84|687|W|,Beirut|beirut|LB|35.5|33.89|1916|W|beiroet;beirute;bejrut;beyrouth;beyrut,Bejaia|bejaia|DZ|5.08|36.76|176|W|bidschaya;bijaya;bougie;bugia,Bekasi|west java|ID|106.99|-6.23|2648|W|kota bekasi,Bel Air North|MD|US|-76.37|39.55|30|N|,Bel Air South|MD|US|-76.32|39.51|47|N|,Belagavi|karnataka|IN|74.5|15.85|490|W|belgaum,Belem|para|BR|-48.5|-1.46|1499|W|,Belfast|northern ireland|GB|-5.93|54.6|348|W|belfast city,Belford Roxo|rio de janeiro|BR|-43.4|-22.76|518|W|,Belgorod|belgorod oblast|RU|36.58|50.6|345|W|bielgorod;bilhorod;bilhorod dnistrovskyi,Belgrade|central serbia|RS|20.47|44.8|1273|W|belgrad;belgrado;beograd;belehrad,Belgrano|buenos aires f d|AR|-58.46|-34.56|138|W|barrio belgrano,Bell|CA|US|-118.19|33.98|36|N|,Bell Gardens|CA|US|-118.15|33.97|43|N|,Bella Vista|nacional|DO|-69.95|18.46|175|W|,Bella Vista|AR|US|-94.27|36.48|27|N|,Belleville|ON|CA|-77.38|44.17|50|N|,Belleville|IL|US|-89.98|38.52|42|N|,Belleville|NJ|US|-74.15|40.79|36|N|,Bellevue|WA|US|-122.2|47.61|139|NW|,Bellevue|NE|US|-95.89|41.14|55|N|,Bellflower|CA|US|-118.12|33.88|78|N|,Bellingham|WA|US|-122.49|48.76|85|N|,Bello|antioquia|CO|-75.56|6.34|392|W|,Belmont|CA|US|-122.28|37.52|27|N|,Belmont Cragin|IL|US|-87.77|41.93|79|N|,Belo Horizonte|minas gerais|BR|-43.94|-19.92|2721|W|b h;belo hte;bhte,Beloit|WI|US|-89.03|42.51|36|N|,Beltline|AB|CA|-114.07|51.04|25|N|,Belvidere|IL|US|-88.84|42.26|25|N|,Ben Cat|ho chi minh city hcmc|VN|106.6|11.15|364|W|,Bend|OR|US|-121.32|44.06|87|N|,Bendale|ON|CA|-79.25|43.77|29|N|,Benfica|luanda|AO|13.16|-8.94|191|W|,Bengaluru|karnataka|IN|77.59|12.97|8495|W|bangalore,Bengbu|anhui|CN|117.36|32.94|972|W|,Benghazi|banghazi|LY|20.07|32.11|757|W|banghazi;bengasi;bengazi;bingazi,Bengkulu|bengkulu|ID|102.27|-3.8|397|W|,Benguela|benguela|AO|13.4|-12.58|555|W|,Beni|north kivu|CD|29.47|0.49|140|W|new beni;nouveau beni,Beni Mellal|beni mellal khenifra|MA|-6.35|32.34|210|W|bani mallal;beni melal,Benicia|CA|US|-122.16|38.05|28|N|,Benin City|edo state|NG|5.63|6.34|1782|W|benim;benin;benin by;benin stadt;ciudad de benin;kota benin,Benito Juarez|MX09|MX|-99.16|19.37|385|NW|,Benoni|gauteng|ZA|28.32|-26.19|605|W|,Bensalem|PA|US|-74.95|40.1|60|N|bensalem township;municipio de bensalem;xa bensalem,Bensonhurst|NY|US|-73.99|40.6|60|N|,Benton|AR|US|-92.59|34.56|34|N|,Bentonville|AR|US|-94.21|36.37|44|N|,Benxi|liaoning|CN|123.77|41.29|987|W|pen si,Berazategui|buenos aires|AR|-58.21|-34.77|180|W|,Berbera|woqooyi galbeed|SO|45.01|10.44|242|W|,Bercham|perak|MY|101.14|4.64|150|W|,Berezniki|perm krai|RU|56.82|59.41|167|W|beresniki;bieriezniki,Bergen|vestland|NO|5.32|60.39|294|W|,Bergenfield|NJ|US|-74|40.93|27|N|,Berkeley|CA|US|-122.27|37.87|120|N|,Berlin|state of berlin|DE|13.41|52.52|3426|W|berliini;berlijn;berlim;berlino,Berrechid|casablanca settat|MA|-7.59|33.27|149|W|,Berriozabal|MX05|MX|-93.27|16.8|28|N|,Bertoua|east|CM|13.68|4.58|137|W|,Berwyn|IL|US|-87.79|41.85|56|N|,Bessemer|AL|US|-86.95|33.4|26|N|,Bethel Park|PA|US|-80.04|40.33|32|N|,Bethesda|MD|US|-77.1|38.98|60|N|,Bethlehem|PA|US|-75.37|40.63|74|N|,Betim|minas gerais|BR|-44.2|-19.97|384|W|,Bettendorf|IA|US|-90.52|41.52|35|N|,Bettiah|bihar|IN|84.5|26.8|132|W|,Beverly|MA|US|-70.88|42.56|41|N|,Beverly Cove|MA|US|-70.85|42.55|40|N|,Beverly Hills|CA|US|-118.4|34.07|34|N|,Bexley|england|GB|0.15|51.44|228|W|london borough of bexley,Beylikduezue|istanbul|TR|28.64|40.98|415|W|beylikduzu,Bhadravati|karnataka|IN|75.71|13.85|163|W|,Bhagalpur|bihar|IN|86.97|25.24|400|W|,Bhakkar|punjab|PK|71.06|31.63|131|W|,Bhalswa Jahangirpur|delhi|IN|77.17|28.74|197|W|,Bharatpur|bagmati province|NP|84.44|27.68|369|W|,Bharatpur|rajasthan|IN|77.49|27.22|252|W|,Bharuch|gujarat|IN|72.98|21.69|169|W|,Bhatara|dhaka division|BD|90.45|23.8|324|W|,Bhatpara|west bengal|IN|88.4|22.87|483|W|,Bhavnagar|gujarat|IN|72.15|21.76|605|W|,Bhawana|punjab|PK|72.65|31.57|373|W|bhanawa,Bhayandar|maharashtra|IN|72.85|19.3|809|W|,Bhetia|jharkhand|IN|86.14|22.79|174|W|,Bhilai|chhattisgarh|IN|81.43|21.21|627|W|bhilai nagar;bhilaj nagar,Bhilwara|rajasthan|IN|74.64|25.35|359|W|,Bhimavaram|andhra pradesh|IN|81.52|16.54|146|W|,Bhind|madhya pradesh|IN|78.79|26.57|197|W|,Bhisho|eastern cape|ZA|27.44|-32.85|137|W|bisho,Bhiwandi|maharashtra|IN|73.06|19.3|874|W|,Bhiwani|haryana|IN|76.14|28.79|196|W|,Bhopal|madhya pradesh|IN|77.4|23.25|1798|W|,Bhubaneswar|odisha|IN|85.83|20.27|885|W|bhubaneshwar,Bhuj|gujarat|IN|69.67|23.25|148|W|,Bhusawal|maharashtra|IN|75.79|21.04|187|W|,Bialystok|podlasie|PL|23.16|53.13|295|W|,Bibirevo|moscow|RU|37.6|55.88|159|W|,Bida|niger state|NG|6.01|9.08|400|W|,Bidar|karnataka|IN|77.52|17.91|216|W|,Bielany|mazovia|PL|20.94|52.29|131|W|,Bielefeld|north rhine westphalia|DE|8.53|52.03|331|W|,Bielsko-Biala|silesia|PL|19.05|49.82|176|W|bielitz biala;bilsko bela,Bien Hoa|dong nai|VN|106.82|10.94|1272|W|bienhoa,Big Spring|TX|US|-101.48|32.25|28|N|,Bihar Sharif|bihar|IN|85.52|25.2|297|W|,Bijie|guizhou|CN|105.29|27.3|1137|W|pi tie;prefecture de bijie,Bikaner|rajasthan|IN|73.31|28.02|644|W|,Bila Tserkva|kyiv oblast|UA|30.12|49.8|207|W|belaya tserkov;biala cerkiew;bila cerkva;bila zerkwa;bila terkva,Bilaspur|chhattisgarh|IN|82.16|22.08|365|W|,Bilbao|basque country|ES|-2.93|43.26|347|W|bilbau;el bocho,Bilbeis|sharqia|EG|31.56|30.42|185|W|bilbajs;bilbays;bilbeys,Bilimora|gujarat|IN|72.96|20.77|510|W|,Billerica|MA|US|-71.27|42.56|39|N|,Billings|MT|US|-108.5|45.78|117|N|,Biloxi|MS|US|-88.89|30.4|45|N|,Bilqas|dakahlia|EG|31.36|31.21|137|W|,Bima|west nusa tenggara|ID|118.73|-8.46|165|W|,Bimbo|ombella m poko|CF|18.42|4.26|348|W|,Binan|calabarzon|PH|121.08|14.34|300|W|binan city;kota binan,Binangonan|calabarzon|PH|121.19|14.46|219|W|,Binghamton|NY|US|-75.92|42.1|46|N|,Binh Thanh|ho chi minh city hcmc|VN|106.71|10.81|552|W|,Binjai|north sumatra|ID|98.49|3.6|279|W|kota binjai,Bintulu|sarawak|MY|113.03|3.17|151|W|,Binzhou|shandong|CN|118.02|37.37|682|W|pin cou;tan chau,Biratnagar|koshi|NP|87.27|26.46|244|W|,Birendranagar|karnali pradesh|NP|81.62|28.6|154|W|birendra nagar;birendranagara,Birganj|madhesh|NP|84.88|27.02|268|W|birgunj,Birjand|south khorasan province|IR|59.22|32.87|196|W|birdschand,Birkenhead|england|GB|-3.01|53.39|325|W|,Birmingham|england|GB|-1.9|52.48|1157|W|,Birmingham|AL|US|-86.8|33.52|196|NW|,Biryulevo|moscow|RU|37.68|55.59|144|W|,Bishan|chongqing|CN|106.22|29.59|204|W|,Bishkek|bishkek|KG|74.59|42.87|900|W|bichkek;bischkek;bisjkek;biskek;bisqueque;biszkek,Bishoftu|oromiya|ET|38.98|8.75|207|W|,Biskra|biskra|DZ|5.73|34.85|204|W|biskira,Bismarck|ND|US|-100.78|46.81|75|N|bismarck i nord dakota,Bissau|bissau|GW|-15.6|11.86|439|W|bisau,Bitung|north sulawesi|ID|125.13|1.44|225|W|kota bitung,Biysk|altai krai|RU|85.2|52.53|215|W|biejsk;bijsk,Bizerte|bizerte governorate|TN|9.87|37.27|138|W|biserta;bizert;bizerta,Blackburn|england|GB|-2.48|53.75|146|W|,Blackpool|england|GB|-3.05|53.82|145|W|,Blacksburg|VA|US|-80.41|37.23|44|N|,Blagoveshchensk|amur oblast|RU|127.53|50.28|225|W|blagovesjtsjensk;blagovechtchensk;blagoveschensk;blagovesjtjensk;blagovescensk;blagovestsensk;blagoweschtschensk;blagowieszczensk,Blaine|MN|US|-93.23|45.16|62|N|,Blainville|QC|CA|-73.88|45.67|46|N|,Blantyre|southern region|MW|35.01|-15.78|902|W|,Blida|blida|DZ|2.83|36.47|331|W|al bulajda;buleyde,Blitar|east java|ID|112.17|-8.1|161|W|kota blitar,Bloemfontein|free state|ZA|26.21|-29.12|556|W|,Bloomfield|NJ|US|-74.19|40.81|49|N|,Bloomington|MN|US|-93.3|44.84|86|N|,Bloomington|IN|US|-86.53|39.17|84|N|,Bloomington|IL|US|-88.99|40.48|78|N|,Blue Springs|MO|US|-94.28|39.02|54|N|,Blumenau|santa catarina|BR|-49.07|-26.92|361|W|,Bnei Brak|tel aviv|IL|34.83|32.08|214|W|benai beraq;bene berak;bene beraq;benei beraq;beney beraq;bnei berak;bnej brak;bney brak;bne beraq,Bo|southern province|SL|-11.74|7.96|233|W|,Boa Vista|roraima|BR|-60.67|2.82|419|W|,Boardman|OH|US|-80.66|41.02|35|N|,Bobo-Dioulasso|hauts bassins|BF|-4.29|11.18|904|W|,Bobruysk|mogilev|BY|29.21|53.15|205|W|babroejsk;babruisk;babrujsk;babruysk;bobruisk;bobrujsk,Boca Raton|FL|US|-80.08|26.36|93|N|boca de ratones;wta boca raton,Bochum|north rhine westphalia|DE|7.22|51.48|385|W|,Bocoio|benguela|AO|14.14|-12.47|164|W|,Bogor|west java|ID|106.79|-6.59|1078|W|kota bogor,Bogota|bogota d c|CO|-74.08|4.61|7674|W|santafe de bogota,Bogra|rajshahi division|BD|89.37|24.85|210|W|,Bohuniya|zhytomyr oblast|UA|28.61|50.28|147|W|bohunia;bohuniia;bohunskyi;bohunskyi rayon,Boisbriand|QC|CA|-73.83|45.62|26|N|,Boise|ID|US|-116.2|43.61|235|NW|,Bojnurd|north khorasan|IR|57.33|37.47|192|W|bojnourd,Bokaro|jharkhand|IN|86.15|23.67|564|W|bokaro steel city,Boksburg|gauteng|ZA|28.26|-26.21|445|W|,Bole|xinjiang|CN|82.07|44.89|235|W|,Bolingbrook|IL|US|-88.07|41.7|74|N|,Bologna|emilia romagna|IT|11.34|44.49|394|W|bologne;bolonha;bolonia;bolonya,Bolton|england|GB|-2.43|53.58|141|W|,Bolton|ON|CA|-79.74|43.88|26|N|,Bolu|bolu|TR|31.61|40.74|184|W|,Boma|bas congo|CD|13.05|-5.85|297|W|,Bondoukou|zanzan district|CI|-2.8|8.04|141|W|,Bonita Springs|FL|US|-81.78|26.34|51|N|,Bonn|north rhine westphalia|DE|7.1|50.73|330|W|bona,Bontang|east kalimantan|ID|117.49|0.13|194|W|kota bontang,Borama|awdal|SO|43.18|9.94|597|W|boorama,Bordeaux|new aquitaine|FR|-0.58|44.84|265|W|bordeus;burdeos,Bordj Bou Arreridj|bordj bou arreridj|DZ|4.76|36.07|158|W|burdz bu urajridz,Borivli|maharashtra|IN|72.86|19.23|609|W|borivali,Borough Park|NY|US|-74|40.63|149|NW|,Borshchahivka|kyiv city|UA|30.39|50.43|179|W|,Borujerd|lorestan province|IR|48.75|33.9|251|W|,Boshan|shandong|CN|117.83|36.48|153|W|,Bossier City|LA|US|-93.73|32.52|68|N|,Boston|MA|US|-71.06|42.36|653|NW|,Botad|gujarat|IN|71.67|22.17|130|W|,Bothell|WA|US|-122.21|47.76|42|N|,Botshabelo|free state|ZA|26.73|-29.27|309|W|,Botucatu|sao paulo|BR|-48.45|-22.89|145|W|,Bouake|vallee du bandama district|CI|-5.03|7.69|832|W|,Boucherville|QC|CA|-73.44|45.59|39|N|,Boulder|CO|US|-105.27|40.01|106|N|,Bountiful|UT|US|-111.88|40.89|43|N|,Bournemouth|england|GB|-1.88|50.72|163|W|,Bowie|MD|US|-76.73|38.94|58|N|bowie station;huntington city;huntington station,Bowling Green|KY|US|-86.44|36.99|63|N|,Bowling Green|OH|US|-83.65|41.37|31|N|,Bowmanville|ON|CA|-78.68|43.92|39|N|,Boyeros|havana|CU|-82.4|23.01|188|W|,Boyle Heights|CA|US|-118.21|34.03|92|N|,Boynton Beach|FL|US|-80.07|26.53|73|N|,Bozeman|MT|US|-111.04|45.68|43|N|,Bozhou|anhui|CN|115.77|33.88|1409|W|po cou,Bradenton|FL|US|-82.57|27.5|54|N|,Bradford|england|GB|-1.75|53.79|366|W|,Braga|braga|PT|-8.42|41.55|193|W|,Braganca|para|BR|-46.77|-1.05|132|W|,Braganca Paulista|sao paulo|BR|-46.54|-22.95|176|W|,Brahmanbaria|chittagong|BD|91.11|23.97|264|W|,Brahmapur|odisha|IN|84.79|19.31|356|W|,Braila|braila county|RO|27.97|45.27|154|W|berail;ibrail;brillago;drinago,Braintree|MA|US|-71|42.2|37|N|,Brakpan|gauteng|ZA|28.37|-26.24|305|W|,Brampton|ON|CA|-79.77|43.68|656|NW|,Brandon|FL|US|-82.29|27.94|103|N|,Brandon|MB|CA|-99.95|49.85|48|N|,Branford|CT|US|-72.82|41.28|29|N|,Brant|ON|CA|-80.35|43.13|34|N|,Brantford|ON|CA|-80.27|43.13|104|N|,Brasilandia|sao paulo|BR|-46.69|-23.45|243|W|,Brasilia|federal district|BR|-47.93|-15.78|2207|W|,Brasov|brasov county|RO|25.61|45.65|253|W|kronstadt;braszow,Bratislava|bratislava region|SK|17.11|48.15|423|W|bratyslawa;presbourg;pressburg,Bratsk|irkutsk oblast|RU|101.61|56.13|256|W|brack,Braunschweig|lower saxony|DE|10.53|52.27|244|W|brunswick;brunszwik,Brawley|CA|US|-115.53|32.98|25|N|,Brazzaville|brazzaville|CG|15.28|-4.27|1982|W|brazavil,Brea|CA|US|-117.9|33.92|41|N|,Breda|north brabant|NL|4.78|51.59|184|W|,Bremen|bremen|DE|8.81|53.08|546|W|brema;bremy;breme,Bremerton|WA|US|-122.63|47.57|39|N|,Brent|england|GB|-0.3|51.55|329|W|london borough of brent,Brentwood|NY|US|-73.25|40.78|60|N|,Brentwood|CA|US|-121.7|37.93|58|N|,Brentwood|TN|US|-86.78|36.03|41|N|,Brentwood Estates|TN|US|-86.78|36.03|31|N|,Brescia|lombardy|IT|10.21|45.54|200|W|,Brest|brest|BY|23.72|52.11|347|W|brest nad bugem;brest litovsk;brzesc;brest litowsk,Brest|brittany|FR|-4.49|48.39|144|W|,Briarwood|NY|US|-73.82|40.71|53|N|,Brick|NJ|US|-74.14|40.06|76|N|,Bridgeport|CT|US|-73.19|41.18|147|NW|,Bridgeport|IL|US|-87.65|41.84|33|N|,Bridgeton|NJ|US|-75.23|39.43|25|N|,Bridgewater|NJ|US|-74.65|40.6|44|N|,Brighouse-City Centre|BC|CA|-123.13|49.17|62|N|brighouse;richmond brighouse,Brighton|england|GB|-0.14|50.83|283|W|,Brighton|MA|US|-71.16|42.35|45|N|,Brighton|CO|US|-104.82|39.99|37|N|,Brighton|NY|US|-77.55|43.15|36|N|,Brighton Beach|NY|US|-73.96|40.58|31|N|,Brighton Park|IL|US|-87.7|41.82|44|N|,Brisbane|queensland|AU|153.03|-27.47|2780|W|brisbane city,Bristol|england|GB|-2.6|51.46|479|W|,Bristol|CT|US|-72.95|41.67|60|N|,Bristol|TN|US|-82.19|36.6|26|N|,Brno|south moravian|CZ|16.61|49.2|379|W|brunn,Brockton|MA|US|-71.02|42.08|95|N|,Broken Arrow|OK|US|-95.79|36.05|106|N|,Brookfield|WI|US|-88.11|43.06|38|N|,Brookhaven|GA|US|-84.34|33.86|51|N|north atlanta,Brooklin|ON|CA|-78.96|43.96|25|N|,Brookline|MA|US|-71.12|42.33|58|N|,Brooklyn|NY|US|-73.95|40.65|2736|NW|borough of brooklyn,Brooklyn Center|MN|US|-93.33|45.08|30|N|,Brooklyn Park|MN|US|-93.36|45.09|79|N|,Broomfield|CO|US|-105.09|39.92|65|N|,Brossard|QC|CA|-73.47|45.45|69|N|,Brownsville|TX|US|-97.5|25.9|186|NW|,Brownsville|NY|US|-73.92|40.66|74|N|,Brunswick|OH|US|-81.84|41.24|34|N|,Brusque|santa catarina|BR|-48.91|-27.1|155|W|,Brussels|brussels capital|BE|4.35|50.85|1019|W|brussel;bruxelles;bruksela;brusel;bruselas;bruxelas;bryssel;bruksel;citta di bruxelles;city of brussels;kota brusel,Bryan|TX|US|-96.37|30.67|82|N|,Bryansk|bryansk oblast|RU|34.32|53.27|427|W|brjansk;breansk;briansk;brianski,Bucaramanga|santander department|CO|-73.12|7.12|581|W|,Bucharest|bucharest|RO|26.11|44.43|1877|W|boekarest;bucarest;bucareste;bucuresti;bukarest;bukareszt;bukurest;bukres,Bucheon-si|gyeonggi do|KR|126.78|37.5|850|W|bucheon,Buckeye|AZ|US|-112.58|33.37|50|N|,Buda|budapest|HU|19.03|47.5|510|W|altofen;boeda;budin;ofen,Budapest|budapest|HU|19.04|47.5|1741|W|boedapest;budapesta;budapeste;budapeszt;ofen pest,Budapest XI. keruelet|budapest|HU|19.04|47.48|139|W|budapest xi kerulet;ujbuda,Budaun|uttar pradesh|IN|79.13|28.04|161|W|badaun,Budta|autonomous region in muslim mindanao|PH|124.44|7.2|1273|W|,Buea|south west|CM|9.24|4.15|140|W|,Buena Park|CA|US|-118|33.87|83|N|,Buenaventura|valle del cauca department|CO|-77|3.58|432|W|,Buenaventura Lakes|FL|US|-81.35|28.34|26|N|,Buenavista|MX15|MX|-99.17|19.61|216|NW|,Bueng Kum|bangkok|TH|100.67|13.79|145|W|ban bueng kum;ban cum,Buenos Aires|buenos aires f d|AR|-58.38|-34.61|2891|W|santa maria del buen ayre,Bueyuekcekmece|istanbul|TR|28.59|41.02|163|W|buyukcekmece,Buffalo|NY|US|-78.88|42.89|258|NW|bufalo,Buffalo Grove|IL|US|-87.96|42.15|41|N|,Buguma|rivers state|NG|6.86|4.74|135|W|,Bujumbura|bujumbura mairie|BI|29.36|-3.38|769|W|buyumbura;buzumbura,Bukan|west azerbaijan|IR|46.21|36.52|193|W|,Bukavu|south kivu|CD|28.84|-2.49|816|W|costermansstad;costermansville,Bukhara|bukhara|UZ|64.43|39.77|280|W|boukhara;bucara;buchara;buhara;bujara,Bukit Batok New Town||SG|103.76|1.36|158|W|,Bukit Jalil|kuala lumpur|MY|101.68|3.05|200|W|,Bukit Merah Estate||SG|103.82|1.28|151|W|,Bukit Mertajam|penang|MY|100.47|5.36|212|W|bukit mertarajam,Bukit Panjang New Town||SG|103.76|1.38|138|W|,Bukit Rahman Putra|selangor|MY|101.56|3.22|607|W|,Bukoba|kagera|TZ|31.81|-1.33|144|W|,Bulandshahr|uttar pradesh|IN|77.86|28.4|198|W|bulendsehr,Bulaon|central luzon|PH|120.66|15.08|131|W|,Bulawayo|bulawayo|ZW|28.58|-20.15|665|W|,Bullhead City|AZ|US|-114.57|35.15|39|N|,Bumba|mongala|CD|22.47|2.19|154|W|,Bunamwaya|central region|UG|32.56|0.25|413|W|,Bunda|mara|TZ|33.87|-2.02|182|W|,Bunia|ituri|CD|30.25|1.56|399|W|,Bunkyo|kanagawa|JP|139.42|35.53|240|W|bunkyo city,Buon Ma Thuot|dak lak|VN|108.04|12.67|434|W|,Burari|delhi|IN|77.2|28.76|146|W|,Buraydah|al qassim region|SA|43.97|26.33|745|W|buraidah;burajda;burayda,Burbank|CA|US|-118.31|34.18|105|N|,Burbank|IL|US|-87.78|41.73|29|N|,Burewala|punjab|PK|72.65|30.17|361|W|,Burgas|burgas|BG|27.47|42.51|210|W|boergas;bourgas;burgaz,Burgos|castille and leon|ES|-3.7|42.34|176|W|,Burhanpur|madhya pradesh|IN|76.23|21.31|210|W|,Burien|WA|US|-122.35|47.47|50|N|,Burke|VA|US|-77.27|38.79|41|N|,Burleson|TX|US|-97.32|32.54|43|N|,Burlingame|CA|US|-122.37|37.58|30|N|,Burlington|ON|CA|-79.84|43.39|186|NW|,Burlington|NC|US|-79.44|36.1|52|N|,Burlington|VT|US|-73.21|44.48|42|N|,Burlington|IA|US|-91.11|40.81|25|N|,Burnaby|BC|CA|-122.95|49.27|249|NW|,Burnley|england|GB|-2.23|53.8|149|W|,Burnsville|MN|US|-93.28|44.77|61|N|,Bursa|bursa province|TR|29.06|40.2|3101|W|,Burton|MI|US|-83.62|43|28|N|,Busan|busan|KR|129.03|35.1|3285|W|busan si;pusan,Bush|beni suweif|EG|31.13|29.15|136|W|,Bushehr|bushehr|IR|50.84|28.97|165|W|bandar bushehr;buschehr;bushire;busehr,Bushwick|NY|US|-73.92|40.69|112|N|,Business Bay|dubai|AE|55.27|25.19|191|W|,Bustleton|PA|US|-75.03|40.08|32|N|,Butembo|north kivu|CD|29.29|0.14|286|W|,Butte|MT|US|-112.53|46|34|N|,Butuan|caraga|PH|125.54|8.95|309|W|butuan city;city of butuan;kota butuan,Butwal|lumbini province|NP|83.45|27.69|195|W|,Bydgoszcz|kujawsko pomorskie|PL|18.01|53.12|330|W|bromberg;bydhost,Bytom|silesia|PL|18.93|50.35|189|W|beuthen,Ca Mau|ca mau|VN|105.15|9.18|226|W|,Caala|huambo|AO|15.56|-12.85|130|W|,Cabanatuan City|central luzon|PH|120.97|15.49|343|W|cabanatuan,Cabimas|zulia|VE|-71.45|10.4|351|W|,Cabinda|cabinda|AO|12.19|-5.56|550|W|,Cabo de Santo Agostinho|pernambuco|BR|-35.03|-8.29|216|W|,Cabo Frio|rio de janeiro|BR|-42.03|-22.89|238|W|,Cabo San Lucas|MX03|MX|-109.91|22.89|202|NW|,Cabot|AR|US|-92.02|34.97|25|N|,Cabuyao|calabarzon|PH|121.13|14.27|308|W|cabuyao city,Cachoeirinha|sao paulo|BR|-46.66|-23.45|143|W|,Cachoeirinha|rio grande do sul|BR|-51.09|-29.95|141|W|,Cachoeiro de Itapemirim|espirito santo|BR|-41.11|-20.85|198|W|,Cacuaco|luanda|AO|13.37|-8.78|146|W|,Cadereyta|MX19|MX|-99.98|25.58|67|N|,Cadereyta Jimenez|MX19|MX|-100|25.59|68|N|,Cagayan de Oro|northern mindanao|PH|124.65|8.48|741|W|,Cagliari|sardinia|IT|9.12|39.23|149|W|casteddu,Cai Lay|dong thap|VN|106.12|10.4|143|W|,Cainta|calabarzon|PH|121.12|14.58|283|W|,Cairns|queensland|AU|145.77|-16.92|153|W|,Cairo|cairo|EG|31.25|30.06|9606|W|el cairo;kairo;le caire;il cairo;kahire;kair;kahira,Cajamarca|cajamarca department|PE|-78.5|-7.16|201|W|,Calabar|cross river state|NG|8.33|4.96|540|W|,Calabozo|guarico|VE|-67.43|8.92|168|W|,Calama|antofagasta|CL|-68.92|-22.46|166|W|,Calamba|calabarzon|PH|121.17|14.21|575|W|calamba city;kota calamba,Caldwell|ID|US|-116.69|43.66|51|N|,Caledon|ON|CA|-79.99|43.87|76|N|,Calexico|CA|US|-115.5|32.68|40|N|,Calgary|AB|CA|-114.09|51.05|1306|NW|,Cali|valle del cauca department|CO|-76.52|3.43|2392|W|santiago de cali,Callao|callao|PE|-77.13|-12.05|1226|W|el callao,Caloocan|national capital region|PH|120.97|14.65|1712|W|caloocan city;lungsod ng caloocan,Calpulalpan|MX29|MX|-98.57|19.59|33|N|,Calumbo|bengo|AO|13.42|-9.15|652|W|,Calumet City|IL|US|-87.53|41.62|37|N|calumet,Cam Pha|quang ninh|VN|107.27|21.01|190|W|,Cam Pha Mines|quang ninh|VN|107.3|21.02|135|W|,Cam Ranh|khanh hoa|VN|109.16|11.92|146|W|,Camacari|bahia|BR|-38.32|-12.7|321|W|,Camagueey|camaguey|CU|-77.92|21.38|347|W|camaguey,Camama|luanda|AO|13.27|-8.94|667|W|,Camaragibe|pernambuco|BR|-34.98|-8.02|160|W|,Camarillo|CA|US|-119.04|34.22|67|N|,Camayenne|conakry|GN|-13.69|9.54|1871|W|,Cambridge|england|GB|0.12|52.2|145|W|,Cambridge|ON|CA|-80.31|43.36|129|N|,Cambridge|MA|US|-71.11|42.38|110|N|,Camden|NJ|US|-75.12|39.93|76|N|,Cameta|para|BR|-49.5|-2.24|134|W|,Campbell|CA|US|-121.95|37.29|41|N|,Campbell River|BC|CA|-125.24|50.02|33|N|,Campeche|MX04|MX|-90.52|19.84|220|NW|san francisco de campeche,Campina Grande|paraiba|BR|-35.88|-7.23|443|W|,Campinas|sao paulo|BR|-47.06|-22.91|1031|W|campinas e regiao;regiao de campinas,Campo Grande|mato grosso do sul|BR|-54.65|-20.44|906|W|,Campo Largo|parana|BR|-49.53|-25.46|144|W|,Campo Limpo|sao paulo|BR|-46.77|-23.64|236|W|,Campos dos Goytacazes|rio de janeiro|BR|-41.33|-21.75|483|W|,Can Giuoc|tay ninh|VN|106.67|10.61|152|W|,Can Tho|can tho city|VN|105.79|10.04|1507|W|,Canakkale|canakkale|TR|26.41|40.16|143|W|,Cananea|MX26|MX|-110.3|30.98|31|N|heroica ciudad de cananea,Canarsie|NY|US|-73.9|40.64|87|N|,Canberra|australian capital territory|AU|149.13|-35.28|367|W|camberra;kanberra,Cancun|MX23|MX|-86.85|21.17|888|NW|ciudad cancun,Candelaria|calabarzon|PH|121.42|13.93|137|W|,Cangaiba|sao paulo|BR|-46.52|-23.5|141|W|,Cangzhou|hebei|CN|116.85|38.31|527|W|cchang cou;thuong chau,Cankaya|ankara|TR|32.86|39.92|792|W|,Canoas|rio grande do sul|BR|-51.18|-29.92|328|W|,Canoga Park|CA|US|-118.6|34.2|60|N|,Canton|MI|US|-83.48|42.31|86|N|,Canton|OH|US|-81.38|40.8|71|N|,Canton|GA|US|-84.49|34.24|25|N|,Cantonment|FL|US|-87.34|30.61|26|N|,Canyon Country|CA|US|-118.47|34.42|59|N|,Cao Lanh|dong thap|VN|105.63|10.46|211|W|,Cap-Haitien|nord|HT|-72.2|19.76|134|W|cabo haitiano,Capao Redondo|sao paulo|BR|-46.78|-23.67|270|W|,Capas|central luzon|PH|120.59|15.33|162|W|,Cape Coast|central|GH|-1.25|5.11|212|W|,Cape Coral|FL|US|-81.95|26.56|175|NW|cabo coral,Cape Girardeau|MO|US|-89.52|37.31|39|N|cap girardeau,Cape Town|western cape|ZA|18.42|-33.93|4772|W|citta del capo;cidade do cabo;ciudad del cabo;el cabo;kaapstad;kapkaupunki;kapske mesto;kapstaden;kapstadt;kapsztad;le cap,Capiata|central department|PY|-57.45|-25.36|198|W|,Carabanchel|madrid|ES|-3.72|40.39|253|W|,Caracas|distrito federal|VE|-66.88|10.49|3000|W|karakas,Carapicuiba|sao paulo|BR|-46.84|-23.52|386|W|,Carbondale|IL|US|-89.22|37.73|26|N|,Cardenas|MX27|MX|-93.38|18|91|N|,Cardiff|wales|GB|-3.18|51.48|372|W|,Cariacica|espirito santo|BR|-40.42|-20.26|376|W|,Carletonville|gauteng|ZA|27.4|-26.36|182|W|,Carlsbad|CA|US|-117.35|33.16|114|N|,Carlsbad|NM|US|-104.23|32.42|28|N|,Carmel|IN|US|-86.12|39.98|88|N|,Carmichael|CA|US|-121.33|38.62|61|N|,Carney|MD|US|-76.52|39.39|29|N|,Carol City|FL|US|-80.25|25.94|63|N|,Carol Stream|IL|US|-88.13|41.91|40|N|,Carolina|carolina|PR|-65.96|18.38|170|W|caroline,Carpentersville|IL|US|-88.26|42.12|38|N|,Carrefour|ouest|HT|-72.4|18.53|511|W|,Carrollton|TX|US|-96.89|32.95|133|NW|,Carrollton|GA|US|-85.08|33.58|26|N|,Carrollwood|FL|US|-82.49|28.05|33|N|,Carrollwood Village|FL|US|-82.52|28.07|40|N|,Carson|CA|US|-118.28|33.83|93|N|,Carson City|NV|US|-119.77|39.16|58|N|kota carson,Cartagena|bolivar|CO|-75.49|10.4|914|W|carthagene;cartagena de indias;cartagena das indias;carthagene des indes,Cartagena|murcia|ES|-0.98|37.6|213|W|carthagene;kartagena,Cartago|valle del cauca department|CO|-75.91|4.75|134|W|,Cartierville|QC|CA|-73.7|45.53|34|N|,Caruaru|pernambuco|BR|-35.98|-8.28|402|W|,Carupano|sucre|VE|-63.25|10.67|167|W|,Cary|NC|US|-78.78|35.79|159|NW|,Casa Grande|AZ|US|-111.76|32.88|51|N|,Casablanca|casablanca settat|MA|-7.61|33.59|3665|W|dar ul beyda;kazablanka;white house,Casas Adobes|AZ|US|-111|32.32|66|N|,Cascavel|parana|BR|-53.46|-24.96|368|W|ular derik,Casper|WY|US|-106.31|42.87|60|N|,Casselberry|FL|US|-81.33|28.68|27|N|,Castanhal|para|BR|-47.93|-1.29|192|W|,Castello de la Plana|valencia|ES|-0.05|39.99|171|W|castellon;castellon de la plana,Castle Rock|CO|US|-104.86|39.37|55|N|,Castlewood|CO|US|-104.9|39.58|25|N|,Castro Valley|CA|US|-122.09|37.69|61|N|,Catacamas|olancho department|HN|-85.89|14.85|140|W|,Catalina Foothills|AZ|US|-110.92|32.3|50|N|,Catamarca|catamarca|AR|-65.79|-28.47|159|W|,Catania|sicily|IT|15.07|37.49|311|W|catane;katania,Catemaco|MX30|MX|-95.11|18.42|27|N|,Cathedral City|CA|US|-116.47|33.78|53|N|,Catonsville|MD|US|-76.73|39.27|41|N|,Cau Giay|hanoi|VN|105.8|21.03|292|W|,Caucaia|ceara|BR|-38.65|-3.74|378|W|,Caxias|maranhao|BR|-43.36|-4.86|163|W|,Caxias do Sul|rio grande do sul|BR|-51.18|-29.17|479|W|,Cazenga|luanda|AO|13.28|-8.84|394|W|,Cebu City|central visayas|PH|123.89|10.32|965|W|cebu;ciudad de cebu;cebu sehri;cidade de cebu;city of cebu;kota cebu,Cedar City|UT|US|-113.06|37.68|30|N|,Cedar Falls|IA|US|-92.45|42.53|41|N|,Cedar Hill|TX|US|-96.96|32.59|48|N|,Cedar Park|TX|US|-97.82|30.51|65|N|,Cedar Rapids|IA|US|-91.64|42.01|130|NW|,Ceilandia|federal district|BR|-48.13|-15.81|287|W|,Celaya|MX11|MX|-100.81|20.52|340|NW|,Celina|TX|US|-96.78|33.32|64|N|,Centennial|CO|US|-104.88|39.58|109|N|,Center City|PA|US|-75.16|39.95|57|N|centro de filadelfia,Centereach|NY|US|-73.1|40.86|31|N|,Central|LA|US|-91.04|30.55|28|N|,Central 14th Street / Spring Road|DC|US|-77.03|38.94|25|N|,Central City|AZ|US|-112.06|33.44|58|N|,Central Coast|new south wales|AU|151.37|-33.43|346|W|costa central,Central Islip|NY|US|-73.2|40.79|34|N|,Centralniy|st petersburg|RU|30.36|59.93|214|W|,Centre City|AB|CA|-114.07|51.05|41|N|,Centretown|ON|CA|-75.7|45.42|25|N|,Centreville|VA|US|-77.43|38.84|71|N|,Centro Familiar la Soledad|MX11|MX|-101.75|21.14|32|N|,Centro Habana|havana|CU|-82.37|23.13|158|W|,Centurion|gauteng|ZA|28.19|-25.86|236|W|,Ceres|CA|US|-120.96|37.59|47|N|,Cergy-Pontoise|ile de france|FR|2.08|49.04|183|W|,Cerritos|CA|US|-118.06|33.86|49|N|,Cerro|havana|CU|-82.38|23.11|132|W|,Ch'ongdan-up|south hwanghae|KP|125.94|37.97|142|W|,Chak Jhumra|punjab|PK|73.18|31.57|385|W|,Chakwama|jigawa state|NG|9.66|11.56|200|W|,Chalco|MX15|MX|-98.9|19.26|168|NW|,Chaman|balochistan|PK|66.45|30.92|130|W|caman,Chamartin|madrid|ES|-3.68|40.46|140|W|,Chamberi|madrid|ES|-3.7|40.43|145|W|,Chamblee|GA|US|-84.3|33.89|28|N|,Champaign|IL|US|-88.24|40.12|86|N|,Champoton|MX04|MX|-90.72|19.34|30|N|,Chanda|maharashtra|IN|79.3|19.95|328|W|chandrapur;candrapur,Chandannagar|west bengal|IN|88.37|22.86|180|W|chandernagor;chandernagore;candarnagar,Chandigarh|chandigarh|IN|76.79|30.74|970|W|czandigarh;candigarh,Chandler|AZ|US|-111.84|33.31|260|NW|,Chandpur|chittagong|BD|90.65|23.23|203|W|,Chang-hua|taiwan|TW|120.56|24.07|226|W|,Changam-ch'on|south hamgyong|KP|128.78|40.61|207|W|,Changchun|jilin|CN|125.32|43.88|4714|W|tschangtung;cangcun;cchang cchun,Changde|hunan|CN|111.7|29.03|1457|W|cchang te;changteh,Changhua|taiwan|TW|120.55|24.07|226|W|,Changji|xinjiang|CN|87.3|44.01|198|W|,Changle|shandong|CN|118.83|36.71|259|W|,Changning|shanghai|CN|121.42|31.22|694|W|,Changsha|hunan|CN|112.97|28.2|3093|W|cchang sa,Changsha|guangdong|CN|112.68|22.38|688|W|,Changshu|jiangsu|CN|120.74|31.65|1677|W|,Changwon|gyeongsangnam do|KR|128.68|35.23|1025|W|ch angwon;cchangwon,Changyi|shandong|CN|119.39|36.85|302|W|,Changyuan|chongqing|CN|105.59|29.4|186|W|,Changzheng|shanghai|CN|121.37|31.24|229|W|,Changzhi|shanxi|CN|113.11|36.18|1214|W|cchang c,Changzhou|jiangsu|CN|119.95|31.77|3290|W|cchang cou,Chanhassen|MN|US|-93.53|44.86|25|N|,Channelview|TX|US|-95.11|29.78|38|N|,Chaohu|anhui|CN|117.87|31.6|138|W|,Chaoyang|liaoning|CN|120.46|41.57|410|W|,Chaozhou|guangdong|CN|116.62|23.65|1750|W|cchao cou,Chapeco|santa catarina|BR|-52.62|-27.1|282|W|,Chapel Hill|NC|US|-79.06|35.91|59|N|,Chapra|bihar|IN|84.75|25.78|202|W|,Charleroi|wallonia|BE|4.44|50.41|200|W|,Charlesbourg|QC|CA|-71.31|46.9|82|N|,Charleston|SC|US|-79.93|32.78|132|NW|,Charleston|WV|US|-81.63|38.35|46|N|,Charlotte|NC|US|-80.84|35.23|911|NW|,Charlottesville|VA|US|-78.48|38.03|46|N|,Charlottetown|PE|CA|-63.13|46.23|38|N|,Chas|jharkhand|IN|86.17|23.64|141|W|,Chaska|MN|US|-93.6|44.79|25|N|,Chateauguay|QC|CA|-73.75|45.38|42|N|,Chatham|ON|CA|-82.18|42.41|43|N|,Chatham|IL|US|-87.61|41.74|31|N|,Chatsworth|CA|US|-118.6|34.26|41|N|,Chattanooga|TN|US|-85.31|35.05|181|NW|,Chattogram|chittagong|BD|91.83|22.34|3920|W|chittagong;cottogram;cattagram,Chatuchak|bangkok|TH|100.56|13.83|160|W|,Cheboksary|chuvash republic|RU|47.25|56.13|492|W|ceboksari;czeboksary;tcheboksary;tjeboksary;tscheboksary;tsjeboksary;tseboksary;ceboksary;supaskar,Cheektowaga|NY|US|-78.75|42.9|75|N|,Chelmsford|MA|US|-71.37|42.6|33|N|,Chelsea|MA|US|-71.03|42.39|39|N|,Chelyabinsk|chelyabinsk|RU|61.43|55.16|1202|W|tsjeljabinsk;celeabinsk;celiabinsc;cheliabinsk;czelabinsk;tcheliabinsk;tjeljabinsk;tscheljabinsk;tseljabinsk;celyabinsk;celjabinsk,Chemnitz|saxony|DE|12.93|50.84|247|W|saska kamenice,Chengde|hebei|CN|117.96|40.95|449|W|ccheng te,Chengdu|sichuan|CN|104.07|30.67|13568|W|thanh do;cengdu;ccheng tu,Chengguan Qu|tibet|CN|91.04|29.64|478|W|,Chenghua|guangdong|CN|116.77|23.46|152|W|,Chengzhong|hubei|CN|113.55|30.94|265|W|,Chennai|tamil nadu|IN|80.28|13.09|4681|W|cennaj;cennai;madras,Chenzhou|hunan|CN|113.03|25.8|822|W|,Cheonan|chungcheongnam do|KR|127.15|36.81|658|W|cchonan,Cheongju-si|north chungcheong|KR|127.49|36.64|852|W|cheongju,Cheras|selangor|MY|101.73|3.11|135|W|,Cherepovets|vologda oblast|RU|37.9|59.13|315|W|cerepovet;czerepowiec;tcherepovets;tjerepovets;tscherepowez;tsjerepovets;tserepovets;cerepovets;cerepovec,Cherkasy|cherkasy|UA|32.06|49.44|269|W|cerkasi;czerkasy;tcherkassy;tcherkassi;tjerkasy;tscherkassy;tsjerkasy;tserkasy;cerkassi;cerkasy;cherkassy,Chernihiv|chernihiv oblast|UA|31.29|51.51|282|W|cernigau;chernigov;czernihow;tchernihiv;tjernihiv;tschernihiw;tsjernihiv;tsernihiv;cernigiv;cernihiv;cernihov;cernigovia,Chernivtsi|chernivtsi|UA|25.93|48.29|264|W|cernivci;cernovizza;cernauti;czerniowce;czernowitz;tchernivtsi;tjernivtsi;tschernowitz;tsjernivtsi;tsernivtsi;cernivtsi;cernovice,Cherry Hill|NJ|US|-75.03|39.93|70|N|,Chertanovo Yuzhnoye|moscow|RU|37.6|55.59|142|W|,Chesapeake|VA|US|-76.27|36.82|235|NW|,Cheshire|CT|US|-72.9|41.5|29|N|,Chester|PA|US|-75.36|39.85|34|N|,Chesterfield|MO|US|-90.58|38.66|47|N|,Chestermere|AB|CA|-113.82|51.03|32|N|,Chetumal|MX23|MX|-88.3|18.52|169|NW|,Cheyenne|WY|US|-104.82|41.14|65|N|,Chhatarpur|madhya pradesh|IN|79.59|24.92|142|W|chhattarpur,Chhindwara|madhya pradesh|IN|78.94|22.06|175|W|,Chi Linh|hai phong|VN|106.32|21.07|220|W|,Chiapa de Corzo|MX05|MX|-93.01|16.71|45|N|,Chiayi City|taiwan|TW|120.45|23.48|263|W|jiayi shi,Chiba|chiba|JP|140.12|35.6|979|W|ciba,Chicago|IL|US|-87.65|41.85|2664|NW|sikago,Chicago Heights|IL|US|-87.64|41.51|30|N|,Chicago Lawn|IL|US|-87.7|41.78|55|N|,Chicago Loop|IL|US|-87.63|41.88|33|N|loop,Chichicastenango|quiche|GT|-91.11|14.94|141|W|,Chiclayo|lambayeque|PE|-79.85|-6.77|609|W|,Chico|CA|US|-121.84|39.73|121|N|,Chicoloapan|MX15|MX|-98.9|19.42|172|NW|san vicente chicoloapan,Chicopee|MA|US|-72.61|42.15|56|N|,Chicoutimi|QC|CA|-71.06|48.42|69|N|,Chifeng|inner mongolia|CN|118.96|42.27|346|W|tschifong;xich phong;cch feng,Chigasaki|kanagawa|JP|139.4|35.34|242|W|,Chihuahua|MX06|MX|-106.09|28.64|925|NW|chihuahua city;chihuahua by,Chilanzar|tashkent|UZ|69.18|41.28|260|W|,Chilapa de Alvarez|MX12|MX|-99.17|17.6|31|N|,Chillan|nuble|CL|-72.1|-36.61|150|W|,Chilliwack|BC|CA|-121.95|49.17|101|N|,Chilliwack-Downtown|BC|CA|-121.96|49.16|31|N|,Chillum|MD|US|-76.99|38.96|33|N|,Chilpancingo|MX12|MX|-99.5|17.55|187|NW|chilpancingo de los bravo,Chimbote|ancash|PE|-78.59|-9.08|316|W|,Chimoio|manica|MZ|33.48|-19.12|422|W|,Chinatown|CA|US|-122.41|37.8|100|N|,Chinatown|NY|US|-74|40.72|90|N|,Chincha Alta|ica|PE|-76.13|-13.41|153|W|,Chingola|copperbelt|ZM|27.88|-12.53|256|W|,Chiniot|punjab|PK|72.98|31.72|318|W|,Chinju|gyeongsangnam do|KR|128.08|35.19|307|W|jinju,Chino|CA|US|-117.69|34.01|85|N|,Chino Hills|CA|US|-117.76|33.99|78|N|,Chipata|eastern province|ZM|32.65|-13.63|327|W|,Chirchiq|tashkent region|UZ|69.58|41.47|162|W|circik;tchirtchik;tjirtjik;circig,Chishtian|punjab|PK|72.86|29.8|149|W|,Chisinau|chisinau municipality|MD|28.86|47.01|635|W|kishinev;kiszyniow;kisinev,Chita|zabaykalskiy transbaikal kray|RU|113.49|52.04|349|W|tsjita;tchita;tschita;tsita;cita,Chitato|luanda norte|AO|20.73|-7.3|246|W|,Chitradurga|karnataka|IN|76.4|14.22|145|W|,Chittoor|andhra pradesh|IN|79.1|13.21|160|W|chittur,Chitungwiza|harare|ZW|31.08|-18.01|371|W|,Chizhou|anhui|CN|117.48|30.66|615|W|,Chlef|chlef|DZ|1.33|36.17|178|W|ech cheliff;szalif;asch schalif;ash shalif;al asnam,Cho Lon|ho chi minh city hcmc|VN|106.65|10.75|561|W|,Choa Chu Kang New Town||SG|103.75|1.38|187|W|,Chofu|tokyo|JP|139.55|35.66|242|W|,Choloma|cortes department|HN|-87.95|15.61|139|W|,Cholula|MX21|MX|-98.3|19.06|292|NW|cholula de rivadavia;san pedro cholula,Chom Thong|bangkok|TH|100.48|13.68|158|W|,Chomedey|QC|CA|-73.75|45.53|94|N|,Chon Buri|chon buri|TH|100.98|13.36|219|W|,Chongjin|north hamgyong|KP|129.78|41.8|327|W|ch ongjin;cchongdzin,Chongming||CN|121.7|31.62|637|W|,Chongqing|chongqing|CN|106.56|29.56|7457|W|trung khanh;tsjoengking;congcing;cchung cching,Chongzuo|guangxi|CN|107.37|22.38|384|W|,Christchurch|canterbury|NZ|172.63|-43.53|419|W|,Chula Vista|CA|US|-117.08|32.64|265|NW|,Chuncheon|gangwon do|KR|127.73|37.87|284|W|cunceon;cchuncchon,Chungju|north chungcheong|KR|127.93|36.98|209|W|cungcu;cchungdzu,Chunian|punjab|PK|73.98|30.97|634|W|,Chuo|tokyo|JP|139.78|35.67|169|W|chuo city,Church-Yonge Corridor|ON|CA|-79.38|43.66|31|N|,Chuxiong|yunnan|CN|101.55|25.04|555|W|,Chuzhou|anhui|CN|118.3|32.32|782|W|cchu cou,Ciampea|west java|ID|106.7|-6.55|207|W|,Cianjur|west java|ID|107.14|-6.82|174|W|kabupaten de cianjur,Cibinong|west java|ID|106.85|-6.48|363|W|,Cibolo|TX|US|-98.23|29.56|33|N|,Cicero|IL|US|-87.75|41.85|83|N|,Cicero|NY|US|-76.12|43.18|31|N|,Cidade Ademar|sao paulo|BR|-46.66|-23.67|249|W|,Cidade Dutra|sao paulo|BR|-46.7|-23.73|182|W|,Cidade Lider|sao paulo|BR|-46.49|-23.56|136|W|,Cidade Tiradentes|sao paulo|BR|-46.4|-23.58|192|W|,Ciego de Avila|ciego de avila province|CU|-78.76|21.84|142|W|,Cienfuegos|cienfuegos province|CU|-80.45|22.15|186|W|,Cigli|izmir province|TR|27.07|38.5|214|W|,Cihuatlan|MX14|MX|-104.57|19.24|40|N|,Cikupa|west java|ID|106.51|-6.24|174|W|,Cilacap|central java|ID|109.01|-7.73|256|W|,Cilegon|banten|ID|106.05|-6.01|470|W|,Cileungsir|west java|ID|106.96|-6.39|289|W|,Cimahi|west java|ID|107.54|-6.87|581|W|kota cimahi,Cincinnati|OH|US|-84.51|39.13|311|NW|,Cintalapa de Figueroa|MX05|MX|-93.72|16.68|42|N|,Ciputat|west java|ID|106.7|-6.24|207|W|,Circoiscrizione II|piedmont|IT|7.64|45.05|141|W|,Circoiscrizione III|piedmont|IT|7.63|45.06|130|W|,Circoiscrizione VIII|piedmont|IT|7.67|45.04|134|W|,Cirebon|west java|ID|108.56|-6.71|344|W|kota cirebon,Citeureup|west java|ID|106.88|-6.49|214|W|,Citrus Heights|CA|US|-121.28|38.71|87|N|,City of Milford (balance)|CT|US|-73.06|41.22|51|N|,City of Sammamish|WA|US|-122.04|47.6|45|N|,City of Westminster|england|GB|-0.14|51.5|247|W|,Ciudad Acuna|MX07|MX|-100.95|29.32|216|NW|acuna,Ciudad Altamirano|MX12|MX|-100.67|18.36|25|N|,Ciudad Apodaca|MX19|MX|-100.19|25.78|467|NW|apodaca,Ciudad Benito Juarez|MX19|MX|-100.09|25.65|308|NW|,Ciudad Bolivar|bolivar|VE|-63.55|8.12|412|W|,Ciudad Camilo Cienfuegos|havana|CU|-82.33|23.16|178|W|,Ciudad Constitucion|MX03|MX|-111.66|25.03|40|N|,Ciudad de Allende|MX19|MX|-100.02|25.28|26|N|allende,Ciudad de Huajuapan de Leon|MX20|MX|-97.78|17.81|53|N|huajuapan;huajuapan de leon;huajuapam;huajuapam de leon,Ciudad de Villa de Alvarez|MX08|MX|-103.74|19.27|117|N|,Ciudad del Carmen|MX04|MX|-91.83|18.65|191|NW|cd carmen;cd del carmen;carmen,Ciudad del Este|alto parana department|PY|-54.65|-25.5|301|W|kota del este,Ciudad Delicias|MX06|MX|-105.47|28.19|148|NW|akitakata;delicias,Ciudad Fernandez|MX24|MX|-100.01|21.94|32|N|,Ciudad General Escobedo|MX19|MX|-100.32|25.8|454|NW|gral escobedo;general escobedo,Ciudad Guayana|bolivar|VE|-62.64|8.35|978|W|cidade guaiana;guayana,Ciudad Guzman|MX14|MX|-103.46|19.7|111|N|cd guzman,Ciudad Hidalgo|MX16|MX|-100.56|19.69|60|N|,Ciudad Juarez|MX06|MX|-106.46|31.72|1512|NW|juarez,Ciudad Lazaro Cardenas|MX16|MX|-102.2|17.96|196|NW|lazaro cardenas,Ciudad Lineal|madrid|ES|-3.65|40.45|228|W|,Ciudad Lopez Mateos|MX15|MX|-99.26|19.56|489|NW|adolfo lopez mateos,Ciudad Madero|MX28|MX|-97.84|22.25|197|NW|cd madero,Ciudad Mante|MX28|MX|-98.97|22.74|84|N|,Ciudad Melchor Muzquiz|MX07|MX|-101.52|27.88|35|N|,Ciudad Mendoza|MX30|MX|-97.18|18.81|35|N|,Ciudad Nezahualcoyotl|MX15|MX|-99.01|19.4|1077|NW|cd neza;cd nezahualcoyotl;ciudad neza;neza;nezahualcoyotl,Ciudad Obregon|MX26|MX|-109.94|27.49|329|NW|cd obregon,Ciudad Ojeda|zulia|VE|-71.31|10.2|240|W|,Ciudad Rio Bravo|MX28|MX|-98.09|25.99|95|N|,Ciudad Sabinas Hidalgo|MX19|MX|-100.18|26.5|33|N|,Ciudad Sahagun|MX13|MX|-98.57|19.78|28|N|,Ciudad Valles|MX24|MX|-99.01|22|124|N|,Ciudad Victoria|MX28|MX|-99.14|23.74|332|NW|cd victoria;victoria,Cixi|zhejiang|CN|121.25|30.18|1457|W|,Cizre|sirnak|TR|42.18|37.33|134|W|,Clairlea-Birchmount|ON|CA|-79.28|43.71|26|N|,Claremont|CA|US|-117.72|34.1|36|N|,Clarksville|TN|US|-87.36|36.53|166|NW|,Clay|NY|US|-76.17|43.19|58|N|,Clearfield|UT|US|-112.03|41.11|30|N|,Clearwater|FL|US|-82.8|27.97|117|N|,Cleburne|TX|US|-97.39|32.35|30|N|,Clermont|FL|US|-81.77|28.55|32|N|,Clermont-Ferrand|rhone alpes|FR|3.09|45.78|147|W|,Cleveland|OH|US|-81.7|41.5|365|NW|,Cleveland|TN|US|-84.88|35.16|43|N|,Cleveland Heights|OH|US|-81.56|41.52|44|N|,Clifton|NJ|US|-74.16|40.86|86|N|,Clifton Park|NY|US|-73.77|42.87|36|N|,Clinton|MD|US|-76.9|38.77|35|N|robeystown;surrats;surratsville;surratts;surrattsville,Clinton|IA|US|-90.19|41.84|26|N|,Clinton|MS|US|-90.32|32.34|25|N|,Clinton Township|MI|US|-82.92|42.59|99|N|,Cloverdale|BC|CA|-122.73|49.11|73|N|,Clovis|CA|US|-119.7|36.83|104|N|,Clovis|NM|US|-103.21|34.4|39|N|,Cluj-Napoca|cluj county|RO|23.6|46.77|286|W|klausenburg;clausenburg;kalosvar;kluz napoka;kluz;kolozsvar;clausemburgo,Coacalco|MX15|MX|-99.11|19.63|277|NW|coacalco de berriozaval;san francisco coacalco,Coachella|CA|US|-116.17|33.68|44|N|,Coatepec|MX30|MX|-96.96|19.45|53|N|,Coatzacoalcos|MX30|MX|-94.44|18.15|310|NW|puerto mexico;port of mexico,Coatzintla|MX30|MX|-97.47|20.49|34|N|,Coban|alta verapaz|GT|-90.37|15.47|212|W|,Cobbs Creek|PA|US|-75.24|39.95|33|N|,Cochabamba|cochabamba|BO|-66.16|-17.38|841|W|,Cochrane|AB|CA|-114.47|51.18|32|N|,Coconut Creek|FL|US|-80.18|26.25|59|N|,Cocula|MX14|MX|-103.82|20.37|29|N|,Coeur d'Alene|ID|US|-116.78|47.68|49|N|,Coimbatore|tamil nadu|IN|76.97|11.01|2136|W|koimbatur,Coimbra|coimbra|PT|-8.42|40.21|140|W|,Colchester|england|GB|0.9|51.89|130|W|,Colima|MX08|MX|-103.71|19.24|146|NW|,Colina|santiago metropolitan|CL|-70.67|-33.2|146|W|,College Park|MD|US|-76.94|38.98|32|N|,College Point|NY|US|-73.85|40.79|27|N|,College Station|TX|US|-96.33|30.63|107|N|,Colleyville|TX|US|-97.16|32.88|25|N|,Collierville|TN|US|-89.66|35.04|48|N|,Collinwood|OH|US|-81.57|41.56|34|N|,Colombo|western province|LK|79.85|6.94|648|W|kolombo,Colombo|parana|BR|-49.22|-25.29|232|W|,Colonia del Sol|MX03|MX|-109.93|22.91|48|N|,Colonia del Valle|MX09|MX|-99.16|19.39|250|NW|col del valle;del valle,Colonia Lindavista|MX15|MX|-99.12|19.49|100|N|col lindavista;lindavista,Colonia Nativitas|MX09|MX|-99.14|19.38|60|N|col nativitas;nativitas,Colorado Springs|CO|US|-104.82|38.83|456|NW|colorado spgs,Colton|CA|US|-117.31|34.07|54|N|,Columbia|SC|US|-81.03|34|142|NW|,Columbia|MO|US|-92.33|38.95|129|N|,Columbia|MD|US|-76.84|39.24|99|N|,Columbia|TN|US|-87.04|35.62|36|N|,Columbia Heights|DC|US|-77.03|38.93|38|N|meridian hill;meridian hill heights,Columbus|OH|US|-83|39.96|913|NW|,Columbus|GA|US|-84.99|32.46|206|NW|,Columbus|IN|US|-85.92|39.2|46|N|,Comalcalco|MX27|MX|-93.22|18.26|41|N|,Comilla|chittagong|BD|91.19|23.46|634|W|kumilla,Comitan|MX05|MX|-92.14|16.24|166|NW|comitan de dominguez,Commack|NY|US|-73.29|40.84|36|N|,Commerce City|CO|US|-104.93|39.81|53|N|,Commonwealth|national capital region|PH|121.08|14.7|215|W|,Comodoro Rivadavia|chubut|AR|-67.49|-45.86|140|W|,Compton|CA|US|-118.22|33.9|98|N|,Conakry|conakry|GN|-13.68|9.54|1928|W|conacri;konakry,Concepcion|biobio|CL|-73.05|-36.83|223|W|konsepsi,Concepcion|central luzon|PH|120.66|15.33|178|W|,Conception Bay South|NL|CA|-53|47.5|27|N|,Concord|CA|US|-122.03|37.98|128|N|,Concord|NC|US|-80.58|35.41|87|N|,Concord|NH|US|-71.54|43.21|43|N|,Concordia|entre rios|AR|-58.02|-31.39|145|W|,Coney Island|NY|US|-73.99|40.58|60|N|coney adasi,Confederation|SK|CA|-106.7|52.14|70|N|,Conroe|TX|US|-95.46|30.31|68|N|,Conselheiro Lafaiete|minas gerais|BR|-43.79|-20.66|138|W|,Constanta|constanta county|RO|28.63|44.18|317|W|konstanza;constanza;constanca;costanza;konstanca;kostence;kustence,Constantine|constantine|DZ|6.61|36.37|448|W|constantina,Contagem|minas gerais|BR|-44.05|-19.93|627|W|,Contla|MX29|MX|-98.17|19.33|27|N|,Conway|AR|US|-92.44|35.09|64|N|,Cookeville|TN|US|-85.5|36.16|32|N|,Coon Rapids|MN|US|-93.29|45.12|62|N|,Cooper City|FL|US|-80.27|26.06|35|N|,Copenhagen|capital region|DK|12.57|55.68|1153|W|copenaghen;copenhaga;copenhague;kodan;kopenhag;kopenhaga;kopenhagen;kopenhamn;koopenhamina;kobenhavn,Coppell|TX|US|-97.02|32.95|41|N|,Copperas Cove|TX|US|-97.9|31.12|33|N|,Coquimbo|coquimbo region|CL|-71.34|-29.95|161|W|,Coquitlam|BC|CA|-122.78|49.28|148|NW|,Coquitlam West|BC|CA|-122.88|49.26|25|N|,Coral Gables|FL|US|-80.27|25.72|51|N|,Coral Springs|FL|US|-80.27|26.27|129|N|,Coram|NY|US|-73|40.87|39|N|,Cordoba|cordoba|AR|-64.19|-31.41|2106|W|ciudad de cordoba;cordova,Cordoba|andalusia|ES|-4.77|37.89|325|W|cordoue;cordova;kordoba,Cordoba|MX30|MX|-96.93|18.88|204|NW|,Cordova|TN|US|-89.78|35.16|68|N|,Core Neighbourhoods|SK|CA|-106.67|52.13|36|N|,Cork|munster|IE|-8.47|51.9|224|W|cork city,Corlu|tekirdag|TR|27.8|41.16|202|W|,Cornelius|NC|US|-80.86|35.49|28|N|,Cornwall|ON|CA|-74.73|45.02|48|N|,Coro|falcon|VE|-69.68|11.41|246|W|,Corona|CA|US|-117.57|33.88|164|NW|,Corona|NY|US|-73.86|40.75|109|N|,Corpus Christi|TX|US|-97.4|27.8|316|NW|,Corrientes|corrientes|AR|-58.83|-27.47|346|W|ciudad de corrientes,Cortazar|MX11|MX|-100.96|20.48|61|N|,Corum|corum|TR|34.95|40.55|269|W|,Corvallis|OR|US|-123.26|44.56|55|N|,Cosamaloapan|MX30|MX|-95.8|18.37|30|N|,Costa Mesa|CA|US|-117.92|33.64|113|N|,Cotabato|autonomous region in muslim mindanao|PH|124.25|7.22|383|W|cotabato city,Cote-Saint-Luc|QC|CA|-73.67|45.47|31|N|,Cotia|sao paulo|BR|-46.92|-23.6|253|W|,Cotonou|littoral|BJ|2.42|6.37|679|W|cotonu;kotonu,Cottage Grove|MN|US|-92.94|44.83|35|N|,Cottonwood Heights|UT|US|-111.81|40.62|34|N|,Council Bluffs|IA|US|-95.86|41.26|62|N|co bluffs,Country Club|FL|US|-80.32|25.95|47|N|,Courtenay|BC|CA|-124.99|49.69|28|N|,Coventry|england|GB|-1.51|52.41|345|W|,Coventry|RI|US|-71.68|41.7|35|N|,Covina|CA|US|-117.89|34.09|48|N|,Covington|KY|US|-84.51|39.08|40|N|,Cox's Bazar|chittagong|BD|92.01|21.44|253|W|,Coyoacan|MX09|MX|-99.16|19.35|614|NW|,Coyotepec|MX15|MX|-99.21|19.78|35|N|,Coyula|MX14|MX|-103.23|20.66|29|N|,Cozumel|MX23|MX|-86.94|20.5|77|N|san miguel de cozumel,Craiova|dolj|RO|23.8|44.32|234|W|krajowa,Cranberry Township|PA|US|-80.11|40.68|28|N|,Cranston|RI|US|-71.44|41.78|81|N|,Crato|ceara|BR|-39.41|-7.23|139|W|,Criciuma|santa catarina|BR|-49.37|-28.68|227|W|,Crofton|MD|US|-76.69|39|27|N|,Croix-des-Bouquets|ouest|HT|-72.23|18.58|229|W|,Crown Point|IN|US|-87.37|41.42|28|N|,Croydon|england|GB|-0.1|51.38|173|W|croydon grants,Crystal Lake|IL|US|-88.32|42.24|40|N|,Cua|miranda|VE|-66.88|10.16|182|W|,Cuauhtemoc|MX09|MX|-99.15|19.45|531|NW|,Cuauhtemoc|MX06|MX|-106.87|28.41|168|NW|,Cuautitlan|MX15|MX|-99.18|19.67|178|NW|,Cuautitlan Izcalli|MX15|MX|-99.22|19.64|555|NW|izcalli,Cuautla|MX17|MX|-98.94|18.81|157|NW|,Cuautlancingo|MX21|MX|-98.27|19.09|25|N|san juan b cuautlancingo,Cucuta|norte de santander department|CO|-72.5|7.91|777|W|kukuta,Cuddalore|tamil nadu|IN|79.77|11.76|173|W|gondelour,Cuenca|azuay|EC|-79|-2.9|636|W|,Cuernavaca|MX17|MX|-99.23|18.93|338|NW|,Cuiaba|mato grosso|BR|-56.1|-15.6|618|W|culaba,Cuito|bie|AO|16.93|-12.38|355|W|kuito,Culiacan|MX25|MX|-107.39|24.8|808|NW|,Culver City|CA|US|-118.4|34.02|39|N|,Cumana|sucre|VE|-64.18|10.46|405|W|,Cumberland|RI|US|-71.43|41.97|34|N|,Cupertino|CA|US|-122.03|37.32|60|N|,Curitiba|parana|BR|-49.27|-25.43|1948|W|kurytyba,Curug|banten|ID|106.56|-6.27|191|W|,Cusco|cuzco department|PE|-71.97|-13.53|428|W|ciudad del cuzco;cuzco,Cutler Bay|FL|US|-80.34|25.58|45|N|cutler ridge,Cutler Ridge|FL|US|-80.35|25.58|26|N|,Cuttack|odisha|IN|85.88|20.46|610|W|,Cuyahoga Falls|OH|US|-81.48|41.13|49|N|,Cypress|TX|US|-95.7|29.97|200|NW|,Cypress|CA|US|-118.04|33.82|49|N|,Cypress Hills|NY|US|-73.89|40.68|54|N|,Czestochowa|silesia|PL|19.12|50.8|248|W|czenstochau;censtochova;tschenstochau,Da Lat|lam dong|VN|108.44|11.95|258|W|,Da Nang|da nang city|VN|108.22|16.07|1276|W|danang;thanh thai phien,Dabou|lagunes district|CI|-4.38|5.33|138|W|,Dachang|shanghai|CN|121.42|31.31|371|W|,Dadu|sindh|PK|67.78|26.73|201|W|,Daegu|daegu|KR|128.59|35.87|2365|W|daegu si;taegu;tegu,Daejeon|daejeon|KR|127.38|36.35|1441|W|daejeon si;taejon,Dagupan|ilocos|PH|120.33|16.04|171|W|kota dagupan,Dajal|punjab|PK|70.38|29.56|200|W|,Dakar|dakar|SN|-17.44|14.69|2646|W|dacar,Dakota Ridge|CO|US|-105.14|39.62|33|N|,Dale City|VA|US|-77.31|38.64|65|N|,Dali|yunnan|CN|100.21|25.58|235|W|,Dalian|liaoning|CN|121.6|38.91|4913|W|luta;luda,Daliang|guangdong|CN|113.25|22.84|210|W|shunde,Dallas|TX|US|-96.81|32.78|1326|NW|,Daloa|sassandra marahoue|CI|-6.45|6.88|421|W|,Dalton|GA|US|-84.97|34.77|33|N|,Dalupura|delhi|IN|77.32|28.61|154|W|,Daly City|CA|US|-122.46|37.71|106|N|,Damanhur|beheira|EG|30.47|31.03|318|W|,Damascus|damascus governorate|SY|36.29|33.51|1569|W|damasco;damas;damasc;damaskos;damaskus;damaszek;damasek;sam,Damietta|damietta|EG|31.81|31.42|305|W|damieta;damiette;dimyat;dimyath,Dammam|eastern province|SA|50.1|26.43|1252|W|ad dammam;ed dammam,Damoh|madhya pradesh|IN|79.44|23.83|139|W|,Dana Point|CA|US|-117.7|33.47|34|N|,Danbury|CT|US|-73.45|41.39|84|N|,Dandong|liaoning|CN|124.39|40.13|631|W|dan dong;andong,Dania Beach|FL|US|-80.14|26.05|31|N|,Danli|el paraiso department|HN|-86.58|14.03|233|W|,Danshui|taipei|TW|121.44|25.17|189|W|tamsui,Danvers|MA|US|-70.93|42.58|26|N|,Danville|CA|US|-122|37.82|44|N|,Danville|VA|US|-79.4|36.59|42|N|,Danville|IL|US|-87.63|40.12|32|N|,Daqing|heilongjiang|CN|125|46.58|1604|W|ta cching;taching,Dar Bouazza|casablanca settat|MA|-7.82|33.52|165|W|,Dar es Salaam|dar es salaam region|TZ|39.27|-6.82|5383|W|dar es salam;daressalam;darusselam,Darbhanga|bihar|IN|85.9|26.15|296|W|,Darmstadt|hesse|DE|8.65|49.87|167|W|,Darnytsya|kyiv city|UA|30.7|50.42|343|W|darnytsia;darnytskyi raion;darnytskyi rayon;darnytskyy raion;darnytskyy rayon,Dartmouth|NS|CA|-63.58|44.67|101|N|darmouth,Darwin|northern territory|AU|130.84|-12.46|139|W|port darwin,Dasmarinas|calabarzon|PH|120.94|14.33|441|W|kota dasmarinas,Dasoguz|dasoguz|TM|59.97|41.84|201|W|dashoguz;daszoguz;dashowuz;tasjauz,Datong|shanxi|CN|113.29|40.09|1850|W|ta tchung,Daule|guayas|EC|-79.98|-1.86|173|W|,Davangere|karnataka|IN|75.93|14.47|435|W|,Davao|davao region|PH|125.61|7.07|1848|W|davao city,Davenport|IA|US|-90.58|41.52|102|N|,Davie|FL|US|-80.23|26.06|100|N|,Davis|CA|US|-121.74|38.54|67|N|,Dawei|tanintharyi region|MM|98.19|14.08|136|W|tavoy,Dawukou|ningxia|CN|106.4|39.04|131|W|,Daxing'anling|heilongjiang|CN|124.71|52.33|520|W|,Daye|hubei|CN|114.95|30.08|347|W|,Dayrah|dubai|AE|55.3|25.27|400|W|deira,Dayton|OH|US|-84.19|39.76|135|NW|,Daytona Beach|FL|US|-81.02|29.21|72|N|daytona,Dazhou|sichuan|CN|107.46|31.21|1589|W|ta cou,Dearborn|MI|US|-83.18|42.32|95|N|,Dearborn Heights|MI|US|-83.27|42.34|56|N|,Debre Birhan|amhara|ET|39.53|9.68|146|W|debre berhan;debre byrhan,Debre Mark'os|amhara|ET|37.73|10.35|140|W|,Debrecen|hajdu bihar|HU|21.62|47.53|202|W|debreczyn;debrecin;debretin,Decatur|IL|US|-88.95|39.84|73|N|,Decatur|AL|US|-86.98|34.61|55|N|,Deer Park|TX|US|-95.12|29.71|33|N|,Deer Park|NY|US|-73.33|40.76|27|N|,Deer Valley|AZ|US|-112.13|33.68|165|NW|,Deerfield Beach|FL|US|-80.1|26.32|79|N|,Dehiwala-Mount Lavinia|western province|LK|79.87|6.84|219|W|mount lavinia,Dehradun|uttarakhand|IN|78.03|30.32|522|W|dehra dun,Deir ez-Zor|deir ez zor|SY|40.14|35.34|271|W|dayr az zawr;dajr az zaur;dayr al zawr;deir azzor;deir al zour;deir el zor;deir es sor;der ezzor;deyrez zor;deyrizor,DeKalb|IL|US|-88.75|41.93|43|N|,Del Rio|TX|US|-100.9|29.36|36|N|,DeLand|FL|US|-81.3|29.03|30|N|de land,Delano|CA|US|-119.25|35.77|52|N|,Delaware|OH|US|-83.07|40.3|37|N|,Delegacion Cuajimalpa de Morelos|MX09|MX|-99.29|19.37|160|NW|cuajimalpa de morelos,Delhi|delhi|IN|77.23|28.65|11034|W|dilli;deli;sahdzahanabad,Delmas|ouest|HT|-72.3|18.54|395|W|,Delray Beach|FL|US|-80.07|26.46|66|N|del ray beach,Delta|BC|CA|-123.05|49.09|101|N|,Deltona|FL|US|-81.26|28.9|88|N|,Dengzhou|henan|CN|112.09|32.68|285|W|,Denizli|denizli|TR|29.09|37.77|313|W|,Denpasar|bali|ID|115.22|-8.65|670|W|dempasar;dempassar;denpasar bali;kota denpasar,Denton|TX|US|-97.13|33.21|131|NW|,Denver|CO|US|-104.98|39.74|729|NW|,Deoghar|jharkhand|IN|86.7|24.49|203|W|,Deoli|delhi|IN|77.23|28.5|169|W|,Depok|west java|ID|106.82|-6.4|2163|W|kota depok,Dera Ghazi Khan|punjab|PK|70.64|30.05|494|W|,Dera Ismail Khan|khyber pakhtunkhwa|PK|70.9|31.83|763|W|,Derby|england|GB|-1.48|52.92|270|W|,Derry Village|NH|US|-71.31|42.89|34|N|,Des Moines|IA|US|-93.61|41.6|214|NW|,Des Moines|WA|US|-122.32|47.4|31|N|desmoines,Des Plaines|IL|US|-87.88|42.03|58|N|,Desert Hot Springs|CA|US|-116.5|33.96|28|N|,Desmarchais-Crawford|QC|CA|-73.58|45.45|29|N|,Desna|kyiv city|UA|30.68|50.52|368|W|,Desnyanskyi|chernihiv oblast|UA|31.32|51.51|179|W|desnianskyi;desnianskyi raion;desnyanskyi rayon,DeSoto|TX|US|-96.86|32.59|52|N|,Dessalines|artibonite|HT|-72.52|19.26|181|W|,Dessie|amhara|ET|39.63|11.13|270|W|dese;desje,Detroit|MI|US|-83.05|42.33|645|NW|,Dewas|madhya pradesh|IN|76.06|22.97|289|W|,Deyang|sichuan|CN|104.38|31.13|735|W|te jang,Dezful|khuzestan|IR|48.41|32.38|264|W|dezfoul,Dezhou|shandong|CN|116.37|37.45|679|W|te cou,Dhaka|dhaka division|BD|90.41|23.71|10356|W|daca;dacca;dakka,Dhamar|dhamar|YE|44.41|14.54|160|W|damar,Dhanbad|jharkhand|IN|86.43|23.8|1196|W|,Dhangadhi|sudurpashchim pradesh|NP|80.59|28.7|204|W|,Dharan|koshi|NP|87.28|26.81|173|W|,Dharavi|maharashtra|IN|72.87|19.05|700|W|,Dhaulpur|rajasthan|IN|77.88|26.69|133|W|,Dhirkot|azad kashmir|PK|73.58|34.04|195|W|,Dhule|maharashtra|IN|74.78|20.9|375|W|,Di An|ho chi minh city hcmc|VN|106.77|10.91|463|W|,Diadema|sao paulo|BR|-46.62|-23.69|403|W|,Diamond Bar|CA|US|-117.81|34.03|56|N|,Dibrugarh|assam|IN|94.91|27.48|145|W|,Dieppe|NB|CA|-64.69|46.08|27|N|,Diepsloot|gauteng|ZA|28.01|-25.93|350|W|,Diez de Octubre|havana|CU|-82.36|23.09|227|W|,Digri|sindh|PK|69.11|25.16|234|W|,Dihok|duhok|IQ|42.99|36.87|340|W|dahuk;dohuk;duhok,Dijon|bourgogne|FR|5.01|47.31|159|W|digione,Dila|south ethiopia regional state|ET|38.32|6.42|158|W|,Dili|dili municipality|TL|125.57|-8.56|150|W|,Dimapur|nagaland|IN|93.72|25.91|135|W|,Dimitrovgrad|ulyanovsk|RU|49.62|54.21|132|W|dimitrowgrad,Din Daeng|bangkok|TH|100.57|13.79|130|W|,Dinajpur|rangpur division|BD|88.64|25.63|206|W|,Dinapore|bihar|IN|85.05|25.64|152|W|,Dinapur Nizamat|bihar|IN|85.05|25.64|182|W|,Dindigul|tamil nadu|IN|77.98|10.37|292|W|dindukkal,Dingxi|gansu|CN|104.62|35.57|420|W|,Dingzhou|hebei|CN|114.99|38.51|152|W|,Diourbel|diourbel region|SN|-16.24|14.65|157|W|,Dire Dawa|dire dawa|ET|41.87|9.59|343|W|dire daua,Disuq|kafr el sheikh|EG|30.65|31.13|149|W|,Divinopolis|minas gerais|BR|-44.89|-20.14|231|W|,Divo|goh djiboua|CI|-5.36|5.84|136|W|,Dix Hills|NY|US|-73.34|40.8|26|N|,Dixinn|conakry|GN|-13.67|9.55|137|W|,Diyarbakir|diyarbakir province|TR|40.22|37.91|1833|W|amida,Djelfa|djelfa|DZ|3.26|34.67|265|W|dzilfa,Djibouti|djibouti|DJ|43.15|11.59|626|W|cibuti;dschibuti;dzibuti;gibuti;yibuti,Dnipro|dnipropetrovsk|UA|35.04|48.47|968|W|dniepr;dnjepropetrovsk;dnepropetrovsk;caterinoslavia;catherinoslav;dnipropetrovs k;dnipropetrovsk;dniproslav;katerynoslav;novorosiynsk;novyy kodak;sicheslav,Dniprovskyi|kyiv city|UA|30.6|50.45|357|W|,Dodge City|KS|US|-100.02|37.75|27|N|,Dodoma|dodoma|TZ|35.74|-6.17|765|W|,Doha|baladiyat ad dawhah|QA|51.53|25.29|344|W|ad dauha;dauha,Doilungdeqen|tibet|CN|90.99|29.66|137|W|,Dollard-Des Ormeaux|QC|CA|-73.82|45.49|48|N|,Dolores Hidalgo|MX11|MX|-100.93|21.16|67|N|ciudad de dolores hidalgo,Dombivali|maharashtra|IN|73.08|19.22|1247|W|dombivli,Don Valley Village|ON|CA|-79.35|43.78|27|N|,Donaustadt|state of vienna|AT|16.46|48.23|187|W|,Donetsk|donetsk|UA|37.8|48.02|901|W|donezk;donec k;donetk;donieck;doneck;dinetsk;dinetske;iuziv;iuzivka;iuzove;oleksandrivka;yuziv;yuzove,Dong Ha|quang tri|VN|107.1|16.82|164|W|,Dongguan|guangdong|CN|113.75|23.02|9644|W|,Donghai|guangdong|CN|115.64|22.95|264|W|,Dongling|liaoning|CN|123.58|41.81|171|W|,Dongtai|jiangsu|CN|120.31|32.85|262|W|,Dongyang|zhejiang|CN|120.23|29.27|130|W|,Dongying|shandong|CN|118.49|37.46|998|W|tung jing;dong dinh,Doral|FL|US|-80.36|25.82|75|N|,Dorchester|MA|US|-71.07|42.3|97|N|,Dorset Park|ON|CA|-79.28|43.75|25|N|,Dortmund|north rhine westphalia|DE|7.47|51.51|588|W|,Dosquebradas|risaralda department|CO|-75.67|4.84|206|W|dos quebradas,Dothan|AL|US|-85.39|31.22|68|N|,Douala|littoral|CM|9.7|4.05|1338|W|duala,Douglasville|GA|US|-84.75|33.75|32|N|,Dourados|mato grosso do sul|BR|-54.81|-22.22|264|W|,Dover|DE|US|-75.52|39.16|39|N|,Dover|NH|US|-70.87|43.2|30|N|,Dovercourt-Wallace Emerson-Junction|ON|CA|-79.44|43.67|36|N|,Downers Grove|IL|US|-88.01|41.81|49|N|,Downey|CA|US|-118.13|33.94|114|N|,Downsview-Roding-CFB|ON|CA|-79.49|43.73|35|N|,Downtown DC|DC|US|-77.02|38.89|52|N|,Downtown Halifax|NS|CA|-63.58|44.65|25|N|,Downtown Vancouver|BC|CA|-123.12|49.28|62|N|,Dracut|MA|US|-71.3|42.67|28|N|,Draper|UT|US|-111.86|40.52|46|N|,Dresden|saxony|DE|13.74|51.05|564|W|dresda;dresde;drezno;drazdany,Drexel Heights|AZ|US|-111.03|32.14|27|N|,Drexel Hill|PA|US|-75.29|39.95|28|N|,Drummondville|QC|CA|-72.48|45.88|59|N|,Dubai|dubai|AE|55.31|25.08|3790|W|dubai city;dubaj,Dubai Investments Park|dubai|AE|55.16|25.01|160|W|,Dublin|leinster|IE|-6.25|53.33|1024|W|dublin city;dublino,Dublin|CA|US|-121.94|37.7|57|N|,Dublin|OH|US|-83.11|40.1|45|N|,Dubreka|kindia|GN|-13.52|9.79|182|W|,Dubuque|IA|US|-90.66|42.5|58|N|,Dudley|england|GB|-2.08|52.5|199|W|,Duesseldorf|north rhine westphalia|DE|6.78|51.22|618|W|dusseldorf,Duezce|duzce|TR|31.16|40.84|194|W|duzce,Duisburg|north rhine westphalia|DE|6.77|51.43|504|W|duisbourg;duisburgo,Duluth|MN|US|-92.11|46.78|86|N|,Duluth|GA|US|-84.14|34|29|N|,Dumai|riau|ID|101.44|1.67|349|W|kota dumai,Duncanville|TX|US|-96.91|32.65|39|N|,Dundalk|MD|US|-76.52|39.25|63|N|,Dundee|scotland|GB|-2.97|56.47|148|W|,Dundo|luanda norte|AO|20.82|-7.37|177|W|,Dunedin|otago|NZ|170.5|-45.87|132|W|,Dunedin|FL|US|-82.77|28.02|36|N|,Dunhua|jilin|CN|128.23|43.37|148|W|,Dunhuang|gansu|CN|94.68|40.17|186|W|tun chuang;don hoang,Dunwoody|GA|US|-84.33|33.95|48|N|,Duque de Caxias|rio de janeiro|BR|-43.31|-22.79|866|W|,Durban|kwazulu natal|ZA|31.03|-29.86|3338|W|port natal,Durg|chhattisgarh|IN|81.28|21.19|268|W|,Durgapur|west bengal|IN|87.31|23.52|518|W|,Durham|NC|US|-78.9|35.99|257|NW|,Durres|durres county|AL|19.45|41.32|195|W|drac;durazzo,Dushanbe|dushanbe|TJ|68.78|38.54|679|W|doesjanbe;douchanbe;duschanbe;dusjanbe;duszanbe;dusanbe,Duvernay|QC|CA|-73.67|45.58|37|N|,Duyun|guizhou|CN|107.52|26.27|198|W|,Dyker Heights|NY|US|-74.01|40.62|34|N|,Dzerzhinsk|nizhny novgorod oblast|RU|43.46|56.24|233|W|dserschinsk;dzerjinsk;dzerzjinsk;dzerzinsk;dzierzynsk,E'zhou|hubei|CN|114.89|30.4|668|W|ezhou;wuchang,Eagan|MN|US|-93.17|44.8|66|N|,Eagle Mountain|UT|US|-112.01|40.31|27|N|,Eagle Pass|TX|US|-100.5|28.71|28|N|,East Boston|MA|US|-71.04|42.38|43|N|,East Brunswick|NJ|US|-74.42|40.43|48|N|e brunswick;east brunswick township,East Chattanooga|TN|US|-85.25|35.07|154|NW|,East Chicago|IN|US|-87.45|41.64|28|N|,East Concord|NH|US|-71.54|43.24|42|N|,East Flatbush|NY|US|-73.93|40.65|178|NW|,East Florence|AL|US|-87.65|34.81|35|N|,East Hampton|VA|US|-76.33|37.04|147|NW|,East Harlem|NY|US|-73.94|40.79|115|N|harlem del este,East Hartford|CT|US|-72.61|41.78|51|N|,East Hastings|BC|CA|-123.06|49.27|80|N|,East Haven|CT|US|-72.87|41.28|29|N|,East Helsinki|uusimaa|FI|25.08|60.21|170|W|ita helsinki;ostra helsingfors,East Hill-Meridian|WA|US|-122.17|47.41|29|N|,East Honolulu|HI|US|-157.72|21.29|49|N|,East Independence|MO|US|-94.36|39.1|110|N|,East Jerusalem|west bank|PS|35.23|31.78|428|W|dogu kudus;gerusalemme est;jerusalem oriental;jerusalen este;jerusalem est;oost jeruzalem;ostjerusalem;vychodni jeruzalem;wschodnia jerozolima;yerusalem timur;ostra jerusalem;ost jerusalem;dong jerusalem,East Lake|FL|US|-82.69|28.11|30|N|,East Lansing|MI|US|-84.48|42.74|48|N|,East London|eastern cape|ZA|27.91|-33.02|478|W|buffalo city;kugompo city,East Los Angeles|CA|US|-118.17|34.02|126|N|dogu los angeles;este de los angeles,East Meadow|NY|US|-73.56|40.71|38|N|,East New York|NY|US|-73.88|40.67|173|NW|,East Norwalk|CT|US|-73.4|41.11|84|N|,East Orange|NJ|US|-74.2|40.77|64|N|,East Palo Alto|CA|US|-122.14|37.47|29|N|palo alto timur,East Pensacola Heights|FL|US|-87.18|30.43|54|N|,East Point|GA|US|-84.44|33.68|35|N|,East Providence|RI|US|-71.37|41.81|47|N|dong providence,East Saint Louis|IL|US|-90.15|38.62|27|N|,East Village|NY|US|-73.99|40.73|62|N|,Easton|PA|US|-75.22|40.69|26|N|,Eastpointe|MI|US|-82.96|42.47|32|N|,Eastvale|CA|US|-117.56|33.96|59|N|,Eau Claire|WI|US|-91.5|44.81|67|N|,Ebetsu|hokkaido|JP|141.55|43.11|133|W|,Ebina|kanagawa|JP|139.4|35.38|136|W|,Ebute Ikorodu|lagos|NG|3.49|6.6|535|W|,Ecatepec de Morelos|MX15|MX|-99.06|19.6|1645|NW|ecatepec,Echo Park|CA|US|-118.26|34.08|43|N|,Ede|osun state|NG|4.44|7.74|159|W|,Eden Prairie|MN|US|-93.47|44.85|63|N|,Edgewater|IL|US|-87.66|41.98|54|N|,Edgewood|MD|US|-76.29|39.42|25|N|,Edina|MN|US|-93.35|44.89|50|N|,Edinburg|TX|US|-98.16|26.3|84|N|,Edinburgh|scotland|GB|-3.2|55.95|514|W|edimburgo;edynburg;edimbourg,Edirne|edirne|TR|26.56|41.68|180|W|adrianopol;adrianopoli,Edison|NJ|US|-74.41|40.52|102|N|gmina edison,Edmond|OK|US|-97.48|35.65|90|N|,Edmonds|WA|US|-122.38|47.81|41|N|,Edmonton|AB|CA|-113.47|53.55|1010|NW|,Edogawe|tokyo|JP|139.87|35.69|697|W|edogawa city,Efon-Alaaye|ekiti state|NG|4.92|7.66|279|W|,Egypt Lake-Leto|FL|US|-82.51|28.02|35|N|,Eimsbuettel|hamburg|DE|9.96|53.57|269|W|eimsbuttel;bezirk eimsbuttel;distretto di eimsbuttel;hambourg eimsbuttel;hamburg eimsbuttel,Eindhoven|north brabant|NL|5.48|51.44|235|W|,Eixample|catalonia|ES|2.16|41.39|266|W|distrito del ensanche,Ejigbo|osun state|NG|4.31|7.9|138|W|,El Achir|bordj bou arreridj|DZ|4.63|36.06|158|W|,El Cajon|CA|US|-116.96|32.79|103|N|,El Centro|CA|US|-115.56|32.79|43|N|,El Daein|eastern darfur|SD|26.13|11.46|264|W|ad du ayn;ad duajn;ad du ain;ed daein,El Dibir|bari|SO|51.22|11.77|200|W|,El Dorado Hills|CA|US|-121.08|38.69|42|N|,El Eulma|setif|DZ|5.69|36.15|145|W|,El Fasher|northern darfur|SD|25.35|13.63|252|W|al fashir;al faschir,El Geneina Fort|western darfur|SD|22.46|13.47|134|W|,El Jadida|casablanca settat|MA|-8.51|33.26|212|W|al dzadida;el yadida;mazagao;castilho real;mazaghan,El Limon|aragua|VE|-67.63|10.31|148|W|,El Mirage|AZ|US|-112.32|33.61|33|N|,El Monte|CA|US|-118.03|34.07|116|N|,El Obeid|north kordofan|SD|30.22|13.18|393|W|al ubayyid,El Oued|el oued|DZ|6.86|33.36|186|W|al wadi;oued souf,El Paso|TX|US|-106.49|31.76|678|NW|,El Pueblito|MX22|MX|-100.44|20.54|71|N|corregidora,El Tigre|anzoategui|VE|-64.25|8.89|222|W|,El Vigia|merida|VE|-71.66|8.61|162|W|,Elazig|elazig|TR|39.22|38.67|443|W|,Elche|valencia|ES|-0.7|38.26|234|W|elx,Eldersburg|MD|US|-76.95|39.4|30|N|eldersburgh,Eldoret|uasin gishu county|KE|35.27|0.52|475|W|,Elektrostal'|moscow oblast|RU|38.46|55.79|144|W|,Elgin|IL|US|-88.28|42.04|112|N|,Elizabeth|NJ|US|-74.21|40.66|129|N|,Elizabethtown|KY|US|-85.86|37.69|29|N|,Elk Grove|CA|US|-121.37|38.41|166|NW|,Elk Grove Village|IL|US|-87.97|42|33|N|,Elkhart|IN|US|-85.98|41.68|52|N|,Ellendale|TN|US|-89.83|35.23|25|N|,Ellicott City|MD|US|-76.8|39.27|65|N|,Elmhurst|NY|US|-73.88|40.74|113|N|,Elmhurst|IL|US|-87.94|41.9|45|N|,Elmira|NY|US|-76.81|42.09|28|N|,Elmont|NY|US|-73.71|40.7|33|N|,Eloy Alfaro|guayas|EC|-79.84|-2.17|315|W|duran,Eluru|andhra pradesh|IN|81.1|16.71|218|W|,Elyria|OH|US|-82.11|41.37|53|N|,Emalahleni|mpumalanga|ZA|29.23|-25.87|373|W|,eMbalenhle|mpumalanga|ZA|29.07|-26.53|142|W|,Embu das Artes|sao paulo|BR|-46.85|-23.65|259|W|embu arte,Emiliano Zapata|MX17|MX|-99.18|18.84|49|N|,Emiliano Zapata|MX15|MX|-98.97|19.34|25|N|,Eminabad|punjab|PK|74.26|32.04|150|W|,Empalme|MX26|MX|-110.81|27.96|42|N|,Encanto|AZ|US|-112.08|33.48|54|N|,Encarnacion de Diaz|MX14|MX|-102.24|21.53|25|N|la chona,Enchanted Hills|NM|US|-106.59|35.34|87|N|,Encinitas|CA|US|-117.29|33.04|62|N|,Encino|CA|US|-118.5|34.16|44|N|,Enfield|CT|US|-72.59|41.98|45|N|,Enfield Town|england|GB|-0.08|51.65|156|W|enfield,Engels|saratov oblast|RU|46.11|51.48|196|W|enehl s;engel s;pokrovs ka sloboda,Englewood|CO|US|-104.99|39.65|33|N|new dawn rejuvenation,Englewood|NJ|US|-73.97|40.89|28|N|,Englewood|IL|US|-87.65|41.78|26|N|,Enid|OK|US|-97.88|36.4|51|N|,Enschede|overijssel|NL|6.9|52.22|153|W|,Ensenada|MX02|MX|-116.6|31.87|443|NW|enseada,Enshi|hubei|CN|109.48|30.3|279|W|,Enterprise|NV|US|-115.24|36.03|108|N|,Enterprise|AL|US|-85.86|31.32|27|N|,Enugu|enugu state|NG|7.5|6.44|950|W|,Envigado|antioquia|CO|-75.59|6.18|163|W|,Epworth|harare|ZW|31.15|-17.89|206|W|,Erbil|erbil|IQ|44.01|36.19|1612|W|arbil;hawler;irbil,Eregli|konya|TR|34.05|37.51|156|W|heraclea;heraclea minoa;herakleia,Erfurt|thuringia|DE|11.04|50.98|218|W|,Erie|PA|US|-80.09|42.13|99|N|,Erode|tamil nadu|IN|77.73|11.34|521|W|irodu,Erzincan|erzincan|TR|39.49|39.74|150|W|erzincam;erzinca,Erzurum|erzurum|TR|41.28|39.91|767|W|,Escarcega|MX04|MX|-90.75|18.61|29|N|,Escondido|CA|US|-117.09|33.12|151|NW|,Escuinapa de Hidalgo|MX25|MX|-105.78|22.83|30|N|,Escuintla|escuintla|GT|-90.79|14.3|156|W|,Esenler|istanbul|TR|28.88|41.04|520|W|,Esenyurt|istanbul|TR|28.68|41.03|983|W|,Eskisehir|eskisehir|TR|30.52|39.78|921|W|,Eslamshahr|tehran|IR|51.24|35.55|450|W|eslamchahr;eslamschahr;shadshahr,Esmeraldas|esmeraldas|EC|-79.65|0.96|218|W|,Esna|qena|EG|32.55|25.29|462|W|,Esperanza|MX26|MX|-109.93|27.58|38|N|,Espoo|uusimaa|FI|24.65|60.21|323|W|esbo,Essen|north rhine westphalia|DE|7.01|51.46|593|W|,Essex|MD|US|-76.47|39.31|39|N|,Estero|FL|US|-81.81|26.44|30|N|,Etah|uttar pradesh|IN|78.66|27.56|131|W|,Etawah|uttar pradesh|IN|79.02|26.78|257|W|,Etobicoke|ON|CA|-79.57|43.64|365|NW|,Etwatwa|gauteng|ZA|28.45|-26.13|151|W|,Euclid|OH|US|-81.53|41.59|47|N|,Eugene|OR|US|-123.09|44.05|176|NW|,Euless|TX|US|-97.08|32.84|54|N|,Eureka|CA|US|-124.16|40.8|27|N|,Evans|GA|US|-82.13|33.53|29|N|,Evanston|IL|US|-87.69|42.04|75|N|,Evansville|IN|US|-87.56|37.97|119|N|,Evaton|gauteng|ZA|27.85|-26.53|725|W|,Everett|WA|US|-122.2|47.98|108|N|,Everett|MA|US|-71.05|42.41|46|N|,'Ewa Gentry-West Loch|HI|US|-158.03|21.35|35|N|,Ewing|NJ|US|-74.8|40.27|36|N|,Exeter|england|GB|-3.53|50.72|130|W|,Ezhou|hubei|CN|114.83|30.4|193|W|,Facatativa|cundinamarca|CO|-74.35|4.81|141|W|,Fair Lawn|NJ|US|-74.13|40.94|33|N|,Fair Oaks|CA|US|-121.27|38.64|30|N|,Fairbanks|AK|US|-147.72|64.84|32|N|,Fairborn|OH|US|-84.02|39.82|33|N|,Fairfield|CA|US|-122.04|38.25|112|N|,Fairfield|CT|US|-73.26|41.14|59|N|,Fairfield|OH|US|-84.56|39.35|42|N|,Fairview|BC|CA|-123.13|49.26|33|N|,Faisalabad|punjab|PK|73.09|31.42|3800|W|fajsalabad;lyallpur,Fall River|MA|US|-71.16|41.7|94|N|,Fallbrook|CA|US|-117.25|33.38|30|N|,Fallingbrook|ON|CA|-75.48|45.48|25|N|,Fangchenggang|guangxi|CN|108.36|21.77|276|W|,Fanling|north district|HK|114.14|22.49|263|W|,Far Rockaway|NY|US|-73.76|40.61|39|N|,Fardis|tehran|IR|51|35.76|181|W|,Fargo|ND|US|-96.79|46.88|118|N|,Faridabad|haryana|IN|77.31|28.41|1414|W|,Farmers Branch|TX|US|-96.9|32.93|32|N|,Farmington|NM|US|-108.22|36.73|42|N|,Farmington|CT|US|-72.83|41.72|25|N|,Farmington Hills|MI|US|-83.38|42.49|81|N|,Farrukhabad|uttar pradesh|IN|79.58|27.39|241|W|,Fatehpur|uttar pradesh|IN|80.81|25.93|166|W|,Fatih|istanbul|TR|28.94|41.02|356|W|,Favoriten|state of vienna|AT|16.38|48.16|201|W|,Fayetteville|NC|US|-78.88|35.05|201|NW|,Fayetteville|AR|US|-94.16|36.06|82|N|,Fazenda Rio Grande|parana|BR|-49.31|-25.66|148|W|,Federal Way|WA|US|-122.31|47.32|95|N|,Feira de Santana|bahia|BR|-38.97|-12.27|616|W|,Felipe Carrillo Puerto|MX23|MX|-88.05|19.58|25|N|,Fendou|heilongjiang|CN|124.86|46.64|226|W|,Fengcheng|chongqing|CN|107.06|29.83|175|W|changshohein,Fengcheng|jiangsu|CN|116.59|34.7|161|W|,Fenghuang|hunan|CN|109.6|27.94|370|W|,Fengshan|takao|TW|120.36|22.63|356|W|feng san;fongshan district,Fengxiang|shanghai|CN|121.47|30.86|1140|W|,Fenway/Kenmore|MA|US|-71.1|42.34|37|N|,Fergana|fergana|UZ|71.78|40.38|299|W|ferghana,Ferrara|emilia romagna|IT|11.62|44.84|132|W|ferrare,Ferraz de Vasconcelos|sao paulo|BR|-46.37|-23.54|179|W|,Ferry Pass|FL|US|-87.21|30.51|28|N|,Fes|fes meknes|MA|-5|34.03|1191|W|fez,Fes al Bali|fes meknes|MA|-4.95|34.07|156|W|,Fianarantsoa|upper matsiatra|MG|47.09|-21.45|203|W|,Financial District|NY|US|-74.01|40.71|60|N|,Findlay|OH|US|-83.65|41.04|41|N|,Firozabad|uttar pradesh|IN|78.4|27.15|306|W|,Fishers|IN|US|-86.01|39.96|76|N|,Fitchburg|MA|US|-71.8|42.58|40|N|,Fitchburg|WI|US|-89.47|42.96|27|N|,Flagami|FL|US|-80.32|25.76|50|N|,Flagstaff|AZ|US|-111.65|35.2|70|N|,Flatbush|NY|US|-73.96|40.65|93|N|,Flatlands|NY|US|-73.93|40.62|63|N|,Fleetwood|BC|CA|-122.8|49.17|65|N|,Fleming Island|FL|US|-81.72|30.09|27|N|,Flint|MI|US|-83.69|43.01|98|N|,Florence|tuscany|IT|11.25|43.78|367|W|florencja;firenze;floransa;florencia;florencie;florens;florenz;florenca;florenta,Florence|AL|US|-87.68|34.8|40|N|,Florence|SC|US|-79.76|34.2|38|N|,Florence|KY|US|-84.63|39|32|N|,Florence|AZ|US|-111.39|33.03|31|N|,Florence-Graham|CA|US|-118.24|33.97|63|N|,Florencia|caqueta|CO|-75.6|1.62|168|W|,Florianopolis|santa catarina|BR|-48.55|-27.6|508|W|floripa;nossa senhora do desterro;santa catherina,Floridablanca|santander department|CO|-73.09|7.06|267|W|,Floridsdorf|state of vienna|AT|16.4|48.25|162|W|,Florin|CA|US|-121.41|38.5|47|N|,Florissant|MO|US|-90.32|38.79|52|N|,Flower Mound|TX|US|-97.1|33.01|71|N|,Foggia|apulia|IT|15.55|41.46|137|W|,Folsom|CA|US|-121.18|38.68|76|N|,Fond du Lac|WI|US|-88.44|43.77|42|N|,Fontana|CA|US|-117.44|34.09|212|NW|,Fontanar|havana|CU|-82.41|23.02|178|W|,Foothill Farms|CA|US|-121.35|38.68|33|N|,Fordham|NY|US|-73.9|40.86|94|N|,Forest Hills|NY|US|-73.85|40.72|67|N|,Forest Hills|MI|US|-85.49|42.96|25|N|,Formosa|formosa|AR|-58.17|-26.18|222|W|ciudad de formosa,Fort Bragg|NC|US|-79.01|35.14|29|N|phao dai bragg;fort liberty,Fort Cavazos|TX|US|-97.78|31.13|29|N|,Fort Collins|CO|US|-105.08|40.59|170|NW|ft collins,Fort Erie|ON|CA|-78.93|42.9|30|N|,Fort Garry South|MB|CA|-97.16|49.79|65|N|,Fort Hamilton|NY|US|-74.03|40.62|28|N|,Fort Lauderdale|FL|US|-80.14|26.12|183|NW|,Fort Lee|NJ|US|-73.97|40.85|36|N|,Fort McMurray|AB|CA|-111.38|56.73|66|N|,Fort Myers|FL|US|-81.84|26.62|74|N|,Fort Pierce|FL|US|-80.33|27.45|44|N|ft pierce,Fort Smith|AR|US|-94.4|35.39|88|N|,Fort Wayne|IN|US|-85.13|41.13|260|NW|,Fort Worth|TX|US|-97.32|32.73|1008|NW|ft worth,Fortaleza|ceara|BR|-38.54|-3.72|2400|W|,Fortechnyi|kirovohrad|UA|32.25|48.5|167|W|,Fortuna Foothills|AZ|US|-114.41|32.66|26|N|,Foshan|guangdong|CN|113.13|23.03|9042|W|fo san,Foster City|CA|US|-122.27|37.56|33|N|,Foumban|west|CM|10.9|5.73|130|W|foumbam;fumban,Fountain|CO|US|-104.7|38.68|27|N|,Fountain Valley|CA|US|-117.95|33.71|56|N|,Fountainebleau|FL|US|-80.35|25.77|59|N|fountainbleau,Four Corners|FL|US|-81.65|28.33|26|N|,Foz do Iguacu|parana|BR|-54.59|-25.55|297|W|foz de iguazu,Fraccionamiento Real Palmas|MX19|MX|-100.16|25.9|34|N|,Framingham|MA|US|-71.42|42.28|68|N|,Framingham Center|MA|US|-71.44|42.3|65|N|,Franca|sao paulo|BR|-47.4|-20.54|365|W|,Franceville|haut ogooue|GA|13.58|-1.63|132|W|,Francisco I. Madero|MX07|MX|-103.27|25.77|26|N|,Francisco Morato|sao paulo|BR|-46.75|-23.28|165|W|,Franco da Rocha|sao paulo|BR|-46.73|-23.32|144|W|,Frankfort|KY|US|-84.87|38.2|28|N|,Frankfurt am Main|hesse|DE|8.68|50.12|650|W|francfort sur le main;francoforte sul meno;francfort del meno;francfort;francoforte;frankfurt;frankfurt nad menem;frankfurt nad mohanem;franckfurt,Franklin|TN|US|-86.87|35.93|72|N|,Franklin|WI|US|-88.04|42.89|36|N|,Franklin|MA|US|-71.4|42.08|30|N|,Franklin Square|NY|US|-73.68|40.71|29|N|,Fraser Heights|BC|CA|-122.78|49.2|25|N|,Frederick|MD|US|-77.41|39.41|69|N|,Fredericksburg|VA|US|-77.46|38.3|28|N|,Fredericton|NB|CA|-66.67|45.95|63|N|,Fredericton Northside|NB|CA|-66.64|45.98|28|N|northside fredericton,Freeport|NY|US|-73.58|40.66|43|N|,Freetown|western area|SL|-13.24|8.49|802|W|,Freguesia do O|sao paulo|BR|-46.7|-23.5|137|W|nossa senhora do o,Freiburg|baden wurttemberg|DE|7.85|48|237|W|freiburg im breisgau;fribourg en brisgau;friburgo de brisgovia;friburgo in brisgovia;fryburg bryzgowijski,Fremont|CA|US|-121.99|37.55|232|NW|,Fremont|NE|US|-96.5|41.43|26|N|,Fresh Meadows|NY|US|-73.79|40.73|28|N|,Fresnillo|MX32|MX|-102.87|23.17|143|NW|,Fresno|CA|US|-119.77|36.75|542|NW|,Fridley|MN|US|-93.26|45.09|27|N|,Friendswood|TX|US|-95.2|29.53|38|N|,Frisco|TX|US|-96.82|33.15|154|NW|,Frontera|MX07|MX|-101.45|26.93|69|N|ciudad frontera,Fruit Cove|FL|US|-81.64|30.11|29|N|,Fu'an|fujian|CN|119.64|27.09|154|W|,Fuchu|tokyo|JP|139.48|35.67|262|W|,Fuding|fujian|CN|120.21|27.33|192|W|,Fuencarral|madrid|ES|-3.68|40.5|238|W|,Fuencarral-El Pardo|madrid|ES|-3.73|40.5|220|W|,Fuenlabrada|madrid|ES|-3.79|40.28|190|W|,Fuentes del Valle|MX15|MX|-99.14|19.63|74|N|,Fuerth|bavaria|DE|10.99|49.48|132|W|furth,Fuji|shizuoka|JP|138.68|35.17|245|W|fudzi,Fuji|sichuan|CN|105.37|29.15|131|W|,Fujieda|shizuoka|JP|138.27|34.87|145|W|,Fujinomiya|shizuoka|JP|138.62|35.22|132|W|,Fujisawa|kanagawa|JP|139.48|35.35|439|W|,Fukayacho|saitama|JP|139.28|36.2|141|W|,Fukui-shi|fukui|JP|136.22|36.06|262|W|,Fukuoka|fukuoka|JP|130.42|33.6|1612|W|fukuoka shi;fukuokashi,Fukushima|fukushima|JP|140.47|37.75|294|W|,Fukuyama|hiroshima|JP|133.37|34.48|468|W|,Fuling|chongqing|CN|107.39|29.71|268|W|fuchow,Fullerton|CA|US|-117.93|33.87|140|NW|,Funtua|katsina state|NG|7.31|11.52|136|W|,Fushun|liaoning|CN|123.94|41.89|1400|W|fu sun,Fuxin|liaoning|CN|121.66|42.02|689|W|fu sin,Fuyang|anhui|CN|115.82|32.9|1768|W|fu jang,Fuyu|jilin|CN|124.82|45.18|138|W|,Fuzhou|fujian|CN|119.31|26.06|3740|W|fu cou;fucheu;phuc chau,Fuzhou|jiangxi|CN|116.33|27.96|1089|W|fu cou,Fyzabad|uttar pradesh|IN|82.15|26.78|153|W|faizabad,Gaborone|gaborone|BW|25.91|-24.65|246|W|,Gabriel Leyva Solano|MX25|MX|-108.64|25.66|27|N|benito juarez;leyva solano,Gadag|karnataka|IN|75.63|15.43|172|W|,Gadag-Betageri|karnataka|IN|75.62|15.42|172|W|,Gadsden|AL|US|-86.01|34.01|36|N|,Gage Park|IL|US|-87.7|41.8|41|N|,Gagnoa|goh djiboua|CI|-5.95|6.13|277|W|,Gahanna|OH|US|-82.88|40.02|34|N|,Gainesville|FL|US|-82.32|29.65|145|NW|,Gainesville|GA|US|-83.82|34.3|38|N|,Gaithersburg|MD|US|-77.2|39.14|67|N|,Gajuwaka|andhra pradesh|IN|83.22|17.7|258|W|,Galati|galati county|RO|28.05|45.44|217|W|galatz;galacz,Galesburg|IL|US|-90.37|40.95|31|N|,Gallatin|TN|US|-86.45|36.39|34|N|,Galt|CA|US|-121.3|38.25|25|N|,Galveston|TX|US|-94.8|29.3|50|N|,Gama|federal district|BR|-48.07|-16.03|139|W|,Gandajika|lomami|CD|23.95|-6.75|208|W|,Gandhidham|gujarat|IN|70.13|23.08|247|W|,Gandhinagar|gujarat|IN|72.68|23.22|292|W|,Gangneung|gangwon do|KR|128.87|37.75|208|W|,Ganja|gence|AZ|46.36|40.68|330|W|ganca;gandja;gandza;gence;gandzja,Ganzhou|jiangxi|CN|114.93|25.85|1977|W|cam chau;kan cou,Gao|gao|ML|-0.04|16.27|133|W|,Gaomi|shandong|CN|119.75|36.38|391|W|,Gaoping|sichuan|CN|106.1|30.78|204|W|,Gaozhou|guangdong|CN|110.86|21.92|292|W|,Garanhuns|pernambuco|BR|-36.5|-8.88|151|W|,Garcia|MX19|MX|-100.59|25.8|93|N|,Garden City|KS|US|-100.87|37.97|27|N|,Garden City|MI|US|-83.33|42.33|26|N|,Garden Grove|CA|US|-117.94|33.77|175|NW|,Gardena|CA|US|-118.31|33.89|60|N|,Garfield|NJ|US|-74.11|40.88|31|N|,Garfield Heights|OH|US|-81.61|41.42|28|N|garfield hts,Garhi Khairo|sindh|PK|67.98|28.06|193|W|,Garissa|garissa county|KE|39.65|-0.45|163|W|,Garland|TX|US|-96.64|32.91|236|NW|,Garner|NC|US|-78.61|35.71|28|N|,Garut|west java|ID|107.92|-7.25|131|W|,Gary|IN|US|-87.35|41.59|77|N|,Gasteiz / Vitoria|basque country|ES|-2.67|42.85|257|W|vitoria;vitoria gasteiz,Gastonia|NC|US|-81.19|35.26|74|N|,Gatineau|QC|CA|-75.7|45.48|300|NW|,Gaya|bihar|IN|85|24.8|474|W|,Gaza|gaza strip|PS|34.47|31.5|410|W|gaza city;gazze,Gaziantep|gaziantep|TR|37.38|37.06|2222|W|,Gazipur|dhaka division|BD|90.42|24|2674|W|,Gboko|benue state|NG|9|7.32|365|W|,Gbongan|osun state|NG|4.35|7.48|139|W|,Gdansk|pomerania|PL|18.65|54.35|487|W|danzica;danzig,Gdynia|pomerania|PL|18.53|54.52|257|W|gdingen;gdyne,Gebze|kocaeli|TR|29.43|40.8|281|W|,Geelong|victoria|AU|144.36|-38.15|282|W|,Geita|geita|TZ|32.23|-2.87|318|W|,Gejiu|yunnan|CN|103.15|23.36|136|W|,Gelsenkirchen|north rhine westphalia|DE|7.1|51.51|270|W|,Gemena|sud ubangi|CD|19.77|3.26|197|W|,General Santos|soccsksargen|PH|125.17|6.11|722|W|kota general santos,Geneva|geneva|CH|6.15|46.2|201|W|cenevre;genebra;geneve;genewa;genf;ginebra;ginevra;jenewa;zeneva,Genoa|liguria|IT|8.94|44.4|580|W|genova;cenova;genua;genes;janov,Gent|flanders|BE|3.72|51.05|265|W|gand;gandawa;gante;ghent,Geoje|gyeongsangnam do|KR|128.71|34.81|232|W|,George|western cape|ZA|22.46|-33.96|188|W|,George Town|penang|MY|100.34|5.41|158|W|georgetown;penang,Georgetown|demerara mahaica|GY|-58.16|6.8|235|W|,Georgetown|TX|US|-97.68|30.63|63|N|,Georgetown|ON|CA|-79.92|43.65|44|N|,Georgetown|KY|US|-84.56|38.21|32|N|,Germantown|MD|US|-77.27|39.17|86|N|,Germantown|TN|US|-89.81|35.09|39|N|,Germiston|gauteng|ZA|28.18|-26.23|255|W|germinston,Getafe|madrid|ES|-3.73|40.31|187|W|,Ghardaia|ghardaia|DZ|3.67|32.49|142|W|gardaya;ghardaja,Ghaziabad|uttar pradesh|IN|77.44|28.67|1199|W|gaziabade,Ghazni|ghazni|AF|68.42|33.55|141|W|gazni,Ghulja|xinjiang|CN|81.32|43.92|269|W|yining,Gia Lam|hanoi|VN|105.94|21.02|309|W|,Gia Rai|ca mau|VN|105.46|9.23|145|W|,Gifu|gifu|JP|136.76|35.42|402|W|gifu city,Gijang|busan|KR|129.21|35.24|176|W|,Gijon|asturias|ES|-5.66|43.54|271|W|,Gilbert|AZ|US|-111.79|33.35|247|NW|,Gilgit|gilgit baltistan|PK|74.31|35.92|216|W|,Gillette|WY|US|-105.5|44.29|32|N|,Gilroy|CA|US|-121.57|37.01|53|N|,Gimcheon|gyeongsangbuk do|KR|128.12|36.12|150|W|kimcchon,Gimpo-si|gyeonggi do|KR|126.71|37.62|203|W|gimpo,Gingoog|northern mindanao|PH|125.1|8.83|138|W|,Girga|sohag|EG|31.89|26.34|151|W|jirja,Gisenyi|western province|RW|29.26|-1.7|172|W|gosenyi,Giza|giza|EG|31.21|30.01|4367|W|gizeh;gize;guiza,GJien Ban|da nang city|VN|108.25|15.89|226|W|,GJong GJa|hanoi|VN|105.83|21.01|371|W|,GJong Hoi|quang tri|VN|106.62|17.47|133|W|dong hoi,GJong Xoai|dong nai|VN|106.88|11.53|168|W|dong xoai,GJuc Pho|quang ngai|VN|108.96|14.81|155|W|,GJuc Trong|lam dong|VN|108.37|11.74|161|W|lien nghia,Gladstone|MO|US|-94.55|39.2|26|N|,Glasgow|scotland|GB|-4.26|55.87|626|W|,Glastonbury|CT|US|-72.61|41.71|31|N|,Glen Burnie|MD|US|-76.62|39.16|67|N|,Glen Cove|NY|US|-73.63|40.86|27|N|,Glen Ellyn|IL|US|-88.07|41.88|28|N|,Glendale|AZ|US|-112.19|33.54|240|NW|,Glendale|CA|US|-118.26|34.14|201|NW|,Glendale|NY|US|-73.89|40.7|34|N|,Glendale Heights|IL|US|-88.06|41.91|34|N|,Glendora|CA|US|-117.87|34.14|52|N|,Glenfield-Jane Heights|ON|CA|-79.51|43.75|30|N|,Glenview|IL|US|-87.79|42.07|47|N|,Glenville|NY|US|-74.05|42.93|29|N|,Gliwice|silesia|PL|18.68|50.3|198|W|gleiwitz,Gloucester|ON|CA|-75.63|45.35|150|NW|,Gloucester|england|GB|-2.24|51.87|132|W|,Gloucester|MA|US|-70.66|42.61|29|N|,Godhra|gujarat|IN|73.61|22.78|143|W|,Godome|atlantique|BJ|2.35|6.39|253|W|,Goelbasi|ankara|TR|32.81|39.79|165|W|golbasi,Goiania|goias|BR|-49.25|-16.68|1536|W|,Gojra|punjab|PK|72.68|31.15|214|W|gorja,Gol'yanovo|moscow|RU|37.81|55.82|158|W|,Gold Coast|queensland|AU|153.43|-28|640|W|costa dorada;gold,Golden Glades|FL|US|-80.2|25.91|33|N|,Goldsboro|NC|US|-77.99|35.38|35|N|,Golestan|tehran|IR|51.18|35.52|240|W|,Goleta|CA|US|-119.83|34.44|30|N|goelette;kuunari;schoener;schoner;schooner;skonert;skonnert;szkuner,Golfe|luanda|AO|13.26|-8.87|655|W|,Goma|north kivu|CD|29.23|-1.67|432|W|,Gombe|gombe state|NG|11.17|10.29|560|W|,Gomez Palacio|MX10|MX|-103.5|25.57|257|NW|,Gonbad-e Kavus|golestan|IR|55.17|37.25|151|W|,Gonda City|uttar pradesh|IN|81.95|27.13|133|W|,Gonder|amhara|ET|37.47|12.6|466|W|gondar,Gondia|maharashtra|IN|80.19|21.46|132|W|gondiya,Gongheyong|guangdong|CN|113.79|22.76|204|W|,Gongzhuling|jilin|CN|124.82|43.5|140|W|,Goodyear|AZ|US|-112.36|33.44|79|N|,Goose Creek|SC|US|-80.03|32.98|40|N|,Gorakhpur|haryana|IN|75.67|29.45|1324|W|,Gorakhpur|uttar pradesh|IN|83.37|26.77|674|W|,Gorgan|golestan|IR|54.44|36.84|244|W|,Gorontalo|gorontalo|ID|123.06|0.54|205|W|,Goshen|IN|US|-85.83|41.58|32|N|,Gothenburg|vastra gotaland|SE|11.97|57.71|608|W|goteborg;gotemburgo;gotenburg;gothembourg,Governador Valadares|minas gerais|BR|-41.95|-18.85|266|W|gov valadares;valadares,Goyang-si|gyeonggi do|KR|126.83|37.66|1061|W|goyang,Gqeberha|eastern cape|ZA|25.61|-33.96|1050|W|port elizabeth;porto elizabeth;puerto elizabeth,Grajau|sao paulo|BR|-46.67|-23.77|384|W|,Gramercy Park|NY|US|-73.99|40.74|27|N|,Granada|andalusia|ES|-3.61|37.19|233|W|grenada;grenade;girnata,Granby|QC|CA|-72.73|45.4|66|N|,Grand Forks|ND|US|-97.03|47.93|57|N|,Grand Island|NE|US|-98.34|40.93|51|N|,Grand Junction|CO|US|-108.55|39.06|60|N|,Grand Prairie|TX|US|-97|32.75|187|NW|,Grand Rapids|MI|US|-85.67|42.96|195|NW|,Grande Prairie|AB|CA|-118.8|55.17|70|N|,Grandview|MO|US|-94.53|38.89|25|N|,Grandview-Woodlands|BC|CA|-123.07|49.28|29|N|,Granger|IN|US|-86.11|41.75|30|N|,Granite City|IL|US|-90.15|38.7|29|N|,Grants Pass|OR|US|-123.33|42.44|37|N|,Grapevine|TX|US|-97.08|32.93|51|N|,Gravatai|rio grande do sul|BR|-50.99|-29.94|265|W|,Gravesend|NY|US|-73.97|40.6|112|N|,Graz|styria|AT|15.44|47.07|303|W|styrsky hradec,Great Falls|MT|US|-111.3|47.5|59|N|,Greater Grand Crossing|IL|US|-87.61|41.76|32|N|,Greater Noida|uttar pradesh|IN|77.54|28.5|293|W|,Greater Sudbury|ON|CA|-80.99|46.49|166|NW|sudbury;gran sudbury;grand sudbury,Greeley|CO|US|-104.71|40.42|108|N|,Green|OH|US|-81.48|40.95|25|N|,Green Bay|WI|US|-88.02|44.52|105|N|,Greenacres City|FL|US|-80.13|26.62|32|N|,Greenburgh|NY|US|-73.84|41.03|86|N|,Greenfield|WI|US|-88.01|42.96|37|N|,Greenpoint|NY|US|-73.95|40.72|34|N|,Greensboro|NC|US|-79.79|36.07|285|NW|,Greenville|NC|US|-77.37|35.61|90|N|,Greenville|SC|US|-82.39|34.85|64|N|,Greenville|MS|US|-91.06|33.41|32|N|,Greenville|TX|US|-96.11|33.14|26|N|,Greenwood|IN|US|-86.11|39.61|55|N|,Greer|SC|US|-82.23|34.94|28|N|,Grenoble|rhone alpes|FR|5.71|45.18|158|W|,Gresham|OR|US|-122.43|45.5|110|N|,Grimsby|ON|CA|-79.57|43.2|27|N|,Groningen|groningen|NL|6.57|53.22|244|W|groninga;groningue,Grove City|OH|US|-83.09|39.88|39|N|,Grozny|chechnya|RU|45.69|43.31|297|W|grosnij;grosny;grozni;groznyi;groznyj;groznyy;groznai;groznii,Guacara|carabobo|VE|-67.88|10.23|198|W|,Guadalajara|MX14|MX|-103.35|20.68|1385|NW|,Guadalupe|MX19|MX|-100.26|25.68|673|NW|ciudad guadalupe;villa de guadalupe,Guadalupe|MX32|MX|-102.52|22.75|170|NW|,Guamuchil|MX25|MX|-108.08|25.46|72|N|,Guanajuato|MX11|MX|-101.26|21.02|72|N|guanajuato city,Guang'an|sichuan|CN|106.64|30.47|858|W|,Guangshui|hubei|CN|114|31.62|154|W|,Guangyuan|sichuan|CN|105.82|32.44|516|W|kuang juan,Guangzhou|guangdong|CN|113.25|23.12|16096|W|canton;cantao;kanton;koshu,Guankou|hunan|CN|113.63|28.16|1380|W|,Guantanamo|guantanamo province|CU|-75.21|20.14|272|W|,Guarapari|espirito santo|BR|-40.5|-20.67|136|W|,Guarapuava|parana|BR|-51.47|-25.39|189|W|,Guarenas|miranda|VE|-66.62|10.47|248|W|,Guaruja|sao paulo|BR|-46.26|-23.99|294|W|,Guarulhos|sao paulo|BR|-46.53|-23.46|1345|W|,Guasave|MX25|MX|-108.47|25.57|71|N|,Guatemala City|guatemala|GT|-90.51|14.64|994|W|citta del guatemala;ciudad de guatemala;guatemala;guatemala stadt;guate;cidade da guatemala;ciudad guatemala;guatemala by;guatemala stad;gwatemala;new guatemala;nueva guatemala;santiago de guatimala,Guatire|miranda|VE|-66.54|10.47|227|W|,Guayaquil|guayas|EC|-79.89|-2.2|2723|W|guaiaquil,Gucun|shanghai|CN|121.39|31.35|240|W|,Guediawaye|dakar|SN|-17.4|14.77|329|W|,Guelph|ON|CA|-80.26|43.55|143|NW|,Guigang|guangxi|CN|109.59|23.12|1086|W|kuej kang,Guildford|BC|CA|-122.8|49.19|64|N|,Guilin|guangxi|CN|110.3|25.28|1572|W|kuej lin,Guixi|chongqing|CN|107.35|30.33|188|W|,Guiyang|guizhou|CN|106.72|26.58|3037|W|kuej jang;quy duong,Gujangbagh|xinjiang|CN|79.93|37.11|408|W|chotan;ciudad de jotan;hotan;hoten;khotan,Gujranwala|punjab|PK|74.19|32.16|2511|W|gudzranwala;gudzranvala,Gujrat|punjab|PK|74.08|32.57|574|W|,Gulfport|MS|US|-89.09|30.37|71|N|,Guli|zhejiang|CN|120.03|28.88|536|W|,Gulu|northern region|UG|32.3|2.77|177|W|,Gumi|gyeongsangbuk do|KR|128.34|36.11|404|W|,Guna|madhya pradesh|IN|77.31|24.65|180|W|,Gunan|chongqing|CN|106.65|29.02|208|W|,Gundupalaiyam|puducherry|IN|79.8|11.94|300|W|,Gunpo|gyeonggi do|KR|126.95|37.37|286|W|,Gunsan|jeollabuk do|KR|126.71|35.98|264|W|kunsan;kunsanpo,Guntur|andhra pradesh|IN|80.46|16.3|670|W|gunturu,Gunungsitoli|north sumatra|ID|97.61|1.29|136|W|,Guri-si|gyeonggi do|KR|127.14|37.6|195|W|guri,Gurnee|IL|US|-87.9|42.37|31|N|,Gurue|zambezia province|MZ|36.98|-15.47|168|W|,Gurugram|haryana|IN|77.03|28.46|886|W|gurgaon,Gusau|zamfara state|NG|6.66|12.17|226|W|,Gustavo Adolfo Madero|MX09|MX|-99.11|19.49|1185|NW|gustavo a madero,Guwahati|assam|IN|91.75|26.18|962|W|gauhati,Guyong|central luzon|PH|120.98|14.84|155|W|,Guyuan|ningxia|CN|106.28|36.01|411|W|,Gwalior|madhya pradesh|IN|78.17|26.23|1054|W|,Gwangju|gwangju|KR|126.92|35.15|1401|W|gwangju si;kwangdzu;kwangju,Gwangmyeong|gyeonggi do|KR|126.87|37.48|357|W|,Gwangyang|jeollanam do|KR|127.7|34.94|154|W|,Gweru|midlands province|ZW|29.82|-19.45|158|W|,Gwynn Oak|MD|US|-76.69|39.33|47|N|,Gyanpur|uttar pradesh|IN|82.47|25.33|200|W|,Gyeongju|gyeongsangbuk do|KR|129.21|35.84|245|W|,Gyeongsan-si|gyeongsangbuk do|KR|128.74|35.82|266|W|gyeongsan,Ha'il|ha il region|SA|41.69|27.52|605|W|hail,Ha Long|quang ninh|VN|107.07|20.95|270|W|,Ha Tinh|ha tinh province|VN|105.91|18.34|266|W|ha thin;thanh sen,Haarlem|north holland|NL|4.64|52.38|162|W|,Habra|west bengal|IN|88.66|22.84|139|W|,Hachinohe|aomori|JP|141.5|40.5|239|W|,Hachioji|tokyo|JP|139.32|35.66|579|W|hachiouji,Hacienda Heights|CA|US|-117.97|33.99|54|N|,Hacienda Santa Fe|MX14|MX|-103.38|20.52|86|N|,Hackensack|NJ|US|-74.04|40.89|44|N|,Hada'iq al Qubbah|cairo|EG|31.28|30.09|339|W|,Hadano|kanagawa|JP|139.22|35.37|163|W|,Haeju|south hwanghae|KP|125.71|38.04|222|W|,Hafar Al-Batin|eastern province|SA|45.97|28.43|271|W|,Hafizabad|punjab|PK|73.69|32.07|318|W|,Hagen|north rhine westphalia|DE|7.47|51.36|198|W|,Hagerstown|MD|US|-77.72|39.64|40|N|,Hai Ba Trung|hanoi|VN|105.85|21.01|303|W|hai batrung,Hai Chau|da nang city|VN|108.13|15.92|131|W|,Hai Duong|hai phong|VN|106.33|20.94|241|W|,Haicheng|liaoning|CN|122.75|40.85|191|W|,Haifa|haifa|IL|35|32.81|285|W|hajfa;hayfa,Haikou|hainan|CN|110.35|20.03|2873|W|chaj kchou,Hailar|inner mongolia|CN|119.7|49.2|211|W|,Hailin|heilongjiang|CN|129.39|44.57|144|W|,Haiphong|hai phong|VN|106.68|20.86|2625|W|hai phong;hajfong,Hajipur|bihar|IN|85.21|25.69|147|W|,Hakodate|hokkaido|JP|140.74|41.78|275|W|,Haldia|west bengal|IN|88.11|22.06|170|W|,Haldwani|uttarakhand|IN|79.53|29.22|139|W|haldwani kathgodam;haldwani cum kathgodam,Halifax|NS|CA|-63.58|44.64|471|NW|,Hallandale Beach|FL|US|-80.15|25.98|39|N|hallandale,Halle (Saale)|saxony anhalt|DE|11.98|51.48|237|W|halle;halle an der saale;halle sul saale,Haltom City|TX|US|-97.27|32.8|44|N|,Halton Hills|ON|CA|-79.93|43.64|62|N|,Halwan|cairo|EG|31.3|29.84|230|W|helwan,Hamadan|hamadan province|IR|48.51|34.8|528|W|,Hamah|hama|SY|36.76|35.13|460|W|hama,Hamamatsu|shizuoka|JP|137.73|34.7|791|W|hamamacu;hamamatsu city;hamamatsu shi,Hamburg|hamburg|DE|9.99|53.55|1973|W|hamburgo;amburgo;hamborg;hambourg;hamburk;hampuri,Hamburg-Mitte|hamburg|DE|10.02|53.55|301|W|bezirk hamburg mitte;hamburg centru,Hamburg-Nord|hamburg|DE|9.98|53.59|315|W|bezirk hamburg nord;distretto di hamburg nord,Hamden|CT|US|-72.9|41.4|59|N|,Hamhung|south hamgyong|KP|127.54|39.92|559|W|,Hami|xinjiang|CN|93.51|42.83|246|W|kumul,Hamilton|ON|CA|-79.85|43.25|569|NW|,Hamilton|waikato region|NZ|175.28|-37.78|192|W|,Hamilton|OH|US|-84.56|39.4|62|N|,Hamm|north rhine westphalia|DE|7.82|51.68|178|W|,Hammond|IN|US|-87.5|41.58|77|N|,Hampton|VA|US|-76.35|37.03|137|NW|,Hanam|gyeonggi do|KR|127.21|37.54|254|W|,Handan|hebei|CN|114.49|36.61|1358|W|chan tan;ham dan,Hanfeng|chongqing|CN|108.4|31.17|196|W|,Hanford|CA|US|-119.65|36.33|55|N|,Hangu|tianjin|CN|117.79|39.25|208|W|,Hangzhou|zhejiang|CN|120.16|30.29|9236|W|chang cou;hang chau,Hannover|lower saxony|DE|9.73|52.37|515|W|hanover;hanovra;hanovre;hanower,Hanoi|hanoi|VN|105.84|21.02|8053|W|hanoj;kecho;kescio;thang long,Hanover|MD|US|-76.72|39.19|38|N|,Hanover Park|IL|US|-88.15|42|38|N|,Hanumangarh|rajasthan|IN|74.33|29.58|155|W|,Hanzhong|shaanxi|CN|107.02|33.08|1006|W|chan cung;han trung,Hapur|uttar pradesh|IN|77.78|28.73|242|W|,Harar|harari|ET|42.12|9.31|157|W|harar jugol;harer,Harare|harare|ZW|31.05|-17.83|1542|W|,Harbin|heilongjiang|CN|126.65|45.75|5242|W|charbin;cap nhi tan,Harburg|hamburg|DE|9.98|53.46|169|W|hamburg harburg;bezirk harburg;distretto di harburg;hambourg harburg;hamburgo harburgo,Hargeysa|woqooyi galbeed|SO|44.06|9.56|477|W|hargeisa,Haridwar|uttarakhand|IN|78.16|29.95|186|W|hardwar;haridvar,Harker Heights|TX|US|-97.66|31.08|29|N|,Harlem|NY|US|-73.95|40.81|116|N|,Harlingen|TX|US|-97.7|26.19|65|N|,Harrisburg|PA|US|-76.88|40.27|50|N|,Harrison|NY|US|-73.71|40.97|28|N|,Harrisonburg|VA|US|-78.87|38.45|52|N|,Harrow|england|GB|-0.33|51.58|149|W|,Hartford|CT|US|-72.69|41.76|121|N|,Harunabad|punjab|PK|73.14|29.61|149|W|,Harvey|IL|US|-87.65|41.61|25|N|,Hashtsal|delhi|IN|77.06|28.63|176|W|,Hasilpur|punjab|PK|72.55|29.69|168|W|,Hassan|karnataka|IN|76.1|13.01|155|W|,Hastings-Sunrise|BC|CA|-123.03|49.28|34|N|,Hat Yai|songkhla|TH|100.48|7.01|191|W|,Hathazari|chittagong|BD|91.81|22.51|498|W|,Hattiesburg|MS|US|-89.29|31.33|46|N|,Havana|havana|CU|-82.38|23.13|2163|W|havanna;hawana;l avana;la habana;la havane,Haverhill|MA|US|-71.08|42.78|62|N|,Havertown|PA|US|-75.31|39.98|50|N|,Hawai'i Kai|HI|US|-157.7|21.3|30|N|,Hawalli|hawalli|KW|48.03|29.33|164|W|havalli,Hawthorne|CA|US|-118.35|33.92|88|N|,Hayward|CA|US|-122.08|37.67|158|NW|,Hayy Khilda|amman|JO|35.84|31.99|251|W|,Hazaribagh|jharkhand|IN|85.36|23.99|153|W|hazaribag,Hazelwood|MO|US|-90.37|38.77|25|N|,Hebi|henan|CN|114.29|35.73|634|W|che pi,Hebron|west bank|PS|35.09|31.53|160|W|el halil;hebrom,Hechi|guangxi|CN|108.08|24.69|330|W|,Hechuan|chongqing|CN|106.26|29.99|377|W|,Hefei|anhui|CN|117.28|31.86|5050|W|che fej,Hegang|heilongjiang|CN|130.29|47.35|743|W|che kang,Heidelberg|baden wurttemberg|DE|8.69|49.41|143|W|edelberga;heidelberga,Heihe|heilongjiang|CN|127.49|50.24|223|W|chej che,Hejiang|sichuan|CN|105.83|28.81|137|W|,Helena|MT|US|-112.04|46.59|32|N|,Hell's Kitchen|NY|US|-73.99|40.76|45|N|la cocina del infierno;midtown west,Helsinki|uusimaa|FI|24.94|60.17|658|W|helsingfors;helsinky;helsinquia;khel sinki,Hemet|CA|US|-116.97|33.75|83|N|,Hempstead|NY|US|-73.62|40.71|55|N|,Henderson|NV|US|-114.98|36.04|285|NW|,Henderson|KY|US|-87.59|37.84|28|N|,Hendersonville|TN|US|-86.62|36.3|56|N|,Hengshan|heilongjiang|CN|130.9|45.21|164|W|,Hengshui|hebei|CN|115.68|37.74|522|W|cheng suej,Hengyang|hunan|CN|112.62|26.89|1075|W|cheng jang;hanh duong,Henrietta|NY|US|-77.61|43.06|42|N|,Hepo|guangdong|CN|115.83|23.43|131|W|,Hepu|guangxi|CN|109.2|21.66|192|W|,Herat|herat|AF|62.2|34.35|574|W|,Hercules|CA|US|-122.29|38.02|25|N|,Hermitage|TN|US|-86.62|36.2|37|N|,Hermosillo|MX26|MX|-110.97|29.09|812|NW|,Herne|north rhine westphalia|DE|7.23|51.54|172|W|,Heroica Caborca|MX26|MX|-112.16|30.72|59|N|caborca,Heroica Ciudad de Juchitan de Zaragoza|MX20|MX|-95.02|16.43|88|N|juchitan de zaragoza;juchitan,Heroica Guaymas|MX26|MX|-110.9|27.92|117|N|guaymas,Heroica Matamoros|MX28|MX|-97.5|25.88|510|NW|matamoros,Heroica Zitacuaro|MX16|MX|-100.36|19.44|84|N|,Herriman|UT|US|-112.03|40.51|30|N|,Heshan|hunan|CN|112.35|28.57|1249|W|,Hesperia|CA|US|-117.3|34.43|93|N|,Hetauda|bagmati province|NP|85.03|27.43|195|W|,Heyuan|guangdong|CN|114.68|23.73|463|W|che juan;ha nguyen,Heze|shandong|CN|115.47|35.24|1346|W|che ce,Hezhou|guangxi|CN|111.57|24.4|1005|W|che cou,Hialeah|FL|US|-80.28|25.86|237|NW|,Hickory|NC|US|-81.34|35.73|40|N|,Hicksville|NY|US|-73.53|40.77|41|N|,Hidalgo del Parral|MX06|MX|-105.67|26.93|104|N|parral,Higashihiroshima|hiroshima|JP|132.74|34.41|196|W|,Higashimurayama|tokyo|JP|139.47|35.75|151|W|,Higashiosaka|osaka|JP|135.58|34.67|493|W|,High Point|NC|US|-80.01|35.96|110|N|,High Wycombe|england|GB|-0.75|51.63|133|W|,Highland|CA|US|-117.21|34.13|54|N|,Highland Park|IL|US|-87.8|42.18|29|N|,Highlands Ranch|CO|US|-104.97|39.55|96|N|,Hilliard|OH|US|-83.16|40.03|33|N|,Hillsboro|OR|US|-122.99|45.52|102|N|,Hillsborough|NJ|US|-74.63|40.48|38|N|,Hilo|HI|US|-155.09|19.73|43|N|baie de hilo,Hilton Head|SC|US|-80.75|32.22|37|N|hilton head island,Hilton Head Island|SC|US|-80.74|32.19|40|N|ile de hilton head,Himeji|hyogo|JP|134.7|34.82|530|W|,Hindupur|andhra pradesh|IN|77.49|13.83|151|W|,Hinesville|GA|US|-81.6|31.85|33|N|,Hino|tokyo|JP|139.4|35.67|190|W|,Hinthada|ayeyarwady|MM|95.46|17.65|134|W|henzada,Hirakata|osaka|JP|135.65|34.81|406|W|,Hiratsuka|kanagawa|JP|139.34|35.33|258|W|,Hirosaki|aomori|JP|140.47|40.59|168|W|,Hiroshima|hiroshima|JP|132.45|34.4|1200|W|hiroshima shi;hiroshimashi;hiroszima;hiroxima;hirosima,Hisar|haryana|IN|75.72|29.15|307|W|,Hitachi|ibaraki|JP|140.65|36.6|174|W|,Hitachi-Naka|ibaraki|JP|140.53|36.4|156|W|,Hlaingthaya|yangon|MM|96.07|16.85|687|W|,Ho|volta|GH|0.47|6.6|130|W|,Ho Chi Minh City|ho chi minh city hcmc|VN|106.63|10.82|14002|W|ho chi minh stadt;ho chi minh ville;hcmv;tphcm;cidade de ho chi minh;ciudad ho chi minh;ho chi minh;ho chi minh byen;ho chi minh staden;ho chi minhstad;ho ci minovo mesto;saigon;sai gon,Hoa Thanh|tay ninh|VN|106.13|11.29|147|W|,Hoan Kiem|hanoi|VN|105.85|21.03|135|W|,Hobart|tasmania|AU|147.33|-42.88|254|W|,Hobart|IN|US|-87.26|41.53|28|N|,Hobbs|NM|US|-103.14|32.7|38|N|,Hoboken|NJ|US|-74.03|40.74|53|N|,Hoffman Estates|IL|US|-88.08|42.04|52|N|,Hohhot|inner mongolia|CN|111.65|40.81|2350|W|choch chot;huhhot;kweisui,Hoji ya Henda|luanda|AO|13.29|-8.81|642|W|,Holbrook|NY|US|-73.08|40.81|27|N|,Holguin|holguin province|CU|-76.26|20.89|319|W|,Holladay|UT|US|-111.82|40.67|30|N|,Holland|MI|US|-86.11|42.79|33|N|,Hollister|CA|US|-121.4|36.85|37|N|,Holly Springs|NC|US|-78.83|35.65|31|N|,Hollywood|CA|US|-118.33|34.1|167|NW|,Hollywood|FL|US|-80.15|26.01|149|NW|,Holmesburg|PA|US|-75.03|40.04|28|N|,Holon|tel aviv|IL|34.78|32.01|196|W|cholon;jolon,Holyoke|MA|US|-72.62|42.2|40|N|,Homestead|FL|US|-80.48|25.47|80|N|,Homewood|AL|US|-86.8|33.47|25|N|,Homs|homs|SY|36.73|34.72|775|W|hims;hums;humus,Homyel'|homyel voblasc|BY|30.98|52.43|501|W|homel;homiel;gomel,Honcho|chiba|JP|139.99|35.7|644|W|funabashi,Hong Kong||HK|114.17|22.28|7396|W|hongkong;victoria,Hong Kong Island||HK|114.18|22.26|1195|W|hong kong,Honggang|heilongjiang|CN|124.88|46.4|147|W|,Hongkou|shanghai|CN|121.49|31.25|687|W|,Honolulu|HI|US|-157.86|21.31|350|NW|,Hoofddorp|north holland|NL|4.69|52.3|132|W|,Hoover|AL|US|-86.81|33.41|84|N|,Hopkinsville|KY|US|-87.49|36.87|32|N|,Horlivka|donetsk|UA|38.02|48.3|239|W|gorlowka;gorlovka;horliwka,Horn Lake|MS|US|-90.03|34.96|26|N|,Horta-Guinardo|catalonia|ES|2.17|41.42|168|W|,Hortaleza|madrid|ES|-3.64|40.47|161|W|,Hortolandia|sao paulo|BR|-47.22|-22.86|236|W|,Hosa'ina|central ethiopia regional state|ET|37.85|7.55|188|W|,Hosapete|karnataka|IN|76.39|15.27|206|W|hospet,Hoshiarpur|punjab|IN|75.91|31.54|168|W|,Hosur|tamil nadu|IN|77.83|12.74|229|W|,Hot Springs|AR|US|-93.06|34.5|35|N|,Hougang New Town||SG|103.89|1.36|227|W|hougang,Houma|LA|US|-90.72|29.6|34|N|,Houston|TX|US|-95.36|29.76|2314|NW|,Howard Beach|NY|US|-73.84|40.66|26|N|,Howrah|west bengal|IN|88.32|22.58|1027|W|haora,Hrodna|grodnenskaya|BY|23.83|53.68|363|W|goradnia;grodno,Hsinchu|taiwan|TW|120.97|24.8|453|W|kota hsinchu;sin cu;tan truc;xinzhu,Huadian|jilin|CN|126.74|42.97|139|W|,Huai'an|jiangsu|CN|119.02|33.59|2494|W|chuaj an;huaiyin,Huaibei|anhui|CN|116.79|33.97|1113|W|chuaj pej,Huaihua|hunan|CN|110|27.56|552|W|chuaj chua;hoai hoa,Huainan|anhui|CN|117|32.63|1666|W|,Huamantla|MX29|MX|-97.93|19.31|51|N|,Huambo|huambo|AO|15.74|-12.78|595|W|,Huancayo|junin|PE|-75.21|-12.07|456|W|,Huanggang|hubei|CN|114.87|30.45|366|W|chuang kang;hoang cuong;hwang chau;hwang chow;hwangchow;wangchau;wangchou,Huanggang|guangdong|CN|117|23.68|225|W|,Huangpu|shanghai|CN|121.48|31.24|504|W|,Huangshan|anhui|CN|118.31|29.71|460|W|chuang san;hoang son;huangshan city,Huangshi|hubei|CN|115.05|30.25|688|W|chuang s,Huanuco|huanuco department|PE|-76.24|-9.93|196|W|,Huatabampo|MX26|MX|-109.64|26.83|30|N|,Huatusco|MX30|MX|-96.97|19.15|31|N|,Huauchinango|MX21|MX|-98.05|20.17|56|N|,Huayin|shaanxi|CN|110.07|34.57|242|W|,Hub|balochistan|PK|66.89|25.03|195|W|,Hubballi|karnataka|IN|75.13|15.35|943|W|hubli,Huber Heights|OH|US|-84.12|39.84|38|N|,Huddersfield|england|GB|-1.78|53.65|149|W|,Hue|thua thien hue province|VN|107.6|16.46|1380|W|,Huejotzingo|MX21|MX|-98.41|19.16|25|N|,Huejutla de Reyes|MX13|MX|-98.42|21.14|40|N|,Huelva|andalusia|ES|-6.94|37.27|144|W|,Hugli|west bengal|IN|88.4|22.91|177|W|,Huimanguillo|MX27|MX|-93.39|17.83|27|N|,Huinong|ningxia|CN|106.77|39.23|136|W|,Huixing|chongqing|CN|106.61|29.68|186|W|,Huixquilucan|MX15|MX|-99.35|19.36|124|N|,Huixtla|MX05|MX|-92.46|15.14|32|N|,Huizhou|guangdong|CN|114.42|23.11|2900|W|chuej cou,Hulan Ergi|heilongjiang|CN|123.63|47.2|265|W|,Hull|QC|CA|-75.71|45.43|63|N|,Huludao|liaoning|CN|120.84|40.75|944|W|,Hulunbuir|inner mongolia|CN|119.76|49.21|349|W|,Humen|guangdong|CN|113.67|22.82|191|W|,Hungnam|south hamgyong|KP|127.63|39.84|346|W|,Huntersville|NC|US|-80.84|35.41|52|N|,Huntington|WV|US|-82.45|38.42|48|N|,Huntington Beach|CA|US|-118|33.66|201|NW|,Huntington Park|CA|US|-118.23|33.98|59|N|,Huntington Station|NY|US|-73.41|40.85|33|N|,Huntley|IL|US|-88.43|42.17|26|N|,Hunts Point|NY|US|-73.88|40.81|27|N|,Huntsville|AL|US|-86.59|34.73|215|NW|,Huntsville|TX|US|-95.55|30.72|40|N|,Huocheng|xinjiang|CN|80.87|44.05|360|W|huocheng county,Hurghada|red sea|EG|33.81|27.26|207|W|hurgada,Hurst|TX|US|-97.17|32.82|39|N|,Hutchinson|KS|US|-97.93|38.06|41|N|,Huyen Lam Ha|lam dong|VN|108.21|11.82|144|W|lam ha;lam ha district,Huzhou|zhejiang|CN|120.09|30.87|1015|W|,Hwaseong-si|gyeonggi do|KR|126.82|37.21|640|W|hwaseong,Hyde Park|MA|US|-71.12|42.26|31|N|,Hyde Park|IL|US|-87.59|41.79|26|N|,Hyderabad|telangana|IN|78.46|17.38|6993|W|haiderabad;hajdarabad,Hyderabad|sindh|PK|68.38|25.4|1921|W|hajdarabad;haydarabad,Hyesan|yanggang do|KP|128.18|41.4|192|W|,Iasi|iasi county|RO|27.6|47.17|378|W|jassy;jasy;yas;jassenmarkt,Ibadan|oyo state|NG|3.91|7.38|3649|W|,Ibague|tolima department|CO|-75.2|4.44|529|W|,Ibaraki|osaka|JP|135.57|34.82|287|W|,Ibarra|imbabura|EC|-78.12|0.35|221|W|,Ibb|ibb governorate|YE|44.18|13.97|771|W|,Ibirite|minas gerais|BR|-44.06|-20.02|179|W|,'Ibri|ad dhahirah|OM|56.52|23.23|163|W|,Ica|ica|PE|-75.73|-14.08|282|W|ika,Ichalkaranji|maharashtra|IN|74.46|16.69|287|W|,Icheon-si|gyeonggi do|KR|127.44|37.28|196|W|icheon,Ichihara|chiba|JP|140.08|35.52|283|W|,Ichikawa|chiba|JP|139.91|35.73|496|W|,Ichinomiya|aichi|JP|136.8|35.3|380|W|owari ichinomiya,Idaho Falls|ID|US|-112.03|43.47|59|N|,Idku|beheira|EG|30.3|31.31|177|W|,Ifakara|morogoro|TZ|36.68|-8.13|205|W|,Igboho|oyo state|NG|3.76|8.84|136|W|,Iguala de la Independencia|MX12|MX|-99.54|18.35|118|N|,Iguatemi|sao paulo|BR|-46.43|-23.61|149|W|,Ijebu Ode|ogun state|NG|3.92|6.82|360|W|,Ijero-Ekiti|ekiti state|NG|5.07|7.82|167|W|,Ikare|ondo state|NG|5.75|7.53|465|W|,Ikeja|lagos|NG|3.34|6.6|313|W|,Ikire|osun state|NG|4.19|7.37|222|W|,Ikirun|osun state|NG|4.67|7.91|134|W|,Ikot Ekpene|akwa ibom state|NG|7.71|5.18|254|W|,Iksan|jeollabuk do|KR|126.95|35.94|307|W|,Ila Orangun|osun state|NG|4.9|8.02|179|W|,Ilagan|cagayan valley|PH|121.89|17.15|164|W|,Ilam|ilam province|IR|46.42|33.64|140|W|,Ile-Ife|osun state|NG|4.56|7.48|560|W|,Ilesa|osun state|NG|4.74|7.63|325|W|,Ilford|england|GB|0.07|51.56|168|W|,Ilheus|bahia|BR|-39.03|-14.8|189|W|sao jorge dos ilheos,Iligan|northern mindanao|PH|124.24|8.23|342|W|,Iligan City|soccsksargen|PH|124.4|8.25|312|W|,Iloilo|western visayas|PH|122.56|10.7|473|W|iloilo city,Ilorin|kwara state|NG|4.54|8.5|1080|W|,Imabari|ehime|JP|133|34.07|170|W|,Imperatriz|maranhao|BR|-47.49|-5.53|273|W|,Imperial Beach|CA|US|-117.11|32.58|27|N|,Imphal|manipur|IN|93.94|24.81|277|W|,Imus|calabarzon|PH|120.94|14.43|481|W|,Inazawa|aichi|JP|136.78|35.25|134|W|,Incheon|incheon|KR|126.71|37.46|3015|W|inch on;incheon si;inchon;incchon;nhan xuyen;chemulpo,Indaiatuba|sao paulo|BR|-47.21|-23.09|256|W|,Independence|MO|US|-94.42|39.09|117|N|,Independence|KY|US|-84.54|38.94|26|N|,Indian Trail|NC|US|-80.67|35.08|37|N|,Indianapolis|IN|US|-86.16|39.77|887|NW|indpls,Indio|CA|US|-116.22|33.72|87|N|,Indore|madhya pradesh|IN|75.83|22.72|1994|W|indhur,Inegol|bursa province|TR|29.51|40.08|133|W|,Inezgane|souss massa|MA|-9.54|30.36|142|W|,Inglewood|CA|US|-118.35|33.96|111|N|,Ingombota|luanda|AO|13.23|-8.82|144|W|,Inisa|osun state|NG|4.33|7.85|164|W|,Innisfil|ON|CA|-79.65|44.3|43|N|,Innsbruck|tyrol|AT|11.39|47.26|132|W|,Insein|yangon|MM|96.1|16.89|247|W|,Inver Grove Heights|MN|US|-93.04|44.85|34|N|inver grove,Iowa City|IA|US|-91.53|41.66|74|N|,Ipatinga|minas gerais|BR|-42.54|-19.47|235|W|,Ipoh|perak|MY|101.08|4.58|759|W|,Ipswich|england|GB|1.16|52.06|178|W|,Iquique|tarapaca|CL|-70.15|-20.21|199|W|,Iquitos|loreto|PE|-73.25|-3.75|377|W|,Irakleion|crete|GR|25.14|35.33|137|W|heraklion;candia;heracliao;heraclion;herakleion;iraklio;iraklion;iraclio;kandiye,Iranshahr|sistan and baluchestan|IR|60.68|27.2|131|W|,Irapuato|MX11|MX|-101.36|20.67|380|NW|,Irbid|irbid|JO|35.85|32.56|569|W|,Irewe|lagos|NG|3.14|6.42|139|W|,Iringa|iringa|TZ|35.7|-7.77|202|W|,Irkutsk|irkutsk oblast|RU|104.29|52.3|623|W|irkoetsk;irkoutsk;irkuck;irkutsc;irkutk,Irondequoit|NY|US|-77.58|43.21|51|N|,Iruma|saitama|JP|139.37|35.82|147|W|,Irvine|CA|US|-117.82|33.67|256|NW|,Irving|TX|US|-96.95|32.81|236|NW|,Irving Park|IL|US|-87.74|41.95|56|N|,Irvington|NJ|US|-74.23|40.73|61|N|,Isahaya|nagasaki|JP|130.04|32.84|135|W|,Ise-Ekiti|ekiti state|NG|5.42|7.46|190|W|,Isesaki|gunma|JP|139.2|36.32|211|W|,Iseyin|oyo state|NG|3.6|7.97|365|W|,Isfahan|isfahan|IR|51.67|32.65|1547|W|esfahan;ispahan;kota isfahan,Isfara|sughd|TJ|70.63|40.13|274|W|,Ishinomaki|miyagi|JP|141.3|38.42|140|W|,Isidro Casanova|buenos aires|AR|-58.59|-34.7|131|W|,Isiro|haut uele|CD|27.62|2.77|255|W|,Iskandar Puteri|johor|MY|103.62|1.39|575|W|,Iskenderun|hatay|TR|36.17|36.59|251|W|alejandreta;aleksandretta;alexandretta,Isla|MX30|MX|-95.53|18.03|26|N|,Islamabad|islamabad|PK|73.04|33.72|601|W|islamabade,Islington|england|GB|-0.1|51.54|319|W|,Islington-City Centre West|ON|CA|-79.54|43.63|43|N|,Ismailia|ismailia|EG|32.27|30.6|429|W|el ismalia;ismalia;ismailija;ismailiye,Isparta|isparta|TR|30.55|37.76|172|W|,Issaquah|WA|US|-122.03|47.53|36|N|,Istanbul|istanbul|TR|28.95|41.01|15701|W|estambul;istambul;stambul;byzance;byzantion;byzantium;constantinopla;constantinople;constantinopolen;costantinopoli;konstantinopel;micklagard,Istaravshan|sughd|TJ|69|39.91|273|W|istaravchan;istaravsjan;istaravsan;istarawschan;istarawshan;istarawszan,Itabashi|tokyo|JP|139.71|35.75|584|W|tabashi city,Itaborai|rio de janeiro|BR|-42.86|-22.74|240|W|,Itabuna|bahia|BR|-39.28|-14.79|196|W|,Itaguei|antioquia|CO|-75.6|6.18|281|W|itagui,Itaim Paulista|sao paulo|BR|-46.39|-23.5|205|W|,Itaituba|para|BR|-55.98|-4.28|135|W|,Itajai|santa catarina|BR|-48.66|-26.91|294|W|itajahy,Itami|hyogo|JP|135.4|34.78|198|W|,Itapecerica da Serra|sao paulo|BR|-46.85|-23.72|163|W|,Itapetininga|sao paulo|BR|-48.05|-23.59|164|W|,Itapevi|sao paulo|BR|-46.93|-23.55|240|W|,Itapipoca|ceara|BR|-39.58|-3.49|138|W|,Itaquaquecetuba|sao paulo|BR|-46.35|-23.49|369|W|,Itaquera|sao paulo|BR|-46.44|-23.53|210|W|,Ithaca|NY|US|-76.5|42.44|30|N|,Itu|sao paulo|BR|-47.3|-23.26|175|W|,Ituzaingo|corrientes|AR|-56.69|-27.59|168|W|,Ivano-Frankivsk|ivano frankivsk|UA|24.71|48.92|238|W|ivano frankivs k;iwano frankiwsk;stanislaopoli;stanislau;stanislaw;stanislawow,Ivanovo|ivanovo oblast|RU|40.97|57|406|W|iwanowo,Ivory Park|gauteng|ZA|28.2|-26|184|W|,Iwaki|fukushima|JP|140.88|37.05|357|W|,Iwata|shizuoka|JP|137.85|34.7|166|W|,Iwo|osun state|NG|4.18|7.64|250|W|,Ixmiquilpan|MX13|MX|-99.22|20.48|34|N|,Ixtaczoquitlan|MX30|MX|-97.06|18.85|26|N|,Ixtapa|MX14|MX|-105.21|20.72|29|N|,Ixtapa-Zihuatanejo|MX12|MX|-101.55|17.64|67|N|jose azueta;zihuatanejo,Ixtapaluca|MX15|MX|-98.88|19.32|322|NW|iztapaluca,Ixtepec|MX20|MX|-95.1|16.56|25|N|san geronimo ixtepec;ciudad ixtepec,Izhevsk|udmurtiya republic|RU|53.2|56.85|648|W|izjevsk;ijevsk;ischewsk;izewsk;izevsk,Izmir|izmir province|TR|27.14|38.41|2938|W|esmirna;smirne,Izmit|kocaeli|TR|29.93|40.76|196|W|nicomedia;nicomedie;nikomedia,Iztacalco|MX09|MX|-99.1|19.4|384|NW|,Iztapalapa|MX09|MX|-99.06|19.36|1835|NW|delegacion iztapalapa;delegazione iztapalapa,Izucar de Matamoros|MX21|MX|-98.46|18.6|42|N|izucar,Izumi|osaka|JP|135.43|34.48|184|W|,Izumo|shimane|JP|132.77|35.37|172|W|,Jabalpur|madhya pradesh|IN|79.95|23.17|1081|W|dzabalpur,Jabalya|gaza strip|PS|34.48|31.53|168|W|jabalia,Jabaquara|sao paulo|BR|-46.65|-23.65|214|W|,Jaboatao dos Guararapes|pernambuco|BR|-35.01|-8.11|644|W|,Jacarei|sao paulo|BR|-45.97|-23.31|250|W|,Jackson|MS|US|-90.18|32.3|153|NW|,Jackson|TN|US|-88.81|35.61|66|N|,Jackson|NJ|US|-74.86|39.78|54|N|,Jackson|MI|US|-84.4|42.25|33|N|,Jackson Heights|NY|US|-73.89|40.76|67|N|,Jacksonville|FL|US|-81.66|30.33|1009|NW|,Jacksonville|NC|US|-77.43|34.75|67|N|,Jacksonville|AR|US|-92.11|34.87|28|N|,Jacmel|sud est|HT|-72.54|18.24|137|W|yaquimo,Jacobabad|sindh|PK|68.44|28.28|219|W|khangarh,Jacona de Plancarte|MX16|MX|-102.31|19.96|53|N|,Jaffna|northern province|LK|80.01|9.67|169|W|dzafna,Jahrom|fars|IR|53.56|28.5|141|W|,Jaigaon|west bengal|IN|89.38|26.85|158|W|,Jaipur|rajasthan|IN|75.79|26.92|3046|W|dzajpur,Jajmau|uttar pradesh|IN|80.41|26.43|652|W|,Jakarta|jakarta|ID|106.85|-6.21|8540|W|cakarta;djakarta;dzakarta;giacarta;yakarta;batavia;sunda kelapa;sundapura,Jalalabad|nangarhar|AF|70.45|34.43|271|W|celalabad;dschalalabad;dzalalabad,Jalalpur Jattan|punjab|PK|74.21|32.64|146|W|,Jalalpur Pirwala|punjab|PK|71.22|29.51|500|W|dzalalpur pirwala,Jalandhar|punjab|IN|75.58|31.33|868|W|dzalandhar,Jalapa|jalapa|GT|-89.99|14.64|159|W|,Jalgaon|maharashtra|IN|75.57|21|460|W|,Jalna|maharashtra|IN|75.89|19.84|285|W|,Jaltipan de Morelos|MX30|MX|-94.71|17.97|32|N|,Jamaica|NY|US|-73.81|40.69|216|NW|,Jamaica Plain|MA|US|-71.12|42.31|37|N|,Jamalpur|mymensingh division|BD|89.95|24.92|167|W|,Jambi City|jambi|ID|103.62|-1.6|635|W|jambi,Jamestown|NY|US|-79.24|42.1|30|N|,Jammu|jammu and kashmir|IN|74.86|32.74|576|W|dzammu,Jamnagar|gujarat|IN|70.07|22.47|600|W|dzamnagar,Jampur|punjab|PK|70.6|29.64|155|W|,Jamshedpur|jharkhand|IN|86.19|22.8|1339|W|cemsidpur;dzamsedpur,Jamuria|west bengal|IN|87.08|23.7|160|W|,Janakpur|madhesh|NP|85.93|26.73|195|W|janakpur dham,Janesville|WI|US|-89.02|42.68|64|N|,Janzur|al jafarah|LY|13.02|32.82|154|W|,Jaragua|sao paulo|BR|-46.74|-23.44|211|W|,Jaragua do Sul|santa catarina|BR|-49.07|-26.49|199|W|,Jaranwala|punjab|PK|73.42|31.33|150|W|,Jardim Angela|sao paulo|BR|-46.77|-23.72|311|W|,Jardim Sao Luis|sao paulo|BR|-46.74|-23.68|259|W|,Jardines de la Silla|MX19|MX|-100.19|25.63|53|N|,Jau|sao paulo|BR|-48.56|-22.3|133|W|,Jaunpur|uttar pradesh|IN|82.69|25.75|169|W|jawnpur,Jayapura|papua|ID|140.72|-2.53|410|W|jaya pura;kota jayapura;port numbay;hollandia;noordwijk,Jebel Ali|dubai|AE|55.11|25|210|W|,Jeddah|mecca region|SA|39.19|21.49|4697|W|cidde;djedda;djeddah;dschidda;dzudda;dzidda;jedda;jidda;jida;yida;yidda,Jefferson City|MO|US|-92.17|38.58|42|N|kota jefferson,Jeffersontown|KY|US|-85.56|38.19|26|N|,Jeffersonville|IN|US|-85.74|38.28|46|N|,Jeju City|jeju do|KR|126.52|33.51|488|W|czedzu;jeju;jeju sehri;kota jeju,Jember|east java|ID|113.7|-8.17|298|W|,Jeongeup|jeollabuk do|KR|126.92|35.6|139|W|,Jeonju|jeollabuk do|KR|127.15|35.82|638|W|chonju;condzu,Jepara|central java|ID|110.67|-6.59|1257|W|,Jerez de Garcia Salinas|MX32|MX|-102.99|22.65|43|N|,Jerez de la Frontera|andalusia|ES|-6.14|36.69|212|W|jerez;xeres,Jersey City|NJ|US|-74.08|40.73|264|NW|,Jerusalem|jerusalem|IL|35.22|31.77|971|W|gerusalemme;jerozolima;jerusalen;jeruzalem;al quds;ariel;ierusalim;kudus;yerusalem;zion,Jessore|khulna division|BD|89.21|23.17|243|W|,Jesus Maria|MX01|MX|-102.34|21.96|43|N|,Jhang Sadr|punjab|PK|72.32|31.27|606|W|jhang;jhang sadar,Jhansi|uttar pradesh|IN|78.58|25.46|412|W|,Jhelum|punjab|PK|73.73|32.93|190|W|alessandria bucefala;dzhelam;jhelam,Ji'an|jiangxi|CN|114.98|27.12|538|W|,Ji Parana|rondonia|BR|-61.95|-10.89|140|W|,Jiading|shanghai|CN|121.24|31.39|1886|W|,Jiagedaqi|inner mongolia|CN|124.12|50.42|135|W|jagdaqi,Jiamusi|heilongjiang|CN|130.31|46.8|549|W|tia mu s,Jiangmen|guangdong|CN|113.08|22.58|1795|W|giang mon;kongmoon;tiang men,Jiangyin|jiangsu|CN|120.26|31.91|1779|W|kiang ying,Jianshui|yunnan|CN|101.22|24.28|490|W|,Jiaojiang|zhejiang|CN|121.47|28.7|470|W|,Jiaozhou|shandong|CN|120|36.28|619|W|,Jiaozuo|henan|CN|113.24|35.24|865|W|tieu tac;tiao cuo,Jiashan|zhejiang|CN|120.93|30.85|137|W|,Jiawang|jiangsu|CN|117.44|34.43|133|W|,Jiaxing|zhejiang|CN|120.75|30.75|1180|W|gia hung;tia sing,Jiayuguan|gansu|CN|98.29|39.81|231|W|tia ju kuan,Jiazi|guangdong|CN|116.07|22.88|130|W|,Jieshi|guangdong|CN|115.83|22.81|137|W|,Jieshou|anhui|CN|115.36|33.26|141|W|,Jieyang|guangdong|CN|116.37|23.54|1899|W|tie jang,Jijel|jijel|DZ|5.76|36.82|131|W|dzidzili;yiyel;jijelli,Jijiang|chongqing|CN|106.25|29.29|196|W|,Jijiga|somali|ET|42.8|9.35|483|W|djidjiga;dschidschiga;dzidziga,Jilin|jilin|CN|126.56|43.85|1895|W|jilin city;ciudad de jilin;cat lam;kota jilin;ti lin,Jimeta|adamawa|NG|12.46|9.28|248|W|,Jimma|oromiya|ET|36.83|7.67|250|W|dzimma;gimma;jima,Jinan|shandong|CN|117|36.67|4335|W|ti nan,Jinchang|gansu|CN|102.19|38.5|228|W|kim xuong;tin cchang,Jincheng|shanxi|CN|112.83|35.5|476|W|,Jind|haryana|IN|76.32|29.32|167|W|,Jing'an|shanghai|CN|121.42|31.22|936|W|,Jing'an|guangdong|CN|113.29|22.21|186|W|,Jingdezhen|jiangxi|CN|117.21|29.29|473|W|,Jinghong|yunnan|CN|100.77|22|205|W|,Jingling|hubei|CN|113.1|30.65|224|W|,Jingmen|hubei|CN|112.2|31.03|632|W|kinh mon;ting men,Jingzhou|hubei|CN|112.19|30.35|1052|W|kinh chau;ting cou,Jinhua|zhejiang|CN|119.64|29.11|1463|W|kim hoa;tin chua,Jining|shandong|CN|116.58|35.41|1241|W|ti ning,Jining|inner mongolia|CN|113.11|41.03|258|W|,Jinjiang|fujian|CN|118.57|24.82|1416|W|,Jinshan|shanghai|CN|121.29|30.84|822|W|,Jinshanlu|xinjiang|CN|88.13|47.85|190|W|altay,Jinzhong|shanxi|CN|112.75|37.68|1226|W|,Jinzhou|liaoning|CN|121.14|41.11|604|W|tin cou,Jiroft|kerman|IR|57.74|28.68|130|W|,Jiujiang|jiangxi|CN|116|29.7|1164|W|ciuciang;tiou tiang,Jiuquan|gansu|CN|98.52|39.74|428|W|tiou cchuan,Jiutai|jilin|CN|125.83|44.15|175|W|,Jiutepec|MX17|MX|-99.18|18.88|215|NW|,Jixi|heilongjiang|CN|130.96|45.29|403|W|ke tay;ti si,Jiyuan|henan|CN|112.59|35.09|242|W|,Jizhou|hebei|CN|115.57|37.55|362|W|,Jizzax|jizzakh region|UZ|67.83|40.13|179|W|cizzak;djizak;djizaks;dschizak;dzjizak;dzyzak;jizzak;jizzakh,Joao Pessoa|paraiba|BR|-34.86|-7.12|817|W|,Jodhpur|rajasthan|IN|73.01|26.27|1056|W|dzodhpur;dzodpur,Joetsu|niigata|JP|138.24|37.15|189|W|,Johannesburg|gauteng|ZA|28.04|-26.2|9418|W|johannesbourg;jo anna;joanesburgo;johannesburgo,Johns Creek|GA|US|-84.2|34.03|83|N|,Johnson City|TN|US|-82.35|36.31|66|N|,Johnston|RI|US|-71.51|41.82|29|N|,Johor Bahru|johor|MY|103.76|1.47|858|W|johor baharu,Joint Base Pearl Harbor Hickam|HI|US|-157.95|21.35|42|N|,Joinville|santa catarina|BR|-48.85|-26.3|664|W|,Joliet|IL|US|-88.08|41.53|147|NW|,Joliette|QC|CA|-73.42|46.02|34|N|,Jomvu|mombasa county|KE|39.61|-3.99|163|W|,Jonesboro|AR|US|-90.7|35.84|73|N|,Jonquiere|QC|CA|-71.25|48.42|54|N|,Joplin|MO|US|-94.51|37.08|51|N|,Jos|plateau state|NG|8.89|9.93|1040|W|dzos,Jose C. Paz|buenos aires|AR|-58.77|-34.52|230|W|,Jose Mariano Jimenez|MX06|MX|-104.92|27.13|34|N|,Juazeiro|bahia|BR|-40.5|-9.41|256|W|,Juazeiro do Norte|ceara|BR|-39.32|-7.21|305|W|,Juba|central equatoria|SS|31.58|4.85|450|W|djouba;dschuba,Juiz de Fora|minas gerais|BR|-43.35|-21.76|540|W|,Juja|kiambu county|KE|37.01|-1.1|156|W|,Juliaca|puno|PE|-70.13|-15.5|245|W|,Junagadh|gujarat|IN|70.46|21.52|319|W|,Jundiai|sao paulo|BR|-46.88|-23.19|443|W|,Juneau|AK|US|-134.42|58.3|31|N|,Jupiter|FL|US|-80.09|26.93|62|N|,Jurong Town||SG|103.72|1.33|262|W|,Jurong West||SG|103.72|1.35|253|W|,Jutiapa|jutiapa|GT|-89.89|14.28|145|W|,Juventino Rosas|MX11|MX|-101|20.64|42|N|,Jyvaeskylae|central finland|FI|25.72|62.24|148|W|jyvaskyla,Kabankalan|western visayas|PH|122.81|9.98|210|W|,Kabin Buri|prachin buri|TH|101.72|13.95|140|W|,Kabinda|lomami|CD|24.48|-6.14|219|W|,Kabul|kabul|AF|69.17|34.53|4434|W|cabul;kaboel;kaboul;kabil,Kabwe|central province|ZM|28.45|-14.45|288|W|,Kadapa|andhra pradesh|IN|78.82|14.48|344|W|cuddapah,Kadoma|osaka|JP|135.57|34.74|131|W|,Kaduna|kaduna state|NG|7.44|10.53|1850|W|,Kaech'on|south pyongan|KP|125.89|39.7|319|W|,Kaesong|kaesong|KP|126.55|37.97|338|W|,Kafr ash Shaykh|kafr el sheikh|EG|30.94|31.11|194|W|,Kafrul|dhaka division|BD|90.37|23.79|339|W|,Kagoshima|kagoshima|JP|130.55|31.57|595|W|kagosima,Kahama|shinyanga|TZ|32.6|-3.83|453|W|,Kahramanmaras|kahramanmaras|TR|36.93|37.58|384|W|,Kahului|HI|US|-156.47|20.89|26|N|,Kaifeng|henan|CN|114.31|34.8|1451|W|kai feng;kchaj feng;khai phong,Kaili|guizhou|CN|107.98|26.59|275|W|,Kailua|HI|US|-157.74|21.4|38|N|,Kairouan|kairouan|TN|10.1|35.68|139|W|cairuao;kairuan;kayravan;qairawan;qayrawan,Kaithal|haryana|IN|76.4|29.8|144|W|,Kaiyuan|yunnan|CN|103.3|23.7|198|W|,Kajang|selangor|MY|101.79|2.99|236|W|,Kajansi|central region|UG|32.53|0.22|135|W|,Kakamega|kakamega county|KE|34.75|0.28|1867|W|,Kakamigahara|gifu|JP|136.87|35.42|144|W|,Kakinada|andhra pradesh|IN|82.24|16.96|384|W|,Kakogawacho-honmachi|hyogo|JP|134.83|34.77|271|W|kakogawa,Kalaban Koro|koulikoro|ML|-8.03|12.57|148|W|,Kalaburagi|karnataka|IN|76.84|17.34|543|W|gulbarga;kalaburgi,Kalamazoo|MI|US|-85.59|42.29|76|N|,Kalemie|tanganyika|CD|29.19|-5.95|160|W|,Kalemyo|sagaing region|MM|94.06|23.19|348|W|,Kalihi-Palama|HI|US|-157.88|21.33|43|N|kalihi,Kaliningrad|kaliningrad oblast|RU|20.51|54.71|475|W|krolewiec;caliningrado;kaliningrado;konigsberg;konigsberg in preussen,Kalininskiy|st petersburg|RU|30.39|60|504|W|,Kallakurichi|tamil nadu|IN|78.96|11.73|1682|W|,Kalol|gujarat|IN|72.5|23.25|134|W|,Kaluga|kaluga oblast|RU|36.27|54.53|340|W|kaloega;kalouga,Kalyan|maharashtra|IN|73.14|19.24|1262|W|,Kamakura|kanagawa|JP|139.55|35.31|172|W|,Kamalia|punjab|PK|72.65|30.73|166|W|,Kamalshahr|alborz province|IR|50.87|35.86|141|W|,Kamarhati|west bengal|IN|88.37|22.67|332|W|,Kamensk-Ural'skiy|sverdlovsk oblast|RU|61.93|56.41|182|W|kamensk uralskij;kamensk uralsky;kamensk uralski,Kamina|haut lomami|CD|25|-8.74|200|W|,Kamirenjaku|tokyo|JP|139.55|35.69|195|W|,Kamloops|BC|CA|-120.32|50.67|104|N|,Kamoke|punjab|PK|74.22|31.98|292|W|,Kampala|central region|UG|32.58|0.32|1680|W|campala,Kampong Baharu Cheras Batu Sebelas|selangor|MY|101.77|3.05|232|W|,Kampong Pasir Ris||SG|103.93|1.38|144|W|,Kampung Baru Subang|selangor|MY|101.53|3.15|833|W|,Kampung Kangkar Teberau|johor|MY|103.75|1.53|412|W|,Kampung Larkin Lama|johor|MY|103.74|1.5|500|W|,Kampung Pasir Gudang Baru|johor|MY|103.88|1.47|145|W|,Kampung Sungai Ara|penang|MY|100.27|5.33|140|W|,Kampung Sungai Glugur|penang|MY|100.31|5.37|145|W|,Kamyanske|dnipropetrovsk|UA|34.61|48.52|226|W|dnieprodzierzynsk;dniprodzerzyns k;kam jans ke;kamianske;kamienskie;dniprodzerzhynsk,Kananga|kasai central|CD|22.42|-5.9|1247|W|kanange,Kanasin|MX31|MX|-89.56|20.93|77|N|,Kanata|ON|CA|-75.92|45.3|90|N|,Kanayannur|kerala|IN|76.27|9.97|851|W|,Kanazawa|ishikawa|JP|136.62|36.6|466|W|,Kanchipuram|tamil nadu|IN|79.7|12.84|221|W|kancheepuram;kancipuram;conjevaram,Kanchrapara|west bengal|IN|88.43|22.96|136|W|,Kandahar|kandahar|AF|65.71|31.61|523|W|kandehar,Kaneohe|HI|US|-157.8|21.4|34|N|,Kanggye|chagang|KP|126.59|40.97|209|W|,Kankakee|IL|US|-87.86|41.12|26|N|,Kankan|kankan region|GN|-9.31|10.39|221|W|,Kannapolis|NC|US|-80.62|35.49|46|N|,Kano|kano state|NG|8.52|12|4910|W|,Kanpur|uttar pradesh|IN|80.35|26.47|2823|W|cawnporne,Kansas City|MO|US|-94.58|39.1|475|NW|kota kansas,Kansas City|KS|US|-94.63|39.11|152|NW|,Kaohsiung|takao|TW|120.31|22.62|2737|W|kaohsiung city;cao hung;gaoxiong;takao,Kaolack|kaolack|SN|-16.07|14.15|298|W|,Kapar|selangor|MY|101.38|3.13|269|W|,Karabaglar|izmir province|TR|27.13|38.38|479|W|,Karachi|sindh|PK|67.01|24.86|11624|W|carachi;karaczi;karanchi;karatschi;karaci,Karagandy|karaganda|KZ|73.1|49.8|497|W|karaganda;qaraghandy;qaragandi,Karaikkudi|tamil nadu|IN|78.77|10.07|181|W|karaikudi,Karaj|alborz province|IR|50.99|35.83|1448|W|karadsch;karadz;kerec,Karaman|karaman|TR|33.22|37.18|175|W|,Karamay|xinjiang|CN|84.89|45.58|261|W|kelamayi,Karawalnagar|delhi|IN|77.27|28.73|224|W|,Karawang|west java|ID|107.32|-6.31|307|W|,Karbala|karbala|IQ|44.02|32.62|1218|W|kerbela;kerbala,Kariega|eastern cape|ZA|25.4|-33.76|291|W|uitenhage,Karimnagar|telangana|IN|79.13|18.44|289|W|,Kariya|aichi|JP|136.98|34.98|153|W|,Karlsruhe|baden wurttemberg|DE|8.4|49.01|283|W|,Karnal|haryana|IN|76.98|29.69|302|W|,Karnaphuli|chittagong|BD|92.23|22.69|203|W|,Karol Bagh|delhi|IN|77.19|28.65|505|W|,Karsiyaka|izmir province|TR|27.11|38.46|339|W|cordaleo;cordelio,Karur|tamil nadu|IN|78.08|10.96|234|W|,Karuri|kiambu county|KE|36.76|-1.18|194|W|,Karuri|murang a|KE|37.18|-0.7|194|W|,Kasama|northern province|ZM|31.18|-10.21|179|W|arcidiocesi di kasama,Kasangati|central region|UG|32.6|0.44|207|W|,Kashan|isfahan|IR|51.43|33.98|304|W|,Kashgar|xinjiang|CN|75.99|39.47|506|W|kachgar;kaschgar;kasgar;kaszgar,Kashiwa|chiba|JP|139.98|35.86|433|W|,Kashmar|razavi khorasan|IR|58.47|35.24|131|W|,Kassala|kassala|SD|36.4|15.45|401|W|statul kassala,Kassel|hesse|DE|9.5|51.32|197|W|cassel,Kasugai|aichi|JP|136.97|35.25|308|W|,Kasukabe|saitama|JP|139.75|35.98|229|W|,Kasulu|kigoma|TZ|30.1|-4.58|238|W|,Kasur|punjab|PK|74.45|31.12|510|W|,Katabi|central region|UG|32.47|0.08|154|W|,Kathmandu|bagmati province|NP|85.32|27.7|1442|W|katmandou;catmandu;kathmandou;katmandu,Kati|koulikoro|ML|-8.07|12.74|130|W|,Katihar|bihar|IN|87.57|25.54|240|W|,Katowice|silesia|PL|19.02|50.26|286|W|katovice;kattowitz,Katsina|katsina state|NG|7.6|12.99|670|W|,Katsushika|tokyo|JP|139.85|35.73|453|W|katsushika ku;katsushika city,Katsuta|ibaraki|JP|140.53|36.38|155|W|,Kaunas|kaunas|LT|23.91|54.9|289|W|kowno;kauen,Kawagoe|saitama|JP|139.49|35.91|354|W|,Kawaguchi|saitama|JP|139.71|35.81|607|W|,Kawanishi|hyogo|JP|135.42|34.82|155|W|,Kawasaki|kanagawa|JP|139.72|35.52|1538|W|kawasaki city,Kayes|kayes|ML|-11.44|14.45|194|W|,Kayseri|kayseri|TR|35.49|38.73|1452|W|cesarea in cappadocia,Kaysville|UT|US|-111.94|41.04|30|N|,Kazan|tatarstan republic|RU|49.12|55.79|1243|W|caza;kasan,Kearney|NE|US|-99.08|40.7|33|N|,Kearns|UT|US|-112|40.66|35|N|,Kearny|NJ|US|-74.15|40.77|42|N|,Kediri|east java|ID|112.02|-7.82|301|W|kota kediri,Keelung|taiwan|TW|121.74|25.13|362|W|chilung;co long;kota keelung;ti lung,Keizer|OR|US|-123.03|44.99|37|N|,Kelar|sulaymaniyah|IQ|45.32|34.63|250|W|,Keller|TX|US|-97.25|32.93|45|N|,Kelowna|BC|CA|-119.49|49.88|144|NW|,Kembangan||SG|103.91|1.32|130|W|,Kemerovo|kuzbass|RU|86.1|55.35|558|W|kemerowo,Ken Caryl|CO|US|-105.11|39.58|32|N|,Kendale Lakes|FL|US|-80.41|25.71|56|N|,Kendall|FL|US|-80.32|25.68|80|N|,Kendall West|FL|US|-80.44|25.71|36|N|,Kendari|southeast sulawesi|ID|122.52|-3.98|351|W|kota kendari,Kenema|eastern province|SL|-11.19|7.88|255|W|,Keng Tung|shan state|MM|99.93|21.63|171|W|,Kenitra|rabat sale kenitra|MA|-6.58|34.26|470|W|al kunajtira;kenitre,Kennedy|bogota d c|CO|-74.15|4.62|979|W|,Kenner|LA|US|-90.24|29.99|67|N|,Kennesaw|GA|US|-84.62|34.02|33|N|,Kennewick|WA|US|-119.14|46.21|78|N|,Kenosha|WI|US|-87.82|42.58|99|N|,Kensington|NY|US|-73.97|40.65|39|N|,Kensington-Cedar Cottage|BC|CA|-123.07|49.25|49|N|,Kent|WA|US|-122.23|47.38|126|N|,Kent|OH|US|-81.36|41.15|29|N|,Kentron|yerevan|AM|44.51|40.18|133|W|kentron district,Kentwood|MI|US|-85.64|42.87|51|N|,Kerch|crimea|UA|36.48|45.36|148|W|kerci;kercz;kertch;kertj;kertsch;kertsj;kerts;kerc,Kerman|kerman|IR|57.08|30.28|577|W|,Kermanshah|kermanshah province|IR|47.06|34.31|621|W|kermanschah;kirmansah;province de kermanshah;provincia de kermanshah,Kettering|OH|US|-84.17|39.69|55|N|,Kew Gardens Hills|NY|US|-73.82|40.73|37|N|,Key West|FL|US|-81.78|24.56|25|N|cayo hueso,Khabarovsk|khabarovsk|RU|135.1|48.46|618|W|chabarovsk;chabarowsk;habarovsk;jabarovsk,Khairpur Mir's|sindh|PK|68.76|27.53|191|W|khairpur,Khamis Mushait|asir region|SA|42.73|18.3|387|W|chamis muschait;chamis muszajt;hamis musayt;khamis mushayt,Khammam|telangana|IN|80.14|17.25|196|W|,Khan Yunis|gaza strip|PS|34.31|31.34|173|W|jan yunis;khan younis,Khanaqin|diyala|IQ|45.39|34.35|175|W|,Khandwa|madhya pradesh|IN|76.35|21.82|200|W|,Khanpur|punjab|PK|70.66|28.65|142|W|,Kharagpur|west bengal|IN|87.33|22.34|219|W|,Kharkiv|kharkiv|UA|36.25|49.98|1421|W|charkiv;carcovia;charkiw;charkov;charkow;harkov;harkova;jarkov;kharkov,Khartoum|khartoum|SD|32.53|15.55|1974|W|cartum;chartum;hartum;jartum;khartoem;khartum,Khartoum North|khartoum|SD|32.53|15.65|1012|W|bahri;jartum norte;khartoum nord;khartum nord,Khasnahzan|erbil|IQ|44.14|36.2|146|W|,Khemisset|rabat sale kenitra|MA|-6.07|33.82|143|W|,Khimki|moscow oblast|RU|37.43|55.9|239|W|chimki;himki;jimki,Khirdalan|abseron|AZ|49.76|40.45|196|W|hirdalan;xirdalan,Khlong Sam Wa|bangkok|TH|100.74|13.87|169|W|,Khmelnytskyi|khmelnytskyi|UA|26.98|49.42|274|W|chmel nyc kyj;chmelnyzkyj;chmielnicki;khmel nyts kyy;proscurovia;ploskurow,Khobar|eastern province|SA|50.21|26.28|165|W|al chubar;al khobar;el huber,Khomeyni Shahr|isfahan|IR|51.54|32.69|277|W|three castles,Khoroshevo-Mnevniki|moscow|RU|37.47|55.78|159|W|,Khorramabad|lorestan province|IR|48.36|33.49|329|W|,Khorramshahr|khuzestan|IR|48.18|30.44|330|W|chorramschahr;chorramszahr;chorramsahr;hurremsehr;jorramchar;koramsjar,Khouribga|beni mellal khenifra|MA|-6.91|32.88|214|W|,Khujand|sughd|TJ|69.62|40.28|191|W|choedzjand;chudschand;chudzjand;hucand;hudzand;khodjent,Khulna|khulna division|BD|89.56|22.81|1500|W|,Khuraybat as Suq|amman|JO|35.92|31.88|186|W|,Khuy|west azerbaijan|IR|44.95|38.55|198|W|,Khuzdar|balochistan|PK|66.61|27.81|218|W|,Kiambu|kiambu county|KE|36.84|-1.17|147|W|,Kibaha|pwani|TZ|38.92|-6.77|265|W|,Kiel|schleswig holstein|DE|10.13|54.32|252|W|kilonia,Kielce|swietokrzyskie|PL|20.63|50.87|192|W|,Kigali|kigali|RW|30.06|-1.95|1132|W|,Kigoma|kigoma|TZ|29.63|-4.88|232|W|,Kikolo|luanda|AO|13.33|-8.78|728|W|quicolo,Kikuyu|kiambu county|KE|36.66|-1.25|323|W|,Kikwit|kwilu|CD|18.82|-5.04|509|W|,Kilamba|luanda|AO|13.28|-8.85|237|W|kilamba kiaxi,Killarney|BC|CA|-123.04|49.23|29|N|,Killeen|TX|US|-97.73|31.12|140|NW|,Kima Kieza|luanda|AO|13.3|-8.83|428|W|quima quieza,Kimberley|northern cape|ZA|24.76|-28.73|142|W|,Kimhae|gyeongsangnam do|KR|128.88|35.23|531|W|gimhae,Kindia|kindia|GN|-12.87|10.06|161|W|,Kindu|maniema|CD|25.92|-2.94|234|W|,Kingman|AZ|US|-114.05|35.19|28|N|,Kings Bridge|NY|US|-73.91|40.88|75|N|,Kingsport|TN|US|-82.56|36.55|53|N|,Kingston|kingston|JM|-76.79|18|937|W|,Kingston|ON|CA|-76.48|44.23|132|NW|cataraqui,Kingston upon Hull|england|GB|-0.34|53.74|314|W|hull,Kingsville|TX|US|-97.86|27.52|26|N|,Kinshasa|kinshasa|CD|15.31|-4.33|16000|W|kinsasa;kinszasa;quinxassa,Kipushi|haut katanga|CD|27.25|-11.76|169|W|,Kira|central region|UG|32.63|0.4|462|W|,Kirari Sulemannagar|delhi|IN|77.06|28.7|283|W|,Kirdasah|giza|EG|31.11|30.03|137|W|kerdasa,Kirikkale|kirikkale|TR|33.51|39.85|186|W|,Kirkland|WA|US|-122.21|47.68|87|N|,Kirkuk|kirkuk|IQ|44.39|35.47|1031|W|kerkuk;kirkoek;kirkouk,Kirkwood|MO|US|-90.41|38.58|27|N|,Kirov|kirov oblast|RU|49.66|58.6|507|W|kirow,Kirsehir|kirsehir|TR|34.16|39.15|150|W|,Kiryas Joel|NY|US|-74.17|41.34|32|N|,Kisangani|tshopo|CD|25.19|0.52|1181|W|stanleystad;stanleyville,Kisaran|north sumatra|ID|99.62|2.98|141|W|,Kisarazu|chiba|JP|139.93|35.38|136|W|,Kishangarh|rajasthan|IN|74.85|26.59|154|W|,Kishiwada|osaka|JP|135.37|34.47|205|W|,Kisi|oyo state|NG|3.85|9.08|155|W|,Kislovodsk|stavropol kray|RU|42.72|43.91|132|W|kislowodsk;kislowodzk,Kismayo|lower juba|SO|42.55|-0.36|234|W|chisimayu;kismaayo,Kissimmee|FL|US|-81.42|28.3|69|N|,Kisumu|kisumu county|KE|34.76|-0.1|397|W|,Kita|tokyo|JP|139.73|35.75|332|W|kita ku,Kitakyushu|fukuoka|JP|130.85|33.85|940|W|kitakjusu,Kitale|trans nzoia|KE|35.01|1.02|162|W|,Kitchener|ON|CA|-80.51|43.43|256|NW|,Kitengela|kajiado county|KE|36.96|-1.48|154|W|,Kitsilano|BC|CA|-123.17|49.27|43|N|,Kitwe|copperbelt|ZM|28.21|-12.8|665|W|,Kiziltepe|mardin|TR|40.58|37.19|150|W|,Klaipeda|klaipeda county|LT|21.14|55.71|172|W|klajpeda;memel,Klang|selangor|MY|101.44|3.04|240|W|kelang,Klerksdorp|north west|ZA|26.67|-26.85|227|W|,Kluang|johor|MY|103.32|2.03|323|W|,Klungkung|bali|ID|115.4|-8.53|223|W|,Knoxville|TN|US|-83.92|35.96|190|NW|,Kobe|hyogo|JP|135.18|34.69|1525|W|,Kochi|kerala|IN|76.26|9.94|633|W|cochim;cochin;ernakulam;koczin,Kochi|kochi|JP|133.53|33.55|332|W|kochi shi;kochishi,Kodaira|tokyo|JP|139.49|35.73|198|W|,Koeln|north rhine westphalia|DE|6.95|50.93|1024|W|koln;cologne;colonia;keulen;kolonia;kolin nad rynem,Koforidua|eastern|GH|-0.26|6.09|151|W|,Kofu|yamanashi|JP|138.57|35.67|189|W|,Koga|ibaraki|JP|139.72|36.18|139|W|,Kohat|khyber pakhtunkhwa|PK|71.45|33.58|151|W|,Kokomo|IN|US|-86.13|40.49|57|N|,Kokshetau|aqmola|KZ|69.39|53.28|150|W|kokchetaou;kokczetaw;koksetau;kokcetau;kokschetau;koksjetau;koksetaw,Kolar|karnataka|IN|78.13|13.14|138|W|,Kolhapur|maharashtra|IN|74.23|16.7|549|W|,Kolkata|west bengal|IN|88.36|22.56|4631|W|calcutta;calcuta;kalkata;kalkuta;kalkutta,Kollam|kerala|IN|76.58|8.88|367|W|quilon;coulao,Kolomna|moscow oblast|RU|38.78|55.07|147|W|,Kolpino|st petersburg|RU|30.59|59.75|138|W|kolppina,Kolwezi|lualaba|CD|25.47|-10.71|790|W|,Kom Ombo|aswan|EG|32.95|24.48|409|W|,Komaki|aichi|JP|136.92|35.28|148|W|,Kombolcha|amhara|ET|39.74|11.08|132|W|kembolcza,Komsomolsk-on-Amur|khabarovsk|RU|137.01|50.55|275|W|komsomolsk am amur;komsomolsk del amur;komsomolsk na amure;komsomolsk sur l amour,Kon Tum|quang ngai|VN|108.01|14.35|205|W|,Konak|izmir province|TR|27.1|38.4|332|W|,Konibodom|sughd|TJ|70.43|40.29|211|W|,Konya|konya|TR|32.48|37.87|1433|W|iconio,Korba|chhattisgarh|IN|82.7|22.35|419|W|,Koreatown|CA|US|-118.3|34.06|124|N|,Korhogo|savanes district|CI|-5.63|9.46|440|W|,Koriyama|fukushima|JP|140.38|37.4|327|W|,Korla|xinjiang|CN|86.15|41.76|549|W|,Korolev|moscow oblast|RU|37.83|55.91|139|W|korolyov;koroliov;koroljov;korolow,Koronadal|soccsksargen|PH|124.85|6.5|201|W|koronadal city;kota koronadal,Koshigaya|saitama|JP|139.79|35.89|345|W|,Kosice|kosice region|SK|21.26|48.71|225|W|koszyce;kaschau,Kostanay|kostanay|KZ|63.62|53.21|210|W|kostanai;kostanaj;kustanaj;qostanai;qostanaj;qostanay;kustanay;nikolayevsk,Kosti|white nile|SD|32.66|13.16|345|W|kusti,Kostroma|kostroma oblast|RU|40.93|57.77|277|W|,Kota|rajasthan|IN|75.84|25.18|1001|W|,Kota Bharu|kelantan|MY|102.24|6.12|568|W|kota bahru,Kota Damansara|selangor|MY|101.58|3.15|500|W|,Kota Kinabalu|sabah|MY|116.07|5.97|500|W|,Kota Kuala Muda|kedah|MY|100.37|5.59|544|W|,Koto|kumamoto|JP|130.75|32.78|543|W|koto city,Koudougou|centre ouest|BF|-2.37|12.25|160|W|,Koumassi|abidjan autonomous district|CI|-3.97|5.3|412|W|,Kousseri|far north|CM|15.03|12.08|139|W|,Koutiala|sikasso|ML|-5.47|12.39|218|W|,Kovpakivskyi|sumy|UA|34.79|50.93|142|W|kovpakivskyi rayon,Kovrov|vladimir oblast|RU|41.32|56.36|154|W|kowrow,Kowloon||HK|114.18|22.32|2232|W|koulun,Kowloon City|kowloon city|HK|114.19|22.33|418|W|,Kowloon City Centre|kowloon city|HK|114.19|22.33|194|W|,Kozhikode|kerala|IN|75.78|11.25|550|W|kozikkot;calecute;calicut,Kragujevac|central serbia|RS|20.92|44.02|147|W|,Krakow|lesser poland|PL|19.94|50.06|816|W|cracovia;cracovie;krakau;krakov;krakova;cracow,Kramatorsk|donetsk|UA|37.57|48.73|147|W|kramators k,Krasnodar|krasnodar krai|RU|38.98|45.05|899|W|,Krasnogvargeisky|st petersburg|RU|30.48|59.97|337|W|,Krasnoyarsk|krasnoyarsk krai|RU|92.93|56.04|1090|W|krasnojarsk;krasnoiarsk,Krefeld|north rhine westphalia|DE|6.55|51.34|237|W|,Kremenchuk|poltava|UA|33.4|49.06|224|W|kremencuk;kremenciuk;krementchouk;krementjuk;krementschuk;krementsjoek;krementsjuk;krementsuk;kremencug;krzemienczuk;kremenchug;kreminchuk,Kreuzberg|state of berlin|DE|13.4|52.5|153|W|berlin kreuzberg,Krishnanagar|west bengal|IN|88.49|23.41|145|W|,Kropyvnytskyi|kirovohrad|UA|32.27|48.51|219|W|kropywnycki;kropywnyzkyj;elisavetgrad;elizabethgrad;jelisawetgrad;jelizawietgrad;kirovo;kirovograd;kirovogrado;kirovohrad;kirowograd;kirowohrad;yelisavetgrad;zinovievsk;zinovyevsk;zinowjewsk,Krugersdorp|gauteng|ZA|27.78|-26.09|378|W|,Kryvyy Rih|dnipropetrovsk|UA|33.39|47.91|603|W|krivoj rog;kryvy rig;kryvy rih;kryvyi rih;kryvyj rih;krywyj rih;krzywy rog;krivii rih,Ksar El Kebir|tanger tetouan al hoceima|MA|-5.9|35|138|W|,Kuala Kubu Baharu|selangor|MY|101.66|3.56|194|W|kuala kubu;kuala kubu baru;kuala kubu bharu,Kuala Lumpur|kuala lumpur|MY|101.69|3.14|1453|W|,Kuala Terengganu|terengganu|MY|103.14|5.33|426|W|,Kuantan|pahang|MY|103.33|3.81|548|W|,Kuching|sarawak|MY|110.33|1.55|402|W|,Kuecuekcekmece|istanbul|TR|28.77|40.99|792|W|kucukcekmece,Kuetahya|kutahya|TR|29.98|39.42|185|W|kutahya,Kukatpally|telangana|IN|78.41|17.48|341|W|kukatpalle;kukatpalli,Kukichuo|saitama|JP|139.67|36.07|150|W|,Kulim|kedah|MY|100.56|5.36|170|W|,Kulob|khatlon province|TJ|69.78|37.91|214|W|,Kulti|west bengal|IN|86.84|23.73|305|W|,Kumagaya|saitama|JP|139.39|36.13|195|W|,Kumamoto|kumamoto|JP|130.69|32.81|738|W|kumamoto shi,Kumarapalayam|tamil nadu|IN|77.71|11.44|195|W|komarapalayam,Kumasi|ashanti|GH|-1.62|6.69|2544|W|,Kumba|south west|CM|9.45|4.64|225|W|,Kumbakonam|tamil nadu|IN|79.39|10.96|167|W|,Kunduz|kunduz|AF|68.86|36.73|161|W|konduz;kondoz;kundus;qunduz,Kunming|yunnan|CN|102.72|25.04|3855|W|con minh;kchun ming,Kunri|sindh|PK|69.57|25.18|237|W|,Kunshan|jiangsu|CN|120.95|31.38|2092|W|con son;kchun san,Kuntsevo|moscow|RU|37.4|55.74|147|W|kuncevo;kuncewo;kuntsevo district,Kupang|east nusa tenggara|ID|123.61|-10.17|474|W|kota kupang,Kurashiki|okayama|JP|133.77|34.58|483|W|,Kure|hiroshima|JP|132.57|34.23|214|W|,Kurgan|kurgan oblast|RU|65.34|55.45|309|W|curgan;koergan;kourgan,Kurnool|andhra pradesh|IN|78.04|15.83|460|W|karnulu,Kursk|kursk oblast|RU|36.18|51.73|448|W|koersk;koursk,Kurume|fukuoka|JP|130.52|33.32|303|W|,Kusatsu|shiga|JP|135.97|35.02|143|W|,Kushinagar|uttar pradesh|IN|83.89|26.74|274|W|,Kushiro|hokkaido|JP|144.37|42.98|167|W|kushiro shi;kusiro,Kushtia|khulna division|BD|89.12|23.9|135|W|,Kutaisi|imereti|GE|42.69|42.27|135|W|koutaissi;kutaissi;koetaisi;kutayis,Kuwana|mie|JP|136.67|35.05|140|W|,Kuz'minki|moscow|RU|37.8|55.7|143|W|,KwaDukuza|kwazulu natal|ZA|31.29|-29.33|161|W|,Kwai Chung|kwai tsing district|HK|114.14|22.37|331|W|,Ky Anh|ha tinh province|VN|106.3|18.06|150|W|,Kyaukpyu|rakhine|MM|93.55|19.43|180|W|,Kyauktan|yangon|MM|96.33|16.64|132|W|,Kyengera|central region|UG|32.5|0.3|285|W|,Kyiv|kyiv city|UA|30.52|50.45|2952|W|kiev;kyjiw;ki ep;kiew;kijow;kiova;kyiw;kyjev;chiovia,Kyivskyi|donetsk|UA|37.78|48.05|139|W|kyivskyi rayon,Kyle|TX|US|-97.88|29.99|35|N|,Kyoto|kyoto|JP|135.75|35.02|1463|W|kioto;kjoto;kyoto shi;quioto,Kyzylorda|kyzylorda|KZ|65.51|44.85|354|W|kizilorda;qysylorda;qyzylorda;qizilorda;ak mechet;fort perovsky;kzyl orda;perovsk,L'Amoreaux|ON|CA|-79.31|43.8|43|N|,L'Hospitalet de Llobregat|catalonia|ES|2.1|41.36|257|W|hospitalet de llobregat,La Barca|MX14|MX|-102.54|20.29|35|N|,La Ceiba|atlantida department|HN|-86.78|15.76|222|W|,La Cite-Limoilou|QC|CA|-71.23|46.83|108|N|,La Crosse|WI|US|-91.24|43.8|52|N|,La Gi|lam dong|VN|107.77|10.66|160|W|,La Habra|CA|US|-117.95|33.93|62|N|,La Haute-Saint-Charles|QC|CA|-71.37|46.89|88|N|,La Jolla|CA|US|-117.27|32.85|42|N|,La Joya|MX02|MX|-117|32.44|26|N|,La Laguna|canary islands|ES|-16.32|28.49|150|W|,La Mesa|CA|US|-117.02|32.77|60|N|,La Mirada|CA|US|-118.01|33.92|49|N|,La Paz|la paz department|BO|-68.15|-16.5|2004|W|ciudad la paz,La Paz|MX03|MX|-110.31|24.14|250|NW|,La Piedad de Cabadas|MX16|MX|-102.02|20.34|83|N|la piedad;municipio la piedad,La Pintana|santiago metropolitan|CL|-70.63|-33.58|201|W|,La Plata|buenos aires|AR|-57.95|-34.92|195|W|,La Porte|TX|US|-95.02|29.67|35|N|,La Presa|CA|US|-117|32.71|34|N|,La Puente|CA|US|-117.95|34.02|40|N|,La Quinta|CA|US|-116.31|33.66|40|N|,La Rioja|la rioja|AR|-66.86|-29.41|178|W|ciudad de la rioja;rioja,La Romana|la romana|DO|-68.97|18.42|208|W|,La Serena|coquimbo region|CL|-71.25|-29.91|154|W|,La Trinidad|cordillera|PH|120.59|16.45|142|W|,La Vergne|TN|US|-86.58|36.02|34|N|,La Verne|CA|US|-117.77|34.1|32|N|,Laayoune||EH|-13.19|27.14|196|W|el aaiun;aaiun;al ajoen;al ayun;al ujun;el ayun,Labuan Bajo|east nusa tenggara|ID|119.89|-8.5|188|W|labuanbajo,Lacey|WA|US|-122.82|47.03|46|N|,Ladysmith|kwazulu natal|ZA|29.78|-28.56|143|W|,Lafayette|LA|US|-92.02|30.22|121|N|,Lafayette|IN|US|-86.88|40.42|71|N|,Lafayette|CO|US|-105.09|39.99|27|N|,Lafayette|CA|US|-122.12|37.89|25|N|,Lages|santa catarina|BR|-50.33|-27.82|172|W|,Laghouat|laghouat|DZ|2.87|33.8|134|W|al aghwat;lagouat,Lagos|lagos|NG|3.39|6.45|15388|W|,Lagos de Moreno|MX14|MX|-101.93|21.36|98|N|,LaGrange|GA|US|-85.03|33.04|29|N|la grange,Laguna|CA|US|-121.42|38.42|46|N|,Laguna Hills|CA|US|-117.71|33.61|31|N|,Laguna Niguel|CA|US|-117.71|33.52|65|N|,Lahore|punjab|PK|74.35|31.56|13004|W|lahaur;lahor,Laibin|guangxi|CN|109.22|23.75|910|W|lai tan;laj pin,Laiwu|shandong|CN|117.66|36.19|989|W|lai vu;laj wu,Laixi|shandong|CN|120.53|36.86|341|W|,Laiyang|shandong|CN|120.71|36.98|169|W|,Laizhou|shandong|CN|119.94|37.18|188|W|laichow,Lajeado|sao paulo|BR|-46.41|-23.53|164|W|,Lake Charles|LA|US|-93.2|30.21|76|N|,Lake Elsinore|CA|US|-117.33|33.67|61|N|,Lake Forest|CA|US|-117.69|33.65|82|N|,Lake Havasu City|AZ|US|-114.32|34.48|53|N|,Lake in the Hills|IL|US|-88.33|42.18|29|N|,Lake Jackson|TX|US|-95.43|29.03|27|N|,Lake Magdalene|FL|US|-82.47|28.07|28|N|,Lake Oswego|OR|US|-122.67|45.42|38|N|,Lake Ridge|VA|US|-77.3|38.69|41|N|,Lake Stevens|WA|US|-122.06|48.02|30|N|,Lake Worth Beach|FL|US|-80.07|26.62|37|N|lake worth,Lakeland|FL|US|-81.95|28.04|104|N|,Lakeside|FL|US|-81.77|30.13|30|N|,Lakeville|MN|US|-93.24|44.65|60|N|,Lakewood|CO|US|-105.08|39.7|152|NW|,Lakewood|CA|US|-118.13|33.85|81|N|,Lakewood|WA|US|-122.52|47.17|59|N|,Lakewood|NJ|US|-74.22|40.1|53|N|lakewood township;municipio de lakewood,Lakewood|SK|CA|-106.59|52.11|51|N|,Lakewood|OH|US|-81.8|41.48|50|N|,Lakhimpur|uttar pradesh|IN|80.78|27.95|140|W|,Lal Bahadur Nagar|telangana|IN|78.56|17.35|261|W|,Lampang|lampang|TH|99.49|18.29|156|W|,Lancaster|CA|US|-118.14|34.7|161|NW|,Lancaster|PA|US|-76.31|40.04|59|N|,Lancaster|OH|US|-82.6|39.71|39|N|,Lancaster|TX|US|-96.76|32.59|38|N|,Land O' Lakes|FL|US|-82.46|28.22|31|N|,Lander|miranda|VE|-66.7|10.18|176|W|,Lang'ata|nairobi county|KE|36.73|-1.37|172|W|,Lang Son|lang son province|VN|106.76|21.85|200|W|,Langfang|hebei|CN|116.71|39.52|868|W|,Langford|BC|CA|-123.5|48.45|46|N|,Langley|BC|CA|-122.66|49.1|132|NW|ciudad de langley,Langsa|aceh|ID|97.97|4.47|184|W|,Lansing|MI|US|-84.56|42.73|112|N|,Lansing|IL|US|-87.54|41.56|28|N|,Lanus|buenos aires|AR|-58.39|-34.71|212|W|,Lanzhou|gansu|CN|103.84|36.06|3000|W|lan chau;lan cou,Lao Cai|lao cai|VN|103.97|22.49|130|W|laos,Laohekou|hubei|CN|111.67|32.39|253|W|,Laplace|LA|US|-90.48|30.07|29|N|,Lapu-Lapu City|central visayas|PH|123.95|10.31|497|W|lapu lapu,Larache|tanger tetouan al hoceima|MA|-6.16|35.19|136|W|al araisz;laraxe,Laramie|WY|US|-105.59|41.31|32|N|,Laredo|TX|US|-99.51|27.51|256|NW|,Largo|FL|US|-82.79|27.91|81|N|,Larisa|thessaly|GR|22.42|39.63|146|W|larissa;yenisehir,Larkana|sindh|PK|68.21|27.56|364|W|,Las Choapas|MX30|MX|-94.1|17.91|42|N|,Las Cruces|NM|US|-106.78|32.31|101|N|,Las Guacamayas|MX16|MX|-102.21|18.02|37|N|,Las Palmas de Gran Canaria|canary islands|ES|-15.42|28.1|383|W|las palmas;las palmas de g c;palmas de gran canaria,Las Pinas|national capital region|PH|120.98|14.45|615|W|,Las Pintitas|MX14|MX|-103.3|20.56|26|N|,Las Tunas|las tunas province|CU|-76.95|20.96|203|W|victoria de las tunas,Las Vegas|NV|US|-115.14|36.17|641|NW|,LaSalle|ON|CA|-83.06|42.24|32|N|,Lashio|shan state|MM|97.75|22.94|131|W|lasho;lasio,Lat Krabang|bangkok|TH|100.78|13.72|163|W|,Latacunga|cotopaxi|EC|-78.62|-0.93|205|W|,Latakia|latakia|SY|35.79|35.53|709|W|laodicea;lataquia;lattakia;lattaquie;lazkiye;lazikija,Latina|madrid|ES|-3.75|40.39|256|W|,Latkrabang|bangkok|TH|100.75|13.73|173|W|,Latur|maharashtra|IN|76.57|18.4|382|W|,Lauderdale Lakes|FL|US|-80.21|26.17|34|N|,Lauderhill|FL|US|-80.21|26.14|71|N|,Laurel|MD|US|-76.85|39.1|26|N|,Lauro de Freitas|bahia|BR|-38.33|-12.89|203|W|,Lausanne|vaud|CH|6.63|46.52|139|W|lausana;losanna;lozan;lozanna,Laval|QC|CA|-73.69|45.57|438|NW|,Laval-des-Rapides|QC|CA|-73.7|45.56|36|N|,Lawndale|CA|US|-118.35|33.89|33|N|,Lawrence|KS|US|-95.24|38.97|93|N|,Lawrence|MA|US|-71.16|42.71|80|N|,Lawrence|IN|US|-86.03|39.84|47|N|,Lawrenceville|GA|US|-83.99|33.96|30|N|,Lawson|SK|CA|-106.64|52.16|34|N|,Lawton|OK|US|-98.39|34.61|96|N|,Layton|UT|US|-111.97|41.06|74|N|,Layyah|punjab|PK|70.94|30.96|151|W|,Le Havre|normandy|FR|0.11|49.49|185|W|el havre;hawr;le port de grace,Le Mans|pays de la loire|FR|0.2|48|144|W|,Le Plateau-Mont-Royal|QC|CA|-73.58|45.53|105|N|,Le Sud-Ouest|QC|CA|-73.59|45.47|86|N|,Le Vieux-Longueuil|QC|CA|-73.51|45.54|135|NW|,League City|TX|US|-95.09|29.51|98|N|,Leamington|ON|CA|-82.6|42.05|35|N|,Leander|TX|US|-97.85|30.58|59|N|,Leavenworth|KS|US|-94.92|39.31|35|N|,Leawood|KS|US|-94.62|38.97|34|N|,Lebanon|TN|US|-86.29|36.21|30|N|,Lebanon|PA|US|-76.41|40.34|25|N|,Lee's Summit|MO|US|-94.38|38.91|95|N|,Leeds|england|GB|-1.55|53.8|536|W|,Leesburg|VA|US|-77.56|39.12|51|N|,Leganes|madrid|ES|-3.76|40.33|188|W|,Legaspi|bicol region|PH|123.74|13.14|179|W|legazpi;legaspi city;legazpi city,Lehi|UT|US|-111.85|40.39|58|N|,Lehigh Acres|FL|US|-81.62|26.63|86|N|,Leicester|england|GB|-1.13|52.64|368|W|,Leipzig|saxony|DE|12.37|51.34|504|W|lipsca;lipsia;lipsk;lipsko,Leisure City|FL|US|-80.43|25.5|26|N|,Lekki|lagos|NG|3.48|6.45|401|W|,Lembang|west java|ID|107.62|-6.81|183|W|,Lemon Grove|CA|US|-117.03|32.74|26|N|,Lemoore|CA|US|-119.78|36.3|25|N|,Lenexa|KS|US|-94.73|38.95|52|N|,Leogane|ouest|HT|-72.63|18.51|134|W|,Leominster|MA|US|-71.76|42.53|41|N|,Leon|leon department|NI|-86.88|12.44|144|W|,Leon de los Aldama|MX11|MX|-101.68|21.12|1579|NW|leon;leon guanajuato;leon de los aldamas,Lerdo|MX10|MX|-103.52|25.54|79|N|,Les Rivieres|QC|CA|-71.27|46.82|77|N|,Leshan|sichuan|CN|103.76|29.56|662|W|le san,Lethbridge|AB|CA|-112.82|49.7|103|N|,Leverkusen|north rhine westphalia|DE|6.98|51.03|162|W|,Levis|QC|CA|-71.18|46.8|143|NW|,Levittown|PA|US|-74.83|40.16|52|N|,Levittown|NY|US|-73.51|40.73|51|N|lewittown,Lewiston|ME|US|-70.21|44.1|36|N|,Lewiston|ID|US|-117.02|46.42|32|N|,Lewiston Orchards|ID|US|-116.98|46.38|31|N|,Lewisville|TX|US|-96.99|33.05|104|N|,Lexington|KY|US|-84.48|37.99|320|NW|,Lexington|MA|US|-71.22|42.45|31|N|lexington village;cambridge farms;lexington centre,Lexington-Fayette|KY|US|-84.46|38.05|314|NW|,Lhoka|tibet|CN|91.77|29.24|353|W|,Lhokseumawe|aceh|ID|97.15|5.18|200|W|kota lhokseumawe,Lianghu|zhejiang|CN|120.9|29.99|155|W|,Liangping|chongqing|CN|107.77|30.66|137|W|,Lianshan|liaoning|CN|120.85|40.76|313|W|,Lianyungang|jiangsu|CN|119.22|34.6|2001|W|,Liaocheng|shandong|CN|116|36.45|1229|W|liao ccheng;lieu thanh,Liaoyang|liaoning|CN|123.17|41.27|687|W|liao jang;lieu duong,Libertad|caraga|PH|125.5|8.94|250|W|,Liberty|MO|US|-94.42|39.25|30|N|,Libreville|estuaire|GA|9.45|0.39|846|W|,Licheng|guangdong|CN|113.82|23.3|172|W|,Lichinga|niassa province|MZ|35.24|-13.31|281|W|,Liege|wallonia|BE|5.57|50.63|195|W|luttich;liegi;lieja;luik;lutych,Lijiang|yunnan|CN|100.22|26.87|211|W|cidade antiga de lijiang;li tiang,Likasi|haut katanga|CD|26.74|-10.98|635|W|jadotstad;jadotsville,Lille|hauts de france|FR|3.06|50.63|238|W|rijsel;lila;lilla,Lilongwe|central region|MW|33.79|-13.97|1115|W|lilongue,Lima|lima province|PE|-77.03|-12.04|7737|W|,Lima|OH|US|-84.11|40.74|37|N|,Limassol|limassol|CY|33.04|34.68|154|W|lemesos;limasol;limisso,Limbe|south west|CM|9.21|4.02|131|W|,Limeira|sao paulo|BR|-47.4|-22.56|291|W|,Limoges|new aquitaine|FR|1.25|45.83|141|W|,Limuru|kiambu county|KE|36.64|-1.11|159|W|,Linares|MX19|MX|-99.57|24.86|70|N|,Lincang|yunnan|CN|100.09|23.88|323|W|,Lincoln|NE|US|-96.67|40.8|294|NW|,Lincoln|CA|US|-121.29|38.89|49|N|,Lincoln Park|IL|US|-87.65|41.92|66|N|,Lincoln Park|MI|US|-83.18|42.25|37|N|,Lincoln Square|IL|US|-87.69|41.98|40|N|,Linden|NJ|US|-74.24|40.62|42|N|,Lindenhurst|NY|US|-73.37|40.69|27|N|,Linfen|shanxi|CN|111.52|36.09|959|W|lin fen,Linhares|espirito santo|BR|-40.07|-19.39|183|W|,Linkoeping|ostergotland|SE|15.62|58.41|166|W|linkoping,Linqu|shandong|CN|118.54|36.52|299|W|,Linton Hall|VA|US|-77.57|38.76|35|N|,Linxia Chengguanzhen|gansu|CN|103.21|35.6|274|W|linxia,Linyi|shandong|CN|118.34|35.06|2743|W|lam nghi,Linz|upper austria|AT|14.29|48.31|204|W|linec,Lipa City|calabarzon|PH|121.16|13.94|212|W|,Lipetsk|lipetsk oblast|RU|39.55|52.59|509|W|lipezk;lipeck;lipetk;lipieck,Lisbon|lisbon|PT|-9.15|38.73|517|W|lisboa;lisabon;lisabona;lisbona;lisbonne;lissabon;lizbon;lizbona,Lishui|zhejiang|CN|119.91|28.46|451|W|li suej,Little Elm|TX|US|-96.94|33.16|38|N|,Little Havana|FL|US|-80.23|25.77|53|N|la pequena habana,Little Rock|AR|US|-92.29|34.75|202|NW|,Littleton|CO|US|-105.02|39.61|46|N|,Liupanshui|guizhou|CN|104.83|26.59|1320|W|liou pchan suej,Liuzhi|guizhou|CN|105.43|26.23|138|W|,Liuzhou|guangxi|CN|109.41|24.32|1436|W|liou cou;liuchow,Livermore|CA|US|-121.77|37.68|88|N|,Liverpool|england|GB|-2.98|53.41|496|W|,Livingston|NJ|US|-74.31|40.8|27|N|,Livingstone|southern province|ZM|25.85|-17.84|178|W|,Livonia|MI|US|-83.35|42.37|94|N|,Livorno|tuscany|IT|10.33|43.54|157|W|livourne,Lizhi|chongqing|CN|107.4|29.7|156|W|,Ljubljana|ljubljana|SI|14.51|46.05|272|W|liubliana;lubiana;lublana;lublan;laibach,Lleida|catalonia|ES|0.62|41.62|140|W|lerida,Lloydminster|AB|CA|-110.02|53.27|31|N|,Loa Janan|east kalimantan|ID|117.1|-0.58|212|W|,Lobito|benguela|AO|13.54|-12.36|393|W|,Lochearn|MD|US|-76.72|39.34|25|N|,Lockport|IL|US|-88.06|41.59|25|N|,Lodhran|punjab|PK|71.63|29.53|144|W|,Lodi|CA|US|-121.27|38.13|64|N|,Lodz|lodz voivodeship|PL|19.47|51.77|639|W|litzmannstadt,Logan|UT|US|-111.83|41.74|50|N|,Logan City|queensland|AU|153.11|-27.64|345|W|citta di logan;logan,Logan Square|IL|US|-87.7|41.92|73|N|,Logrono|la rioja|ES|-2.45|42.47|151|W|,Loja|loja|EC|-79.2|-3.99|274|W|,Loma Bonita|MX20|MX|-95.88|18.11|40|N|,Lombard|IL|US|-88.01|41.88|43|N|,Lome|maritime|TG|1.22|6.13|2188|W|,Lompoc|CA|US|-120.46|34.64|44|N|,London|england|GB|-0.13|51.51|8961|W|londres;londen;londra;londyn;lontoo;luan don,London|ON|CA|-81.23|42.98|422|NW|,Londrina|parana|BR|-51.16|-23.31|581|W|,Long Beach|CA|US|-118.19|33.77|474|NW|,Long Beach|NY|US|-73.66|40.59|33|N|,Long Bien|hanoi|VN|105.9|21.03|347|W|,Long Branch|NJ|US|-73.99|40.3|30|N|,Long Island City|NY|US|-73.95|40.74|25|N|lic,Long Khanh|dong nai|VN|107.25|10.93|171|W|,Long Xuyen|an giang|VN|105.44|10.39|286|W|,Longfellow Community|MN|US|-93.23|44.94|29|N|,Longfeng|heilongjiang|CN|125.1|46.53|152|W|,Longgang|guangdong|CN|114.26|22.72|215|W|district de longgang;long cuong;longgang district,Longling County|yunnan|CN|98.69|24.59|270|W|,Longmont|CO|US|-105.1|40.17|92|N|,Longshan|jilin|CN|125.14|42.89|465|W|liao juan;liaoyuan;lieu nguyen,Longueuil|QC|CA|-73.47|45.52|229|NW|,Longview|TX|US|-94.74|32.5|82|N|,Longview|WA|US|-122.94|46.14|36|N|,Longyan|fujian|CN|117.02|25.07|1025|W|long nham;lung jen,Loni|uttar pradesh|IN|77.29|28.75|516|W|,Lorain|OH|US|-82.18|41.45|63|N|,Los Altos|CA|US|-122.11|37.39|30|N|,Los Angeles|CA|US|-118.24|34.05|3820|NW|l a,Los Banos|CA|US|-120.85|37.06|37|N|,Los Gatos|CA|US|-121.97|37.23|30|N|,Los Mochis|MX25|MX|-109|25.79|256|NW|,Los Reyes Acaquilpan|MX15|MX|-98.98|19.36|85|N|los reyes la paz;reyes la paz,Los Reyes de Salgado|MX16|MX|-102.47|19.59|39|N|,Los Teques|miranda|VE|-67.04|10.35|252|W|,Loudi|hunan|CN|111.99|27.73|497|W|,Louisville|KY|US|-85.76|38.25|624|NW|,Loveland|CO|US|-105.07|40.4|75|N|,Lowell|MA|US|-71.32|42.63|110|N|,Lower Sackville|NS|CA|-63.68|44.78|51|N|,Lower West Side|IL|US|-87.67|41.85|34|N|,Lu'an|anhui|CN|116.52|31.74|1644|W|,Luancheng|hebei|CN|114.65|37.88|597|W|,Luanda|luanda|AO|13.23|-8.84|2776|W|loanda,Luanshya|copperbelt|ZM|28.42|-13.14|193|W|,Lubango|huila|AO|13.49|-14.92|600|W|sa da bandeira,Lubbock|TX|US|-101.86|33.58|249|NW|,Lublin|lublin|PL|22.57|51.25|336|W|lublino,Lubuklinggau|south sumatra|ID|102.86|-3.29|234|W|kota lubuklinggau,Lubumbashi|haut katanga|CD|27.48|-11.66|2221|W|elizabethstad;elisabethville,Lucena|calabarzon|PH|121.62|13.93|228|W|kota lucena;lucena city,Lucknow|uttar pradesh|IN|80.92|26.84|2472|W|lakhnau;laknau,Ludhiana|punjab|IN|75.85|30.91|1618|W|ludhijana,Ludwigshafen am Rhein|rheinland pfalz|DE|8.45|49.48|163|W|ludwigshafen;ludwigshafen sul reno,Luebeck|schleswig holstein|DE|10.69|53.87|212|W|lubeck;lubeca;lubecca;lubeka;lyypekki,Lueliang|shanxi|CN|111.14|37.52|3346|W|luliang,Luena|moxico|AO|19.92|-11.78|273|W|,Lufkin|TX|US|-94.73|31.34|36|N|,Luhansk|luhansk|UA|39.31|48.57|397|W|loehansk;louhansk;lugansk;luhans k;voroshilovgrad;woroschilowgrad,Luohe|henan|CN|114.03|33.57|1294|W|luo che;thap ha,Luohu District|guangdong|CN|114.13|22.55|1143|W|,Luojiang|sichuan|CN|104.5|31.3|212|W|,Luoyang|henan|CN|112.44|34.67|1390|W|luo jang,Lusail|al daayen|QA|51.51|25.42|198|W|,Lusaka|lusaka province|ZM|28.29|-15.41|2212|W|,Lushui|yunnan|CN|98.86|25.82|197|W|,Luton|england|GB|-0.42|51.88|225|W|,Lutsk|volyn|UA|25.35|50.76|215|W|loetsk;loutsk;luc k;luzk;luck;lucioria,Luxor|luxor|EG|32.64|25.7|422|W|el uksur;louxor;luksor,Luzhou|sichuan|CN|105.43|28.89|998|W|lu cou;lo chau,Luziania|goias|BR|-47.95|-16.25|221|W|,Lviv|lviv|UA|24.02|49.84|717|W|leopoli;lwow;leopolo;leopolis;liov;lvov;lwiw;lemberg,Lynchburg|VA|US|-79.14|37.41|79|N|,Lynn|MA|US|-70.95|42.47|92|N|,Lynnwood|WA|US|-122.32|47.82|36|N|,Lynwood|CA|US|-118.21|33.93|71|N|,Lyon|rhone alpes|FR|4.85|45.75|520|W|lione,Lyubertsy|moscow oblast|RU|37.89|55.68|154|W|lioubertsy;liubertsi;liuberti;liubertsy;ljoebertsy;ljubercy;ljubertsy;ljuberzy;lubiercy,Lyublino|moscow|RU|37.76|55.68|172|W|,M'Sila|m sila|DZ|4.54|35.71|132|W|,Ma'anshan|anhui|CN|118.51|31.69|741|W|,Ma On Shan|sha tin|HK|114.24|22.41|215|W|,Mabalacat City|central luzon|PH|120.57|15.22|188|W|mabalacat,Mableton|GA|US|-84.58|33.82|37|N|,Macae|rio de janeiro|BR|-41.78|-22.38|264|W|,Macapa|amapa|BR|-51.07|0.04|512|W|,Macau||MO|113.55|22.2|649|W|ma cao;macao;makao;makau,Maceio|alagoas|BR|-35.74|-9.67|1031|W|macelo,Machala|el oro|EC|-79.96|-3.26|289|W|,Machida|tokyo|JP|139.45|35.54|431|W|,Machilipatnam|andhra pradesh|IN|81.14|16.19|192|W|masulipatao,Machiques|zulia|VE|-72.55|10.06|132|W|,Macon|GA|US|-83.63|32.84|91|N|,Macuspana|MX27|MX|-92.6|17.76|32|N|,Madanapalle|andhra pradesh|IN|78.5|13.55|180|W|,Madera|CA|US|-120.06|36.96|64|N|,Madhurampur Dehri|bihar|IN|84.2|24.97|137|W|,Madhyamgram|west bengal|IN|88.45|22.69|161|W|,Madinah|medina region|SA|39.61|24.47|1300|W|medina;al madinah al munawwarah;medine;medyna,Madinat an Nasr|cairo|EG|31.3|30.07|668|W|,Madinat Hamad|northern|BH|50.51|26.12|133|W|hamad town,Madison|WI|US|-89.4|43.07|280|NW|,Madison|AL|US|-86.75|34.7|46|N|,Madison|MS|US|-90.12|32.46|25|N|,Madison Heights|MI|US|-83.11|42.49|30|N|madison hts,Madiun|east java|ID|111.52|-7.63|202|W|kota madiun,Madrid|madrid|ES|-3.7|40.42|3255|W|madryt,Madrid|cundinamarca|CO|-74.26|4.73|135|W|,Madrid Centro|madrid|ES|-3.7|40.42|149|W|madrid city center,Madurai|tamil nadu|IN|78.12|9.92|1465|W|maduraj,Maebashi|gunma|JP|139.08|36.4|332|W|maebasi,Magdalena Atlicpac|MX15|MX|-98.95|19.37|26|N|,Magdalena Contreras|MX09|MX|-99.21|19.33|238|NW|,Magdalena de Kino|MX26|MX|-110.96|30.63|26|N|,Magdeburg|saxony anhalt|DE|11.63|52.13|244|W|maagdenburg;magdebourg;magdeburgo;magdeburk,Mage|rio de janeiro|BR|-43.04|-22.65|244|W|,Magna|UT|US|-112.1|40.71|26|N|,Magnitogorsk|chelyabinsk|RU|59.01|53.4|413|W|,Magugpo Poblacion|davao region|PH|125.8|7.45|233|W|tagum;tagum city,Mahabad|west azerbaijan|IR|45.72|36.76|168|W|mehabad,Mahajanga|boeny|MG|46.32|-15.72|260|W|,Maharagama|western province|LK|79.93|6.85|195|W|,Mahbubnagar|telangana|IN|77.99|16.74|190|W|,Mahesana|gujarat|IN|72.38|23.6|190|W|,Maheshtala|west bengal|IN|88.25|22.51|448|W|,Mahilyow|mogilev|BY|30.34|53.91|352|W|mahiljou;mogilev;maguilov;mahiliou;mahiljow;mahileu;mogiljow;moguilev;mohylew,Maianga|luanda|AO|13.24|-8.85|727|W|,Maicao|la guajira department|CO|-72.24|11.38|166|W|,Maiduguri|borno state|NG|13.16|11.85|1110|W|,Maijdi|chittagong|BD|91.1|22.87|132|W|,Mainz|rheinland pfalz|DE|8.28|49.98|222|W|magonza;maguncia;mayence;moguncja;moguncia;mohuc;maienta;ments,Maipu|santiago metropolitan|CL|-70.77|-33.51|503|W|,Majie|yunnan|CN|102.64|25.03|131|W|,Makakilo / Kapolei / Honokai Hale|HI|US|-158.1|21.34|46|N|,Makassar|south sulawesi|ID|119.43|-5.15|1474|W|kota makassar;macassar;makasar,Makati City|national capital region|PH|121.03|14.55|510|W|makati,Makhachkala|dagestan|RU|47.5|42.98|596|W|machaczkala;machatjkala;machatschkala;machatsjkala;machackala;mahackala;mahatskala;mahckale;majachkala;makhatchkala;makhatsjkala,Makiki / Lower Punchbowl / Tantalus|HI|US|-157.83|21.32|31|N|,Makiyivka|donetsk|UA|37.93|48.05|338|W|makiejewka;makiivka,Makkah|mecca region|SA|39.83|21.43|1578|W|mecca;la meca;la mecca;la mecque;makkah al mukarramah;meca;mecka;mekka;mekkah;mekke,Makurdi|benue state|NG|8.52|7.73|390|W|,Malabo|bioko norte|GQ|8.78|3.76|155|W|ciudad de malabo;santa isabel,Malabon|national capital region|PH|120.94|14.67|365|W|,Malacca|melaka|MY|102.24|2.2|579|W|malakka;malaca;malaka;melaka,Malaga|andalusia|ES|-4.42|36.72|592|W|,Malakal|upper nile|SS|31.66|9.53|160|W|,Malang|east java|ID|112.63|-7.98|889|W|kabupaten malang;kota malang,Malanje|malanje|AO|16.34|-9.54|455|W|,Malatia-Sebastia|yerevan|AM|44.45|40.17|150|W|,Malatya|malatya|TR|38.32|38.35|750|W|,Malayer|hamadan province|IR|48.82|34.3|170|W|,Malda|west bengal|IN|88.15|25|170|W|english bazar,Malden|MA|US|-71.07|42.43|61|N|,Malegaon|maharashtra|IN|74.53|20.55|481|W|,Maler Kotla|punjab|IN|75.88|30.53|135|W|,Malingao|soccsksargen|PH|124.47|7.16|1121|W|,Malir Cantonment|sindh|PK|67.21|24.94|300|W|,Malkajgiri|telangana|IN|78.53|17.45|150|W|,Mallawi|minya|EG|30.84|27.73|212|W|,Malmoe|skane|SE|13|55.61|362|W|malmo,Malolos|central luzon|PH|120.81|14.84|269|W|malolos city,Maltepe|istanbul|TR|29.16|40.94|427|W|,Malvern|ON|CA|-79.22|43.81|43|N|,Man|montagnes|CI|-7.55|7.41|241|W|,Man'gyongdae-ri|pyongyang|KP|125.66|38.99|321|W|,Manado|north sulawesi|ID|124.85|1.48|458|W|kota manado,Managua|managua department|NI|-86.25|12.13|973|W|,Manama|manama|BH|50.59|26.23|147|W|al manamah;manamah,Manassas|VA|US|-77.48|38.75|41|N|,Manaus|amazonas|BR|-60.02|-3.1|2219|W|manaos,Manchester|england|GB|-2.24|53.48|568|W|,Manchester|NH|US|-71.45|43|110|N|,Manchester|CT|US|-72.52|41.78|30|N|,Mandalay|mandalay region|MM|96.08|21.97|1208|W|mandalaj,Mandaluyong|national capital region|PH|121.04|14.58|425|W|,Mandaluyong City|national capital region|PH|121.04|14.58|465|W|mandaluyong,Mandaue City|central visayas|PH|123.92|10.32|331|W|,Mandsaur|madhya pradesh|IN|75.07|24.07|141|W|,Mandya|karnataka|IN|76.9|12.52|137|W|mandja,Maneah|kindia|GN|-13.42|9.73|194|W|,Mangaluru|karnataka|IN|74.86|12.92|499|W|mangalore,Mango|jharkhand|IN|86.22|22.83|223|W|,Manhattan|NY|US|-73.97|40.78|1487|NW|,Manhattan|KS|US|-96.57|39.18|56|N|,Manhattan Beach|CA|US|-118.41|33.88|35|N|,Manhattan Valley|NY|US|-73.97|40.79|38|N|,Manila|national capital region|PH|120.98|14.6|1600|W|city of manila;manila city;manilla;manille,Manisa|manisa|TR|27.43|38.61|243|W|magnesia ad sipylum;magnesia am sipylos,Manitowoc|WI|US|-87.66|44.09|33|N|,Manizales|caldas department|CO|-75.51|5.07|434|W|,Manjhand|sindh|PK|68.24|25.91|140|W|,Mankato|MN|US|-94.01|44.16|41|N|,Mannheim|baden wurttemberg|DE|8.47|49.49|307|W|,Manokwari|west papua|ID|134.06|-0.86|132|W|,Mansa|luapula province|ZM|28.89|-11.2|170|W|,Mansfield|england|GB|-1.2|53.13|171|W|,Mansfield|TX|US|-97.14|32.56|64|N|,Mansfield|OH|US|-82.52|40.76|46|N|,Mansfield City|CT|US|-72.23|41.77|26|N|,Mansilingan|western visayas|PH|122.98|10.63|454|W|,Manta|manabi|EC|-80.73|-0.95|264|W|manta ecuador,Mantampay|northern mindanao|PH|124.22|8.17|265|W|,Manteca|CA|US|-121.22|37.8|75|N|,Mantilla|havana|CU|-82.34|23.07|206|W|,Manukau City|auckland|NZ|174.88|-36.99|362|W|manukau,Manzanillo|MX08|MX|-104.34|19.12|159|NW|,Maoming|guangdong|CN|110.91|21.67|1307|W|chaozhou;mao ming,Maple Grove|MN|US|-93.46|45.07|68|N|,Maple Ridge|BC|CA|-122.6|49.22|82|N|,Maple Valley|WA|US|-122.05|47.39|25|N|,Maplewood|MN|US|-93|44.95|40|N|,Maplewood|NJ|US|-74.27|40.73|25|N|,Maputo|maputo city|MZ|32.58|-25.97|1254|W|lourenco marques,Mar del Plata|buenos aires|AR|-57.56|-38|593|W|,Mar'ino|moscow|RU|37.72|55.65|243|W|,Maraba|para|BR|-49.13|-5.38|283|W|,Maracaibo|zulia|VE|-71.61|10.64|1752|W|,Maracanau|ceara|BR|-38.63|-3.88|251|W|,Maracay|aragua|VE|-67.59|10.25|464|W|,Maradi|maradi region|NE|7.1|13.5|361|W|,Maragheh|east azerbaijan|IR|46.24|37.39|262|W|,Maragheh|razavi khorasan|IR|59.63|35.83|262|W|,Marana|AZ|US|-111.23|32.44|41|N|,Maravatio de Ocampo|MX16|MX|-100.44|19.89|34|N|,Marawi City|autonomous region in muslim mindanao|PH|124.28|8|259|W|,Marbella|andalusia|ES|-4.89|36.52|156|W|,Marcory|abidjan autonomous district|CI|-3.99|5.31|214|W|,Mardan|khyber pakhtunkhwa|PK|72.05|34.2|300|W|,Marfil|MX11|MX|-101.29|21|29|N|,Marg'ilon|fergana|UZ|71.72|40.47|253|W|margilan,Margate|FL|US|-80.21|26.24|57|N|,Marianao|havana|CU|-82.43|23.07|134|W|,Marica|rio de janeiro|BR|-42.82|-22.92|211|W|,Maricopa|AZ|US|-112.05|33.06|48|N|,Marienthal|hamburg|DE|10.08|53.57|287|W|hamburg marienthal,Marietta|GA|US|-84.55|33.95|59|N|,Marikina City|national capital region|PH|121.11|14.65|471|W|,Marilia|sao paulo|BR|-49.95|-22.21|237|W|,Maringa|parana|BR|-51.94|-23.43|409|W|,Marion|IA|US|-91.6|42.03|37|N|,Marion|OH|US|-83.13|40.59|36|N|,Marion|IN|US|-85.66|40.56|29|N|,Mariupol|donetsk|UA|37.54|47.1|230|W|marioepol;marioupol,Marivan|kurdistan province|IR|46.18|35.52|136|W|,Mariveles|central luzon|PH|120.49|14.43|156|W|,Marka|lower shabeelle|SO|44.77|1.72|230|W|merca,Markham|ON|CA|-79.27|43.87|338|NW|,Marlboro|NJ|US|-74.25|40.32|40|N|,Marlborough|MA|US|-71.55|42.35|39|N|,Marne La Vallee|ile de france|FR|2.64|48.84|318|W|,Maroua|far north|CM|14.32|10.59|314|W|,Marpole|BC|CA|-123.13|49.21|27|N|,Marrakesh|marrakesh safi|MA|-8|31.63|995|W|marrakech;marakes;marrakesch;marrakesz;marraquexe;marrakes,Marrero|LA|US|-90.1|29.9|33|N|,Marsa Matruh|matruh|EG|27.24|31.35|176|W|mersa matruh,Marseille|provence alpes cote d azur|FR|5.38|43.3|877|W|marselha;marsella;marsiglia;marsilia;marsilya;marsylia,Marshalltown|IA|US|-92.91|42.05|27|N|,Martapura|south kalimantan|ID|114.86|-3.41|131|W|,Martinez|CA|US|-122.13|38.02|38|N|,Martinez|GA|US|-82.08|33.52|35|N|,Martinez de la Torre|MX30|MX|-97.06|20.07|60|N|,Marvdasht|fars|IR|52.8|29.87|148|W|,Mary|mary|TM|61.83|37.59|167|W|,Maryland Heights|MO|US|-90.43|38.71|27|N|,Marysville|WA|US|-122.18|48.05|66|N|,Maryvale|AZ|US|-112.18|33.5|208|NW|,Maryville|TN|US|-83.97|35.76|28|N|,Masai|johor|MY|103.88|1.49|141|W|,Masan|gwangju|KR|126.83|35.13|434|W|,Masaya|masaya department|NI|-86.1|11.97|130|W|,Mascouche|QC|CA|-73.6|45.75|34|N|,Maseru|maseru district|LS|27.48|-29.32|359|W|,Mashhad|razavi khorasan|IR|59.61|36.3|2307|W|maschhad;mashad;masyhad;meszhed;mexed;meshed;alexandria;sanaabad,Masina|kinshasa|CD|15.39|-4.38|485|W|,Mason|OH|US|-84.31|39.36|32|N|,Mason City|IA|US|-93.2|43.15|27|N|,Maspeth|NY|US|-73.91|40.72|48|N|,Massillon|OH|US|-81.52|40.8|32|N|,Matadi|bas congo|CD|13.46|-5.84|425|W|,Matamoros|MX07|MX|-103.23|25.53|52|N|,Matanzas|matanzas province|CU|-81.58|23.04|146|W|,Mataram|west nusa tenggara|ID|116.12|-8.58|441|W|kota mataram,Matehuala|MX24|MX|-100.64|23.65|77|N|,Mathura|uttar pradesh|IN|77.67|27.5|330|W|matura,Matola|maputo province|MZ|32.46|-25.96|1198|W|,Matsubara|osaka|JP|135.55|34.57|130|W|,Matsudo|chiba|JP|139.9|35.78|498|W|,Matsue|shimane|JP|133.05|35.48|203|W|macue,Matsumoto|nagano|JP|137.97|36.23|241|W|macumoto,Matsusaka|mie|JP|136.54|34.58|159|W|,Matsuyama|ehime|JP|132.77|33.84|511|W|macujama;matsuyama shi,Mattapan|MA|US|-71.09|42.27|36|N|,Matthews|NC|US|-80.72|35.12|30|N|,Matuga|kwale county|KE|39.57|-4.17|194|W|,Maturin|monagas|VE|-63.18|9.75|647|W|,Mau|uttar pradesh|IN|83.56|25.94|246|W|,Maua|sao paulo|BR|-46.46|-23.67|418|W|,Mauldin|SC|US|-82.31|34.78|25|N|,Mawlamyine|mon|MM|97.63|16.49|438|W|mawlamyaing;moulmein;mulmejn,Maykop|adygeya republic|RU|40.1|44.61|141|W|maikop;majkop,Maywood|CA|US|-118.19|33.99|27|N|,Mazar-e Sharif|balkh|AF|67.11|36.71|523|W|masar e scharif;mazar e charif;mazar i szarif;mazari sharif;mazar e sarif;mezirek i serif,Mazatlan|MX25|MX|-106.42|23.22|381|NW|ciudad mazatlan,Mbandaka|equateur|CD|18.26|0.05|455|W|,Mbanza Kongo|zaire|AO|14.24|-6.27|148|W|mbanza congo,Mbanza-Ngungu|bas congo|CD|14.86|-5.26|142|W|,Mbarara|western region|UG|30.65|-0.6|221|W|,Mbeya|mbeya|TZ|33.45|-8.9|541|W|,Mbour|thies|SN|-16.96|14.42|284|W|,Mbuji-Mayi|east kasai|CD|23.59|-6.14|2101|W|,McAllen|TX|US|-98.23|26.2|140|NW|,McCully - Moiliili|HI|US|-157.83|21.29|28|N|,McHenry|IL|US|-88.27|42.33|26|N|,McKinney|TX|US|-96.62|33.2|162|NW|,McLean|VA|US|-77.18|38.93|48|N|,McMinnville|OR|US|-123.2|45.21|33|N|,Mdantsane|eastern cape|ZA|27.78|-32.93|205|W|,Meadow Woods|FL|US|-81.37|28.39|25|N|,Meads|KY|US|-82.71|38.41|288|NW|,Mechanicsville|VA|US|-77.37|37.61|36|N|,Medan|north sumatra|ID|98.67|3.58|2486|W|kota medan,Medea|medea|DZ|2.75|36.26|145|W|al madijja,Medellin|antioquia|CO|-75.57|6.25|1999|W|medelim,Medford|OR|US|-122.88|42.33|79|N|,Medford|MA|US|-71.11|42.42|57|N|,Medicine Hat|AB|CA|-110.68|50.04|63|N|,Medina|OH|US|-81.86|41.14|26|N|,Medinipur|west bengal|IN|87.32|22.42|153|W|,Meerut|uttar pradesh|IN|77.71|28.98|1223|W|merath,Meguro|tokyo|JP|139.7|35.63|288|W|meguro city,Mehlville|MO|US|-90.32|38.51|28|N|,Meiktila|mandalay region|MM|95.86|20.88|177|W|miktila,Meishan|sichuan|CN|103.84|30.04|1107|W|mej san;mi son,Meizhou|guangdong|CN|116.12|24.29|992|W|mai chau;mej cou,Mejicanos|san salvador department|SV|-89.19|13.72|160|W|,Mek'ele|tigray|ET|39.48|13.5|457|W|macalle;mekelie,Meknes|fes meknes|MA|-5.55|33.89|568|W|,Melbourne|victoria|AU|144.96|-37.81|5435|W|greater melbourne;melbourne city,Melbourne|FL|US|-80.61|28.08|84|N|,Melchor Ocampo|MX15|MX|-99.14|19.7|38|N|,Melitopol|zaporizhzhia|UA|35.38|46.85|148|W|kyzyl yar;melitopoli;novoalexandrovka,Melrose|MA|US|-71.07|42.46|27|N|,Melrose Park|IL|US|-87.86|41.9|25|N|,Memphis|TN|US|-90.05|35.15|633|NW|menfis,Mengzi|yunnan|CN|103.38|23.37|595|W|,Menifee|CA|US|-117.15|33.73|87|N|,Menlo Park|CA|US|-122.18|37.45|33|N|,Menomonee Falls|WI|US|-88.12|43.18|36|N|,Menongue|cubango|AO|17.69|-14.66|251|W|,Mentor|OH|US|-81.34|41.67|46|N|,Mentougou|beijing|CN|116.09|39.94|197|W|,Merced|CA|US|-120.48|37.3|82|N|,Mercer Island|WA|US|-122.22|47.57|25|N|,Mercerville-Hamilton Square|NJ|US|-74.67|40.23|26|N|hamilton square,Mercier-Hochelaga-Maisonneuve|QC|CA|-73.55|45.57|142|NW|,Merida|MX31|MX|-89.62|20.97|1201|NW|,Merida|merida|VE|-71.17|8.58|300|W|,Meriden|CT|US|-72.81|41.54|59|N|,Meridian|ID|US|-116.39|43.61|90|N|,Meridian|MS|US|-88.7|32.36|39|N|,Merkezefendi|denizli|TR|29.04|37.81|280|W|,Merlo|buenos aires|AR|-58.73|-34.67|268|W|,Merrillville|IN|US|-87.33|41.48|35|N|,Merrimack|NH|US|-71.49|42.87|26|N|east merrimack,Merritt Island|FL|US|-80.69|28.36|34|N|,Mersin|mersin|TR|34.64|36.81|537|W|myrte;icel,Mesa|AZ|US|-111.82|33.42|471|NW|,Mesquite|TX|US|-96.6|32.77|144|NW|,Messina|sicily|IT|15.55|38.19|219|W|mesina;messine;mesyna,Mestre|veneto|IT|12.25|45.49|147|W|mestre bei venedig,Metairie|LA|US|-90.15|29.98|138|NW|,Metairie Terrace|LA|US|-90.16|29.98|142|NW|,Metepec|MX15|MX|-99.6|19.26|28|N|municipio metepec;municipio de metepec,Methuen|MA|US|-71.19|42.73|52|N|,Metro|lampung|ID|105.31|-5.11|182|W|kota metro,Metrotown|BC|CA|-123|49.23|52|N|,Mexicali|MX02|MX|-115.45|32.63|1032|NW|,Mexico City|MX09|MX|-99.13|19.43|12294|NW|ciudad de mexico;mexico by;cidade do mexico;citta del messico;ciudad de mejico;meksyk;mexico;mexico d f;mexico stad;mexiko stadt;mexico distrito federal;valle de mexico,Meycauayan|central luzon|PH|120.96|14.74|228|W|kota meycauayan;meycauayan city,Miami|FL|US|-80.19|25.77|487|NW|,Miami Beach|FL|US|-80.13|25.79|92|N|,Miami Gardens|FL|US|-80.25|25.94|113|N|,Miami Lakes|FL|US|-80.31|25.91|30|N|,Mian Channun|punjab|PK|72.36|30.44|140|W|mian channu,Miandoab|west azerbaijan|IR|46.11|36.97|134|W|,Mianyang|sichuan|CN|104.68|31.47|1550|W|mien jang;mien duong,Mianzhu Deyang Sichuan|sichuan|CN|104.22|31.34|510|W|,Miass|chelyabinsk|RU|60.11|55.05|167|W|,Michigan City|IN|US|-86.9|41.71|31|N|,Mid-City|CA|US|-118.36|34.04|83|N|,Middelburg|mpumalanga|ZA|29.46|-25.78|196|W|,Middle River|MD|US|-76.44|39.33|25|N|,Middle Village|NY|US|-73.88|40.72|29|N|,Middlesbrough|england|GB|-1.23|54.58|142|W|,Middletown|NJ|US|-74.12|40.39|65|N|middletown township;municipio de middletown,Middletown|OH|US|-84.4|39.52|48|N|,Middletown|CT|US|-72.65|41.56|46|N|,Middletown|NY|US|-74.42|41.45|27|N|,Midland|TX|US|-102.08|32|132|NW|,Midland|MI|US|-84.25|43.62|42|N|,Midvale|UT|US|-111.9|40.61|32|N|,Midwest City|OK|US|-97.4|35.45|57|N|,Miguel Aleman (La Doce)|MX26|MX|-111.48|28.84|30|N|,Miguel Hidalgo|MX09|MX|-99.2|19.43|372|NW|delegacion miguel hidalgo,Milagro|guayas|EC|-79.59|-2.13|133|W|,Milan|lombardy|IT|9.19|45.46|1371|W|milano;mailand;mediolan;milaan;milao,Milford|CT|US|-73.06|41.22|52|N|,Milford|MA|US|-71.52|42.14|25|N|,Milford Mill|MD|US|-76.77|39.35|29|N|,Mililani Town|HI|US|-158.02|21.45|27|N|,Millcreek|UT|US|-111.88|40.69|62|N|,Milliken|ON|CA|-79.3|43.82|26|N|,Millville|NJ|US|-75.04|39.4|28|N|,Milpitas|CA|US|-121.91|37.43|77|N|,Milton|ON|CA|-79.88|43.52|132|NW|,Milton|GA|US|-84.3|34.13|37|N|,Milton|MA|US|-71.07|42.25|27|N|,Milton Keynes|england|GB|-0.76|52.04|256|W|,Milwaukee|WI|US|-87.91|43.04|563|NW|,Mimico|ON|CA|-79.51|43.62|33|N|,Minamirinkan|kanagawa|JP|139.44|35.5|224|W|,Minatitlan|MX30|MX|-94.56|18|112|N|,Minato|wakayama|JP|135.15|34.22|375|W|,Minato City|tokyo|JP|139.75|35.66|260|W|minato,Mingala Tangnyunt|yangon|MM|96.17|16.79|132|W|,Mingaladon|yangon|MM|96.1|16.92|136|W|,Mingora|khyber pakhtunkhwa|PK|72.36|34.78|361|W|mingaora,Minhang|shanghai|CN|121.37|31.11|2716|W|,Minna|niger state|NG|6.55|9.62|425|W|,Minneapolis|MN|US|-93.26|44.98|410|NW|mineapolis,Minnetonka|MN|US|-93.5|44.91|51|N|,Minnetonka Mills|MN|US|-93.44|44.94|50|N|,Minoh|osaka|JP|135.47|34.83|136|W|,Minot|ND|US|-101.3|48.23|49|N|,Minsk|minsk city|BY|27.57|53.9|1742|W|,Mint Hill|NC|US|-80.65|35.18|25|N|,Minya|minya|EG|30.76|28.09|283|W|,Mira Mesa|CA|US|-117.14|32.92|70|N|,Mirabel|QC|CA|-74.08|45.65|34|N|,Miraflores|lima region|PE|-77.03|-12.11|187|W|san borja,Miramar|FL|US|-80.23|25.99|137|NW|,Miramar|MX28|MX|-97.9|22.36|118|N|,Miri|sarawak|MY|113.99|4.4|300|W|marabu,Mirpur Khas|sindh|PK|69.01|25.53|267|W|,Mirpur Model Thana|dhaka division|BD|90.36|23.81|546|W|,Mirzapur|uttar pradesh|IN|82.57|25.14|220|W|,Misantla|MX30|MX|-96.85|19.93|26|N|,Misato Saitama|saitama|JP|139.88|35.84|142|W|,Mishawaka|IN|US|-86.16|41.66|48|N|,Miskolc|borsod abauj zemplen|HU|20.78|48.1|154|W|miszkolc,Misratah|misratah|LY|15.09|32.38|355|W|al misratah;misrata,Mission|TX|US|-98.33|26.22|83|N|,Mission|BC|CA|-122.3|49.13|41|N|,Mission Bend|TX|US|-95.66|29.69|36|N|,Mission District|CA|US|-122.42|37.76|47|N|,Mission Viejo|CA|US|-117.67|33.6|97|N|,Mississauga|ON|CA|-79.66|43.58|717|NW|,Missoula|MT|US|-113.99|46.87|71|N|,Missouri City|TX|US|-95.54|29.62|74|N|,Mit Ghamr|dakahlia|EG|31.26|30.72|153|W|,Mito|ibaraki|JP|140.45|36.35|270|W|,Mixco|guatemala|GT|-90.61|14.63|465|W|,Mixquiahuala de Juarez|MX13|MX|-99.21|20.23|25|N|,Miyakonojo|miyazaki|JP|131.07|31.73|161|W|,Miyazaki|miyazaki|JP|131.42|31.92|401|W|miyazaki shi;miyazakishi,Mlolongo|machakos county|KE|36.94|-1.4|136|W|,Mobile|AL|US|-88.04|30.69|183|NW|,Mocuba|zambezia province|MZ|36.99|-16.84|196|W|,Modena|emilia romagna|IT|10.93|44.65|184|W|modene,Modesto|CA|US|-121|37.64|211|NW|,Modinagar|uttar pradesh|IN|77.57|28.83|475|W|,Moenchengladbach|north rhine westphalia|DE|6.44|51.19|261|W|monchengladbach,Moga|punjab|IN|75.17|30.81|163|W|,Mogadishu|banaadir|SO|45.34|2.04|2587|W|mogadischu;mogadiscio;mogadiszu;mogadisu;mogadiso,Mogi das Cruzes|sao paulo|BR|-46.19|-23.52|325|W|,Mogi Guacu|sao paulo|BR|-46.95|-22.37|160|W|,Mohali|punjab|IN|76.72|30.68|166|W|,Mohammadpur|rajshahi division|BD|88.53|24.9|527|W|,Mohammedia|casablanca settat|MA|-7.38|33.69|227|W|al muhammadijja;muhammediye;fedala,Mojokerto|east java|ID|112.43|-7.47|141|W|kota mojokerto,Mokotow|mazovia|PL|21.03|52.19|217|W|,Mokpo|jeollanam do|KR|126.39|34.81|268|W|mogpo,Moline|IL|US|-90.52|41.51|42|N|,Mombasa|mombasa county|KE|39.66|-4.05|1208|W|mombassa;mombaca,Monclova|MX07|MX|-101.42|26.91|215|NW|,Moncton|NB|CA|-64.8|46.09|86|N|,Monroe|LA|US|-92.12|32.51|49|N|,Monroe|NC|US|-80.55|34.99|34|N|,Monroeville|PA|US|-79.79|40.42|28|N|,Monrovia|montserrado county|LR|-10.8|6.3|1542|W|monrowia,Monrovia|CA|US|-118|34.15|37|N|,Montclair|NJ|US|-74.21|40.83|39|N|,Montclair|CA|US|-117.69|34.08|38|N|,Montebello|CA|US|-118.11|34.01|63|N|,Montemorelos|MX19|MX|-99.83|25.19|67|N|,Monterey|CA|US|-121.89|36.6|28|N|monterrey,Monterey Park|CA|US|-118.12|34.06|61|N|,Monteria|cordoba|CO|-75.88|8.75|490|W|,Monterrey|MX19|MX|-100.32|25.68|1135|NW|monterrei;monterrey city,Montes Claros|minas gerais|BR|-43.86|-16.73|437|W|,Montevideo|montevideo department|UY|-56.19|-34.9|1270|W|montevideu,Montgomery|AL|US|-86.3|32.37|195|NW|,Montgomery Village|MD|US|-77.2|39.18|32|N|,Montpellier|occitanie|FR|3.88|43.61|248|W|,Montreal|QC|CA|-73.59|45.51|1762|NW|montreal city,Montreal-Nord|QC|CA|-73.63|45.6|86|N|,Monywa|sagaing region|MM|95.14|22.11|182|W|munywa,Moore|OK|US|-97.49|35.34|60|N|,Mooresville|NC|US|-80.81|35.58|36|N|,Moorhead|MN|US|-96.77|46.87|42|N|,Moorpark|CA|US|-118.88|34.29|36|N|,Moose Jaw|SK|CA|-105.53|50.4|33|N|,Mopti|mopti|ML|-4.18|14.48|186|W|,Moradabad|uttar pradesh|IN|78.78|28.84|721|W|,Moratuwa|western province|LK|79.88|6.77|168|W|,Morelia|MX16|MX|-101.18|19.7|743|NW|,Morena|madhya pradesh|IN|78|26.5|200|W|,Moreno|buenos aires|AR|-58.79|-34.63|148|W|,Moreno Valley|CA|US|-117.23|33.94|204|NW|,Morgan Hill|CA|US|-121.65|37.13|42|N|,Morgantown|WV|US|-79.96|39.63|30|N|,Moriguchi|osaka|JP|135.57|34.73|143|W|,Morioka|iwate|JP|141.15|39.7|290|W|,Morningside Heights|NY|US|-73.96|40.81|55|N|,Moro|sindh|PK|68|26.66|142|W|,Morogoro|morogoro|TZ|37.66|-6.82|471|W|,Moroleon|MX11|MX|-101.19|20.13|43|N|,Morris Heights|NY|US|-73.92|40.85|40|N|,Morristown|TN|US|-83.29|36.21|29|N|,Morvi|gujarat|IN|70.84|22.82|210|W|,Moscow|moscow|RU|37.62|55.75|10381|W|moscou;moscova;moscovo;moscu;matxcova;mosca;moskau;moskou;moskova;moskva;moskwa;mat xco va,Moscow|ID|US|-117|46.73|25|N|,Moshi|kilimanjaro|TZ|37.33|-3.35|221|W|,Mossamedes|namibe|AO|12.15|-15.2|255|W|mocamedes;namibe,Mossoro|rio grande do norte|BR|-37.34|-5.19|264|W|,Mostaganem|mostaganem|DZ|0.09|35.93|162|W|mustaghanam,Mostoles|madrid|ES|-3.86|40.32|207|W|,Mosul|nineveh|IQ|43.12|36.34|1683|W|mosoel;mossoul;mossul;musul,Motijheel|dhaka division|BD|90.42|23.73|202|W|,Mott Haven|NY|US|-73.92|40.81|51|N|,Moundou|logone occidental|TD|16.08|8.57|196|W|,Mount Juliet|TN|US|-86.52|36.2|31|N|,Mount Laurel|NJ|US|-74.89|39.93|41|N|,Mount Lebanon|PA|US|-80.05|40.36|32|N|,Mount Olive-Silverstone-Jamestown|ON|CA|-79.59|43.75|32|N|,Mount Pleasant|SC|US|-79.86|32.79|81|N|mt pleasant,Mount Pleasant|DC|US|-77.04|38.93|35|N|ingleside;mount pleasant village;rosemont park;walbridge,Mount Pleasant|BC|CA|-123.1|49.27|33|N|,Mount Pleasant|WI|US|-87.86|42.7|26|N|,Mount Pleasant|MI|US|-84.77|43.6|26|N|mt pleasant,Mount Pleasant West|ON|CA|-79.39|43.7|29|N|,Mount Prospect|IL|US|-87.94|42.07|54|N|,Mount Vernon|NY|US|-73.84|40.91|68|N|,Mount Vernon|WA|US|-122.33|48.42|34|N|,Mountain View|CA|US|-122.08|37.39|80|N|,Moyotzingo|MX21|MX|-98.4|19.25|27|N|,Mpanda|katavi|TZ|31.07|-6.34|204|W|,Mpumalanga|kwazulu natal|ZA|30.64|-29.81|140|W|epumalanga;hammarsdale,Mt Pleasant|BC|CA|-123.1|49.26|32|N|,Mthatha|eastern cape|ZA|28.78|-31.59|164|W|umtata,Mtwara|mtwara|TZ|40.18|-10.27|140|W|,Mu-se|shan state|MM|97.9|24|165|W|,Muar|johor|MY|102.57|2.04|314|W|muar town,Mubi|adamawa|NG|13.27|10.27|225|W|,Mudanjiang|heilongjiang|CN|129.63|44.55|665|W|mu tan tiang,Mueang Nonthaburi|nonthaburi|TH|100.51|13.86|254|W|nonthaburi,Muelheim|north rhine westphalia|DE|6.88|51.43|173|W|mulheim;muelheim an der ruhr;mulheim an der ruhr,Muenster|north rhine westphalia|DE|7.63|51.96|308|W|munster,Mufulira|copperbelt|ZM|28.24|-12.55|169|W|,Mukalla|muhafazat hadramaout|YE|49.12|14.54|594|W|al mukalla;mukala,Mukim Pulai|johor|MY|103.67|1.53|505|W|,Mukono|central region|UG|32.76|0.35|191|W|,Mulenvos|luanda|AO|13.33|-8.87|882|W|,Multan|punjab|PK|71.48|30.2|2169|W|,Mulugu|telangana|IN|79.94|18.19|297|W|,Mumbai|maharashtra|IN|72.88|19.07|12691|W|mumbaj;mumbay;bombay;bombaim;bombaj,Muncie|IN|US|-85.39|40.19|70|N|,Mundelein|IL|US|-88|42.26|31|N|,Munger|bihar|IN|86.47|25.37|213|W|,Munich|bavaria|DE|11.58|48.14|1505|W|munchen;mnichov;monachium;monaco di baviera;muenchen;munique;munih,Muntinlupa|calabarzon|PH|121.05|14.39|552|W|city of muntinlupa,Muratpasa|antalya|TR|30.76|36.89|450|W|,Murcia|murcia|ES|-1.13|37.99|471|W|murcie;murcja,Murfreesboro|TN|US|-86.39|35.85|165|NW|,Muricay|zamboanga peninsula|PH|123.48|7.83|132|W|,Muridke|punjab|PK|74.26|31.8|254|W|muridike,Murmansk|murmansk|RU|33.1|68.97|295|W|moermansk;mourmansk;muurmanski;romanov;romanov on murman;semenova,Murray|UT|US|-111.89|40.67|49|N|,Murrieta|CA|US|-117.21|33.55|109|N|,Murwara|madhya pradesh|IN|80.39|23.84|221|W|,Musaffah|abu dhabi|AE|54.48|24.36|243|W|musaffah city,Musanze|northern province|RW|29.63|-1.5|153|W|ruhengeri,Musashino|tokyo|JP|139.56|35.71|150|W|,Muscat|muscat|OM|58.41|23.58|797|W|mascate;maskat;masqat;muskat,Mushin|lagos|NG|3.35|6.53|199|W|,Muskegon|MI|US|-86.25|43.23|38|N|,Muskogee|OK|US|-95.37|35.75|38|N|,Musoma|mara|TZ|33.8|-1.5|164|W|,Mutare|manicaland|ZW|32.67|-18.97|224|W|,Muzaffarabad|azad kashmir|PK|73.47|34.37|725|W|,Muzaffargarh|punjab|PK|71.19|30.07|235|W|,Muzaffarnagar|uttar pradesh|IN|77.7|29.47|349|W|,Muzaffarpur|bihar|IN|85.39|26.12|354|W|,Mwala|machakos county|KE|37.45|-1.35|181|W|,Mwanza|mwanza|TZ|32.9|-2.52|1104|W|,Mwene|lualaba|CD|22.87|-9.82|295|W|,Mwene-Ditu|lomami|CD|23.45|-7.01|189|W|,My Tho|dong thap|VN|106.36|10.36|270|W|,Myeik|tanintharyi region|MM|98.6|12.44|173|W|mergui,Myingyan|mandalay region|MM|95.39|21.46|141|W|,Mykolayiv|mykolaiv|UA|31.99|46.98|470|W|mikolajow;mykolaiv;nicolopoli;vernoleninsk,Mymensingh|mymensingh division|BD|90.41|24.76|225|W|,Myrtle Beach|SC|US|-78.89|33.69|31|N|,Mysuru|karnataka|IN|76.64|12.3|920|W|maisur;mysore,Mytishchi|moscow oblast|RU|37.73|55.91|160|W|mitischi;mytichtchi;mytischtschi;mytisjtji;mytisjtsji;mytiszczi;mytistsi;mytisci;mitisci;miytisci,Mzuzu|northern region|MW|34.02|-11.47|249|W|,N'dalatando|cuanza norte|AO|14.91|-9.3|161|W|ndalatando,N'Djamena|n djamena|TD|15.04|12.11|1359|W|yamena;indschamina;ndjamena;ndzamena,Naberezhnyye Chelny|tatarstan republic|RU|52.42|55.74|509|W|naberezhnye chelny;naberejnye chelny;nabereschnyje tschelny;naberezjnye tsjelny;nabereznyje tselny;nabereznyje celny;brezhnev,Nablus|west bank|PS|35.25|32.22|130|W|naplouse;shechem;sichem;siquem;sychem,Nacala|nampula|MZ|40.69|-14.56|239|W|cidade de nacala;nacala porto,Nacogdoches|TX|US|-94.66|31.6|33|N|,Nada|hainan|CN|109.58|19.52|256|W|danzhou,Nadiad|gujarat|IN|72.86|22.69|225|W|,Nador|oriental|MA|-2.93|35.17|176|W|,Naga|bicol region|PH|123.18|13.62|174|W|kota naga,Naga|central visayas|PH|123.76|10.21|138|W|city of naga;kota naga;naga city,Nagano|nagano|JP|138.18|36.65|372|W|,Nagaoka|niigata|JP|138.85|37.45|266|W|,Nagar Naluakot|dhaka division|BD|90.77|24.16|273|W|nogor noluakot,Nagareyama|chiba|JP|139.9|35.86|200|W|,Nagarpur|dhaka division|BD|89.88|24.06|238|W|,Nagasaki|nagasaki|JP|129.88|32.75|409|W|nagasaki shi;nagasakishi;nangasaque,Nagercoil|tamil nadu|IN|77.43|8.18|224|W|nagarkoil;nagarkovil,Nagoya|aichi|JP|136.91|35.18|2332|W|nagoia;nagoja;nagoya city;nagoya shi,Nagpur|maharashtra|IN|79.08|21.15|2405|W|,Naha|okinawa|JP|127.68|26.21|317|W|,Naihati|west bengal|IN|88.42|22.89|253|W|,Nairobi|nairobi county|KE|36.82|-1.28|4397|W|,Naivasha|nakuru county|KE|36.43|-0.71|198|W|,Najaf|najaf|IQ|44.35|32.03|482|W|an nadzaf;an najaf;nadjaf;nadschaf;nadzaf;nayaf;necef,Najafabad|isfahan|IR|51.37|32.63|235|W|,Najafgarh|delhi|IN|76.98|28.61|1365|W|,Najran|najran region|SA|44.13|17.49|505|W|necran,Nakano|tokyo|JP|139.67|35.7|344|W|nakano city,Nakhodka|primorye|RU|132.92|42.84|146|W|nachodka;nahodka;najodka;langouwai,Nakuru|nakuru county|KE|36.07|-0.31|570|W|,Nalchik|kabardino balkariya republic|RU|43.62|43.5|239|W|nal chik;naltschik;naltsik;nalcik,Nalgonda|telangana|IN|79.27|17.05|154|W|,Nam GJinh|ninh binh|VN|106.18|20.43|448|W|nam dinh,Namangan|namangan|UZ|71.67|41|713|W|namanga;nemengan,Namp'o|nampo|KP|125.41|38.74|455|W|nampo,Nampa|ID|US|-116.56|43.54|89|N|,Nampula|nampula|MZ|39.27|-15.12|770|W|,Nanaimo|BC|CA|-123.94|49.17|90|N|,Nanchang|jiangxi|CN|115.85|28.68|2357|W|nam xuong;nan cchang,Nanchital de Lazaro Cardenas del Rio|MX30|MX|-94.41|18.07|25|N|villa nanchital,Nanchong|sichuan|CN|106.08|30.8|1858|W|nam sung;nan cchung,Nanchuan|chongqing|CN|107.1|29.15|204|W|,Nanded|maharashtra|IN|77.31|19.16|550|W|,Nandyal|andhra pradesh|IN|78.48|15.48|211|W|,Nangloi Jat|delhi|IN|77.07|28.68|205|W|,Nanjin|chongqing|CN|106.27|29.98|143|W|,Nanjing|jiangsu|CN|118.78|32.06|9314|W|nankin;nam kinh;nanchino;nanquim;nankijn,Nankana Sahib|punjab|PK|73.71|31.45|130|W|,Nanning|guangxi|CN|108.32|22.82|3839|W|nam ninh;nan ning,Nanpiao|liaoning|CN|120.75|41.1|157|W|,Nanping|fujian|CN|118.17|26.64|467|W|nam binh;nan pching,Nanqiao|shanghai|CN|121.45|30.92|361|W|,Nansana|central region|UG|32.53|0.36|532|W|,Nantes|pays de la loire|FR|-1.55|47.22|325|W|,Nantong|jiangsu|CN|120.87|32.03|2273|W|nam thong;nan tchung,Nantou|guangdong|CN|113.29|22.72|130|W|,Nanyang|henan|CN|112.55|33.01|1811|W|nam duong;nan jang,Napa|CA|US|-122.29|38.3|80|N|,Naperville|IL|US|-88.15|41.79|147|NW|,Naples|campania|IT|14.27|40.85|909|W|neapel;napels;napoli;neapol;neapole;napoles,Nara-shi|nara|JP|135.8|34.69|367|W|nara,Narashino|chiba|JP|140.04|35.68|176|W|,Narayanganj|dhaka division|BD|90.5|23.61|223|W|,Narela|delhi|IN|77.09|28.85|800|W|,Narita|chiba|JP|140.32|35.78|132|W|,Narowal|punjab|PK|74.87|32.1|130|W|,Narsingdi|dhaka division|BD|90.72|23.92|281|W|,Nashik|maharashtra|IN|73.79|20|1486|W|,Nashua|NH|US|-71.47|42.77|87|N|,Nashville|TN|US|-86.78|36.17|689|NW|,Nasim Shahr|tehran|IR|51.16|35.57|200|W|,Nasimshahr|tehran|IR|51.16|35.57|200|W|,Nasiriyah|dhi qar|IQ|46.26|31.06|558|W|an nasiriya;nasirijja;nasiriya,Nassau|new providence|BS|-77.34|25.06|227|W|nasau,Natal|rio grande do norte|BR|-35.21|-5.79|896|W|,Natick|MA|US|-71.35|42.28|32|N|,National City|CA|US|-117.1|32.68|61|N|,Natore|rajshahi division|BD|88.99|24.41|369|W|,Naucalpan de Juarez|MX15|MX|-99.24|19.48|834|NW|naucalpan,Naugatuck|CT|US|-73.05|41.49|31|N|,Navarre|FL|US|-86.86|30.4|31|N|,Navegantes|benguela|AO|13.39|-12.59|240|W|,Navi Mumbai|maharashtra|IN|73.02|19.04|2600|W|nova bombaim;new bombay,Navoiy|navoiy region|UZ|65.38|40.08|144|W|navoi;nawoi;nevai,Navojoa|MX26|MX|-109.44|27.07|113|N|,Navolato|MX25|MX|-107.7|24.77|29|N|,Navotas|national capital region|PH|120.95|14.67|249|W|,Navsari|gujarat|IN|72.92|20.94|171|W|,Nawabganj|rajshahi division|BD|88.27|24.59|142|W|,Nawabshah|sindh|PK|68.4|26.24|363|W|,Nay Pyi Taw|nay pyi taw|MM|96.13|19.75|925|W|naipidau;naypyidaw;naypyitaw,Nazarabad|alborz province|IR|50.61|35.95|213|W|,Nazran|ingushetiya republic|RU|44.77|43.23|164|W|nasran,Nazret|oromiya|ET|39.27|8.55|456|W|,Ndola|copperbelt|ZM|28.64|-12.96|627|W|,Near North Side|IL|US|-87.63|41.9|85|N|,Needham|MA|US|-71.23|42.28|28|N|,Neenah|WI|US|-88.46|44.19|25|N|,Negombo|western province|LK|79.84|7.21|137|W|negumbo,Neihu|taiwan|TW|121.59|25.08|274|W|distretto di neihu;district de neihu;distrik neihu;neihu district,Neijiang|sichuan|CN|105.06|29.58|1251|W|nej tiang,Neiva|huila department|CO|-75.28|2.93|357|W|,Nek'emte|oromiya|ET|36.55|9.08|156|W|,Nellore|andhra pradesh|IN|79.99|14.45|547|W|nellur,Nepalgunj|lumbini province|NP|81.62|28.05|166|W|,Nepean|ON|CA|-75.72|45.34|180|NW|,Netanya|central district|IL|34.86|32.33|228|W|netania;netanja,Neue Neustadt|saxony anhalt|DE|11.63|52.15|226|W|,Neufchatel-Est-Lebourgneuf|QC|CA|-71.34|46.85|37|N|,Neukoelln|state of berlin|DE|13.43|52.48|164|W|neukolln;berlin neukolln,Neuquen|neuquen|AR|-68.06|-38.95|231|W|ciudad de neuquen,Neuss|north rhine westphalia|DE|6.69|51.2|152|W|,Nevinnomyssk|stavropol kray|RU|41.94|44.63|134|W|nevinnomissk;newinnomyssk;niewinnomyssk,New Albany|IN|US|-85.82|38.29|36|N|,New Bedford|MA|US|-70.93|41.64|101|N|,New Berlin|WI|US|-88.11|42.98|39|N|,New Bern|NC|US|-77.04|35.11|30|N|,New Braunfels|TX|US|-98.12|29.7|70|N|,New Britain|CT|US|-72.78|41.66|72|N|,New Brunswick|NJ|US|-74.45|40.49|57|N|nuevo brunswick,New Cairo|cairo|EG|31.47|30.03|313|W|,New City|IL|US|-87.66|41.81|40|N|,New City|NY|US|-73.99|41.15|33|N|,New Delhi|delhi|IN|77.21|28.62|317|W|neu delhi;nova deli;nove dilli;nueva delhi;nuova delhi;yeni delhi,New Haven|CT|US|-72.93|41.31|130|NW|,New Iberia|LA|US|-91.82|30|30|N|la nouvelle iberie;nueva iberia,New Kingston|saint andrew parish|JM|-76.78|18.01|583|W|,New Lenox|IL|US|-87.97|41.51|25|N|,New London|CT|US|-72.1|41.36|27|N|,New Orleans|LA|US|-90.08|29.95|362|NW|nova orleaes;nowy orlean;nueva orleans;new orleans louisiana;la nouvelle orleans,New Rochelle|NY|US|-73.78|40.91|79|N|nouvelle rochelle;nueva rochelle,New South Memphis|TN|US|-90.06|35.09|641|NW|,New Taipei City|taipei|TW|121.46|25.06|4004|W|new taipei;neu taipeh;nieuw taipei;nouveau taipei;nova taipe;nova tchaj pej;nowe tajpej;nueva taipei;nuova taipei;xinbei city;yeni taipei,New Territories||HK|114.11|22.42|3984|W|new territory hong kong,New Westminster|BC|CA|-122.91|49.21|78|N|new westminister,New York City|NY|US|-74.01|40.71|8804|NW|new york;nueva york;kota new york;new york kenti;nova iorque;nowy jork;nuova york,Newark|NJ|US|-74.17|40.74|281|NW|,Newark|OH|US|-82.4|40.06|47|N|,Newark|CA|US|-122.04|37.53|45|N|,Newark|DE|US|-75.75|39.68|33|N|,Newburgh|NY|US|-74.01|41.5|28|N|,Newcastle|new south wales|AU|151.78|-32.93|508|W|,Newcastle|kwazulu natal|ZA|29.93|-27.76|404|W|,Newcastle upon Tyne|england|GB|-1.61|54.97|300|W|newcastle;newcastle tren song tyne;newcastle on tyne,Newington|CT|US|-72.72|41.7|30|N|,Newmarket|ON|CA|-79.47|44.05|91|N|,Newnan|GA|US|-84.8|33.38|37|N|,Newport|wales|GB|-3|51.59|161|W|,Newport Beach|CA|US|-117.93|33.62|87|N|,Newport News|VA|US|-76.43|36.98|186|NW|,Newton|BC|CA|-122.85|49.13|159|NW|surrey newton,Newton|MA|US|-71.21|42.34|88|N|,Neyagawa|osaka|JP|135.63|34.77|238|W|,Neyshabur|razavi khorasan|IR|58.8|36.21|220|W|nichapur;nischapur;nishapur,Neyveli|tamil nadu|IN|79.5|11.61|179|W|,Ngaoundere|adamaoua|CM|13.58|7.33|238|W|ngaundere,Nghi Son|thanh hoa province|VN|105.82|19.33|302|W|,Nha Trang|khanh hoa|VN|109.19|12.25|579|W|,NIA Valencia|northern mindanao|PH|125.09|7.91|223|W|kota valencia;valencia city,Niagara|ON|CA|-79.41|43.64|31|N|,Niagara Falls|ON|CA|-79.07|43.1|99|N|cataratas del niagara;chutes niagara,Niagara Falls|NY|US|-79.06|43.09|48|N|,Niamey|niamey|NE|2.11|13.51|1323|W|,Nianbo|qinghai|CN|102.42|36.48|260|W|haidong,Nice|provence alpes cote d azur|FR|7.27|43.7|342|W|niza;nicea;nisa;nizza,Nicholasville|KY|US|-84.57|37.88|29|N|,Nicolas Romero|MX15|MX|-99.31|19.64|281|NW|ciudad nicolas romero,Nicosia|nicosia|CY|33.35|35.17|200|W|lefkosa;nikosia;lefkosia;nicosie;nikozja;nikosie,Nigel|gauteng|ZA|28.48|-26.43|140|W|,Niigata|niigata|JP|139.04|37.92|797|W|,Niiza|saitama|JP|139.56|35.82|166|W|,Nijmegen|gelderland|NL|5.85|51.84|177|W|nimwegen;nimega;nimegue,Niles|IL|US|-87.8|42.02|29|N|,Nilopolis|rio de janeiro|BR|-43.41|-22.81|155|W|,Niluefer|bursa province|TR|28.92|40.21|536|W|nilufer,Nimes|occitanie|FR|4.36|43.84|148|W|,Ning'er|yunnan|CN|101.04|23.04|162|W|,Ningbo|zhejiang|CN|121.55|29.88|3731|W|ninh ba,Ningde|fujian|CN|119.52|26.66|429|W|ningteh,Ninh Hoa|khanh hoa|VN|109.12|12.49|230|W|,Nis|central serbia|RS|21.9|43.32|250|W|nisz,Nishi-Tokyo-shi|tokyo|JP|139.54|35.73|207|W|,Nishinomiya|hyogo|JP|135.33|34.72|485|W|,Nishio|aichi|JP|137.05|34.87|169|W|,Niteroi|rio de janeiro|BR|-43.1|-22.88|515|W|,Nizamabad|telangana|IN|78.1|18.67|311|W|,Nizhnekamsk|tatarstan republic|RU|51.82|55.64|234|W|nijnekamsk;nischnekamsk;nizjnekamsk;nizniekamsk;niznekamsk;tubenkama;tuban kama,Nizhnevartovsk|khanty mansia|RU|76.55|60.93|244|W|nijnevartovsk;nischnewartowsk;nizjnevartovsk;nizniewartowsk;niznevartovsk,Nizhniy Novgorod|nizhny novgorod oblast|RU|44|56.33|1259|W|nijni novgorod;nischni nowgorod;nizhny novgorod;nizhni novgorod;nizjnij novgorod;nizni novgorod;gorkij,Nizhny Tagil|sverdlovsk oblast|RU|59.97|57.92|381|W|nizjnij tagil,Njeru|central region|UG|33.18|0.44|178|W|,Nkongsamba|littoral|CM|9.94|4.95|162|W|,Nnewi|anambra|NG|6.92|6.02|193|W|,Noblesville|IN|US|-86.01|40.05|59|N|,Noda|chiba|JP|139.87|35.95|154|W|noda shi,Nogales|MX26|MX|-110.94|31.31|264|NW|heroica nogales;los nogales,Noida|uttar pradesh|IN|77.33|28.58|293|W|,Nong Chok|bangkok|TH|100.86|13.86|157|W|,Nong Khaem|bangkok|TH|100.35|13.71|150|W|,Nor Nork|yerevan|AM|44.57|40.2|137|W|,Norco|CA|US|-117.55|33.93|26|N|,Norfolk|VA|US|-76.29|36.85|238|NW|,Norfolk County|ON|CA|-80.38|42.83|60|N|,Norilsk|krasnoyarsk krai|RU|88.2|69.35|140|W|noril sk;norylsk,Normal|IL|US|-88.99|40.51|54|N|,Norman|OK|US|-97.44|35.22|128|N|,Norristown|PA|US|-75.34|40.12|34|N|,North Andover|MA|US|-71.14|42.7|28|N|,North Bay|ON|CA|-79.47|46.32|50|N|,North Bel Air|MD|US|-76.35|39.54|33|N|,North Bergen|NJ|US|-74.01|40.8|63|N|,North Bethesda|MD|US|-77.12|39.04|43|N|,North Brunswick|NJ|US|-74.48|40.45|43|N|,North Center|IL|US|-87.68|41.95|34|N|,North Charleston|SC|US|-79.97|32.85|108|N|,North Chicago|IL|US|-87.84|42.33|29|N|,North Chicopee|MA|US|-72.6|42.18|55|N|,North Cowichan|BC|CA|-123.69|48.84|29|N|,North Creek|WA|US|-122.18|47.82|26|N|,North Delta|BC|CA|-122.92|49.17|60|N|nord delta,North Fort Myers|FL|US|-81.88|26.67|39|N|n ft myers,North Highlands|CA|US|-121.37|38.69|42|N|,North Hills|CA|US|-118.48|34.24|56|N|,North Hollywood|CA|US|-118.38|34.17|64|N|lankershim;toluca,North Kingstown|RI|US|-71.47|41.55|28|N|n kingstown,North La Crosse|WI|US|-91.25|43.85|50|N|,North Las Vegas|NV|US|-115.12|36.2|234|NW|,North Lauderdale|FL|US|-80.23|26.22|43|N|n lauderdale,North Lawndale|IL|US|-87.72|41.86|35|N|,North Little Rock|AR|US|-92.27|34.77|66|N|,North Miami|FL|US|-80.19|25.89|62|N|,North Miami Beach|FL|US|-80.16|25.93|43|N|,North Olmsted|OH|US|-81.92|41.42|32|N|,North Peoria|IL|US|-89.58|40.72|113|N|,North Port|FL|US|-82.24|27.04|62|N|,North Providence|RI|US|-71.47|41.85|33|N|,North Richland Hills|TX|US|-97.23|32.83|69|N|,North Ridgeville|OH|US|-82.02|41.39|32|N|,North Royalton|OH|US|-81.72|41.31|30|N|n royalton,North Shore|auckland|NZ|174.75|-36.8|258|W|,North Stamford|CT|US|-73.54|41.14|121|N|,North Tonawanda|NY|US|-78.86|43.04|30|N|,North Vancouver|BC|CA|-123.07|49.32|88|N|vancouver utara,Northampton|england|GB|-0.88|52.25|245|W|,Northampton|MA|US|-72.64|42.33|28|N|,Northbrook|IL|US|-87.83|42.13|33|N|,Northglenn|CO|US|-104.99|39.89|39|N|,Northridge|CA|US|-118.54|34.23|68|N|,Norwalk|CA|US|-118.08|33.9|107|N|,Norwalk|CT|US|-73.41|41.12|88|N|,Norwich|england|GB|1.3|52.63|143|W|,Norwich|CT|US|-72.08|41.52|39|N|,Norwood|MA|US|-71.2|42.19|28|N|,Norzagaray|central luzon|PH|121.05|14.91|140|W|,Nossa Senhora do Socorro|sergipe|BR|-37.13|-10.86|204|W|,Notre-Dame-de-Grace|QC|CA|-73.61|45.48|68|N|,Nottingham|england|GB|-1.15|52.95|323|W|,Nou Barris|catalonia|ES|2.18|41.44|166|W|distrito nou barris;distrito de nou barris,Nouadhibou|dakhlet nouadhibou|MR|-17.04|20.94|146|W|nawazibu;nouadibou;nuadibu;port etienne,Nouakchott||MR|-15.98|18.09|1184|W|nawakszut;nuakchot;nuaksot;nuaksott,Nova Friburgo|rio de janeiro|BR|-42.53|-22.28|189|W|nueva friburgo,Nova Iguacu|rio de janeiro|BR|-43.45|-22.76|843|W|,Nova Vida|luanda|AO|13.22|-8.91|464|W|,Novato|CA|US|-122.57|38.11|55|N|,Novi|MI|US|-83.48|42.48|58|N|,Novi Sad|vojvodina|RS|19.84|45.25|215|W|nowy sad;neusatz,Novo Hamburgo|rio grande do sul|BR|-51.13|-29.68|253|W|,Novocherkassk|rostov|RU|40.09|47.42|166|W|novotcherkassk;novotjerkassk;novotsjerkassk;novotserkassk;novocerkassk;nowoczerkask;nowotscherkassk,Novokuznetsk|kuzbass|RU|87.14|53.76|539|W|novokoeznetsk;novokouznetsk;novokusnetsk;novokuzneck;novokuznetk;nowokusnezk;nowokuznieck,Novomoskovsk|tula oblast|RU|38.29|54.01|130|W|nowomoskowsk,Novorossiysk|krasnodar krai|RU|37.76|44.73|241|W|novorossijsk;novorossiejsk;noworossijsk;noworosyjsk,Novosibirsk|novosibirsk oblast|RU|82.93|55.02|1612|W|novossibirsk;nowosibirsk;nowosybirsk;novo nikolaevsk;novonikolayevsk,Novozavodskyi|chernihiv oblast|UA|31.26|51.49|179|W|novozavodskyi raion;novozavodskyi rayon,Novyye Kuz'minki|moscow|RU|37.75|55.7|143|W|,Nowrangapur|odisha|IN|82.55|19.23|1220|W|,Nueva Italia de Ruiz|MX16|MX|-102.09|19.02|32|N|,Nueva Rosita|MX07|MX|-101.22|27.94|38|N|,Nuevo Casas Grandes|MX06|MX|-107.91|30.42|55|N|,Nuevo Laredo|MX28|MX|-99.52|27.48|416|NW|novo laredo,Nuevo Mexico|MX14|MX|-103.44|20.76|28|N|,Nukus|karakalpakstan|UZ|59.61|42.46|332|W|noukous,Numazu|shizuoka|JP|138.87|35.1|189|W|,Nunoa|santiago metropolitan|CL|-70.58|-33.45|255|W|,Nuremberg|bavaria|DE|11.08|49.45|515|W|nurnberg;neurenberg;norimberga;norimberk;norymberga;nuremberga,Nusantara|east kalimantan|ID|116.71|-0.97|147|W|ikn nusantara;ibu kota negara nusantara;nusantara capital city,Nutana Sector|SK|CA|-106.64|52.1|72|N|,Nutley|NJ|US|-74.16|40.82|27|N|,Nyala|southern darfur|SD|24.88|12.05|565|W|niala;nijala,Nyingchi|tibet|CN|94.36|29.65|200|W|,Nyzhnodniprovsk|dnipropetrovsk|UA|35.12|48.48|160|W|nyzhnodniprovsk vuzol,Nzerekore|nzerekore region|GN|-8.82|7.76|226|W|,O'Fallon|MO|US|-90.7|38.81|85|N|,O'Fallon|IL|US|-89.91|38.59|29|N|,Oak Creek|WI|US|-87.86|42.89|35|N|,Oak Forest|IL|US|-87.74|41.6|28|N|,Oak Hill|VA|US|-77.4|38.93|33|N|,Oak Lawn|IL|US|-87.76|41.71|56|N|oaklawn,Oak Park|IL|US|-87.78|41.89|52|N|,Oak Park|MI|US|-83.18|42.46|29|N|,Oak Ridge|TN|US|-84.27|36.01|29|N|,Oakdale|MN|US|-92.96|44.96|28|N|,Oakland|CA|US|-122.27|37.8|419|NW|,Oakland Park|FL|US|-80.13|26.17|44|N|,Oakley|CA|US|-121.71|38|39|N|,Oakton|VA|US|-77.3|38.88|34|N|,Oakville|ON|CA|-79.68|43.45|213|NW|,Oakville|MO|US|-90.3|38.47|36|N|,Oaxaca|MX20|MX|-96.73|17.06|255|NW|oaxaca city;oaxaca by;oaxaca de juarez,Obalende|lagos|NG|3.42|6.45|342|W|,Oberhausen|north rhine westphalia|DE|6.86|51.48|219|W|,Obihiro|hokkaido|JP|143.2|42.92|166|W|,Obolon|kyiv city|UA|30.51|50.51|239|W|obolonskyi raion;obolonskyi rayon;obolonskyy raion;obolonskyy rayon,Obuase|ashanti|GH|-1.67|6.2|179|W|obuasi,Ocala|FL|US|-82.14|29.19|58|N|,Oceanside|CA|US|-117.38|33.2|175|NW|,Oceanside|NY|US|-73.64|40.64|32|N|,Ocoee|FL|US|-81.54|28.57|43|N|,Ocosingo|MX05|MX|-92.09|16.91|41|N|,Ocotlan|MX14|MX|-102.77|20.35|83|N|,Ocoyoacac|MX15|MX|-99.46|19.27|26|N|,Ocozocoautla de Espinosa|MX05|MX|-93.37|16.76|39|N|la ventosa,Ocumare del Tuy|miranda|VE|-66.78|10.12|166|W|ocumare,Odawara|kanagawa|JP|139.16|35.26|188|W|,Odense|south denmark|DK|10.39|55.4|180|W|ottensee,Odenton|MD|US|-76.7|39.08|37|N|,Odesa|odesa|UA|30.74|46.49|1010|W|odessa;khadjibey,Odessa|TX|US|-102.37|31.85|114|N|,Odintsovo|moscow oblast|RU|37.28|55.67|137|W|odincovo;odincowo;odinzowo;odintovo,OErebro|orebro|SE|15.21|59.27|155|W|orebro,Ogaki|gifu|JP|136.62|35.35|161|W|,Ogbomoso|oyo state|NG|4.24|8.13|433|W|,Ogden|UT|US|-111.97|41.22|85|N|,Oildale|CA|US|-119.02|35.42|32|N|,Oita|oita|JP|131.6|33.23|477|W|oita shi;oitashi,Ojinaga|MX06|MX|-104.54|29.57|28|N|,Ojo de Agua|MX15|MX|-99.01|19.68|386|NW|,Okanagan Mission|BC|CA|-119.48|49.82|38|N|,Okara|punjab|PK|73.45|30.81|533|W|,Okayama|okayama|JP|133.93|34.65|724|W|okajama,Okazaki|aichi|JP|137.17|34.95|384|W|,Okene|kogi state|NG|6.24|7.55|479|W|,Okinawa|okinawa|JP|127.8|26.34|142|W|,Oklahoma City|OK|US|-97.52|35.47|681|NW|kota oklahoma;okla city,Okotoks|AB|CA|-113.98|50.73|30|N|,Okrika|rivers state|NG|7.08|4.74|133|W|,Olathe|KS|US|-94.82|38.88|134|NW|,Oldenburg|lower saxony|DE|8.21|53.14|159|W|oldemburgo;oldenbourg;oldenburgo,Oldham|england|GB|-2.12|53.54|237|W|,Olinda|pernambuco|BR|-34.86|-8.01|364|W|,Olive Branch|MS|US|-89.83|34.96|36|N|,Olmaliq|tashkent region|UZ|69.6|40.84|133|W|almalyk;almalik,Olney|PA|US|-75.12|40.04|39|N|mccartersville,Olney|MD|US|-77.07|39.15|33|N|,Olongapo|central luzon|PH|120.28|14.83|221|W|kota olongapo;olongapo city,Olsztyn|warmia masuria|PL|20.49|53.78|169|W|olstyn;allenstein,Olympia|WA|US|-122.9|47.04|55|N|,Omaha|NE|US|-95.94|41.26|486|NW|,Omdurman|khartoum|SD|32.48|15.64|1849|W|omdourman;umm durman,Ome|tokyo|JP|139.24|35.78|133|W|oume,Omsk|omsk oblast|RU|73.37|54.99|1172|W|omsc,Omuta|fukuoka|JP|130.45|33.03|131|W|,Ondo|ondo state|NG|4.84|7.09|375|W|,Ongata Rongai|kajiado county|KE|36.76|-1.4|172|W|,Ongole|andhra pradesh|IN|80.04|15.5|208|W|,Onitsha|anambra|NG|6.79|6.15|1553|W|,Onomichi|hiroshima|JP|133.2|34.42|131|W|onomici,Ontario|CA|US|-117.65|34.06|171|NW|,Ooty|tamil nadu|IN|76.7|11.41|233|W|ootacamund;udagamandalam;udhagamandalam;utakamand,Opelika|AL|US|-85.38|32.65|29|N|,Opportunity|WA|US|-117.24|47.65|25|N|,Oradea|bihor county|RO|21.92|47.05|183|W|grosswardein;gran varadino;oradea mare;oradia;velky varadin,Orai|uttar pradesh|IN|79.45|25.99|158|W|,Oral|west kazakhstan|KZ|51.43|51.25|330|W|oural;uralsk;ural sk,Oran|oran|DZ|-0.64|35.7|803|W|orano;ora,Orange|CA|US|-117.85|33.79|140|NW|,Orange|NJ|US|-74.23|40.77|34|N|,Orangevale|CA|US|-121.23|38.68|33|N|,Orangeville|ON|CA|-80.1|43.92|30|N|,Orcutt|CA|US|-120.44|34.87|28|N|,Ordos|inner mongolia|CN|109.78|39.61|1940|W|,Ordu|ordu|TR|37.89|40.98|229|W|cotyora,Oregon City|OR|US|-122.61|45.36|35|N|,Orekhovo-Borisovo|moscow|RU|37.73|55.61|144|W|,Orel|oryol oblast|RU|36.08|52.97|303|W|orjol;oryol;orzel,Orem|UT|US|-111.69|40.3|94|N|,Orenburg|orenburg oblast|RU|55.1|51.77|564|W|orenbourg;oremburgo,Orillia|ON|CA|-79.42|44.61|31|N|,Orizaba|MX30|MX|-97.1|18.85|123|N|,Orland Park|IL|US|-87.85|41.63|58|N|,Orlando|FL|US|-81.38|28.54|334|NW|,Orleans|ON|CA|-75.5|45.46|125|N|,Ormoc|eastern visayas|PH|124.61|11.01|238|W|kota ormoc;ormoc city,Ormond Beach|FL|US|-81.06|29.29|40|N|,Oro Valley|AZ|US|-110.97|32.39|45|N|,Orsk|orenburg oblast|RU|58.49|51.23|246|W|,Orumiyeh|west azerbaijan|IR|45.08|37.55|577|W|ourmia;urmia;urmiye,Oruro|oruro|BO|-67.09|-17.97|208|W|,Osaka|osaka|JP|135.5|34.69|2753|W|osaka shi;osaacke,Osan|gyeonggi do|KR|127.07|37.15|238|W|,Osasco|sao paulo|BR|-46.79|-23.53|728|W|,Osh|osh region|KG|72.8|40.53|322|W|och;osch;osj;osz,Oshawa|ON|CA|-78.85|43.9|175|NW|,Oshkosh|WI|US|-88.54|44.02|66|N|,Oshodi|lagos|NG|3.34|6.56|170|W|,Oslo|oslo|NO|10.75|59.91|1082|W|,Osmaniye|osmaniye|TR|36.25|37.07|202|W|,Osnabrueck|lower saxony|DE|8.05|52.27|166|W|osnabruck,Osogbo|osun state|NG|4.56|7.77|645|W|oshogbo,Osorno|los lagos region|CL|-73.13|-40.57|135|W|,Ossining|NY|US|-73.86|41.16|25|N|,Ostrava|moravian silesian region|CZ|18.28|49.83|279|W|mahrisch ostrau;ostrawa,Oswego|IL|US|-88.35|41.68|33|N|,Ota|tokyo|JP|139.72|35.56|748|W|ota ku,Ota|ogun state|NG|3.23|6.69|251|W|,Ota|gunma|JP|139.37|36.3|224|W|,Otsu|shiga|JP|135.87|35|345|W|ocu,Ottawa|ON|CA|-75.7|45.41|1017|NW|otava;aa,Ottawa South|ON|CA|-75.69|45.39|125|N|,Ouagadougou|centre|BF|-1.53|12.37|2415|W|uagadugu;wagadugu,Ouargla|ouargla|DZ|5.33|31.95|169|W|uargla;warkala,Oujda|oriental|MA|-1.91|34.68|539|W|ucda;ujda;wadzda,Oulu|north ostrobothnia|FI|25.47|65.01|216|W|uleaborg,Overbrook|PA|US|-75.24|39.99|32|N|,Overland Park|KS|US|-94.67|38.98|186|NW|,Oviedo|asturias|ES|-5.84|43.36|220|W|,Oviedo|FL|US|-81.21|28.67|38|N|,Owasso|OK|US|-95.85|36.27|34|N|,Owatonna|MN|US|-93.23|44.08|25|N|,Owensboro|KY|US|-87.11|37.77|59|N|,Owerri|imo state|NG|7.03|5.48|545|W|,Owings Mills|MD|US|-76.78|39.42|30|N|,Owo|ondo state|NG|5.59|7.2|276|W|,Oxford|england|GB|-1.26|51.75|162|W|oksford;oxonia;oxnaford,Oxford Circle|PA|US|-75.07|40.05|48|N|,Oxnard|CA|US|-119.18|34.2|207|NW|,Oxon Hill-Glassmanor|MD|US|-76.97|38.8|35|N|,Oyama|tochigi|JP|139.8|36.3|167|W|,Oyo|oyo state|NG|3.93|7.85|736|W|oio,Ozone Park|NY|US|-73.84|40.68|53|N|,Paarl|western cape|ZA|18.98|-33.73|236|W|,Pabellon de Arteaga|MX01|MX|-102.28|22.15|28|N|,Pabna|rajshahi division|BD|89.24|24.01|186|W|,Pachuca de Soto|MX13|MX|-98.73|20.12|256|NW|pachuca,Pacifica|CA|US|-122.49|37.61|39|N|,Paco do Lumiar|maranhao|BR|-44.11|-2.53|155|W|,Padalarang|west java|ID|107.47|-6.84|193|W|,Padang|west sumatra|ID|100.35|-0.95|942|W|kota padang,Padangsidempuan|north sumatra|ID|99.27|1.38|243|W|,Paderborn|north rhine westphalia|DE|8.75|51.72|142|W|,Padua|veneto|IT|11.89|45.41|203|W|padova;padoa;padoue;padwa,Paech'on-up|south hwanghae|KP|126.3|37.99|159|W|,Pagadian|zamboanga peninsula|PH|123.44|7.83|206|W|,Pahrump|NV|US|-115.98|36.21|36|N|,Pak Kret|nonthaburi|TH|100.5|13.91|190|W|,Pakdasht|tehran|IR|51.68|35.48|236|W|,Palakkad|kerala|IN|76.65|10.77|132|W|palakkat,Palangkaraya|central kalimantan|ID|113.92|-2.21|318|W|kota palangka raya;palangka raya,Palanpur|gujarat|IN|72.44|24.17|141|W|,Palatine|IL|US|-88.03|42.11|69|N|,Palembang|south sumatra|ID|104.75|-2.92|1801|W|kota palembang;palimbao,Palenque|MX05|MX|-91.98|17.51|42|N|ruinas de palenque,Palermo|sicily|IT|13.36|38.12|648|W|palerme;palermu,Palhoca|santa catarina|BR|-48.67|-27.65|222|W|,Pali|rajasthan|IN|73.32|25.77|230|W|,Pallabi|dhaka division|BD|90.37|23.82|597|W|,Pallavaram|tamil nadu|IN|80.15|12.97|233|W|,Palm Bay|FL|US|-80.59|28.03|119|N|,Palm Beach Gardens|FL|US|-80.14|26.82|52|N|,Palm Coast|FL|US|-81.21|29.58|82|N|,Palm Desert|CA|US|-116.38|33.72|51|N|,Palm Harbor|FL|US|-82.76|28.08|57|N|,Palm Springs|CA|US|-116.55|33.83|47|N|,Palma|balearic islands|ES|2.65|39.57|438|W|palma de mallorca;palma de maiorca;palma di maiorca,Palmas|tocantins|BR|-48.33|-10.17|306|W|,Palmdale|CA|US|-118.12|34.58|158|NW|,Palmira|valle del cauca department|CO|-76.3|3.54|312|W|,Palo Alto|CA|US|-122.14|37.44|66|N|,Palopo|south sulawesi|ID|120.2|-2.99|184|W|,Paltan|dhaka division|BD|90.41|23.74|184|W|,Palu|central sulawesi|ID|119.87|-0.91|389|W|kabupaten poso;kota palu,Palwal|haryana|IN|77.33|28.14|131|W|,Pamplona|navarre|ES|-1.64|42.82|208|W|pampeluna;pampelune,Pamulang|west java|ID|106.74|-6.34|174|W|,Panabo|davao region|PH|125.68|7.31|211|W|panabo city,Panalanoy|eastern visayas|PH|125.01|11.25|189|W|,Panama City|panama|PA|-79.52|8.99|408|W|panama;ciudad de panama;panama by;panama stadt;panama stad,Panama City|FL|US|-85.66|30.16|38|N|,Panchkula|haryana|IN|76.85|30.69|211|W|panchkula urban estate,Pandi|central luzon|PH|120.96|14.87|162|W|,Pangkalpinang|bangka belitung islands|ID|106.11|-2.13|226|W|,Panguila|bengo|AO|13.45|-8.69|158|W|,Panihati|west bengal|IN|88.37|22.69|378|W|,Panipat|haryana|IN|76.97|29.39|295|W|,Panjin|liaoning|CN|122.07|41.12|1166|W|,Panorama Hills|AB|CA|-114.08|51.15|25|N|,Panshan|liaoning|CN|122.05|41.19|625|W|,Panuco|MX30|MX|-98.18|22.05|40|N|,Panvel|maharashtra|IN|73.11|18.99|195|W|,Panzhihua|sichuan|CN|101.71|26.59|787|W|,Papantla de Olarte|MX30|MX|-97.32|20.45|53|N|,Par Naogaon|rajshahi division|BD|88.95|24.8|192|W|naogaon,Paracho de Verduzco|MX16|MX|-102.05|19.65|37|N|,Paradise|NV|US|-115.15|36.1|223|NW|,Paradise|CA|US|-121.62|39.76|26|N|,Paragould|AR|US|-90.5|36.06|27|N|,Paraiso|MX27|MX|-93.21|18.4|86|N|,Parakou|borgou|BJ|2.63|9.34|255|W|,Paramaribo|paramaribo district|SR|-55.17|5.87|223|W|,Paramount|CA|US|-118.16|33.89|55|N|,Paramus|NJ|US|-74.08|40.94|26|N|,Parana|entre rios|AR|-60.53|-31.73|247|W|,Paranagua|parana|BR|-48.53|-25.52|150|W|,Paranaque City|national capital region|PH|121.02|14.48|703|W|,Parauapebas|para|BR|-49.9|-6.07|305|W|,Parbhani|maharashtra|IN|76.77|19.27|307|W|,Parc-Extension|QC|CA|-73.63|45.53|33|N|,Parelheiros|sao paulo|BR|-46.73|-23.83|153|W|,Parepare|south sulawesi|ID|119.63|-4.01|160|W|,Paris|ile de france|FR|2.35|48.85|2138|W|parijs;pa ri;parigi;pariisi;paryz;pariz,Paris 11 Popincourt|ile de france|FR|2.38|48.86|138|W|,Paris 11e Arrondissement|ile de france|FR|2.38|48.86|144|W|,Paris 12 Reuilly|ile de france|FR|2.39|48.84|138|W|,Paris 12e Arrondissement|ile de france|FR|2.44|48.84|140|W|,Paris 13 Gobelins|ile de france|FR|2.36|48.83|181|W|,Paris 13e Arrondissement|ile de france|FR|2.36|48.83|177|W|,Paris 14 Observatoire|ile de france|FR|2.33|48.83|136|W|,Paris 15 Vaugirard|ile de france|FR|2.3|48.84|229|W|,Paris 16 Passy|ile de france|FR|2.28|48.86|159|W|,Paris 17 Batignolles-Monceau|ile de france|FR|2.32|48.88|159|W|,Paris 18 Buttes-Montmartre|ile de france|FR|2.34|48.89|183|W|,Paris 19 Buttes-Chaumont|ile de france|FR|2.38|48.88|178|W|,Paris 20 Menilmontant|ile de france|FR|2.4|48.86|185|W|,Park Ridge|IL|US|-87.84|42.01|37|N|,Park Slope|NY|US|-73.99|40.67|65|N|,Parkchester|NY|US|-73.86|40.84|65|N|,Parker|CO|US|-104.76|39.52|49|N|,Parkersburg|WV|US|-81.56|39.27|30|N|,Parkland|WA|US|-122.43|47.16|35|N|,Parkland|FL|US|-80.24|26.31|30|N|,Parkville|MD|US|-76.54|39.38|30|N|,Parkwoods-Donalda|ON|CA|-79.33|43.76|34|N|,Parma|emilia romagna|IT|10.33|44.8|198|W|parme,Parma|OH|US|-81.72|41.4|79|N|,Parnaiba|piaui|BR|-41.78|-2.9|170|W|,Parnamirim|rio grande do norte|BR|-35.26|-5.92|271|W|,Parras de la Fuente|MX07|MX|-102.18|25.44|33|N|,Parsippany|NJ|US|-74.43|40.86|51|N|,Pasadena|TX|US|-95.21|29.69|153|NW|,Pasadena|CA|US|-118.14|34.15|142|NW|,Pasarkemis|west java|ID|106.53|-6.17|263|W|,Pasay|national capital region|PH|121|14.54|416|W|,Pasco|WA|US|-119.1|46.24|69|N|,Pasig City|national capital region|PH|121.06|14.59|853|W|pasig,Pasir Gudang|johor|MY|103.91|1.46|534|W|,Pasir Mas|kelantan|MY|102.14|6.05|230|W|,Pasir Puteh|kelantan|MY|102.4|5.83|137|W|,Paso Robles|CA|US|-120.69|35.63|27|N|el paso de robles,Passaic|NJ|US|-74.13|40.86|71|N|,Passo Fundo|rio grande do sul|BR|-52.41|-28.26|214|W|,Pasto|narino|CO|-77.28|1.21|392|W|,Pasuruan|east java|ID|112.91|-7.65|213|W|kota pasuruan;pasoeroean,Patan|bagmati province|NP|85.31|27.68|299|W|lalitpur,Patan|gujarat|IN|72.13|23.85|133|W|,Paterson|NJ|US|-74.17|40.92|147|NW|,Pathankot|punjab|IN|75.65|32.27|174|W|,Pathein|ayeyarwady|MM|94.73|16.78|237|W|basejn,Patiala|punjab|IN|76.39|30.34|446|W|,Patna|bihar|IN|85.14|25.59|1684|W|,Patos de Minas|minas gerais|BR|-46.52|-18.58|159|W|,Patra|west greece|GR|21.74|38.25|168|W|patrai;patras;patrasso,Patzcuaro|MX16|MX|-101.61|19.51|55|N|,Paulista|pernambuco|BR|-34.87|-7.94|342|W|,Pavlodar|pavlodar region|KZ|76.97|52.28|329|W|pawlodar,Pawtucket|RI|US|-71.38|41.88|71|N|,Paya Terubong|penang|MY|100.28|5.37|226|W|,Payakumbuh|west sumatra|ID|100.63|-0.22|139|W|kota payakumbuh,Peabody|MA|US|-70.93|42.53|52|N|,Peachtree City|GA|US|-84.6|33.4|35|N|,Peachtree Corners|GA|US|-84.22|33.97|40|N|,Pearl|MS|US|-90.13|32.27|26|N|,Pearl City|HI|US|-157.98|21.4|47|N|,Pearland|TX|US|-95.29|29.56|108|N|,Pecs|baranya|HU|18.23|46.08|145|W|cinquechiese;funfkirchen;pecz,Pedreira|sao paulo|BR|-46.65|-23.71|163|W|,Peicheng|jiangsu|CN|116.92|34.74|195|W|,Pekalongan|central java|ID|109.68|-6.89|324|W|kota pekalongan,Pekanbaru|riau|ID|101.44|0.52|1167|W|kota pekanbaru;pakanbaru,Pekin|IL|US|-89.64|40.57|33|N|,Pelentong|johor|MY|103.82|1.52|583|W|,Pelotas|rio grande do sul|BR|-52.34|-31.77|336|W|,Pemalang|central java|ID|109.38|-6.89|184|W|,Pematangsiantar|north sumatra|ID|99.07|2.96|279|W|,Pemba|cabo delgado province|MZ|40.52|-12.97|232|W|,Pembroke Pines|FL|US|-80.22|26|166|NW|,Penalolen|santiago metropolitan|CL|-70.53|-33.47|241|W|,Pengpu|shanghai|CN|121.44|31.29|152|W|,Pengze|jiangxi|CN|116.55|29.9|350|W|,Penjamo|MX11|MX|-101.72|20.43|40|N|,Penn Hills|PA|US|-79.84|40.5|44|N|,Pennsauken|NJ|US|-75.06|39.96|36|N|,Pennsport|PA|US|-75.15|39.93|26|N|,Pensacola|FL|US|-87.22|30.42|53|N|pensacola i florida,Penticton|BC|CA|-119.59|49.48|33|N|,Penza|penza oblast|RU|45.01|53.2|523|W|pensa,Peoria|AZ|US|-112.24|33.58|190|NW|,Peoria|IL|US|-89.59|40.69|115|N|,Perbaungan|north sumatra|ID|98.96|3.57|157|W|,Percut|north sumatra|ID|98.86|3.63|311|W|,Pereira|risaralda department|CO|-75.69|4.81|467|W|,Peristeri|attica|GR|23.69|38.02|139|W|peristerion,Perm|perm krai|RU|56.25|58.01|982|W|molotov,Perote|MX30|MX|-97.24|19.56|37|N|,Perris|CA|US|-117.23|33.78|74|N|,Perry Hall|MD|US|-76.46|39.41|28|N|,Perth|western australia|AU|115.86|-31.95|2384|W|,Perth Amboy|NJ|US|-74.27|40.51|52|N|,Pervouralsk|sverdlovsk oblast|RU|59.94|56.91|133|W|perwouralsk,Peshawar|khyber pakhtunkhwa|PK|71.58|34.01|4758|W|peschawar;pesjawar;peszawar;pexauar;pesaver;pesavar,Pest|budapest|HU|19.08|47.5|1001|W|pesta;peste;peszt,Petah Tiqva|central district|IL|34.89|32.09|253|W|petah tikva;mulebbis;petach tikva;petach tikwa;petah tikwah;petah tiqwa;petaj tikva;pethah tiqva,Petaling Jaya|selangor|MY|101.61|3.11|807|W|,Petaluma|CA|US|-122.64|38.23|60|N|,Petapa|guatemala|GT|-90.56|14.5|135|W|,Petare|miranda|VE|-66.81|10.48|364|W|,Peterborough|england|GB|-0.25|52.57|163|W|,Peterborough|ON|CA|-78.32|44.3|85|N|,Petersburg|VA|US|-77.4|37.23|32|N|,Petionville|ouest|HT|-72.29|18.51|376|W|,Petrogradka|st petersburg|RU|30.31|59.97|130|W|,Petrolina|pernambuco|BR|-40.5|-9.4|418|W|,Petropavl|north kazakhstan|KZ|69.15|54.87|200|W|kizilyar;petropawl;pietropawlowsk,Petropavlovsk-Kamchatsky|kamchatka|RU|158.63|53.06|181|W|petropavlovsk kamchatskiy;petropavlovsk kamciatki;petropavlovsk kamchatski;petropavlovsk kamtchatski;petropavlovsk kamtjatskij;petropavlovsk kamtsjatski;petropavlovsk kamtsatski;petropavlovsk kamcatski;petropavlovsk kamcatskij;pietropawlowsk kamczacki,Petropolis|rio de janeiro|BR|-43.18|-22.5|294|W|,Petrozavodsk|karelia|RU|34.35|61.78|279|W|petroskoi;petrosavodsk;petrosawodsk;petroskoj;petrozawodzk;pietrozawodsk;aanislinna,Pflugerville|TX|US|-97.62|30.44|57|N|,Phan Rang-Thap Cham|khanh hoa|VN|108.99|11.56|207|W|phan rang,Phan Thiet|lam dong|VN|108.1|10.93|228|W|,Pharr|TX|US|-98.18|26.19|76|N|,Phenix City|AL|US|-85|32.47|37|N|,Philadelphia|PA|US|-75.16|39.95|1573|NW|filadelfia;filadelfie;philadelphie,Phnom Penh|phnom penh|KH|104.92|11.56|1573|W|nom pen;phnompenh;phon phen;pnom pene;pnom penh,Pho Yen|thai nguyen|VN|105.89|21.42|231|W|,Phoenix|AZ|US|-112.07|33.45|1650|NW|,Phra Pradaeng|samut prakan|TH|100.53|13.66|196|W|amphoe phra pradaeng,Phu Ly|ninh binh|VN|105.91|20.55|136|W|,Phu My|ho chi minh city hcmc|VN|107.07|10.63|287|W|,Phu Quoc|an giang|VN|103.97|10.22|294|W|koh trol,Phuc Yen|phu tho|VN|105.7|21.24|180|W|,Phusro|jharkhand|IN|86.01|23.76|185|W|,Pickering|ON|CA|-79.13|43.9|91|N|,Pico Rivera|CA|US|-118.1|33.98|64|N|,Piedecuesta|santander department|CO|-73.05|6.99|163|W|,Piedras Negras|MX07|MX|-100.52|28.7|150|NW|piedrasnegras,Pierrefonds|QC|CA|-73.89|45.46|59|N|,Pierrefonds-Roxboro|QC|CA|-73.84|45.5|73|N|,Pietermaritzburg|kwazulu natal|ZA|30.39|-29.62|839|W|,Pijijiapan|MX05|MX|-93.21|15.69|50|N|,Pikesville|MD|US|-76.72|39.37|30|N|,Pikine|dakar|SN|-17.39|14.76|1170|W|,Pilibhit|uttar pradesh|IN|79.8|28.63|131|W|,Pilsen|plzen region|CZ|13.38|49.75|168|W|plzen;pilzno,Pimpri|maharashtra|IN|73.81|18.62|1284|W|,Pimpri-Chinchwad|maharashtra|IN|73.8|18.62|1727|W|pimpri cincvad,Pinar del Rio|pinar del rio|CU|-83.7|22.42|186|W|,Pindamonhangaba|sao paulo|BR|-45.46|-22.92|172|W|,Pindi Bhattian|punjab|PK|73.27|31.9|493|W|,Pine Bluff|AR|US|-92|34.23|44|N|,Pine Hills|FL|US|-81.45|28.56|60|N|,Pinellas Park|FL|US|-82.7|27.84|51|N|,Pinetown|kwazulu natal|ZA|30.89|-29.82|144|W|,Pingdingshan|henan|CN|113.32|33.73|979|W|pching ting san,Pingdu|shandong|CN|119.95|36.78|542|W|,Pingliang|gansu|CN|106.69|35.54|504|W|binh luong;pching liang,Pingwu County|sichuan|CN|104.53|32.41|180|W|,Pingxiang|jiangxi|CN|113.85|27.62|893|W|binh huong;pching siang,Pinotepa Nacional|MX20|MX|-98.05|16.34|29|N|pinotepa,Piracicaba|sao paulo|BR|-47.65|-22.73|440|W|,Piraeus|attica|GR|23.65|37.94|163|W|el pireo;il pireo;le piree;peiraias;peiraiefs;pire;pireo;pireu;pireus;piraus,Piranshahr|west azerbaijan|IR|45.14|36.7|168|W|khaneh;piranschahr;piranszahr;piransehr,Pirituba|sao paulo|BR|-46.73|-23.49|179|W|,Piscataway|NJ|US|-74.4|40.5|56|N|,Pitalito|huila department|CO|-76.05|1.85|135|W|,Pitesti|arges|RO|24.87|44.85|141|W|piteszt;pitest;pitesk,Pittsburg|CA|US|-121.88|38.03|69|N|,Pittsburgh|PA|US|-80|40.44|304|NW|pitsburgo,Pittsfield|MA|US|-73.25|42.45|43|N|,Piura|piura|PE|-80.66|-5.18|630|W|,Pizhou|jiangsu|CN|117.95|34.31|343|W|,Placentia|CA|US|-117.87|33.87|52|N|,Plainfield|NJ|US|-74.41|40.63|51|N|,Plainfield|IL|US|-88.2|41.63|42|N|,Plainfield|IN|US|-86.4|39.7|30|N|,Plainview|NY|US|-73.47|40.78|26|N|,Planaltina|federal district|BR|-47.65|-15.62|189|W|,Plano|TX|US|-96.7|33.02|283|NW|,Plano Piloto|federal district|BR|-47.88|-15.79|198|W|,Plant City|FL|US|-82.11|28.02|37|N|,Plantation|FL|US|-80.23|26.13|92|N|,Playa del Carmen|MX23|MX|-87.08|20.63|149|NW|,Plaza de la Revolucion|havana|CU|-82.39|23.12|139|W|,Pleasant Grove|UT|US|-111.74|40.36|38|N|pleasant grv,Pleasant Hill|CA|US|-122.06|37.95|34|N|,Pleasanton|CA|US|-121.87|37.66|79|N|,Pleasure Ridge Park|KY|US|-85.86|38.15|25|N|,Ploiesti|prahova|RO|26.02|44.95|180|W|ploeszti,Plovdiv|plovdiv|BG|24.75|42.15|329|W|filibe;filippopoli;plowdiw,Plum|PA|US|-79.75|40.5|27|N|,Plumbon|west java|ID|108.47|-6.71|167|W|,Plymouth|england|GB|-4.14|50.37|260|W|,Plymouth|MN|US|-93.46|45.01|75|N|,Pocatello|ID|US|-112.45|42.87|54|N|,Pocos de Caldas|minas gerais|BR|-46.56|-21.79|172|W|,Podgorica|podgorica|ME|19.26|42.44|236|W|,Podolsk|moscow oblast|RU|37.55|55.42|179|W|,Pohang|gyeongsangbuk do|KR|129.36|36.03|492|W|,Poinciana|FL|US|-81.46|28.14|53|N|,Pointe-Claire|QC|CA|-73.82|45.45|30|N|,Pointe-Noire|pointe noire|CG|11.86|-4.78|1032|W|,Pokhara|gandaki pradesh|NP|83.97|28.27|600|W|,Polanco|MX09|MX|-99.2|19.43|50|N|col polanco;colonia polanco,Polokwane|limpopo|ZA|29.47|-23.9|272|W|pietersburg,Poltava|poltava|UA|34.55|49.59|279|W|poltawa;pultava;baltavar;ltava,Pomona|CA|US|-117.75|34.06|153|NW|,Pompano Beach|FL|US|-80.12|26.24|107|N|,Ponce|ponce|PR|-66.62|18.01|137|W|,Ponta Grossa|parana|BR|-50.16|-25.09|292|W|,Ponte Vedra Beach|FL|US|-81.39|30.24|35|N|,Pontiac|MI|US|-83.29|42.64|59|N|,Pontianak|west kalimantan|ID|109.33|-0.03|686|W|kota pontianak,Poole|england|GB|-1.98|50.71|151|W|,Popayan|cauca department|CO|-76.61|2.44|318|W|,Porbandar|gujarat|IN|69.61|21.64|152|W|,Porlamar|nueva esparta|VE|-63.87|10.96|216|W|,Port Arthur|TX|US|-93.94|29.89|55|N|,Port-au-Prince|ouest|HT|-72.34|18.54|1234|W|porto principe;puerto principe,Port Charlotte|FL|US|-82.09|26.98|54|N|,Port Chester|NY|US|-73.67|41|29|N|,Port Coquitlam|BC|CA|-122.77|49.27|58|N|,Port-de-Paix|nord ouest|HT|-72.83|19.94|306|W|porto da paz,Port-Gentil|ogooue maritime|GA|8.78|-0.72|164|W|mandji,Port Harcourt|rivers state|NG|7.01|4.78|2120|W|,Port Huron|MI|US|-82.42|42.97|29|N|,Port Louis|port louis|MU|57.5|-20.16|155|W|puerto louis,Port Moody|BC|CA|-122.82|49.28|27|N|,Port Moresby|national capital|PG|147.15|-9.48|283|W|puerto moresby,Port Orange|FL|US|-81|29.14|59|N|,Port Richmond|PA|US|-75.1|39.99|27|N|richmond,Port Said|port said|EG|32.3|31.27|780|W|bursaid;porto said;puerto said,Port Saint Lucie|FL|US|-80.35|27.29|164|NW|,Port Sudan|red sea|SD|37.22|19.62|489|W|bur sudan;port soudan;porto sudan;porto sudao;puerto sudan,Portage|MI|US|-85.58|42.2|48|N|,Portage|IN|US|-87.18|41.58|36|N|,Portage Park|IL|US|-87.77|41.96|64|N|,Porterville|CA|US|-119.02|36.07|56|N|,Porticos de San Antonio|MX02|MX|-117.03|32.44|34|N|,Portland|OR|US|-122.68|45.52|652|NW|,Portland|ME|US|-70.26|43.66|66|N|,Porto|porto|PT|-8.61|41.15|252|W|oporto,Porto Alegre|rio grande do sul|BR|-51.23|-30.03|1488|W|puerto alegre,Porto-Novo|oueme|BJ|2.6|6.5|264|W|,Porto Seguro|bahia|BR|-39.06|-16.45|182|W|,Porto Velho|rondonia|BR|-63.9|-8.76|548|W|,Portoviejo|manabi|EC|-80.45|-1.06|321|W|,Portsmouth|england|GB|-1.09|50.8|208|W|,Portsmouth|VA|US|-76.3|36.84|96|N|,Portsmouth Heights|VA|US|-76.37|36.82|99|N|,Posadas|misiones|AR|-55.92|-27.39|305|W|,Post Falls|ID|US|-116.95|47.72|30|N|,Potchefstroom|north west|ZA|27.1|-26.72|178|W|,Potomac|MD|US|-77.21|39.02|44|N|,Potosi|potosi department|BO|-65.75|-19.58|141|W|,Potsdam|brandenburg|DE|13.07|52.4|184|W|poczdam;postupim,Poughkeepsie|NY|US|-73.92|41.7|30|N|,Pouso Alegre|minas gerais|BR|-45.94|-22.23|162|W|,Poway|CA|US|-117.04|32.96|50|N|,Poza Rica de Hidalgo|MX30|MX|-97.46|20.53|185|NW|poza rica,Poznan|greater poland|PL|16.93|52.41|536|W|posen;posnania;possen,Praga Poludnie|mazovia|PL|21.09|52.24|179|W|,Prague|prague|CZ|14.42|50.09|1165|W|praag;prag;praga;praha,Praia|praia|CV|-23.51|14.93|137|W|cidade da praia;municipio da praia,Praia Grande|sao paulo|BR|-46.4|-24.01|367|W|,Prairieville|LA|US|-90.97|30.3|26|N|,Prato|tuscany|IT|11.1|43.88|195|W|,Prattville|AL|US|-86.46|32.46|35|N|,Pravyi Bereh|donetsk|UA|37.59|47.11|352|W|pravyy bereh,Prayagraj|uttar pradesh|IN|81.84|25.44|1073|W|allahabad,Prenzlauer Berg Bezirk|state of berlin|DE|13.42|52.54|148|W|prenzlauer berg,Prescott|AZ|US|-112.47|34.54|41|N|,Prescott Valley|AZ|US|-112.32|34.61|42|N|,Presidente Prudente|sao paulo|BR|-51.39|-22.13|234|W|,Preston|england|GB|-2.7|53.76|313|W|,Pretoria|gauteng|ZA|28.19|-25.74|2112|W|pretorie,Prince Albert|SK|CA|-105.77|53.2|35|N|,Prince Edward|ON|CA|-77.25|44|25|N|prince edward county,Prince George|BC|CA|-122.75|53.92|78|N|,Princeton|FL|US|-80.41|25.54|39|N|,Princeton|NJ|US|-74.66|40.35|29|N|stony brook,Prior Lake|MN|US|-93.42|44.71|25|N|,Probolinggo|east java|ID|113.22|-7.75|243|W|kota probolinggo,Proddatur|andhra pradesh|IN|78.55|14.75|177|W|,Progreso|MX31|MX|-89.66|21.28|37|N|progreso de castro,Prokop'yevsk|kuzbass|RU|86.72|53.92|219|W|prokopjevsk;prokopyevsk;prokopjewsk,Providence|RI|US|-71.41|41.82|190|NW|,Provo|UT|US|-111.66|40.23|115|N|,Pskov|pskov oblast|RU|28.33|57.82|210|W|pihkova;pleskau;pskow,Pu'er|yunnan|CN|100.97|22.79|296|W|,Pucallpa|ucayali|PE|-74.55|-8.38|326|W|,Puchong|selangor|MY|101.62|3|375|W|,Pudong|shanghai|CN|121.5|31.24|5681|W|,Puducherry|puducherry|IN|79.83|11.93|657|W|pondichery;pondicherry;territoire de pondichery;pondicherri,Puebla|MX21|MX|-98.21|19.05|1692|NW|puebla city;puebla de zaragoza;puebla de los angeles,Pueblo|CO|US|-104.61|38.25|109|N|,Pueblo West|CO|US|-104.72|38.35|29|N|,Puente Alto|santiago metropolitan|CL|-70.58|-33.61|568|W|,Puente de Vallecas|madrid|ES|-3.66|40.39|244|W|,Puerto Cabello|carabobo|VE|-68.01|10.47|174|W|,Puerto Cortez|cortes department|HN|-87.93|15.83|142|W|puerto cortes,Puerto Escondido|MX20|MX|-97.07|15.86|29|N|,Puerto La Cruz|anzoategui|VE|-64.63|10.21|370|W|puerto cruz;puerto de la cruz,Puerto Montt|los lagos region|CL|-72.94|-41.47|245|W|port montt,Puerto Penasco|MX26|MX|-113.54|31.32|62|N|,Puerto Plata|puerto plata|DO|-70.69|19.79|146|W|,Puerto Princesa|mimaropa|PH|118.74|9.74|222|W|kota puerto princesa;puerto princesa city,Puerto Vallarta|MX14|MX|-105.23|20.62|224|NW|pto vallarta,Pullman|WA|US|-117.18|46.73|32|N|,Punasa|madhya pradesh|IN|76.39|22.24|350|W|,Pune|maharashtra|IN|73.86|18.52|3124|W|poona,Punggol||SG|103.91|1.41|204|W|,Puning|guangdong|CN|116.17|23.31|874|W|,Punto Fijo|falcon|VE|-70.2|11.69|141|W|,Puqi|hubei|CN|113.88|29.72|132|W|,Puri|odisha|IN|85.82|19.8|200|W|,Purisima de Bustos|MX11|MX|-101.88|21.03|43|N|,Purnia|bihar|IN|87.47|25.78|282|W|,Puruandiro|MX16|MX|-101.52|20.09|30|N|,Purwakarta|west java|ID|107.44|-6.56|179|W|kota purwakarta,Purwodadi|central java|ID|110.92|-7.09|139|W|purwodadi grobogan,Purwokerto|central java|ID|109.23|-7.42|230|W|kota purwokerto,Puthia|rajshahi division|BD|88.83|24.37|159|W|,Putian|fujian|CN|119.01|25.44|1539|W|pchu tchien,Putuo|shanghai|CN|121.39|31.25|1239|W|,Puxi|shanghai|CN|121.47|31.24|6683|W|,Puyallup|WA|US|-122.29|47.19|39|N|,Puyang|zhejiang|CN|119.89|29.46|3590|W|pujiang,Puyang|henan|CN|115.04|35.76|655|W|pchu jang,Pyatigorsk|stavropol kray|RU|43.05|44.05|142|W|piatigorsk;pjatigorsk,Pyay|bago region|MM|95.22|18.82|135|W|prome;pyain,Pyeongtaek|gyeonggi do|KR|127.09|36.99|364|W|pyeongtaek si,Pyongyang|pyongyang|KP|125.75|39.03|3222|W|p yongyang;p yongyang si;pchjongjang;phenian;pionguiangue;pionyang;pjongjang;pyongyang si,Qa'em Shahr|mazandaran|IR|52.87|36.47|204|W|,Qadirpur Ran|punjab|PK|71.67|30.29|200|W|,Qalyub|qalyubia|EG|31.21|30.18|156|W|,Qarchak|tehran|IR|51.58|35.43|251|W|,Qarshi|qashqadaryo|UZ|65.79|38.86|278|W|karchi;karsji;karszy;karsi;qarsi,Qazvin|qazvin province|IR|50|36.27|333|W|kazvin;kazwin,Qeladize|sulaymaniyah|IQ|45.13|36.18|140|W|,Qianjiang|hubei|CN|112.89|30.42|179|W|,Qianjiang|chongqing|CN|108.77|29.53|143|W|,Qibao|shanghai|CN|121.36|31.15|283|W|,Qina|qena|EG|32.73|26.16|252|W|,Qingdao|shandong|CN|120.38|36.06|7172|W|cching tao;tsingtau,Qingpu|shanghai|CN|121.11|31.15|1271|W|,Qingyang|gansu|CN|107.64|35.71|2125|W|,Qingyuan|guangdong|CN|113.03|23.7|1738|W|cching juan,Qingzhou|shandong|CN|118.48|36.7|236|W|,Qinhuangdao|hebei|CN|119.59|39.94|759|W|cchin chuang tao,Qinzhou|guangxi|CN|108.65|21.98|1296|W|kham chau;cchin cou,Qionghai|hainan|CN|110.46|19.24|528|W|,Qiqihar|heilongjiang|CN|123.96|47.34|882|W|cicikar,Qitaihe|heilongjiang|CN|131|45.77|345|W|,Qo'qon|fergana|UZ|70.94|40.53|259|W|kokand,Qods|tehran|IR|51.11|35.72|309|W|,Qom|qom province|IR|50.88|34.64|900|W|kom;kum,Quan Ba|ho chi minh city hcmc|VN|106.69|10.77|220|W|,Quan Bon|ho chi minh city hcmc|VN|106.71|10.77|199|W|,Quan GJuc Thinh||VN|105.74|10.31|132|W|,Quan Muoi|ho chi minh city hcmc|VN|106.67|10.77|399|W|,Quan Muoi Mot|ho chi minh city hcmc|VN|106.64|10.76|332|W|,Quan Nam|ho chi minh city hcmc|VN|106.67|10.76|187|W|,Quan Sau|ho chi minh city hcmc|VN|106.65|10.75|271|W|,Quang Ngai|quang ngai|VN|108.79|15.12|278|W|,Quanzhou|fujian|CN|118.59|24.91|1469|W|cchuan cou;chinchew;chinchu;zayton,Quarto Oggiaro|lombardy|IT|9.14|45.51|182|W|,Quebec|QC|CA|-71.21|46.81|531|NW|kota quebec;quebec city,Queen Creek|AZ|US|-111.63|33.25|34|N|,Queens|NY|US|-73.84|40.68|2316|NW|borough of queens;comte de queens;condado de queens;queens county,Queens Village|NY|US|-73.74|40.73|51|N|,Queensbury|NY|US|-73.61|43.38|27|N|,Queimados|rio de janeiro|BR|-43.56|-22.72|149|W|,Quelimane|zambezia province|MZ|36.89|-17.88|349|W|,Quetta|balochistan|PK|67|30.18|1565|W|ketta;kveta;kweta,Quetzaltenango|quetzaltenango|GT|-91.52|14.84|180|W|,Quevedo|los rios|EC|-79.46|-1.03|213|W|,Quezon City|national capital region|PH|121.05|14.65|3084|W|ciudad quezon;quezon stadt,Qui Nhon|gia lai|VN|109.22|13.78|519|W|quy nhon,Quilicura|santiago metropolitan|CL|-70.71|-33.37|210|W|,Quillacollo|cochabamba|BO|-66.28|-17.39|172|W|,Quilmes|buenos aires|AR|-58.25|-34.72|262|W|,Quilpue|valparaiso|CL|-71.44|-33.05|130|W|,Quincy|MA|US|-71|42.25|93|N|,Quincy|IL|US|-91.41|39.94|40|N|,Quinte West|ON|CA|-77.57|44.18|43|N|,Quito|pichincha|EC|-78.52|-0.23|2781|W|san francisco de quito,Qujing|yunnan|CN|103.78|25.48|1408|W|khuc tinh;cchu ting,Quthbullapur|telangana|IN|78.46|17.5|225|W|,Quzhou|zhejiang|CN|118.87|28.96|902|W|cu chau;cchu cou,Ra's Bayrut|beirut|LB|35.48|33.9|1251|W|,Rabak|white nile|SD|32.74|13.18|135|W|,Rabat|rabat sale kenitra|MA|-6.83|34.01|1655|W|,Rach Gia|an giang|VN|105.08|10.01|459|W|,Racine|WI|US|-87.78|42.73|77|N|,Radnor|PA|US|-75.36|40.05|30|N|,Radom|mazovia|PL|21.15|51.4|226|W|,Raebareli|uttar pradesh|IN|81.23|26.23|186|W|rae bareli,Rafsanjan|kerman|IR|55.99|30.41|147|W|,Rahim Yar Khan|punjab|PK|70.3|28.42|517|W|rahimjar khan;rahimyar khan,Rahway|NJ|US|-74.28|40.61|29|N|,Raichur|karnataka|IN|77.36|16.21|234|W|,Raiganj|west bengal|IN|88.12|25.61|170|W|,Raigarh|chhattisgarh|IN|83.4|21.9|150|W|rajgarh,Raipur|chhattisgarh|IN|81.63|21.23|1027|W|,Raj-Nandgaon|chhattisgarh|IN|81.03|21.1|163|W|,Rajamahendravaram|andhra pradesh|IN|81.78|17.01|376|W|rajahmundry,Rajapalayam|tamil nadu|IN|77.55|9.45|130|W|,Rajkot|gujarat|IN|70.79|22.29|1390|W|radzkot,Rajpur Sonarpur|west bengal|IN|88.43|22.44|424|W|rajpur;sonarpur;sonarpur rajpur,Rajshahi|rajshahi division|BD|88.6|24.37|763|W|,Raleigh|NC|US|-78.64|35.77|482|NW|,Ramadi|anbar|IQ|43.31|33.42|223|W|al ramadi;al rumadi;ar ramadi,Ramagundam|telangana|IN|79.47|18.75|242|W|,Ramat Gan|tel aviv|IL|34.81|32.08|170|W|,Ramenki|moscow|RU|37.5|55.7|130|W|,Ramgundam|telangana|IN|79.45|18.8|452|W|,Ramiros|luanda|AO|13.05|-9.06|323|W|,Ramna Maidan|dhaka division|BD|90.4|23.73|143|W|,Ramos Arizpe|MX07|MX|-100.95|25.54|66|N|,Rampur|uttar pradesh|IN|79.03|28.81|296|W|,Ramsey|MN|US|-93.45|45.26|25|N|,Rancagua|o higgins region|CL|-70.74|-34.17|212|W|,Ranchi|jharkhand|IN|85.31|23.34|1120|W|ranci,Rancho Cordova|CA|US|-121.3|38.59|71|N|,Rancho Cucamonga|CA|US|-117.59|34.11|175|NW|,Rancho Palos Verdes|CA|US|-118.39|33.74|42|N|,Rancho Penasquitos|CA|US|-117.12|32.96|60|N|,Rancho Santa Margarita|CA|US|-117.6|33.64|49|N|,Randallstown|MD|US|-76.8|39.37|32|N|,Randburg|gauteng|ZA|28|-26.09|337|W|rendburg,Randfontein|gauteng|ZA|27.7|-26.18|133|W|,Randolph|MA|US|-71.04|42.16|32|N|,Randolph|NJ|US|-74.58|40.85|25|N|randolph township,Rangel|luanda|AO|13.26|-8.83|190|W|,Rangkasbitung|banten|ID|106.25|-6.36|137|W|,Rangpur|rangpur division|BD|89.25|25.75|1031|W|rangpur city;rongpur,Raniganj|telangana|IN|78.49|17.43|217|W|,Raniganj|west bengal|IN|87.13|23.62|131|W|,Ranipet|tamil nadu|IN|79.33|12.92|264|W|,Rapid City|SD|US|-103.23|44.08|73|N|,Ras Al Khaimah|ras al khaimah|AE|55.94|25.79|351|W|ras el khaimah;ra s al chaima;ras al khaimah city;ras al chajma;ras el kheima;resu l hayme,Rasapudipalem|andhra pradesh|IN|83.32|17.73|1728|W|,Rasht|gilan province|IR|49.59|37.28|594|W|rascht;rasjt;raszt;rast;rest,Ratlam|madhya pradesh|IN|75.04|23.33|264|W|,Raurkela Industrial Township|odisha|IN|84.86|22.2|216|W|,Rawalpindi|punjab|PK|73.05|33.6|3357|W|ravalpindi,Rawang|selangor|MY|101.58|3.32|199|W|,Rawson|san juan|AR|-68.54|-31.58|130|W|,Rayon KTZ|kharkiv|UA|36.37|49.94|200|W|khtz district;khtz settlement;novyy kharkiv;rayon khtz;new kharkiv;novyi kharkiv,Raytown|MO|US|-94.46|39.01|29|N|,Reading|england|GB|-0.97|51.46|318|W|,Reading|PA|US|-75.93|40.34|87|N|,Recife|pernambuco|BR|-34.88|-8.05|1653|W|,Red Deer|AB|CA|-113.8|52.27|100|N|,Redan|GA|US|-84.13|33.75|33|N|,Redding|CA|US|-122.39|40.59|91|N|,Redford|MI|US|-83.3|42.38|49|N|,Redlands|CA|US|-117.18|34.06|71|N|,Redmond|WA|US|-122.12|47.67|60|N|,Redmond|OR|US|-121.17|44.27|28|N|,Redondo Beach|CA|US|-118.39|33.85|68|N|,Redwood City|CA|US|-122.24|37.49|85|N|,Reedley|CA|US|-119.45|36.6|25|N|,Reforma|MX05|MX|-93.15|17.86|26|N|,Regensburg|bavaria|DE|12.1|49.02|151|W|ratisbona;ratisbonne;ratyzbona;regensburgo;rezno,Reggio Calabria|calabria|IT|15.66|38.11|182|W|reggio de calabre;reggio di calabria;regio de calabria,Reggio nell'Emilia|emilia romagna|IT|10.63|44.7|171|W|reggio emilia;reggio d emilie,Regina|SK|CA|-104.62|50.45|226|NW|,Rego Park|NY|US|-73.85|40.73|43|N|,Rehovot|central district|IL|34.81|31.89|149|W|rechovot;rechowot;rejovot,Reims|grand est|FR|4.03|49.27|196|W|remes,Reisterstown|MD|US|-76.83|39.47|25|N|,Renca|santiago metropolitan|CL|-70.71|-33.4|147|W|,Renfrew-Collingwood|BC|CA|-123.04|49.24|51|N|,Rengasdengklok|west java|ID|107.3|-6.16|201|W|,Rennes|brittany|FR|-1.67|48.11|227|W|,Reno|NV|US|-119.81|39.53|264|NW|,Renton|WA|US|-122.22|47.48|100|N|,Repentigny|QC|CA|-73.45|45.74|84|N|,Reseda|CA|US|-118.54|34.2|65|N|,Resende|rio de janeiro|BR|-44.45|-22.47|137|W|,Resistencia|chaco|AR|-58.99|-27.46|290|W|ciudad de resistencia,Reston|VA|US|-77.34|38.97|58|N|,Revere|MA|US|-71.01|42.41|53|N|,Rewa|madhya pradesh|IN|81.29|24.53|235|W|,Rewari|haryana|IN|76.62|28.2|143|W|,Rexburg|ID|US|-111.79|43.83|27|N|,Reynoldsburg|OH|US|-82.81|39.95|37|N|,Reynosa|MX28|MX|-98.28|26.08|589|NW|,Rhawnhurst|PA|US|-75.06|40.06|25|N|,Rialto|CA|US|-117.37|34.11|103|N|,Ribeirao das Neves|minas gerais|BR|-44.09|-19.77|346|W|,Ribeirao Preto|sao paulo|BR|-47.81|-21.18|698|W|ribeirao,Richards Bay|kwazulu natal|ZA|32.04|-28.78|252|W|,Richardson|TX|US|-96.73|32.95|110|N|,Richfield|MN|US|-93.28|44.88|36|N|,Richland|WA|US|-119.28|46.29|54|N|,Richmond|VA|US|-77.46|37.55|226|NW|,Richmond|BC|CA|-123.14|49.17|209|NW|,Richmond|CA|US|-122.35|37.94|109|N|,Richmond|IN|US|-84.89|39.83|35|N|,Richmond|KY|US|-84.29|37.75|33|N|,Richmond Hill|ON|CA|-79.44|43.87|202|NW|,Richmond Hill|NY|US|-73.83|40.7|98|N|,Richmond West|FL|US|-80.43|25.61|35|N|,Ridgecrest|CA|US|-117.67|35.62|28|N|,Ridgewood|NY|US|-73.91|40.7|69|N|,Ridgewood|NJ|US|-74.12|40.98|25|N|,Riga|riga|LV|24.11|56.95|742|W|riika;ryga,Rimini|emilia romagna|IT|12.57|44.06|148|W|,Rimouski|QC|CA|-68.52|48.45|42|N|,Rincon de Romos|MX01|MX|-102.32|22.23|27|N|,Rio Blanco|MX30|MX|-97.16|18.83|40|N|,Rio Branco|acre|BR|-67.81|-9.97|419|W|,Rio Claro|sao paulo|BR|-47.56|-22.41|201|W|,Rio Cuarto|cordoba|AR|-64.35|-33.13|157|W|ciudad de rio cuarto,Rio das Ostras|rio de janeiro|BR|-41.95|-22.53|168|W|,Rio de Janeiro|rio de janeiro|BR|-43.18|-22.91|6747|W|,Rio de Teapa|MX27|MX|-92.9|17.77|26|N|,Rio Grande|rio grande do sul|BR|-52.1|-32.03|198|W|,Rio Grande|MX32|MX|-103.03|23.83|32|N|,Rio Pequeno|sao paulo|BR|-46.76|-23.57|131|W|,Rio Rancho|NM|US|-106.66|35.23|87|N|,Rio Verde|goias|BR|-50.93|-17.8|241|W|,Riobamba|chimborazo province|EC|-78.66|-1.67|264|W|,Riohacha|la guajira department|CO|-72.91|11.54|188|W|rio de la hacha,Rioverde|MX24|MX|-99.99|21.93|53|N|,Rishon LeTsiyyon|central district|IL|34.79|31.97|258|W|rishon leziyyon;rischon lezion;rishon le zion;rishon lezion;rishon letsiyon;rishon lsiyon;rishon le siyon;rishon le ziyon;risjon letsion;riszon le cijjon,Riverside|CA|US|-117.4|33.95|317|NW|,Riverton|UT|US|-111.94|40.52|41|N|,Riverview|FL|US|-82.33|27.87|71|N|,Riviera Beach|FL|US|-80.06|26.78|34|N|,Riviere-des-Prairies-Pointe-aux-Trembles|QC|CA|-73.58|45.64|113|N|,Rivne|rivne oblast|UA|26.24|50.62|243|W|riwne;rowne,Riyadh|riyadh region|SA|46.72|24.69|4205|W|riad;riade;rijad;riyad,Rizhao|shandong|CN|119.53|35.41|661|W|z cao,Roanoke|VA|US|-79.94|37.27|100|N|,Robertsonpet|karnataka|IN|78.28|12.96|162|W|robertson pet,Rochester|NY|US|-77.62|43.15|209|NW|,Rochester|MN|US|-92.47|44.02|112|N|,Rochester|NH|US|-70.98|43.3|30|N|,Rochester Hills|MI|US|-83.15|42.66|73|N|,Rock Forest|QC|CA|-72|45.36|35|N|,Rock Hill|SC|US|-81.03|34.92|71|N|,Rock Island|IL|US|-90.58|41.51|38|N|,Rockford|IL|US|-89.09|42.27|148|NW|,Rocklin|CA|US|-121.24|38.79|61|N|,Rockville|MD|US|-77.15|39.08|66|N|hungerford s tavern;hungerfords;hungerfords tavern;montgomery court house;montgomery courthouse;owen s ordinary;williamsburg;williamsburgh,Rockwall|TX|US|-96.46|32.93|42|N|,Rocky Mount|NC|US|-77.79|35.94|55|N|,Rodriguez|calabarzon|PH|121.2|14.76|134|W|,Rogers|AR|US|-94.12|36.33|63|N|,Rogers Park|IL|US|-87.67|42.01|54|N|,Rohini|delhi|IN|77.07|28.74|860|W|,Rohnert Park|CA|US|-122.7|38.34|42|N|,Rohtak|haryana|IN|76.59|28.89|374|W|,Rome|lazio|IT|12.51|41.89|2318|W|rom;roma;rooma;rzym;rim,Rome|GA|US|-85.16|34.26|36|N|,Rome|NY|US|-75.46|43.21|32|N|roma,Romeoville|IL|US|-88.09|41.65|39|N|,Rondonopolis|mato grosso|BR|-54.64|-16.47|263|W|,Roodepoort|gauteng|ZA|27.87|-26.16|326|W|,Rosario|santa fe|AR|-60.64|-32.95|948|W|,Rosarito|MX02|MX|-117.05|32.36|100|N|rosario;rosarito beach baja,Rosedale|NY|US|-73.74|40.66|25|N|,Rosemead|CA|US|-118.07|34.08|54|N|,Rosemont-La Petite-Patrie|QC|CA|-73.61|45.54|146|NW|,Rosenberg|TX|US|-95.81|29.56|35|N|,Rosetta|beheira|EG|30.42|31.4|301|W|rasyid;resid;roseta;rosette,Roseville|CA|US|-121.29|38.75|130|NW|,Roseville|MI|US|-82.94|42.5|47|N|,Roseville|MN|US|-93.16|45.01|35|N|,Roslindale|MA|US|-71.12|42.29|27|N|,Rostock|mecklenburg vorpommern|DE|12.14|54.09|198|W|,Rostov-on-Don|rostov|RU|39.71|47.22|1130|W|rostov na donu;rostow am don;rostov aan de don;rostov del don;rostov do don;rostov sul don;rostov tren song dong;rostov ved don;rostov pe don;rostov sur le don;rostow nad donem,Roswell|GA|US|-84.36|34.02|94|N|,Roswell|NM|US|-104.52|33.39|48|N|,Rotterdam|south holland|NL|4.48|51.92|868|W|roterdao;roterdam,Rouge|ON|CA|-79.17|43.8|46|N|,Round Lake Beach|IL|US|-88.09|42.37|27|N|,Round Rock|TX|US|-97.68|30.51|115|N|,Rourkela|odisha|IN|84.86|22.22|273|W|,Rowland Heights|CA|US|-117.91|33.98|48|N|,Rowlett|TX|US|-96.56|32.9|60|N|,Roxas City|western visayas|PH|122.75|11.59|185|W|,Roy|UT|US|-112.03|41.16|37|N|,Royal Oak|MI|US|-83.14|42.49|59|N|,Royal Palm Beach|FL|US|-80.23|26.71|37|N|,Rubidoux|CA|US|-117.41|34|34|N|,Rubtsovsk|altai krai|RU|81.21|51.51|161|W|roebtsovsk;roubtsovsk;rubcovsk;rubcowsk;rubzowsk;rubtovsk,Ruda Slaska|silesia|PL|18.86|50.26|146|W|ruda o s,Rudrapur|uttarakhand|IN|79.4|28.98|154|W|,Rufisque|dakar|SN|-17.27|14.72|295|W|,Rufisque est|dakar|SN|-17.27|14.72|221|W|,Rugao|jiangsu|CN|120.58|32.37|257|W|,Rui'an|zhejiang|CN|120.66|27.78|927|W|,Ruiru|kiambu county|KE|36.96|-1.15|490|W|,Ruqi|awdal|SO|43.43|9.97|148|W|,Russeifa|zarqa|JO|36.05|32.02|268|W|ar rusajfa;rusajfa;ruseyfa,Russellville|AR|US|-93.13|35.28|29|N|,Rustenburg|north west|ZA|27.24|-25.67|373|W|rustemburgo,Rutchenkivskyi|donetsk|UA|37.7|47.98|168|W|rutchenkivskyi district;rutchenkivskyi rayon;rutchenkove;kirovskyi;kirovskyi rayon,Rutland|BC|CA|-119.39|49.9|34|N|,Ryazan'|ryazan oblast|RU|39.7|54.63|538|W|rjazan;riazan;rjasan,Rybinsk|yaroslavl oblast|RU|38.84|58.05|216|W|ribinsk,Rybnik|silesia|PL|18.54|50.1|142|W|,Rzeszow|subcarpathia|PL|22|50.04|198|W|resov,'s-Hertogenbosch|north brabant|NL|5.3|51.7|160|W|den bosch;bois le duc;bolduque;boscoducale;hertogenbosch;herzogenbusch,Sa Dec|dong thap|VN|105.76|10.29|214|W|,Saaba|centre|BF|-1.41|12.37|136|W|,Saanich|BC|CA|-123.37|48.55|117|N|,Saarbruecken|saarland|DE|7.01|49.23|182|W|saarbrucken;sarrebruck,Sabadell|catalonia|ES|2.11|41.54|211|W|,Sabah as Salim|mubarak al kabir|KW|48.06|29.26|139|W|sabah al salem,Sabha|sabha district|LY|14.43|27.04|149|W|sebha,Sabinas|MX07|MX|-101.12|27.86|54|N|ciudad sabinas,Sabya|jazan region|SA|42.63|17.15|228|W|,Sabzevar|razavi khorasan|IR|57.68|36.21|243|W|sabzawar;sabzewar;sebzevar,Sacaba|cochabamba|BO|-66.04|-17.4|180|W|,Sacoma|sao paulo|BR|-46.6|-23.63|261|W|,Sacramento|CA|US|-121.49|38.58|524|NW|,Saddiqabad|punjab|PK|70.13|28.31|274|W|,Sadr City|baghdad|IQ|44.46|33.39|1211|W|,Safi|marrakesh safi|MA|-9.24|32.3|336|W|asfi;safim;asafi,Saga|saga|JP|130.3|33.23|233|W|saga shi,Sagamihara|kanagawa|JP|139.24|35.57|720|W|,Saginaw|MI|US|-83.95|43.42|49|N|,Saguenay|QC|CA|-71.07|48.42|148|NW|,Saham|al batinah north|OM|56.89|24.17|140|W|,Saharanpur|uttar pradesh|IN|77.55|29.97|484|W|,Saharsa|bihar|IN|86.6|25.87|156|W|,Sahiwal|punjab|PK|72.33|31.97|538|W|,Sahuarita|AZ|US|-110.96|31.96|25|N|,Sahuayo de Morelos|MX16|MX|-102.72|20.06|64|N|,Sai Mai|bangkok|TH|100.65|13.92|188|W|,Saida|saida|DZ|0.15|34.83|142|W|sa ida,Saidpur|rangpur division|BD|88.89|25.78|199|W|,Saint Charles|MO|US|-90.48|38.78|65|N|st charles,Saint Charles|MD|US|-76.94|38.6|36|N|st charles,Saint Clair Shores|MI|US|-82.89|42.5|59|N|st clair shores;saint clr shores,Saint Cloud|MN|US|-94.16|45.56|65|N|st cloud,Saint Cloud|FL|US|-81.28|28.25|35|N|st cloud,Saint-Constant|QC|CA|-73.57|45.37|27|N|,Saint-Denis|reunion|RE|55.45|-20.88|154|W|saint denis de la reunion;st denis,Saint-Etienne|rhone alpes|FR|4.39|45.43|176|W|st etienne,Saint-Eustache|QC|CA|-73.91|45.56|42|N|,Saint George|UT|US|-113.58|37.1|72|N|st george,Saint-Georges|QC|CA|-70.67|46.11|31|N|,Saint-Hubert|QC|CA|-73.42|45.5|82|N|,Saint-Hyacinthe|QC|CA|-72.96|45.63|50|N|st hyacinthe,Saint-Jean-sur-Richelieu|QC|CA|-73.26|45.31|98|N|,Saint-Jerome|QC|CA|-74|45.78|54|N|,Saint John|NB|CA|-66.06|45.27|71|N|saint jean,Saint Joseph|MO|US|-94.85|39.77|76|N|st joseph,Saint-Laurent|QC|CA|-73.67|45.5|98|N|st laurent,Saint-Leonard|QC|CA|-73.6|45.59|79|N|,Saint-Louis|saint louis|SN|-16.49|16.02|254|W|,Saint-Louis-de-Terrebonne|QC|CA|-73.79|45.7|119|N|,Saint Louis Park|MN|US|-93.35|44.95|45|N|st louis park,Saint-Marc|artibonite|HT|-72.7|19.11|266|W|,Saint-Michel|QC|CA|-73.62|45.57|56|N|,Saint Paul|MN|US|-93.09|44.94|303|NW|st paul,Saint Peters|MO|US|-90.63|38.8|52|N|city of saint peters,Saint Petersburg|st petersburg|RU|30.31|59.94|5351|W|pietari;san petersburgo;st petersburg;petrohrad;saint petersbourg;san pietroburgo;sankt peterburg;sankt petersborg;sankt petersburg;sint petersburg;sao petersburgo;leningrad;leningrado;petrograd;petrogrado,Saint-Quentin-en-Yvelines|ile de france|FR|2.02|48.77|146|W|,Sainte-Foy|QC|CA|-71.29|46.78|111|N|,Sainte-Julie|QC|CA|-73.33|45.58|29|N|,Sainte-Therese|QC|CA|-73.83|45.64|25|N|,Saitama|saitama|JP|139.66|35.91|1324|W|,Sakai|osaka|JP|135.47|34.58|826|W|,Saki|oyo state|NG|3.39|8.67|178|W|,Sakura|chiba|JP|140.23|35.72|173|W|,Salaberry-de-Valleyfield|QC|CA|-74.13|45.25|42|N|,Salalah|dhofar|OM|54.09|17.02|163|W|salala,Salamanca|MX11|MX|-101.2|20.57|160|NW|,Salamanca|madrid|ES|-3.68|40.43|147|W|,Salamanca|castille and leon|ES|-5.66|40.97|144|W|salamanka;salamanque,Salatiga|central java|ID|110.49|-7.33|198|W|,Salavat|bashkortostan republic|RU|55.91|53.38|159|W|salauat;salawat,Sale|rabat sale kenitra|MA|-6.8|34.05|972|W|sala,Sale Al Jadida|rabat sale kenitra|MA|-6.74|34|200|W|,Salem|tamil nadu|IN|78.16|11.65|917|W|selam,Salem|OR|US|-123.04|44.94|175|NW|,Salem|MA|US|-70.9|42.52|42|N|,Salem|NH|US|-71.2|42.79|29|N|,Salem|VA|US|-80.05|37.29|25|N|,Salina|KS|US|-97.61|38.84|47|N|,Salina Cruz|MX20|MX|-95.19|16.18|84|N|,Salinas|CA|US|-121.66|36.68|157|NW|,Salisbury|NC|US|-80.47|35.67|34|N|,Salisbury|MD|US|-75.6|38.36|32|N|,Salt Lake City|UT|US|-111.89|40.76|215|NW|kota salt lake,Salta|salta|AR|-65.42|-24.81|520|W|ciudad de salta,Saltillo|MX07|MX|-100.98|25.43|709|NW|,Saltivka|kharkiv|UA|36.35|50.02|409|W|saltivskyi masyv,Salto|sao paulo|BR|-47.29|-23.2|141|W|,Salvador|bahia|BR|-38.49|-12.98|2711|W|salvador de bahia,Salvatierra|MX11|MX|-100.88|20.22|37|N|,Salzburg|state of salzburg|AT|13.04|47.8|157|W|salcburk;salisburgo;salzbourg;salzburgo,Samalut|minya|EG|30.71|28.31|142|W|,Samambaia|federal district|BR|-48.1|-15.88|218|W|,Samara|samara oblast|RU|50.14|53.21|1163|W|kuibyschew;kuibyshev;kuybyshev,Samarinda|east kalimantan|ID|117.15|-0.49|865|W|kota samarinda,Samarkand|samarqand region|UZ|66.96|39.65|595|W|samarcanda;samarcande;samarkanda;samarqand;semerkant,Samarra'|salah ad din|IQ|43.89|34.2|158|W|,Samba|luanda|AO|13.2|-8.88|364|W|,Sambalpur|odisha|IN|83.98|21.47|189|W|,Sambhal|uttar pradesh|IN|78.57|28.58|196|W|,Sambizanga|luanda|AO|13.28|-8.79|177|W|sambizanha,Sammamish|WA|US|-122.08|47.64|52|N|,Sampit|central kalimantan|ID|112.95|-2.53|166|W|,Samsun|samsun|TR|36.34|41.28|394|W|,Samut Prakan|samut prakan|TH|100.6|13.6|388|W|mueang samut prakan;paknam,San Agustin|MX14|MX|-103.47|20.55|30|N|colonia san agustin,San Andres Cholula|MX21|MX|-98.3|19.05|39|N|,San Andres Tuxtla|MX30|MX|-95.21|18.45|61|N|,San Angelo|TX|US|-100.44|31.46|99|N|,San Antonio|TX|US|-98.49|29.42|1526|NW|,San Bernardino|CA|US|-117.29|34.11|216|NW|,San Bernardino Tlaxcalancingo|MX21|MX|-98.28|19.03|54|N|,San Bernardo|santiago metropolitan|CL|-70.7|-33.59|249|W|,San Blas-Canillejas|madrid|ES|-3.62|40.44|157|W|,San Bruno|CA|US|-122.41|37.63|43|N|,San Buenaventura|MX15|MX|-98.86|19.3|44|N|,San Carlos|CA|US|-122.26|37.51|29|N|,San Clemente|CA|US|-117.61|33.43|65|N|,San Cristobal|tachira|VE|-72.24|7.77|289|W|,San Cristobal|san cristobal|DO|-70.11|18.42|154|W|,San Cristobal de las Casas|MX05|MX|-92.64|16.73|215|NW|san cristobal,San Diego|CA|US|-117.16|32.72|1404|NW|,San Dimas|CA|US|-117.81|34.11|34|N|,San Felipe|yaracuy|VE|-68.74|10.34|206|W|,San Felipe|MX11|MX|-101.22|21.48|28|N|,San Fernando|central luzon|PH|120.68|15.03|251|W|kota san fernando;san fernando city,San Fernando|MX28|MX|-98.15|24.85|29|N|,San Fernando de Apure|apure|VE|-67.47|7.89|229|W|san fernando,San Francisco|CA|US|-122.42|37.77|827|NW|sao francisco,San Francisco Acuautla|MX15|MX|-98.86|19.35|27|N|acuautla,San Francisco del Rincon|MX11|MX|-101.86|21.02|71|N|,San Francisco Tesistan|MX14|MX|-103.48|20.8|62|N|,San Gabriel|CA|US|-118.11|34.1|40|N|sao gabriel,San Isidro|MX15|MX|-98.95|19.34|33|N|,San Jacinto|CA|US|-116.96|33.78|46|N|,San Jeronimo|MX15|MX|-99.59|19.28|26|N|,San Jeronimo Cuatro Vientos|MX15|MX|-98.84|19.29|36|N|,San Jose|CA|US|-121.89|37.34|997|NW|,San Jose|san jose|CR|-84.08|9.93|335|W|,San Jose|mimaropa|PH|121.07|12.35|143|W|,San Jose del Cabo|MX03|MX|-109.7|23.05|136|NW|,San Jose del Castillo|MX14|MX|-103.24|20.51|39|N|,San Jose del Monte|central luzon|PH|121.05|14.81|357|W|kota san jose del monte;san jose del monte city,San Jose Guadalupe Otzacatipan|MX15|MX|-99.59|19.34|31|N|,San Juan|san juan|PR|-66.11|18.47|418|W|,San Juan|national capital region|PH|121.03|14.6|134|W|san juan city,San Juan|TX|US|-98.16|26.19|36|N|,San Juan Capistrano|CA|US|-117.66|33.5|36|N|,San Juan de los Lagos|MX14|MX|-102.33|21.25|48|N|,San Juan de los Morros|guarico|VE|-67.35|9.91|160|W|,San Juan del Rio|MX22|MX|-100|20.39|138|NW|,San Juan Sacatepequez|guatemala|GT|-90.64|14.72|136|W|,San Leandro|CA|US|-122.16|37.72|90|N|,San Lorenzo|central department|PY|-57.51|-25.34|227|W|,San Luis|san luis|AR|-66.32|-33.29|169|W|ciudad de san luis,San Luis|AZ|US|-114.78|32.49|31|N|,San Luis de la Paz|MX11|MX|-100.51|21.3|49|N|,San Luis Obispo|CA|US|-120.66|35.28|47|N|,San Luis Potosi|MX24|MX|-100.97|22.15|722|NW|san luis potosi city,San Luis Rio Colorado|MX26|MX|-114.77|32.46|176|NW|,San Marcos|CA|US|-117.17|33.14|92|N|,San Marcos|TX|US|-97.94|29.88|60|N|,San Martin|piura|PE|-80.67|-5.19|130|W|,San Martin Azcatepec|MX15|MX|-98.97|19.69|35|N|,San Martin Texmelucan de Labastida|MX21|MX|-98.44|19.28|155|NW|san martin texmelucan,San Mateo|calabarzon|PH|121.12|14.7|134|W|,San Mateo|CA|US|-122.33|37.56|103|N|,San Mateo Atenco|MX15|MX|-99.53|19.27|67|N|,San Miguel|san miguel department|SV|-88.18|13.48|247|W|,San Miguel|buenos aires|AR|-58.71|-34.54|168|W|,San Miguel Ajusco|MX09|MX|-99.2|19.22|29|N|,San Miguel de Allende|MX11|MX|-100.74|20.92|174|NW|,San Miguel de Tucuman|tucuman|AR|-65.21|-26.82|548|W|tucuman,San Miguel del Padron|havana|CU|-82.33|23.1|159|W|,San Miguel Topilejo|MX09|MX|-99.14|19.2|34|N|,San Miguelito|panama|PA|-79.47|9.05|321|W|,San Nicolas de los Arroyos|buenos aires|AR|-60.21|-33.33|134|W|san nicolas,San Nicolas de los Garza|MX19|MX|-100.3|25.74|412|NW|san nicolas de los garzas,San Pablo|calabarzon|PH|121.33|14.07|300|W|san pablo city,San Pablo|CA|US|-122.35|37.96|30|N|,San Pablo Autopan|MX15|MX|-99.66|19.36|35|N|,San Pablo de las Salinas|MX15|MX|-99.09|19.67|156|NW|san pablo,San-Pedro|bas sassandra district|CI|-6.64|4.75|390|W|,San Pedro|calabarzon|PH|121.05|14.36|348|W|,San Pedro|CA|US|-118.29|33.74|83|N|san pedro y san pablo,San Pedro|MX07|MX|-102.98|25.76|48|N|san pedro de las colonias,San Pedro de Macoris|san pedro de macoris|DO|-69.31|18.45|217|W|,San Pedro Garza Garcia|MX19|MX|-100.4|25.66|132|NW|garza garcia;san pedro,San Pedro Sula|cortes department|HN|-88.03|15.51|801|W|,San Rafael|CA|US|-122.53|37.97|59|N|sao rafael,San Ramon|CA|US|-121.98|37.78|76|N|,San Salvador|san salvador department|SV|-89.19|13.69|525|W|salvador;san salwador,San Salvador de Jujuy|jujuy|AR|-65.29|-24.19|257|W|,San Salvador Tizatlalli|MX15|MX|-99.59|19.26|61|N|,San Sebastian|basque country|ES|-1.97|43.31|185|W|donostia;la bella easo;saint sebastien;sanse;sao sebastiao,San Sebastian el Grande|MX14|MX|-103.43|20.53|28|N|,San Tan Valley|AZ|US|-111.53|33.19|81|N|,Sanaa|amanat alasimah|YE|44.21|15.35|1937|W|san a;sana;sana a,Sanandaj|kurdistan province|IR|47|35.31|349|W|sanandadsch;sanandadz;sanandij;senendec,Sancaktepe|istanbul|TR|29.23|41|489|W|,Sanctorum|MX21|MX|-98.25|19.1|27|N|,Sandacho|hyogo|JP|135.23|34.88|132|W|,Sandakan|sabah|MY|118.12|5.84|439|W|,Sandusky|OH|US|-82.71|41.45|25|N|,Sandy|UT|US|-111.88|40.59|87|N|sandy city,Sandy Hills|UT|US|-111.85|40.58|89|N|,Sandy Springs|GA|US|-84.38|33.92|105|N|,Sanford|FL|US|-81.27|28.8|58|N|,Sanford|NC|US|-79.18|35.48|29|N|,Sangli|maharashtra|IN|74.56|16.85|601|W|turmeric city,Sanhe|hebei|CN|117.07|39.98|965|W|,Sanhe|chongqing|CN|107.73|29.87|140|W|fengdu xian;fengtuhein,Sanliurfa|sanliurfa|TR|38.79|37.17|449|W|sanli urfa;edesse;edesa;edessa,Sanmenxia|henan|CN|111.19|34.78|669|W|san men sia,Sanming|fujian|CN|117.62|26.25|602|W|san ming;tam minh,Sanshui|guangdong|CN|112.89|23.15|153|W|,Sant Andreu|catalonia|ES|2.19|41.44|142|W|distrito sant andreu,Sant Marti|catalonia|ES|2.2|41.42|235|W|distrito de sant marti,Santa Ana|CA|US|-117.87|33.75|310|NW|,Santa Ana|santa ana department|SV|-89.56|13.99|176|W|,Santa Ana Chiautempan|MX29|MX|-98.19|19.31|48|N|,Santa Anita - Los Ficus|lima region|PE|-76.97|-12.05|184|W|,Santa Barbara|CA|US|-119.7|34.42|91|N|,Santa Barbara d'Oeste|sao paulo|BR|-47.41|-22.75|189|W|,Santa Catarina|MX19|MX|-100.46|25.67|304|NW|ciudad santa catarina,Santa Clara|villa clara province|CU|-79.97|22.41|250|W|,Santa Clara|CA|US|-121.96|37.35|126|N|,Santa Clarita|CA|US|-118.54|34.39|182|NW|,Santa Cruz|CA|US|-122.03|36.97|64|N|,Santa Cruz de la Sierra|santa cruz department|BO|-63.18|-17.79|1831|W|santa cruz;santa cruz da serra,Santa Cruz de Tenerife|canary islands|ES|-16.25|28.47|211|W|tenerife;teneriffa,Santa Cruz do Sul|rio grande do sul|BR|-52.43|-29.72|138|W|,Santa Cruz Xoxocotlan|MX20|MX|-96.74|17.03|67|N|santa cruz;xoxocotlan,Santa Fe|santa fe|AR|-60.71|-31.65|391|W|ciudad de santa fe,Santa Fe|NM|US|-105.94|35.69|87|N|,Santa Isabel|MX02|MX|-115.57|32.63|29|N|,Santa Luzia|minas gerais|BR|-43.85|-19.77|219|W|,Santa Maria|rio grande do sul|BR|-53.81|-29.68|271|W|,Santa Maria|CA|US|-120.44|34.95|105|N|,Santa Maria Chimalhuacan|MX15|MX|-98.95|19.42|70|N|,Santa Marta|magdalena department|CO|-74.19|11.24|499|W|,Santa Monica|CA|US|-118.49|34.02|93|N|,Santa Paula|CA|US|-119.06|34.35|30|N|,Santa Rita|paraiba|BR|-34.98|-7.11|149|W|,Santa Rosa|calabarzon|PH|121.11|14.31|216|W|kota santa rosa;santa rosa city,Santa Rosa|CA|US|-122.71|38.44|178|NW|,Santa Rosa Beach|FL|US|-86.23|30.4|32|N|,Santa Rosalia de Camargo|MX06|MX|-105.17|27.68|40|N|,Santa Teresa|MX15|MX|-99.23|19.84|36|N|,Santa Teresa del Tuy|miranda|VE|-66.66|10.23|278|W|,Santana de Parnaiba|sao paulo|BR|-46.92|-23.44|163|W|,Santander|cantabria|ES|-3.8|43.47|173|W|,Santarem|para|BR|-54.71|-2.44|360|W|,Santee|CA|US|-116.97|32.84|57|N|,Santiago|santiago metropolitan|CL|-70.65|-33.46|4837|W|santiago de chile;santiago del cile;santiago do chile;santiago du chili,Santiago|MX19|MX|-100.15|25.43|36|N|villa de santiago,Santiago de Cuba|santiago de cuba province|CU|-75.82|20.02|555|W|santiago di cuba,Santiago de los Caballeros|santiago province|DO|-70.69|19.45|1200|W|santiago,Santiago de Queretaro|MX22|MX|-100.39|20.59|1594|NW|queretaro city,Santiago de Surco|lima region|PE|-77.01|-12.14|251|W|,Santiago del Estero|santiago del estero|AR|-64.26|-27.8|252|W|,Santiago Papasquiaro|MX10|MX|-105.42|25.04|26|N|,Santiago Teyahualco|MX15|MX|-99.12|19.66|53|N|teyahualco,Santo Andre|sao paulo|BR|-46.54|-23.66|662|W|,Santo Domingo|nacional|DO|-69.89|18.47|2201|W|saint domingue;santo domingo city;ciudad trujillo,Santo Domingo de los Colorados|santo domingo de los tsachilas|EC|-79.18|-0.25|458|W|santo domingo,Santo Domingo Este|santo domingo province|DO|-69.85|18.49|700|W|,Santo Domingo Oeste|santo domingo province|DO|-70|18.5|701|W|,Santo Domingo Tehuantepec|MX20|MX|-95.24|16.32|67|N|,Santol|central luzon|PH|120.57|15.16|298|W|,Santos|sao paulo|BR|-46.33|-23.96|418|W|baixada santista,Sants-Montjuic|catalonia|ES|2.15|41.37|183|W|,Sanya|hainan|CN|109.51|18.25|1031|W|san ja;tam a,Sao Bernardo do Campo|sao paulo|BR|-46.56|-23.69|840|W|,Sao Caetano do Sul|sao paulo|BR|-46.55|-23.62|172|W|,Sao Carlos|sao paulo|BR|-47.89|-22.02|266|W|,Sao Felix do Xingu|para|BR|-51.99|-6.64|132|W|,Sao Joao de Meriti|rio de janeiro|BR|-43.37|-22.8|466|W|,Sao Jose|santa catarina|BR|-48.63|-27.62|295|W|,Sao Jose de Ribamar|maranhao|BR|-44.06|-2.56|259|W|,Sao Jose do Rio Preto|sao paulo|BR|-49.38|-20.82|480|W|rio preto,Sao Jose dos Campos|sao paulo|BR|-45.89|-23.18|727|W|sjcampos;vale paraiba;vale do paraiba,Sao Jose dos Pinhais|parana|BR|-49.21|-25.53|349|W|,Sao Leopoldo|rio grande do sul|BR|-51.15|-29.76|209|W|,Sao Lucas|sao paulo|BR|-46.54|-23.59|138|W|,Sao Luis|maranhao|BR|-44.3|-2.53|917|W|maranham,Sao Mateus|sao paulo|BR|-46.48|-23.61|155|W|,Sao Mateus|espirito santo|BR|-39.86|-18.72|134|W|,Sao Paulo|sao paulo|BR|-46.64|-23.55|12400|W|san paolo;sao paulo capital,Sao Rafael|sao paulo|BR|-46.45|-23.63|148|W|,Sao Vicente|sao paulo|BR|-46.39|-23.96|338|W|,Sapele|delta|NG|5.68|5.89|305|W|,Sapopemba|sao paulo|BR|-46.52|-23.6|266|W|,Sapporo|hokkaido|JP|141.35|43.07|1973|W|sapporo shi;sapporoshi,Sapucaia do Sul|rio grande do sul|BR|-51.15|-29.82|132|W|,Saqqez|kurdistan province|IR|46.27|36.25|165|W|saggiz;saghghez,Sarajevo|federation of b h|BA|18.36|43.85|696|W|sarajewo;saraybosna,Saransk|mordoviya republic|RU|45.17|54.18|318|W|,Sarasota|FL|US|-82.53|27.34|55|N|,Saratoga|CA|US|-122.02|37.26|30|N|,Saratoga Springs|NY|US|-73.78|43.08|27|N|saratoga spgs,Saratoga Springs|UT|US|-111.9|40.35|25|N|,Saratov|saratov oblast|RU|45.99|51.54|844|W|saratow,Sargodha|punjab|PK|72.67|32.09|975|W|,Sarh|moyen chari|TD|18.38|9.15|138|W|,Sari|mazandaran|IR|53.06|36.56|255|W|,Sariwon-si|north hwanghae|KP|125.76|38.51|310|W|sariwon,Sarnia|ON|CA|-82.4|42.98|72|N|,Sarria-Sant Gervasi|catalonia|ES|2.14|41.4|147|W|,Sasaram|bihar|IN|84.02|24.95|147|W|,Sasebo|nagasaki|JP|129.73|33.17|243|W|,Saskatoon|SK|CA|-106.67|52.13|266|NW|,Sasolburg|free state|ZA|27.82|-26.81|135|W|,Satna|madhya pradesh|IN|80.83|24.58|282|W|,Saugor|madhya pradesh|IN|78.74|23.84|274|W|,Saugus|MA|US|-71.01|42.46|26|N|,Sault Ste. Marie|ON|CA|-84.33|46.52|72|N|sault sainte marie,Saurimo|lunda sul|AO|20.39|-9.66|393|W|,Savage|MN|US|-93.34|44.78|30|N|,Savannah|GA|US|-81.1|32.08|147|NW|,Savar|dhaka division|BD|90.25|23.85|286|W|sabhar;savar upazila,Saveh|markazi|IR|50.36|35.02|220|W|,Sawangan|west java|ID|106.77|-6.4|197|W|,Sawtelle|CA|US|-118.45|34.04|39|N|,Sayama|saitama|JP|139.41|35.85|160|W|,Sayreville|NJ|US|-74.36|40.46|44|N|,Sayreville Junction|NJ|US|-74.33|40.47|42|N|,Sayula|MX14|MX|-103.6|19.88|26|N|,Schaerbeek|brussels capital|BE|4.38|50.87|132|W|schaarbeek;schaerbeek schaarbeek,Schaumburg|IL|US|-88.08|42.03|74|N|,Schenectady|NY|US|-73.94|42.81|65|N|,Schererville|IN|US|-87.45|41.48|28|N|,Schertz|TX|US|-98.27|29.55|43|N|,Scottsdale|AZ|US|-111.9|33.51|236|NW|,Scranton|PA|US|-75.66|41.41|77|N|,Seaside|CA|US|-121.85|36.61|33|N|,SeaTac|WA|US|-122.29|47.45|28|N|,Seattle|WA|US|-122.33|47.61|780|NW|,Sector 1|bucharest|RO|26.05|44.49|225|W|,Sector 2|bucharest|RO|26.13|44.45|290|W|,Sector 3|bucharest|RO|26.17|44.42|385|W|,Sector 4|bucharest|RO|26.12|44.38|287|W|,Sector 5|bucharest|RO|26.07|44.39|271|W|,Sector 6|bucharest|RO|26.02|44.44|367|W|,Secunderabad|telangana|IN|78.54|17.5|204|W|,Security-Widefield|CO|US|-104.71|38.75|32|N|,Seeb|muscat|OM|58.19|23.67|470|W|as sib;sib,Segou|segou|ML|-6.26|13.44|205|W|segu,Seguin|TX|US|-97.96|29.57|27|N|,Sejong|sejong si|KR|127.29|36.59|394|W|sedzong;yeongi,Sekondi|western|GH|-1.71|4.93|285|W|,Sekondi-Takoradi|western|GH|-1.76|4.93|138|W|sekondi,Selayang Baru Utara|selangor|MY|101.67|3.25|542|W|,Semarang|central java|ID|110.42|-6.99|1694|W|kota semarang,Semey|abai region|KZ|80.25|50.42|292|W|semei;semej;alash kala;semipalatinsk,Senador Canedo|goias|BR|-49.09|-16.71|175|W|,Sendai|miyagi|JP|140.87|38.27|1096|W|,Sengkang New Town||SG|103.89|1.39|267|W|sengkang,Sennar|sennar|SD|33.57|13.57|130|W|sannar;sinnar,Seogwipo|jeju do|KR|126.56|33.25|178|W|,Seongnam-si|gyeonggi do|KR|127.14|37.44|914|W|seongnam,Seoul|seoul|KR|126.98|37.57|10349|W|seoel;seoul si;seul;soul;hanyang,Sepang|selangor|MY|101.75|2.69|212|W|,Sept-Iles|QC|CA|-66.38|50.2|28|N|,Serang|banten|ID|106.15|-6.12|735|W|kabupaten serang,Serekunda|banjul|GM|-16.68|13.44|340|W|serrekunda,Seremban|negeri sembilan|MY|101.94|2.73|372|W|,Seri Kembangan|selangor|MY|101.72|3.03|130|W|,Serilingampalle|telangana|IN|78.3|17.49|150|W|,Serra|espirito santo|BR|-40.31|-20.13|520|W|,Setagaya|tokyo|JP|139.65|35.64|940|W|setagaya city,Setapak|selangor|MY|101.73|3.21|353|W|,Sete Lagoas|minas gerais|BR|-44.25|-19.47|238|W|,Setia Alam|selangor|MY|101.46|3.1|150|W|,Setif|setif|DZ|5.41|36.19|252|W|sathif;satif,Settat|casablanca settat|MA|-7.62|33|155|W|sattat,Sevastopol|sevastopol city|UA|33.52|44.61|547|W|akyar;sebastopol;sebastopoli;sewastopol;sivastopol,Severn|MD|US|-76.7|39.14|44|N|,Severna Park|MD|US|-76.55|39.07|37|N|,Severnyy|moscow|RU|37.55|55.94|200|W|,Severodvinsk|arkhangelskaya|RU|39.83|64.56|194|W|sewerodwinsk;siewierodwinsk,Sevilla|andalusia|ES|-5.97|37.38|686|W|seville;sevilha;sevilia;sewilla;siviglia,Sewell|NJ|US|-75.14|39.77|37|N|,Sfax|sfax governorate|TN|10.76|34.74|280|W|safakes;safakis,Sha Tin|sha tin|HK|114.18|22.38|495|W|shatin,Shagamu|ogun state|NG|3.65|6.85|214|W|sagamu,Shah Alam|selangor|MY|101.53|3.09|740|W|,Shahin Shahr|isfahan|IR|51.55|32.86|173|W|,Shahjanpur|uttar pradesh|IN|79.91|27.88|320|W|shahjahanpur,Shahkot|punjab|PK|73.49|31.57|244|W|,Shahreza|isfahan|IR|51.86|32.01|134|W|,Shahriar|tehran|IR|51.06|35.66|309|W|,Shahrisabz|qashqadaryo|UZ|66.83|39.06|142|W|chakhrisabz;sachrisabz;sjachrisabz;sehr i sebz;sachrizabz,Shahrud|semnan|IR|54.98|36.42|165|W|emamshahr,Shahuwadi|maharashtra|IN|73.95|16.91|180|W|,Shaker Heights|OH|US|-81.54|41.47|27|N|,Shakhty|rostov|RU|40.22|47.72|221|W|chakhty;schachty;shajty;sjachty;sjakhty;szachty;sahti;sachty;sahty,Shakopee|MN|US|-93.53|44.8|39|N|,Sham Shui Po|sham shui po district|HK|114.16|22.33|431|W|,Shanghai|shanghai|CN|121.46|31.22|24874|W|schanghai;shangai;sjanghai;szanghaj;xangai;sangay;sanghay;sanghaj,Shangluo|shaanxi|CN|109.93|33.87|531|W|,Shangqiu|henan|CN|115.66|34.41|1859|W|,Shangrao|jiangxi|CN|117.94|28.45|1116|W|sang zao,Shangri-La|yunnan|CN|99.71|27.83|186|W|,Shangyu|zhejiang|CN|120.87|30.02|770|W|,Shangzhi|heilongjiang|CN|128|45.21|131|W|,Shanhaiguan|hebei|CN|119.75|40|140|W|,Shantipur|west bengal|IN|88.43|23.25|149|W|,Shantou|guangdong|CN|116.68|23.35|3838|W|san tchou,Shanwei|guangdong|CN|115.35|22.78|491|W|san vi;san wej,Shaoguan|guangdong|CN|113.58|24.8|1028|W|sao kuan,Shaoxing|zhejiang|CN|120.58|30|2300|W|sao sing,Shaoyang|hunan|CN|111.46|27.24|753|W|sao jang,Sharjah|sharjah|AE|55.41|25.33|1800|W|sharjah city;charjah;sarja;schardscha;sharja;szardza;sarika;sardza,Shashamane|oromiya|ET|38.6|7.2|208|W|shashemene,Shawinigan|QC|CA|-72.75|46.57|38|N|,Shawnee|KS|US|-94.72|39.04|65|N|,Shawnee|OK|US|-96.93|35.33|31|N|,Sheboygan|WI|US|-87.71|43.75|48|N|,Sheepshead Bay|NY|US|-73.94|40.59|122|N|,Sheffield|england|GB|-1.47|53.38|556|W|,Shekhupura|punjab|PK|73.99|31.71|591|W|sekhupura,Shelby|MI|US|-83.03|42.67|74|N|,Shelton|CT|US|-73.09|41.32|41|N|,Shengavit|yerevan|AM|44.48|40.16|140|W|,Shenglilu|chongqing|CN|105.88|29.35|134|W|,Shenyang|liaoning|CN|123.43|41.79|7050|W|sen jang,Shenzhen|guangdong|CN|114.07|22.55|17494|W|sen cen,Sherbrooke|QC|CA|-71.9|45.4|129|N|,Sherman|TX|US|-96.61|33.64|40|N|,Sherman Oaks|CA|US|-118.45|34.15|52|N|,Sherwood|AR|US|-92.22|34.82|30|N|,Sherwood Park|AB|CA|-113.32|53.52|70|N|,Shevchenkivskyi|kyiv city|UA|30.47|50.46|220|W|,Shevchenko|poltava|UA|34.54|49.56|147|W|shevchenkivskyi rayon,Shibganj|rajshahi division|BD|89.32|25|378|W|,Shibin al Kawm|monufia|EG|31.01|30.55|267|W|,Shibuya|tokyo|JP|139.71|35.66|230|W|shibuya city,Shihezi|xinjiang|CN|86.04|44.3|572|W|,Shijiazhuang|hebei|CN|114.48|38.04|3938|W|s tia cuang,Shijie|guangdong|CN|113.79|23.1|246|W|,Shikarpur|sindh|PK|68.64|27.96|204|W|,Shillong|meghalaya|IN|91.88|25.57|143|W|,Shimla|himachal pradesh|IN|77.17|31.1|173|W|simla,Shimonoseki|yamaguchi|JP|130.94|33.96|265|W|simonoseki,Shimotoda|saitama|JP|139.69|35.81|140|W|,Shinagawa|ehime|JP|133.01|33.64|422|W|shinagawa city,Shinjuku|tokyo|JP|139.71|35.69|349|W|,Shinyanga|shinyanga|TZ|33.42|-3.66|139|W|,Shiqi|guangdong|CN|113.39|22.52|342|W|,Shiqiao|guangdong|CN|113.36|22.95|135|W|,Shiraz|fars|IR|52.53|29.61|1249|W|schiras;chiraz;sziraz;xiraz;siraz,Shirley|NY|US|-72.87|40.8|27|N|,Shivaji Nagar|maharashtra|IN|73.85|18.53|1000|W|,Shivamogga|karnataka|IN|75.57|13.93|322|W|shimoga,Shivpuri|madhya pradesh|IN|77.66|25.42|179|W|,Shiyan|hubei|CN|110.78|32.65|3460|W|s jen,Shizuishan|ningxia|CN|106.39|38.98|739|W|,Shizuoka|shizuoka|JP|138.38|34.98|693|W|sizuoka,Sholapur|maharashtra|IN|75.91|17.67|997|W|solapur,Shomolu|lagos|NG|3.37|6.54|154|W|,Shoreline|WA|US|-122.34|47.76|55|N|,Shoreview|MN|US|-93.15|45.08|26|N|,Shouguang|shandong|CN|118.74|36.88|473|W|,Shreveport|LA|US|-93.75|32.53|187|NW|,Shrewsbury|MA|US|-71.71|42.3|33|N|,Shrirampur|west bengal|IN|88.34|22.75|226|W|serampore,Shuangcheng|heilongjiang|CN|126.31|45.38|130|W|,Shuangyashan|heilongjiang|CN|131.13|46.68|600|W|song ap son;suang ja san,Shubra al Khaymah|qalyubia|EG|31.25|30.13|1240|W|,Shuizhai|guangdong|CN|115.76|23.93|140|W|,Shujaabad|punjab|PK|71.29|29.88|151|W|,Shulin|taipei|TW|121.42|24.99|180|W|shulin district;sulin,Shunan|yamaguchi|JP|131.83|34.08|149|W|,Shuozhou|shanxi|CN|112.42|39.32|433|W|,Shyamnagar|west bengal|IN|88.37|22.83|441|W|,Shymkent|shymkent|KZ|69.6|42.31|1200|W|chymkent;schymkent;sjymkent;szymkent;tsjimkent;cimkent;simkent;symkent,Si Racha|chon buri|TH|100.93|13.17|178|W|,Sialkot|punjab|PK|74.53|32.49|911|W|sijalkot,Sibiu|sibiu county|RO|24.15|45.8|134|W|hermannstadt;sybin;sibin,Sibu|sarawak|MY|111.82|2.3|198|W|,Sicklerville|NJ|US|-74.97|39.72|42|N|,Sidi Bel Abbes|sidi bel abbes|DZ|-0.63|35.19|210|W|sidi belabbas;sidi bilabbas;sidi bu l abbas,Sidoarjo|east java|ID|112.72|-7.45|139|W|,Sidon|south governorate|LB|35.37|33.56|163|W|saida;sayda;sidone;sydon,Siem Reap|siem reap|KH|103.86|13.36|139|W|ciudad de siem riep;khett siem reab;siem reab,Sierra Vista|AZ|US|-110.3|31.55|43|N|,Siguiri|kankan region|GN|-9.17|11.42|148|W|,Sikar|rajasthan|IN|75.14|27.61|244|W|,Sikasso|sikasso|ML|-5.67|11.32|349|W|,Silao de la Victoria|MX11|MX|-101.43|20.94|74|N|silao,Silchar|assam|IN|92.8|24.83|178|W|,Silifke|mersin|TR|33.93|36.38|132|W|,Siliguri|west bengal|IN|88.43|26.71|515|W|shiliguri,Silver Lake|CA|US|-118.27|34.09|32|N|,Silver Spring|MD|US|-77.03|38.99|71|N|,Simele|duhok|IQ|42.85|36.86|152|W|,Simferopol|crimea|UA|34.11|44.96|336|W|simferopoli;akmescit;sinferopoli;symferopol,Simi Valley|CA|US|-118.78|34.27|126|N|,Sincelejo|sucre department|CO|-75.39|9.3|277|W|,Sinch'on-up|south hwanghae|KP|125.48|38.35|141|W|,Sinfra|zanzan district|CI|-5.91|6.62|245|W|,Singa|sennar|SD|33.93|13.15|250|W|sindscha;sindza,Singapore||SG|103.85|1.29|5638|W|singapour;singapur;singapura;danmaxi;temasek,Singaraja|bali|ID|115.09|-8.11|133|W|,Singida|singida|TZ|34.74|-4.82|232|W|,Singkawang|west kalimantan|ID|108.98|0.91|253|W|,Singosari|east java|ID|112.67|-7.89|182|W|,Singrauli|madhya pradesh|IN|82.68|24.2|220|W|,Sinjhoro|sindh|PK|68.81|26.03|354|W|,Sinnuris|faiyum|EG|30.87|29.41|133|W|,Sinop|mato grosso|BR|-55.5|-11.86|223|W|,Sinp'o|south hamgyong|KP|128.19|40.04|152|W|,Sinuiju|p yongan bukto|KP|124.4|40.1|288|W|,Sioux City|IA|US|-96.4|42.5|82|N|kota sioux,Sioux Falls|SD|US|-96.73|43.54|171|NW|,Siping|jilin|CN|124.38|43.16|555|W|s pching;ssupingkai,Sirjan|kerman|IR|55.68|29.45|199|W|sircan;sirdschan;sirdzan,Sirsa|haryana|IN|75.03|29.53|182|W|,Sisli|istanbul|TR|28.99|41.06|314|W|,Sitapur|uttar pradesh|IN|80.68|27.56|164|W|,Sitiawan|perak|MY|100.7|4.22|156|W|,Sittwe|rakhine|MM|92.9|20.15|177|W|akyab,Situbondo|east java|ID|114.01|-7.71|685|W|,Sivakasi|tamil nadu|IN|77.8|9.45|234|W|,Sivas|sivas|TR|37.02|39.75|264|W|,Siverek|sanliurfa|TR|39.32|37.76|175|W|,Siwan|bihar|IN|84.36|26.22|135|W|,Skardu|gilgit baltistan|PK|75.63|35.3|260|W|,Skikda|skikda|DZ|6.91|36.88|182|W|sukaikida;sukajkida,Skokie|IL|US|-87.73|42.03|64|N|,Skopje|grad skopje|MK|21.43|42|474|W|escopia;uskup,Skudai|johor|MY|103.66|1.54|159|W|,Slidell|LA|US|-89.78|30.28|27|N|,Slough|england|GB|-0.6|51.51|164|W|,Smithtown|NY|US|-73.2|40.86|26|N|,Smolensk|smolensk oblast|RU|32.05|54.78|330|W|,Smyrna|GA|US|-84.51|33.88|56|N|,Smyrna|TN|US|-86.52|35.98|46|N|,Snowdon|QC|CA|-73.63|45.49|32|N|,Soacha|cundinamarca|CO|-74.22|4.58|655|W|,Sobral|ceara|BR|-40.35|-3.69|216|W|,Soc Trang|can tho city|VN|105.97|9.6|221|W|,Sochi|krasnodar krai|RU|39.72|43.6|327|W|sotsji;soci;soczi;sotchi;sotji;sotschi;sotsi,Socorro|TX|US|-106.3|31.65|33|N|,Socorro Mission Number 1 Colonia|TX|US|-106.29|31.64|28|N|,Sodo|south ethiopia regional state|ET|37.76|6.86|204|W|,Sofia|sofia capital|BG|23.32|42.7|1152|W|sofie;sofya,Sohag|sohag|EG|31.69|26.56|266|W|sauhadz;sevhac,Soka|saitama|JP|139.8|35.84|249|W|,Sokoto|sokoto|NG|5.24|13.06|1040|W|,Soledad|atlantico|CO|-74.76|10.92|342|W|,Soledad|CA|US|-121.33|36.42|25|N|solebad,Soledad de Graciano Sanchez|MX24|MX|-100.94|22.19|332|NW|,Solingen|north rhine westphalia|DE|7.08|51.17|164|W|,Sollentuna|stockholm|SE|17.95|59.43|139|W|,Solwezi|north western|ZM|26.39|-12.17|301|W|solwesi,Somerset West|western cape|ZA|18.82|-34.08|225|W|somerset wes,Somerton|PA|US|-75.01|40.12|33|N|,Somerville|MA|US|-71.1|42.39|80|N|,Son Tay|hanoi|VN|105.51|21.14|230|W|,Sonargaon|dhaka division|BD|90.62|23.65|130|W|,Songcheng|fujian|CN|120|26.88|165|W|,Songea|ruvuma|TZ|35.65|-10.68|286|W|,Songjiang|shanghai|CN|121.22|31.03|1973|W|,Songnim-ni|north hwanghae|KP|125.64|38.76|152|W|,Sonipat|haryana|IN|77.02|28.99|289|W|,Sorel-Tracy|QC|CA|-73.11|46.04|41|N|sorel,Sorocaba|sao paulo|BR|-47.46|-23.5|762|W|,Sorong|southwest papua|ID|131.26|-0.88|219|W|kota sorong,Sorsogon|bicol region|PH|123.99|12.97|187|W|,Soshanguve|gauteng|ZA|28.1|-25.47|872|W|,Sosnowiec|silesia|PL|19.1|50.29|227|W|sosnovec,Soubre|bas sassandra district|CI|-6.59|5.78|131|W|,Souk Ahras|souk ahras|DZ|7.95|36.29|153|W|souq ahras;suk aharas;suk ahras,Sousse|sousse governorate|TN|10.64|35.83|221|W|susa,South Bel Air|MD|US|-76.34|39.53|48|N|,South Bend|IN|US|-86.25|41.68|101|N|,South Boston|MA|US|-71.05|42.33|571|NW|,South Chicago|IL|US|-87.55|41.74|28|N|guney chicago,South Dublin|leinster|IE|-6.34|53.29|301|W|comte de dublin sud;condado de dublin sur;condado de south dublin;contea di south dublin;dublin poludniowy;dublin south;jizni dublin,South Fulton|GA|US|-84.67|33.59|107|N|,South Gate|CA|US|-118.21|33.95|96|N|,South Gate|MD|US|-76.63|39.13|29|N|,South Hill|WA|US|-122.27|47.14|52|N|,South Jordan|UT|US|-111.93|40.56|66|N|,South Jordan Heights|UT|US|-111.95|40.56|37|N|,South Kingstown|RI|US|-71.52|41.45|30|N|,South Laurel|MD|US|-76.85|39.07|26|N|,South Lawndale|IL|US|-87.71|41.84|73|N|,South Miami Heights|FL|US|-80.38|25.6|36|N|,South Ozone Park|NY|US|-73.82|40.67|75|N|,South Pasadena|CA|US|-118.15|34.12|26|N|,South Peabody|MA|US|-70.95|42.51|50|N|,South Portland|ME|US|-70.24|43.64|25|N|,South Riverdale|ON|CA|-79.34|43.65|27|N|,South San Francisco|CA|US|-122.41|37.65|67|N|,South Shore|IL|US|-87.58|41.76|51|N|,South Suffolk|VA|US|-76.59|36.72|80|N|,South Surrey|BC|CA|-122.79|49.05|77|N|,South Tangerang|banten|ID|106.72|-6.29|1429|W|tangerang selatan,South Valley|NM|US|-106.68|35.01|40|N|,South Vineland|NJ|US|-75.03|39.45|58|N|,South Whittier|CA|US|-118.04|33.95|57|N|,Southampton|england|GB|-1.4|50.9|269|W|,Southaven|MS|US|-90.01|34.99|52|N|southhaven,Southend-on-Sea|england|GB|0.71|51.54|295|W|,Southfield|MI|US|-83.22|42.47|73|N|,Southgate|MI|US|-83.19|42.21|29|N|,Southglenn|CO|US|-104.95|39.59|42|N|,Southington|CT|US|-72.88|41.6|43|N|,Southlake|TX|US|-97.13|32.94|29|N|,Soweto|gauteng|ZA|27.86|-26.27|1695|W|,Soyapango|san salvador department|SV|-89.14|13.71|329|W|,Soyo|zaire|AO|12.37|-6.13|221|W|,Spanaway|WA|US|-122.43|47.1|27|N|,Spanish Fork|UT|US|-111.65|40.11|37|N|,Spanish Town|saint catherine parish|JM|-76.96|17.99|145|W|,Sparks|NV|US|-119.75|39.53|96|N|,Spartanburg|SC|US|-81.93|34.95|37|N|,Split|split dalmatia|HR|16.44|43.51|149|W|spalato,Spokane|WA|US|-117.43|47.66|229|NW|,Spokane Valley|WA|US|-117.24|47.67|94|N|,Spring|TX|US|-95.42|30.08|54|N|,Spring Hill|FL|US|-82.53|28.48|98|N|,Spring Hill|TN|US|-86.93|35.75|36|N|,Spring Valley|NV|US|-115.25|36.11|178|NW|,Spring Valley|NY|US|-74.04|41.11|32|N|,Spring Valley|CA|US|-117|32.74|28|N|,Springdale|AR|US|-94.13|36.19|77|N|,Springfield|MO|US|-93.3|37.22|170|NW|,Springfield|MA|US|-72.59|42.1|154|NW|,Springfield|IL|US|-89.64|39.8|114|N|,Springfield|OR|US|-123.02|44.05|60|N|,Springfield|OH|US|-83.81|39.92|59|N|,Springfield|VA|US|-77.19|38.79|30|N|,Springfield Gardens|NY|US|-73.76|40.66|30|N|,Springs|gauteng|ZA|28.4|-26.25|186|W|,Springville|UT|US|-111.61|40.17|32|N|,Spruce Grove|AB|CA|-113.92|53.53|38|N|,Sri Ganganagar|rajasthan|IN|73.87|29.92|237|W|,Srikakulam|andhra pradesh|IN|83.9|18.3|137|W|,Srinagar|jammu and kashmir|IN|74.81|34.09|1206|W|,St. Albert|AB|CA|-113.64|53.63|57|N|saint albert,St. Catharines|ON|CA|-79.24|43.17|136|NW|sainte catharine,St. Charles|MD|US|-76.92|38.61|33|N|,St. Charles|IL|US|-88.31|41.91|32|N|,St Helens|england|GB|-2.73|53.45|183|W|,St. James-Assiniboia East|MB|CA|-97.23|49.89|27|N|,St. John's|NL|CA|-52.71|47.56|110|N|saint john s;saint jean de terre neuve;saint jean;san juan de terranova;st johns,St. Johns|FL|US|-81.55|30.08|40|N|,St. Louis|MO|US|-90.2|38.63|279|NW|saint louis;san luis,St. Petersburg|FL|US|-82.68|27.77|257|NW|saint pete;saint petersburg,St. Thomas|ON|CA|-81.18|42.77|38|N|saint thomas,Stamford|CT|US|-73.54|41.05|128|N|,Stanton|CA|US|-117.99|33.8|38|N|,Starkville|MS|US|-88.82|33.45|25|N|,Staryy Oskol|belgorod oblast|RU|37.85|51.3|226|W|stary oskol;staryi oskol,State College|PA|US|-77.86|40.79|42|N|,Staten Island|NY|US|-74.14|40.56|468|NW|borough of staten island,Statesboro|GA|US|-81.78|32.45|30|N|,Statesville|NC|US|-80.89|35.78|26|N|,Stavanger|rogaland|NO|5.73|58.97|151|W|,Stavropol|stavropol kray|RU|41.96|45.03|433|W|stawropol;stauropoli,Sterling|VA|US|-77.43|39.01|27|N|,Sterling Heights|MI|US|-83.03|42.58|132|NW|,Sterlitamak|bashkortostan republic|RU|55.95|53.64|267|W|starletamaq,Stevens Point|WI|US|-89.57|44.52|26|N|,Steveston|BC|CA|-123.18|49.13|25|N|,Stillwater|OK|US|-97.06|36.12|48|N|,Stittsville|ON|CA|-75.92|45.25|40|N|,Stockbridge|GA|US|-84.23|33.54|28|N|,Stockholm|stockholm|SE|18.07|59.33|1515|W|estocolmo;stoccolma;stokolm;sztokholm;tukholma,Stockport|england|GB|-2.16|53.41|139|W|,Stockton|CA|US|-121.29|37.96|305|NW|,Stoke-on-Trent|england|GB|-2.19|53|258|W|,Stonecrest|GA|US|-84.13|33.71|50|N|,Stonegate-Queensway|ON|CA|-79.5|43.64|25|N|,Stoney Creek|ON|CA|-79.77|43.22|76|N|,Stouffville|ON|CA|-79.25|43.97|36|N|,Stoughton|MA|US|-71.1|42.13|26|N|,Stow|OH|US|-81.44|41.16|34|N|,Strasbourg|grand est|FR|7.75|48.58|274|W|estrasburgo;straatsburg;strasburg;strasburgo;strazburg;strassburg;strasburk,Stratford|CT|US|-73.13|41.18|51|N|,Stratford|ON|CA|-80.95|43.37|31|N|,Strawberry Hill|BC|CA|-122.88|49.13|41|N|,Streamwood|IL|US|-88.18|42.03|40|N|,Strogino|moscow|RU|37.41|55.82|152|W|,Strongsville|OH|US|-81.84|41.31|44|N|,Studio City|CA|US|-118.4|34.15|34|N|,Stuttgart|baden wurttemberg|DE|9.18|48.78|612|W|estugarda;stoccarda,Subang|west java|ID|107.76|-6.57|137|W|,Subang Jaya|selangor|MY|101.58|3.04|708|W|,Sucre|chuquisaca department|BO|-65.26|-19.03|224|W|,Suez|suez|EG|32.53|29.97|699|W|sues;suveys,Suffolk|VA|US|-76.58|36.73|88|N|,Sugar Land|TX|US|-95.63|29.62|88|N|,Suginami|ibaraki|JP|140.28|36.2|588|W|suginami city,Suicheng|jiangsu|CN|117.93|33.9|256|W|,Suihua|heilongjiang|CN|126.97|46.65|252|W|suej chua;tuy hoa,Suining|sichuan|CN|105.57|30.51|656|W|suej ning,Suisun|CA|US|-122.04|38.24|28|N|,Suita|osaka|JP|135.52|34.76|385|W|,Suitland|MD|US|-76.92|38.85|25|N|,Suitland-Silver Hill|MD|US|-76.93|38.85|33|N|silver hill,Suizhou|hubei|CN|113.36|31.71|618|W|suej cou;tuy chau,Sujangarh|rajasthan|IN|74.47|27.7|183|W|,Sujiatun|liaoning|CN|123.34|41.66|148|W|,Sukabumi|west java|ID|106.93|-6.92|365|W|kota sukabumi,Sukkur|sindh|PK|68.86|27.7|563|W|,Sukrah|ariana governorate|TN|10.25|36.88|159|W|,Sulaymaniyah|sulaymaniyah|IQ|45.43|35.56|878|W|as sulajmanijja;slemani;solimania;souleimaniye;sulaimaniyya;sulaymaniyya;suleimania;suleimaniya;sulejmanie;suleymaniye,Suleja|niger state|NG|7.18|9.18|162|W|,Sullana|piura|PE|-80.69|-4.9|160|W|,Sultan Pur Majra|delhi|IN|77.08|28.69|181|W|,Sultanah|medina region|SA|39.59|24.49|946|W|,Sultanbeyli|istanbul|TR|29.27|40.96|358|W|,Sultangazi|istanbul|TR|28.87|41.11|436|W|,Sumare|sao paulo|BR|-47.27|-22.82|279|W|,Sumayl|duhok|IQ|42.85|36.86|152|W|,Sumbawanga|rukwa|TZ|31.62|-7.97|303|W|,Sumbe|kwanza sul|AO|13.84|-11.21|205|W|,Sumedang|west java|ID|107.92|-6.86|200|W|,Sumgayit|sumqayit|AZ|49.67|40.59|427|W|sumgait;sumgjajet;sumqayit,Sumida|tokyo|JP|139.82|35.73|287|W|sumida city,Summerville|SC|US|-80.18|33.02|48|N|,Sumter|SC|US|-80.34|33.92|40|N|,Sumy|sumy|UA|34.8|50.92|256|W|soemy;soumy;sumi,Sun City|AZ|US|-112.27|33.6|37|N|,Sun Prairie|WI|US|-89.21|43.18|32|N|,Sunch'on|south pyongan|KP|125.93|39.43|437|W|,Suncheon|jeollanam do|KR|127.49|34.95|276|W|sunch on,Sunderland|england|GB|-1.38|54.9|170|W|,Sungai Buloh|selangor|MY|101.56|3.21|222|W|,Sungai Petani|kedah|MY|100.49|5.65|544|W|,Sunggal|north sumatra|ID|98.62|3.58|157|W|,Sunnyside|NY|US|-73.94|40.74|49|N|,Sunnyvale|CA|US|-122.04|37.37|155|NW|,Sunrise|FL|US|-80.11|26.13|84|N|,Sunrise Manor|NV|US|-115.07|36.21|189|NW|,Sunset|BC|CA|-123.1|49.22|36|N|,Sunset Park|NY|US|-74.01|40.65|126|N|,Sunshine Coast|queensland|AU|153.08|-26.66|398|W|costa de sunshine;costa do sunshine;cote du soleil,Superior|WI|US|-92.1|46.72|26|N|,Suqian|jiangsu|CN|118.3|33.95|1437|W|,Surabaya|east java|ID|112.75|-7.25|3018|W|kota surabaya;soerabaja;surabaia;surabaja,Surakarta|central java|ID|110.83|-7.56|526|W|kota surakarta,Surat|gujarat|IN|72.83|21.2|4591|W|surate,Surat Thani|surat thani|TH|99.33|9.14|132|W|,Surendranagar|gujarat|IN|71.65|22.73|179|W|,Surgut|khanty mansia|RU|73.42|61.26|300|W|soergoet;sourgout,Surprise|AZ|US|-112.33|33.63|143|NW|,Surrey|BC|CA|-122.83|49.11|568|NW|,Surrey City Centre|BC|CA|-122.85|49.19|33|N|,Surulere|lagos|NG|3.36|6.5|191|W|,Sutton|england|GB|-0.2|51.35|187|W|london borough of sutton,Suwaylih|balqa|JO|35.84|32.02|151|W|,Suwon|gyeonggi do|KR|127.01|37.29|1234|W|suwon si,Suzano|sao paulo|BR|-46.31|-23.54|320|W|,Suzhou|jiangsu|CN|120.6|31.3|6715|W|su cou;to chau,Suzhou|anhui|CN|116.98|33.64|1647|W|,Suzuka|mie|JP|136.58|34.88|195|W|,Swansea|wales|GB|-3.94|51.62|300|W|,Swindon|england|GB|-1.78|51.56|201|W|,Sydney|new south wales|AU|151.21|-33.87|5638|W|sidney;syd;sydney city,Sydney|NS|CA|-60.18|46.14|105|N|,Sykhiv|lviv|UA|24.06|49.79|151|W|,Syktyvkar|komi|RU|50.82|61.66|245|W|syktywkar;siktivkar,Sylhet|sylhet division|BD|91.87|24.9|237|W|srihotto,Sylmar|CA|US|-118.45|34.31|79|N|,Syracuse|NY|US|-76.15|43.05|144|NW|siracusa,Syracuse|UT|US|-112.06|41.09|27|N|,Syzran|samara oblast|RU|48.47|53.16|189|W|sysran,Szczecin|west pomerania|PL|14.55|53.43|395|W|stettin;estetino;stettino;stetin,Szeged|csongrad|HU|20.15|46.25|160|W|seghedin;seghedino;szegedin;szeghed,Ta'if|mecca region|SA|40.42|21.27|688|W|at ta if;taif;taef,Taboao da Serra|sao paulo|BR|-46.79|-23.63|273|W|,Tabora|tabora|TZ|32.83|-5.02|308|W|,Tabriz|east azerbaijan|IR|46.29|38.08|1424|W|tebriz;tabris,Tabuk|tabuk region|SA|36.57|28.4|667|W|tebuk,Tacambaro de Codallos|MX16|MX|-101.46|19.24|25|N|,Tacheng|xinjiang|CN|82.96|46.75|161|W|,Tachikawa|tokyo|JP|139.42|35.71|183|W|,Tacloban|eastern visayas|PH|125|11.24|259|W|kota tacloban;tacloban city,Tacna|tacna|PE|-70.25|-18.01|286|W|,Tacoma|WA|US|-122.44|47.25|222|NW|,Taganrog|rostov|RU|38.91|47.24|279|W|,Taguatinga|federal district|BR|-48.06|-15.83|193|W|,Taguig|national capital region|PH|121.08|14.52|1308|W|city of taguig,Tahoua|tahoua region|NE|5.27|14.89|159|W|,Tahta|sohag|EG|31.5|26.77|134|W|,Tai'an|shandong|CN|117.12|36.19|1735|W|,Tai Po|tai po|HK|114.17|22.45|274|W|,Taicang|jiangsu|CN|121.09|31.45|831|W|,Taichung|taiwan|TW|120.68|24.15|2850|W|kota taichung;taizhong;tchaj cung;dai trung,Tainan|taiwan|TW|120.21|22.99|1856|W|kota tainan;tainan city;tchaj nan;dai nam,Taipei|taiwan|TW|121.53|25.05|7871|W|kota taipei;taipeh;taipe;tajpej;tchaj pej,Taiping|perak|MY|100.73|4.85|217|W|,Taishan|guangdong|CN|112.78|22.25|145|W|dai son,Taito|tokyo|JP|139.78|35.71|211|W|taito city,Taiyuan|shanxi|CN|112.56|37.87|4303|W|tchaj juan;thai nguyen,Taiz|ta izz|YE|44.02|13.58|940|W|taez,Taizhou|jiangsu|CN|119.91|32.49|1607|W|tchaj cou;thai chau,Taizhou|zhejiang|CN|121.43|28.66|1485|W|tchaj cou;thai chau,Takamatsu|kagawa|JP|134.05|34.33|418|W|takamacu;takamatsu shi;takamatsushi,Takaoka|toyama|JP|137.02|36.75|170|W|,Takarazuka|hyogo|JP|135.36|34.8|226|W|,Takasaki|gunma|JP|139.02|36.33|372|W|,Takatsuki|osaka|JP|135.62|34.85|354|W|,Takeo|takeo|KH|104.78|10.99|843|W|,Takoradi|western|GH|-1.76|4.9|389|W|takoradze,Tala|MX14|MX|-103.7|20.65|35|N|,Talatona|luanda|AO|13.19|-8.92|500|W|,Talca|maule region|CL|-71.65|-35.42|197|W|,Talcahuano|biobio|CL|-73.12|-36.72|150|W|,Talhar|sindh|PK|68.81|24.88|200|W|,Talisay|central visayas|PH|123.85|10.24|133|W|talisay city,Tallahassee|FL|US|-84.28|30.44|201|NW|,Tallinn|harjumaa|EE|24.75|59.44|394|W|tallinna;talin;tallin;lindanas;reval;revel;raaveli,Tam Ky|da nang city|VN|108.47|15.57|165|W|,Tam O'Shanter-Sullivan|ON|CA|-79.3|43.78|27|N|,Tama|tokyo|JP|139.47|35.64|148|W|,Tamale|northern|GH|-0.84|9.4|464|W|,Taman Petaling|kuala lumpur|MY|101.65|3.2|423|W|,Tamarac|FL|US|-80.25|26.21|64|N|,Tambacounda|tambacounda|SN|-13.67|13.77|149|W|,Tambaram|tamil nadu|IN|80.13|12.92|174|W|,Tambov|tambov oblast|RU|41.44|52.74|293|W|tambow,Tamiami|FL|US|-80.4|25.76|55|N|,Tampa|FL|US|-82.46|27.95|414|NW|,Tampere|pirkanmaa|FI|23.79|61.5|260|W|tammerfors,Tampico|MX28|MX|-97.88|22.29|309|NW|,Tampines Estate||SG|103.94|1.36|265|W|tampines,Tampines New Town||SG|103.95|1.35|259|W|,Tan An|tay ninh|VN|106.41|10.54|215|W|,Tan Chau|an giang|VN|105.24|10.8|175|W|,Tando Adam|sindh|PK|68.66|25.77|174|W|,Tando Allahyar|sindh|PK|68.72|25.46|421|W|,Tando Bago|sindh|PK|68.97|24.79|426|W|,Tanga|tanga|TZ|39.1|-5.07|393|W|,Tangail|dhaka division|BD|89.92|24.25|180|W|,Tangerang|banten|ID|106.63|-6.18|1927|W|kota tangerang,Tanggu|tianjin|CN|117.65|39.02|535|W|taku,Tanghe|henan|CN|112.83|32.69|278|W|,Tangier|tanger tetouan al hoceima|MA|-5.8|35.77|1035|W|tanger;tanca;tangeri,Tangshan|hebei|CN|118.18|39.64|3372|W|tchang san,Tanjung Pinang|riau islands|ID|104.46|0.92|227|W|kota tanjungpinang,Tanjungbalai|north sumatra|ID|99.8|2.97|190|W|,Tanta|gharbia|EG|31|30.79|576|W|,Tantou|guangdong|CN|113.83|22.75|320|W|,Tantoyuca|MX30|MX|-98.23|21.35|30|N|,Tanzhou|guangdong|CN|113.47|22.26|382|W|,Taoyuan|taiwan|TW|121.3|24.99|475|W|taoyuan district;dao vien;taoyuan city,Taozhou|anhui|CN|119.41|30.91|146|W|,Tapachula|MX05|MX|-92.26|14.91|353|NW|,Tarakan|north kalimantan|ID|117.59|3.31|255|W|kota tarakan,Taranto|apulia|IT|17.25|40.46|198|W|tarde;tarent;tarente;tarento,Taraz|zhambyl|KZ|71.37|42.9|358|W|taras,Targu Mures|mures county|RO|24.56|46.54|212|W|neumarkt am mieresch;neumarkt;tirgu mures,Tariba|tachira|VE|-72.22|7.82|138|W|,Tarija|tarija department|BO|-64.73|-21.54|159|W|,Tarime|mara|TZ|34.37|-1.35|133|W|,Tarlac City|central luzon|PH|120.6|15.48|401|W|,Tarragona|catalonia|ES|1.25|41.12|141|W|tarragone,Tarsus|mersin|TR|34.89|36.92|350|W|tars;tarse;tarso,Tartus|tartus|SY|35.89|34.89|458|W|tartous,Tasek Glugor|penang|MY|100.5|5.48|135|W|tasek gelugor,Tashkent|tashkent|UZ|69.22|41.26|1978|W|tachkent;taschkent;tasjkent;taskent;taszkent,Tasikmalaya|west java|ID|108.22|-7.33|770|W|kota tasikmalaya,Taubate|sao paulo|BR|-45.56|-23.03|322|W|,Taunggyi|shan state|MM|97.04|20.79|160|W|,Taunton|MA|US|-71.09|41.9|56|N|,Tauranga|bay of plenty|NZ|176.17|-37.69|161|W|,Tawau|sabah|MY|117.89|4.24|372|W|tawao,Taxco de Alarcon|MX12|MX|-99.61|18.55|50|N|taxco,Tay Ho|hanoi|VN|105.81|21.07|168|W|,Tay Ninh|tay ninh|VN|106.1|11.31|135|W|,Taylor|MI|US|-83.27|42.24|61|N|,Taylorsville|UT|US|-111.94|40.67|60|N|,Taytay|calabarzon|PH|121.13|14.56|231|W|,Taza|fes meknes|MA|-4.01|34.21|162|W|,Tbilisi|tbilisi|GE|44.83|41.69|1049|W|tbilissi;tiblissi;tiflis,Teaneck|NJ|US|-74.02|40.9|40|N|,Teapa|MX27|MX|-92.95|17.56|26|N|,Tebessa|tebessa|DZ|8.12|35.4|194|W|tibissa,Tecamachalco|MX21|MX|-97.73|18.88|28|N|,Tecate|MX02|MX|-116.63|32.57|64|N|,Tecax|MX31|MX|-89.29|20.21|25|N|tekax,Tecoman|MX08|MX|-103.88|18.92|85|N|,Tegal|central java|ID|109.14|-6.87|297|W|kota tegal,Tegucigalpa|francisco morazan department|HN|-87.21|14.08|850|W|,Tehran|tehran|IR|51.42|35.69|7153|W|tahran;teera;teerao;teheran,Tehuacan|MX21|MX|-97.4|18.46|248|NW|,Teixeira de Freitas|bahia|BR|-39.74|-17.54|145|W|,Tejupilco de Hidalgo|MX15|MX|-100.15|18.9|25|N|,Tel Aviv|tel aviv|IL|34.78|32.08|432|W|tel aviv yaffo;tel aviv yafo;tel awiw,Telford|england|GB|-2.45|52.68|155|W|,Teluk Intan|perak|MY|101.02|4.02|232|W|teluk anson,Teluknaga|west java|ID|106.64|-6.1|175|W|,Tema|greater accra|GH|-0.02|5.67|155|W|,Temara|rabat sale kenitra|MA|-6.91|33.93|342|W|,Temecula|CA|US|-117.15|33.49|110|N|,Temirtau|karaganda|KZ|72.95|50.05|170|W|temirtaou;temirtaw;temyrtau,Temixco|MX17|MX|-99.23|18.85|97|N|,Tempe|AZ|US|-111.91|33.41|175|NW|,Tempe Junction|AZ|US|-111.94|33.41|158|NW|,Temple|TX|US|-97.34|31.1|72|N|,Temple City|CA|US|-118.06|34.11|36|N|,Temple Terrace|FL|US|-82.39|28.04|25|N|,Temuco|araucania|CL|-72.6|-38.74|238|W|,Teni|tamil nadu|IN|77.48|10.01|1034|W|theni,Tenosique|MX27|MX|-91.42|17.47|32|N|,Teofilo Otoni|minas gerais|BR|-41.51|-17.86|142|W|,Teoloyucan|MX15|MX|-99.18|19.74|51|N|,Tepatitlan de Morelos|MX14|MX|-102.76|20.82|91|N|,Tepeaca|MX21|MX|-97.9|18.97|27|N|tepeaca de negrete,Tepeji del Rio de Ocampo|MX13|MX|-99.34|19.9|80|N|,Tepexpan|MX15|MX|-98.94|19.61|102|N|,Tepic|MX18|MX|-104.89|21.51|332|NW|,Tepotzotlan|MX15|MX|-99.22|19.72|38|N|,Tequila|MX14|MX|-103.84|20.88|29|N|municipio tequila,Tequisquiapan|MX22|MX|-99.89|20.52|29|N|,Teresina|piaui|BR|-42.8|-5.09|871|W|,Teresopolis|rio de janeiro|BR|-42.98|-22.42|176|W|,Ternate|north maluku|ID|127.38|0.79|210|W|kota ternate,Ternopil|ternopil|UA|25.59|49.55|225|W|tarnopol;tarnopoli,Terrassa|catalonia|ES|2.02|41.57|218|W|,Terre Haute|IN|US|-87.41|39.47|60|N|,Terrebonne|QC|CA|-73.65|45.7|111|N|,Teshi Old Town|greater accra|GH|-0.11|5.58|144|W|teshie,Tete|tete|MZ|33.59|-16.16|357|W|vila de santiago maior,Tetouan|tanger tetouan al hoceima|MA|-5.37|35.58|415|W|tetuan;tetuao,Tetuan de las Victorias|madrid|ES|-3.7|40.46|155|W|tetuan,Tewksbury|MA|US|-71.23|42.61|29|N|,Texarkana|TX|US|-94.05|33.43|37|N|,Texarkana|AR|US|-94.04|33.44|30|N|,Texas City|TX|US|-94.9|29.38|47|N|,Texcoco de Mora|MX15|MX|-98.88|19.51|105|N|texcoco,Teziutlan|MX21|MX|-97.36|19.82|103|N|,Thai Nguyen|thai nguyen|VN|105.85|21.59|420|W|,Thane|maharashtra|IN|72.96|19.2|1841|W|thana,Thanesar|haryana|IN|76.83|29.97|155|W|,Thanh Hoa|thanh hoa province|VN|105.77|19.8|850|W|,Thanh Khe|da nang city|VN|108.19|16.07|201|W|,Thanh Pho Ba Ria|ho chi minh city hcmc|VN|107.17|10.5|235|W|,Thanh Xuan|hanoi|VN|105.8|20.99|293|W|,Thanjavur|tamil nadu|IN|79.14|10.79|291|W|tanjavur;tandzawur;tancavur,The Acreage|FL|US|-80.27|26.79|38|N|,The Bronx|NY|US|-73.87|40.85|1385|NW|bronx;borough of bronx,The Colony|TX|US|-96.89|33.09|41|N|,The Hague|south holland|NL|4.3|52.08|474|W|den haag;a haia;haag;haga;l aia;la haya;la haye;lahey;s gravenhage,The Hammocks|FL|US|-80.44|25.67|51|N|,The Trails of Frisco|TX|US|-96.87|33.16|51|N|,The Villages|FL|US|-81.96|28.93|51|N|,The Woodlands|TX|US|-95.49|30.16|93|N|woodlands,Thembisa|gauteng|ZA|28.23|-26|511|W|,Thenali|andhra pradesh|IN|80.64|16.24|164|W|,Thessaloniki|central macedonia|GR|22.93|40.64|317|W|salonica;ftohomana;salonic;salonicco;saloniki;selanik;solun;tesalonica;thessalonique,Thetford-Mines|QC|CA|-71.31|46.09|25|N|,Thi Tran GJai Tu|thai nguyen|VN|105.64|21.63|179|W|,Thi Tran GJong Trieu|quang ninh|VN|106.51|21.08|248|W|,Thi Tran Thuan Chau|son la province|VN|103.69|21.44|153|W|,Thies|thies|SN|-16.93|14.79|317|W|,Thies Nones|thies|SN|-16.97|14.78|252|W|,Thika|nairobi county|KE|37.07|-1.03|251|W|,Thiruvananthapuram|kerala|IN|76.95|8.49|788|W|tiruvanantapuram;trivandrum,Thomasville|NC|US|-80.08|35.88|27|N|,Thoothukudi|tamil nadu|IN|78.13|8.77|410|W|thoothukkudi;tuticorin,Thornton|CO|US|-104.97|39.87|133|NW|,Thot Not|can tho city|VN|105.53|10.27|158|W|,Thousand Oaks|CA|US|-118.84|34.17|129|N|,Thrissur|kerala|IN|76.22|10.52|315|W|trichur,Throgs Neck|NY|US|-73.82|40.82|33|N|,Thu Dau Mot|ho chi minh city hcmc|VN|106.65|10.98|373|W|,Thu GJuc|ho chi minh city hcmc|VN|106.77|10.85|524|W|,Thuan An|ho chi minh city hcmc|VN|106.71|10.92|588|W|,Thuan Thanh|bac ninh|VN|106.08|21.05|199|W|,Thunder Bay|ON|CA|-89.25|48.38|108|N|,Thuqbah|eastern province|SA|50.2|26.26|248|W|,Tianjin|tianjin|CN|117.18|39.14|11090|W|tchien tin;thien tan;tiencin;tientsin,Tianshui|gansu|CN|105.74|34.58|1212|W|,Tiaret|tiaret|DZ|1.32|35.37|178|W|tijarat,Ticul|MX31|MX|-89.53|20.4|32|N|,Tieling|liaoning|CN|123.84|42.29|333|W|,Tierra Blanca|MX30|MX|-96.36|18.45|47|N|,Tigard|OR|US|-122.77|45.43|51|N|,Tijuana|MX02|MX|-117|32.5|1922|NW|,Tilburg|north brabant|NL|5.09|51.56|221|W|tilburgo,Timika|central papua|ID|136.68|-4.61|142|W|,Timisoara|timis county|RO|21.23|45.75|250|W|temeswar;freidorf;josephs stadt;temeschburg;temeschwar;temesvar,Timmins|ON|CA|-81.33|48.47|41|N|,Timon|maranhao|BR|-42.84|-5.09|174|W|,Tin Shui Wai|yuen long|HK|114|22.46|286|W|,Tinh Bien|an giang|VN|104.94|10.6|143|W|,Tinley Park|IL|US|-87.78|41.57|57|N|,Tirana|tirana|AL|19.82|41.33|418|W|tiran,Tiraspol|transnistria|MD|29.63|46.84|157|W|tiraspoli;tyraspol,Tirmiz|surxondaryo region|UZ|67.28|37.22|182|W|termez;termiz,Tiruchirappalli|tamil nadu|IN|78.7|10.82|1022|W|tiruchchirappalli;tiruchirapalli;tiruccirappalli;tiruchi;trichinopoly;trichy,Tirunelveli|tamil nadu|IN|77.68|8.73|1435|W|tirunelweli,Tirupati|andhra pradesh|IN|79.42|13.64|295|W|tirumala tirupati,Tiruppur|tamil nadu|IN|77.35|11.12|963|W|tirupur,Tiruvannamalai|tamil nadu|IN|79.07|12.23|145|W|,Tiruvottiyur|tamil nadu|IN|80.3|13.16|249|W|,Titusville|FL|US|-80.81|28.61|45|N|,Tizayuca|MX13|MX|-98.98|19.84|43|N|,Tizimin|MX31|MX|-88.15|21.14|46|N|,Tlahuac|MX09|MX|-99.01|19.29|305|NW|delegacion tlahuac,Tlajomulco de Zuniga|MX14|MX|-103.45|20.47|30|N|,Tlalnepantla|MX15|MX|-99.2|19.54|653|NW|tlalnepantla de baz;tlanepantla de baz,Tlalpan|MX09|MX|-99.16|19.3|574|NW|delegacion tlalpan,Tlapa de Comonfort|MX12|MX|-98.58|17.55|46|N|,Tlapacoyan|MX30|MX|-97.21|19.96|35|N|,Tlaquepaque|MX14|MX|-103.29|20.64|650|NW|san pedro tlaquepaque,Tlaxcala|MX29|MX|-98.24|19.32|84|N|tlaxcala city;tlaxcala de xicotencatl,Tlemcen|tlemcen|DZ|-1.31|34.88|173|W|tilimsan;tremecen,Toamasina|atsinanana|MG|49.4|-18.15|345|W|tamatave,Tobruk|al butnan|LY|23.95|32.09|141|W|thubruq;tobroek;tobrouk;tobruch,Tochigi|tochigi|JP|139.73|36.38|159|W|,Tokch'on|south pyongan|KP|126.26|39.75|237|W|,Tokorozawa|saitama|JP|139.47|35.8|344|W|,Tokushima|tokushima|JP|134.57|34.07|267|W|tokusima,Tokyo|tokyo|JP|139.69|35.69|9733|W|tokio;toquio;edo,Toledo|OH|US|-83.56|41.66|265|NW|,Toledo|central visayas|PH|123.64|10.38|206|W|toledo city,Toledo|parana|BR|-53.74|-24.71|160|W|,Toli-Toli|central sulawesi|ID|120.82|1.04|242|W|tolitoli,Toliara|atsimo andrefana|MG|43.67|-23.35|178|W|tulear,Toluca|MX15|MX|-99.65|19.29|489|NW|toluca de lerdo,Tolyatti|samara oblast|RU|49.35|53.53|702|W|togliatti;togliattigrad;tol yatti;toliatti;toljatti;stavropol,Tomakomai|hokkaido|JP|141.6|42.64|174|W|,Toms River|NJ|US|-74.2|39.95|88|N|,Tomsk|tomsk oblast|RU|84.98|56.5|574|W|,Tonala|MX14|MX|-103.24|20.62|408|NW|,Tonala|MX05|MX|-93.75|16.09|35|N|,Tondabayashicho|osaka|JP|135.6|34.5|132|W|tondabayashi,Tongchuan|shaanxi|CN|108.95|34.9|417|W|,Tongchuanshi|shaanxi|CN|109.08|35.07|223|W|tchung cchuan,Tonghua|jilin|CN|125.93|41.72|510|W|tchung chua;thong hoa,Tongliao|inner mongolia|CN|122.27|43.61|261|W|thong lieu,Tongling|anhui|CN|117.78|30.95|402|W|,Tongshan|jiangsu|CN|117.16|34.18|329|W|xuzhou,Tongzhou|beijing|CN|116.66|39.9|163|W|,Tonk|rajasthan|IN|75.79|26.17|165|W|,Tooele|UT|US|-112.3|40.53|33|N|,Toowoomba|queensland|AU|151.95|-27.56|142|W|,Topeka|KS|US|-95.68|39.05|125|N|,Torbat-e Heydariyeh|razavi khorasan|IR|59.22|35.27|140|W|,Tordher|khyber pakhtunkhwa|PK|72.29|33.99|150|W|,Toronto|ON|CA|-79.4|43.71|2794|NW|,Torrance|CA|US|-118.34|33.84|143|NW|,Torreon|MX07|MX|-103.42|25.54|735|NW|,Torrington|CT|US|-73.12|41.8|34|N|,Torun|kujawsko pomorskie|PL|18.6|53.01|196|W|thorn,Toshima|tokyo|JP|139.74|35.76|301|W|toshima city,Tottenham|england|GB|-0.07|51.6|130|W|,Tottori-shi|tottori|JP|134.23|35.5|188|W|,Touba|diourbel region|SN|-15.88|14.86|1120|W|,Touggourt|touggourt|DZ|6.07|33.11|143|W|tukkurt,Toulon|provence alpes cote d azur|FR|5.93|43.12|168|W|tolone;tolon;tulon,Toulouse|occitanie|FR|1.44|43.6|511|W|tolosa;tolosa de francia;tuluza,Tours|centre val de loire|FR|0.7|47.39|141|W|,Town 'n' Country|FL|US|-82.58|28.01|78|N|,Townsville|queensland|AU|146.81|-19.27|201|W|,Towson|MD|US|-76.6|39.4|55|N|,Toyama|toyama|JP|137.22|36.7|415|W|toyama shi;toyamashi,Toyohashi|aichi|JP|137.38|34.77|377|W|toyohashi shi,Toyokawa|aichi|JP|137.4|34.82|184|W|,Toyonaka|osaka|JP|135.47|34.78|401|W|,Toyota|aichi|JP|137.15|35.08|426|W|tojota,Tra Vinh|vinh long|VN|106.34|9.95|160|W|thanh pho tra vinh,Trabzon|trabzon|TR|39.73|41.01|244|W|trapisonda;trebisonda;trebizonda,Tracy|CA|US|-121.43|37.74|87|N|,Trang Bang|tay ninh|VN|106.36|11.03|161|W|,Trenton|NJ|US|-74.74|40.22|89|N|,Tres Lagoas|mato grosso do sul|BR|-51.7|-20.79|143|W|,Tri-Cities|WA|US|-119.2|46.25|244|NW|,Trieste|friuli venezia giulia|IT|13.78|45.65|204|W|terst;triest,Trindade|goias|BR|-49.49|-16.65|142|W|,Tripoli|tripoli|LY|13.19|32.89|1302|W|trablus;tripolis;trypolis,Tripoli|north lebanon|LB|35.84|34.43|229|W|trablussam;tripolis;trypolis,Trois-Rivieres|QC|CA|-72.55|46.35|144|NW|,Trondheim|trondelag|NO|10.4|63.43|216|W|,Troy|MI|US|-83.15|42.61|83|N|,Troy|NY|US|-73.69|42.73|49|N|,Troy|OH|US|-84.2|40.04|25|N|,Trujillo|la libertad|PE|-79.03|-8.12|1067|W|,Trumbull|CT|US|-73.2|41.24|36|N|,Tsentralnyi|donetsk|UA|37.55|47.1|179|W|tsentralnyi rayon;molotovskyi;molotovskyi rayon;zhovtnevyi;zhovtnevyi rayon,Tseung Kwan O|sai kung district|HK|114.25|22.33|412|W|,Tshikapa|kasai|CD|20.8|-6.42|634|W|,Tsing Yi Town|kwai tsing district|HK|114.1|22.35|182|W|tsing yi,Tsu|mie|JP|136.52|34.73|274|W|,Tsuchiura|ibaraki|JP|140.21|36.09|144|W|,Tsuen Wan|tsuen wan|HK|114.11|22.37|318|W|,Tsukuba|ibaraki|JP|140.12|36.08|241|W|cukuba,Tualatin|OR|US|-122.76|45.38|27|N|,Tuckahoe|VA|US|-77.56|37.59|44|N|,Tucker|GA|US|-84.22|33.85|27|N|,Tucson|AZ|US|-110.93|32.22|542|NW|,Tuen Mun|tuen mun|HK|113.97|22.39|507|W|tuenmen,Tuerkmenabat|lebap|TM|63.58|39.07|230|W|turkmenabat;charjou,Tuguegarao|cagayan valley|PH|121.72|17.62|167|W|tuguegarao city;tuguegaro,Tujunga|CA|US|-118.29|34.25|26|N|,Tula|tula oblast|RU|37.62|54.2|482|W|toela;toula,Tula de Allende|MX13|MX|-99.34|20.05|28|N|,Tulancingo|MX13|MX|-98.36|20.08|102|N|tulancingo de bravo,Tulare|CA|US|-119.35|36.21|62|N|,Tulsa|OK|US|-95.99|36.15|413|NW|,Tultepec|MX15|MX|-99.13|19.68|65|N|,Tultitlan de Mariano Escobedo|MX15|MX|-99.17|19.65|28|N|,Tulua|valle del cauca department|CO|-76.2|4.08|221|W|,Tumkur|karnataka|IN|77.1|13.34|307|W|tumakuru,Tumxuk|xinjiang|CN|79.06|39.87|135|W|tumushuke,Tunduma|songwe|TZ|32.77|-9.3|219|W|,Tungi|dhaka division|BD|90.4|23.89|337|W|tongi,Tunis|tunis governorate|TN|10.17|36.82|693|W|tunez;tunes;tunisi;tunus,Tunja|boyaca|CO|-73.36|5.54|172|W|,Tuong Mai|hanoi|VN|105.86|20.99|136|W|,Tupelo|MS|US|-88.7|34.26|35|N|,Turin|piedmont|IT|7.69|45.07|847|W|torino;turijn;turim;turyn,Turkistan|turkistan|KZ|68.26|43.29|227|W|turkestan;turquistao,Turku|southwest finland|FI|22.27|60.45|206|W|abo,Turlock|CA|US|-120.85|37.49|72|N|,Turmero|aragua|VE|-67.47|10.23|344|W|,Turpan|xinjiang|CN|89.18|42.95|273|W|tourfan;turfan,Tuscaloosa|AL|US|-87.57|33.21|111|N|,Tustin|CA|US|-117.83|33.75|80|N|,Tuxpam de Rodriguez Cano|MX30|MX|-97.41|20.96|84|N|tuxpam,Tuxpan|MX14|MX|-103.38|19.56|27|N|,Tuxtepec|MX20|MX|-96.13|18.09|159|NW|san juan bautista;san juan bautista tuxtla,Tuxtla|MX05|MX|-93.12|16.75|604|NW|tuxtla gtz;tuxtla gutierrez,Tuy Hoa|dak lak|VN|109.32|13.1|155|W|,Tuzla|federation of b h|BA|18.67|44.54|142|W|,Tver|tver oblast|RU|35.9|56.86|420|W|twer;kalinin,Twentynine Palms|CA|US|-116.05|34.14|26|N|,Twin Falls|ID|US|-114.46|42.56|47|N|,Tychy|silesia|PL|18.97|50.14|130|W|tichau,Tyler|TX|US|-95.3|32.35|103|N|,Tyre|south governorate|LB|35.19|33.27|135|W|sur;tiro;tyr;tyros;tyrus,Tyumen|tyumen oblast|RU|65.53|57.15|768|W|tioumen;tjumen;tiumen;tjoemen;tumen,Ube|yamaguchi|JP|131.25|33.94|173|W|,Uberaba|minas gerais|BR|-47.93|-19.75|356|W|,Uberlandia|minas gerais|BR|-48.28|-18.92|754|W|,Udaipur|rajasthan|IN|73.71|24.59|451|W|udajpur,Udon Thani|udon thani|TH|102.79|17.42|130|W|,Udupi|karnataka|IN|74.75|13.33|165|W|,Ueda|nagano|JP|138.28|36.4|157|W|,UEruemqi|xinjiang|CN|87.6|43.8|3029|W|urumqi;urumchi;urumczi;urumtschi;urumci;dihua,UEskuedar|istanbul|TR|29.01|41.02|524|W|uskudar;scutari;skutari,Ufa|bashkortostan republic|RU|55.97|54.74|1120|W|oefa;oufa,Ugep|cross river state|NG|8.08|5.81|200|W|,Uige|uige|AO|15.06|-7.61|322|W|,Uijeongbu-si|gyeonggi do|KR|127.05|37.74|479|W|uijeongbu,Uji|kyoto|JP|135.8|34.89|192|W|udzi,Ujjain|madhya pradesh|IN|75.78|23.18|515|W|udzdzain,Ulan Bator|ulaanbaatar|MN|106.88|47.91|844|W|ulaanbaatar;oulan bator;ulaan baatar;ulan batur;ulanbatar;ula bator,Ulan-Ude|buryatiya republic|RU|107.6|51.83|360|W|oelan oede;oulan oude,Ulanhot|inner mongolia|CN|122.08|46.08|165|W|,Ulanqab|inner mongolia|CN|113.13|40.99|550|W|,Ulhasnagar|maharashtra|IN|73.15|19.22|516|W|,Ulsan|ulsan|KR|129.32|35.54|1098|W|ulsan si,Ulu Bedok||SG|103.93|1.33|276|W|,Uluberiya|west bengal|IN|88.1|22.48|235|W|,Ulyanovsk|ulyanovsk|RU|48.39|54.33|626|W|oulianovsk;uljanowsk;oeljanovsk;ul janovsk;ulianovsk;uljanovsk,Uman|MX31|MX|-89.75|20.88|39|N|,Umarkot|sindh|PK|69.74|25.36|144|W|,Umea|vasterbotten|SE|20.26|63.83|130|W|uumaja,Umraniye|istanbul|TR|29.12|41.02|573|W|,Umuahia|abia state|NG|7.49|5.52|370|W|,Unaizah|al qassim region|SA|44|26.1|183|W|,Ungaran|central java|ID|110.41|-7.14|171|W|,Union|NJ|US|-74.26|40.7|56|N|,Union City|CA|US|-122.02|37.6|74|N|,Union City|NJ|US|-74.02|40.78|69|N|east cost cities,Universal City|CA|US|-118.35|34.14|105|N|,University|FL|US|-82.44|28.07|41|N|,University City|MO|US|-90.31|38.66|35|N|,University Heights|SK|CA|-106.58|52.14|51|N|,University Heights|NY|US|-73.91|40.86|27|N|,University of Texas|TX|US|-97.74|30.29|53|N|,University Park|FL|US|-80.37|25.75|26|N|,University Place|WA|US|-122.55|47.24|32|N|,Unnao|uttar pradesh|IN|80.49|26.55|161|W|,Upland|CA|US|-117.65|34.1|76|N|,Upper Alton|IL|US|-90.15|38.91|29|N|,Upper Arlington|OH|US|-83.06|39.99|34|N|,Upper West Side|NY|US|-73.98|40.79|226|NW|,Uppsala|uppsala|SE|17.64|59.86|177|W|upsala,Uptown|IL|US|-87.65|41.97|55|N|,Urayasu|chiba|JP|139.9|35.66|171|W|,Urbana|IL|US|-88.21|40.11|42|N|,Urbandale|IA|US|-93.71|41.63|44|N|,Urdaneta|ilocos|PH|120.57|15.98|145|W|kota urdaneta;urdaneta de pangasinan,Urganch|xorazm region|UZ|60.63|41.55|145|W|ourguentch;urgench;urgentj;urgenc,Uriangato|MX11|MX|-101.18|20.14|51|N|,Ursynow|mazovia|PL|21.05|52.15|149|W|,Uruapan|MX16|MX|-102.06|19.42|299|NW|uruapan del progreso,Usak|usak|TR|29.41|38.67|369|W|,Usera|madrid|ES|-3.7|40.39|141|W|,Ussuriysk|primorye|RU|131.96|43.8|157|W|oessoeriejsk;ussurijsk;ussuryjsk,Ust-Kamenogorsk|east kazakhstan|KZ|82.61|49.97|319|W|ust kamienogorsk;oskemen,Utica|NY|US|-75.23|43.1|61|N|,Utrecht|utrecht|NL|5.12|52.09|376|W|utreque,Utsunomiya|tochigi|JP|139.88|36.57|518|W|ucunomija,Uvira|south kivu|CD|29.14|-3.4|407|W|,Uyo|akwa ibom state|NG|7.93|5.05|436|W|,Vacaville|CA|US|-121.99|38.36|96|N|,Vadodara|gujarat|IN|73.21|22.3|1822|W|,Val-d'Or|QC|CA|-77.8|48.1|25|N|,Val-des-Arbres|QC|CA|-73.68|45.6|40|N|,Valdivia|los rios region|CL|-73.25|-39.81|133|W|,Valdosta|GA|US|-83.28|30.83|55|N|,Valencia|carabobo|VE|-68|10.16|1619|W|,Valencia|valencia|ES|-0.38|39.47|824|W|valence;valencie;valensiya;valenza;walencja,Valencia|CA|US|-118.61|34.44|148|NW|,Valente Diaz|MX30|MX|-96.22|19.16|25|N|,Valenzuela|national capital region|PH|120.97|14.7|725|W|,Valera|trujillo|VE|-70.6|9.32|244|W|,Valinhos|sao paulo|BR|-47|-22.97|132|W|,Valladolid|castille and leon|ES|-4.72|41.66|300|W|pincia;pucela,Valladolid|MX31|MX|-88.2|20.69|48|N|,Valle de Bravo|MX15|MX|-100.13|19.2|25|N|,Valle de La Pascua|guarico|VE|-66.01|9.22|153|W|,Valle de Santiago|MX11|MX|-101.19|20.39|68|N|,Valle Hermoso|MX28|MX|-97.81|25.67|48|N|,Valledupar|cesar department|CO|-73.25|10.47|490|W|,Vallejo|CA|US|-122.26|38.1|121|N|,Valley Glen|CA|US|-118.42|34.19|60|N|,Valley Stream|NY|US|-73.71|40.66|37|N|,Valparaiso|valparaiso|CL|-71.63|-33.04|282|W|,Valparaiso|IN|US|-87.06|41.47|32|N|,Valparaiso de Goias|goias|BR|-47.98|-16.07|218|W|,Valrico|FL|US|-82.24|27.94|35|N|,Valsad|gujarat|IN|72.93|20.61|139|W|,Van|van|TR|43.38|38.49|525|W|,Van Nuys|CA|US|-118.45|34.19|136|NW|,Vancouver|BC|CA|-123.12|49.25|662|NW|vancover,Vancouver|WA|US|-122.66|45.64|196|NW|,Vanderbijlpark|gauteng|ZA|27.84|-26.71|246|W|,Vantaa|uusimaa|FI|25.04|60.29|252|W|vanda,Vapi|gujarat|IN|72.9|20.37|163|W|,Varamin|tehran|IR|51.65|35.32|225|W|,Varanasi|uttar pradesh|IN|83.01|25.32|1164|W|benares;kashi;waranasi,Varginha|minas gerais|BR|-45.43|-21.55|136|W|,Varna|varna|BG|27.91|43.22|318|W|warna,Varzea Grande|mato grosso|BR|-56.13|-15.65|300|W|,Vasyl'evsky Ostrov|st petersburg|RU|30.25|59.94|203|W|vasilinsaari,Vaudreuil-Dorion|QC|CA|-74.03|45.4|25|N|,Vaughan|ON|CA|-79.5|43.84|323|NW|,Velikiy Novgorod|novgorod oblast|RU|31.27|58.52|222|W|velikij novgorod;novgorod;nowogrod wielki;veliki novgorod;veliky novgorod;weliki nowgorod,Vellore|tamil nadu|IN|79.13|12.92|484|W|velur,Venice|CA|US|-118.46|33.99|40|N|venice beach,Ventura|CA|US|-119.29|34.28|96|N|,Venustiano Carranza|MX09|MX|-99.1|19.44|430|NW|,Veracruz|MX30|MX|-96.14|19.18|428|NW|veracruz llave,Veraval|gujarat|IN|70.37|20.91|171|W|,Verdun|QC|CA|-73.57|45.46|69|N|,Vereeniging|gauteng|ZA|27.93|-26.67|474|W|,Verhunskyi|luhansk|UA|39.37|48.59|185|W|verhunskyi rayon;zhovtnevyi;zhovtnevyi rayon,Vermont Square|CA|US|-118.3|34|47|N|,Vernon|BC|CA|-119.27|50.27|40|N|,Vernon Hills|IL|US|-87.98|42.22|26|N|,Verona|veneto|IT|10.99|45.44|258|W|verone;werona,Vespasiano|minas gerais|BR|-43.92|-19.69|138|W|,Vestal|NY|US|-76.05|42.09|28|N|,Vestavia Hills|AL|US|-86.79|33.45|34|N|,Viamao|rio grande do sul|BR|-51.02|-30.08|231|W|,Viana|luanda|AO|13.37|-8.91|865|W|,Victor Rosales|MX32|MX|-102.7|22.95|32|N|,Victoria|central and western|HK|114.14|22.29|956|W|,Victoria|BC|CA|-123.35|48.44|289|NW|,Victoria|TX|US|-97|28.81|67|N|,Victoria de Durango|MX10|MX|-104.66|24.02|518|NW|durango,Victoria-Downtown|BC|CA|-123.36|48.43|46|N|downtown victoria,Victoria-Fraserview|BC|CA|-123.07|49.22|31|N|,Victoriaville|QC|CA|-71.97|46.05|34|N|,Victorville|CA|US|-117.29|34.54|122|N|,Vidisha|madhya pradesh|IN|77.81|23.53|155|W|vidisa,Vienna|state of vienna|AT|16.37|48.21|1691|W|viena;viyana;wien;vienne;vien;viden;wenen;wieden;bec,Vientiane|vientiane prefecture|LA|102.6|17.97|840|W|vienciana;vientian;wientian,Viet Tri|phu tho|VN|105.4|21.32|415|W|,Viet Yen|bac ninh|VN|106.13|21.27|205|W|distretto di viet yen,Vigo|galicia|ES|-8.72|42.23|293|W|,Vijayapura|karnataka|IN|75.72|16.82|327|W|bidzapur;bijapur;vijapura,Vijayawada|andhra pradesh|IN|80.65|16.51|1143|W|vidzajavada;widzajawada;bejawada,Vila Andrade|sao paulo|BR|-46.73|-23.63|168|W|,Vila Curuca|sao paulo|BR|-46.42|-23.51|140|W|,Vila Flor|luanda|AO|13.31|-8.98|256|W|,Vila Jacui|sao paulo|BR|-46.46|-23.5|134|W|,Vila Velha|espirito santo|BR|-40.29|-20.33|394|W|,Villa Canales|guatemala|GT|-90.53|14.48|155|W|,Villa Mercedes|biobio|CL|-71.98|-37.4|131|W|,Villa Nueva|guatemala|GT|-90.59|14.53|618|W|,Villa Vicente Guerrero|MX29|MX|-98.17|19.12|60|N|,Villaflores|MX05|MX|-93.27|16.23|37|N|,Villagran|MX11|MX|-101|20.51|27|N|,Villahermosa|MX27|MX|-92.94|17.99|353|NW|villa hermosa,Villavicencio|meta department|CO|-73.63|4.13|321|W|,Ville-Emard|QC|CA|-73.6|45.45|30|N|,Ville-Marie|QC|CA|-73.57|45.5|104|N|,Villeray-Saint-Michel-Parc-Extension|QC|CA|-73.61|45.56|144|NW|,Villeurbanne|rhone alpes|FR|4.88|45.77|131|W|,Vilnius|vilnius|LT|25.28|54.69|542|W|vilna;vilnus;wilno;wilna,Vina del Mar|valparaiso|CL|-71.55|-33.02|334|W|,Vineland|NJ|US|-75.03|39.49|60|N|,Vinh|nghe an province|VN|105.69|18.67|790|W|,Vinh Chau|can tho city|VN|105.98|9.32|183|W|,Vinh Long|vinh long|VN|105.97|10.25|137|W|,Vinnytsya|vinnytsia|UA|28.47|49.23|430|W|vinnycja;vinniza;vinnytsia;winnica;winnyzja,Viransehir|sanliurfa|TR|39.76|37.22|154|W|,Virar|maharashtra|IN|72.81|19.46|1222|W|,Virginia Beach|VA|US|-75.98|36.85|454|NW|virginian bch,Visakhapatnam|andhra pradesh|IN|83.2|17.68|1063|W|vishakhapatnam;vizag,Visalia|CA|US|-119.29|36.33|130|NW|,Vista|CA|US|-117.24|33.2|100|N|,Vitebsk|vitebsk|BY|30.2|55.19|358|W|wizebsk;vicebsk;vitsebsk;vitsyebsk;witebsk,Vitoria|espirito santo|BR|-40.34|-20.32|312|W|,Vitoria da Conquista|bahia|BR|-40.84|-14.87|396|W|,Vitoria de Santo Antao|pernambuco|BR|-35.29|-8.12|134|W|,Vizianagaram|andhra pradesh|IN|83.41|18.12|228|W|,Vladikavkaz|north ossetia alania|RU|44.67|43.04|306|W|vladicaucaso;wladikawkas;wladykaukaz,Vladimir|vladimir oblast|RU|40.4|56.14|357|W|wladimir;wladymir;wlodzimierz,Vladivostok|primorye|RU|131.87|43.11|604|W|vladyvostok;wladiwostok;wladywostok,Volgodonsk|rostov|RU|42.15|47.51|167|W|wolgodonsk,Volgograd|volgograd oblast|RU|44.5|48.71|1013|W|volgogrado;wolgograd;estalingrado;stalingrad;stalingrado;tsaritsyn;zarizyn,Vologda|vologda oblast|RU|39.88|59.22|312|W|wologda,Volta Redonda|rio de janeiro|BR|-44.1|-22.52|279|W|v redonda,Volzhsky|volgograd oblast|RU|44.78|48.79|323|W|volzjskij;volzski;wolschski,Voronezh|voronezh oblast|RU|39.19|51.67|1047|W|voronej;voronezj;voronez;woronesch;woronez,Votorantim|sao paulo|BR|-47.44|-23.55|133|W|,Vryheid|kwazulu natal|ZA|30.79|-27.77|150|W|,Vung Tau|ho chi minh city hcmc|VN|107.08|10.35|464|W|cap saint jacques;cape saint james;saint james;st james;ville du cap,Vyhurivshchyna-Troyeshchyna|kyiv city|UA|30.6|50.51|240|W|,Vykhino-Zhulebino|moscow|RU|37.81|55.7|216|W|,Waco|TX|US|-97.15|31.55|132|NW|,Wad Medani|al jazirah|SD|33.52|14.4|332|W|vad medeni;wad madani,Wadi as Sir|amman|JO|35.82|31.95|181|W|wadi al seer,Wafangdian|liaoning|CN|122.01|39.62|454|W|,Wah Cantt|punjab|PK|72.75|33.77|400|W|,Waiau-Pacific Palisades|HI|US|-157.95|21.4|47|N|,Waipahu|HI|US|-158.01|21.39|38|N|,Wakayama|wakayama|JP|135.17|34.23|356|W|,Wake Forest|NC|US|-78.51|35.98|38|N|,Wakefield|NY|US|-73.85|40.9|52|N|,Waldorf|MD|US|-76.94|38.62|67|N|,Walla Walla|WA|US|-118.34|46.06|32|N|,Walnut|CA|US|-117.87|34.02|30|N|,Walnut Creek|CA|US|-122.06|37.91|68|N|,Walnut Grove|BC|CA|-122.64|49.16|25|N|,Walsall|england|GB|-1.98|52.59|172|W|,Waltham|MA|US|-71.24|42.38|63|N|,Wan Chai|wan chai|HK|114.17|22.28|166|W|wanchai,Wandsbek|hamburg|DE|10.08|53.58|411|W|,Wangsa Maju|kuala lumpur|MY|101.74|3.2|215|W|,Wanning|hainan|CN|110.38|18.8|545|W|,Wanxian|chongqing|CN|108.37|30.82|859|W|wan hsien;wanshien,Wanzhou|chongqing|CN|108.4|30.76|1545|W|,Warangal|telangana|IN|79.58|18|704|W|,Warder|somali|ET|45.34|6.97|450|W|,Warner Robins|GA|US|-83.63|32.62|73|N|,Warren|MI|US|-83.01|42.49|134|NW|,Warren|OH|US|-80.82|41.24|40|N|,Warri|delta|NG|5.75|5.52|910|W|,Warrington|england|GB|-2.58|53.39|172|W|,Warsaw|mazovia|PL|21.01|52.23|1702|W|warszawa;varsavia;varsova;varsovia;varsovie;varsava;warsawa;warschau,Warwick|RI|US|-71.42|41.7|81|N|,Wasco|CA|US|-119.34|35.59|26|N|,Washington|DC|US|-77.04|38.9|689|NW|washington d c;district of columbia;washington dc;waszyngton;territory of columbia,Washington Heights|NY|US|-73.94|40.85|152|NW|,Watampone|south sulawesi|ID|120.33|-4.54|149|W|,Waterbury|CT|US|-73.05|41.56|108|N|,Waterford|MI|US|-83.41|42.69|75|N|,Waterfront Communities-The Island|ON|CA|-79.38|43.63|65|N|,Waterloo|ON|CA|-80.52|43.47|104|N|,Waterloo|IA|US|-92.34|42.49|68|N|,Watertown|MA|US|-71.18|42.37|31|N|,Watertown|NY|US|-75.91|43.97|26|N|,Watsonville|CA|US|-121.76|36.91|53|N|,Watthana|bangkok|TH|100.59|13.73|171|W|vadhana,Waukegan|IL|US|-87.84|42.36|88|N|,Waukesha|WI|US|-88.23|43.01|71|N|,Wausau|WI|US|-89.63|44.96|39|N|,Wauwatosa|WI|US|-88.01|43.05|47|N|,Waxahachie|TX|US|-96.85|32.39|33|N|,Wayne|NJ|US|-74.28|40.93|57|N|,Wayne|PA|US|-75.39|40.04|30|N|,Wazirabad|punjab|PK|74.12|32.44|152|W|,Weatherford|TX|US|-97.8|32.76|28|N|,Weifang|shandong|CN|119.1|36.71|2044|W|wej fang,Weihai|shandong|CN|122.11|37.51|844|W|wej chaj,Weinan|shaanxi|CN|109.51|34.5|1199|W|wej nan,Welkom|free state|ZA|26.74|-27.98|431|W|,Welland|ON|CA|-79.25|42.98|52|N|,Wellesley|MA|US|-71.29|42.3|27|N|,Wellington|wellington region|NZ|174.78|-41.29|381|W|,Wellington|FL|US|-80.24|26.66|62|N|,Wenatchee|WA|US|-120.31|47.42|33|N|,Wenchang|hainan|CN|110.8|19.55|560|W|van xuong,Wenshan City|yunnan|CN|104.25|23.36|450|W|,Wentzville|MO|US|-90.85|38.81|35|N|,Wenzhou|zhejiang|CN|120.67|28|2650|W|wen cou;on chau;yongjia,Weru|west java|ID|108.5|-6.71|139|W|,Weslaco|TX|US|-97.99|26.16|39|N|,Wesley Chapel|FL|US|-82.33|28.24|44|N|,West Albany|NY|US|-73.78|42.68|93|N|,West Allis|WI|US|-88.01|43.02|60|N|,West Babylon|NY|US|-73.35|40.72|43|N|,West Bend|WI|US|-88.18|43.43|31|N|,West Bloomfield Township|MI|US|-83.38|42.57|64|N|west bloomfield;xa west bloomfield,West Chicago|IL|US|-88.2|41.88|27|N|,West Coon Rapids|MN|US|-93.35|45.16|62|N|,West Covina|CA|US|-117.94|34.07|108|N|,West Des Moines|IA|US|-93.71|41.58|64|N|,West Elkridge|MD|US|-76.73|39.21|28|N|,West End|BC|CA|-123.13|49.28|47|N|vancouver west end,West Englewood|IL|US|-87.67|41.78|32|N|,West Falls Church|VA|US|-77.19|38.86|29|N|,West Fargo|ND|US|-96.9|46.87|33|N|tay fargo,West Gulfport|MS|US|-89.09|30.4|71|N|,West Hartford|CT|US|-72.74|41.76|63|N|,West Haven|CT|US|-72.95|41.27|54|N|,West Hill|ON|CA|-79.18|43.77|27|N|,West Hills|CA|US|-118.64|34.2|41|N|,West Hollywood|FL|US|-80.18|26.02|60|N|,West Hollywood|CA|US|-118.36|34.09|36|N|tay hollywood,West Humber-Clairville|ON|CA|-79.6|43.72|33|N|,West Islip|NY|US|-73.31|40.71|28|N|,West Jerusalem|jerusalem|IL|35.22|31.78|400|W|vest jerusalem;vestjerusalem;vastra jerusalem;westjerusalem,West Jordan|UT|US|-111.94|40.61|111|N|,West Kelowna|BC|CA|-119.58|49.86|28|N|district of west kelowna,West Lafayette|IN|US|-86.91|40.43|45|N|,West Lake Sammamish|WA|US|-122.1|47.58|33|N|,West Lawn|IL|US|-87.72|41.77|32|N|,West Linn|OR|US|-122.61|45.37|26|N|,West Little River|FL|US|-80.24|25.86|34|N|,West Lynchburg|VA|US|-79.18|37.4|65|N|,West Memphis|AR|US|-90.18|35.15|25|N|,West Milford|NJ|US|-74.37|41.13|26|N|,West New York|NJ|US|-74.01|40.79|53|N|,West Oak Lane|PA|US|-75.17|40.07|38|N|,West Orange|NJ|US|-74.24|40.8|48|N|,West Palm Beach|FL|US|-80.05|26.72|120|N|,West Raleigh|NC|US|-78.66|35.79|338|NW|,West Ridge|IL|US|-87.69|42|72|N|,West Roxbury|MA|US|-71.15|42.28|30|N|,West Sacramento|CA|US|-121.53|38.58|52|N|,West Scarborough|ME|US|-70.39|43.57|27|N|,West Seneca|NY|US|-78.8|42.85|44|N|,West Springfield|MA|US|-72.62|42.11|27|N|,West Torrington|CT|US|-73.14|41.82|36|N|,West Town|IL|US|-87.67|41.89|86|N|,West Valley City|UT|US|-112|40.69|136|NW|west valley,West Vancouver|BC|CA|-123.16|49.33|45|N|vancouver barat,West Village|NY|US|-74.01|40.73|32|N|,West Warwick|RI|US|-71.52|41.7|30|N|,West Whittier-Los Nietos|CA|US|-118.07|33.98|25|N|,Westchester|FL|US|-80.33|25.75|29|N|,Westerville|OH|US|-82.93|40.13|38|N|,Westfield|MA|US|-72.75|42.13|41|N|westfield centre,Westfield|IN|US|-86.13|40.04|36|N|,Westfield|NJ|US|-74.35|40.66|30|N|,Westlake|OH|US|-81.92|41.46|32|N|,Westland|MI|US|-83.4|42.32|82|N|,Westminster|CO|US|-105.04|39.84|116|N|,Westminster|CA|US|-118.01|33.76|92|N|,Westminster-Branson|ON|CA|-79.45|43.78|26|N|,Westmont|CA|US|-118.3|33.94|31|N|,Weston|FL|US|-80.4|26.1|69|N|,Westonaria|gauteng|ZA|27.65|-26.32|156|W|,Westport|CT|US|-73.36|41.14|26|N|,Wethersfield|CT|US|-72.65|41.71|26|N|,Wexford/Maryvale|ON|CA|-79.3|43.75|27|N|,Weymouth|MA|US|-70.94|42.22|54|N|,Whalley|BC|CA|-122.87|49.18|102|N|,Wharton|PA|US|-75.16|39.93|49|N|,Wheat Ridge|CO|US|-105.08|39.77|31|N|wheatridge,Wheaton|IL|US|-88.11|41.87|53|N|,Wheaton|MD|US|-77.06|39.04|48|N|,Wheeling|IL|US|-87.93|42.14|38|N|,Wheeling|WV|US|-80.72|40.06|27|N|,Whitby|ON|CA|-78.93|43.88|138|NW|,Whitchurch-Stouffville|ON|CA|-79.32|44|49|N|,White Bear Lake|MN|US|-93.01|45.08|25|N|,White Plains|NY|US|-73.76|41.03|58|N|,Whitehorse|YT|CA|-135.05|60.72|28|N|,Whitestone|NY|US|-73.82|40.79|36|N|,Whitman|PA|US|-75.16|39.92|49|N|,Whitney|NV|US|-115.04|36.1|38|N|,Whittier|CA|US|-118.03|33.98|87|N|,Wichita|KS|US|-97.34|37.69|396|NW|,Wichita Falls|TX|US|-98.49|33.91|104|N|,Wiesbaden|hesse|DE|8.24|50.09|288|W|,Wigan|england|GB|-2.64|53.54|175|W|,Wildomar|CA|US|-117.28|33.6|35|N|,Wildwood|MO|US|-90.66|38.58|35|N|,Wilkes-Barre|PA|US|-75.88|41.25|40|N|,Williamsburg|NY|US|-73.95|40.71|33|N|,Williamsport|PA|US|-77|41.24|29|N|,Willingboro|NJ|US|-74.87|40.03|31|N|,Williston|ND|US|-103.62|48.15|26|N|,Willoughby|BC|CA|-122.68|49.13|31|N|,Willowbrook|CA|US|-118.26|33.92|35|N|,Willowdale|ON|CA|-79.4|43.77|79|N|,Willowdale East|ON|CA|-79.4|43.77|50|N|,Wilmette|IL|US|-87.72|42.07|27|N|,Wilmington|NC|US|-77.95|34.24|115|N|,Wilmington|DE|US|-75.55|39.75|70|N|,Wilmington|CA|US|-118.26|33.78|52|N|,Wilson|NC|US|-77.92|35.72|49|N|,Winchester|NV|US|-115.12|36.13|27|N|,Winchester|VA|US|-78.16|39.19|27|N|,Windhoek|khomas region|NA|17.08|-22.56|386|W|vinduque;windhuk,Windsor|ON|CA|-83.02|42.3|229|NW|,Windsor|CO|US|-104.9|40.48|32|N|,Windsor|CT|US|-72.64|41.85|28|N|,Windsor|CA|US|-122.82|38.55|27|N|,Winejok|northern bahr al ghazal|SS|27.57|9.01|300|W|,Winnetka|CA|US|-118.57|34.21|47|N|,Winnipeg|MB|CA|-97.15|49.88|749|NW|vinnipeg;winnipeg city,Winona|MN|US|-91.64|44.05|27|N|,Winston-Salem|NC|US|-80.24|36.1|241|NW|,Winter Garden|FL|US|-81.59|28.57|40|N|,Winter Haven|FL|US|-81.73|28.02|37|N|,Winter Park|FL|US|-81.34|28.6|29|N|,Winter Springs|FL|US|-81.31|28.7|34|N|,Woburn|ON|CA|-79.23|43.77|53|N|,Woburn|MA|US|-71.15|42.48|39|N|,Wola|mazovia|PL|20.96|52.23|140|W|,Wollongong|new south wales|AU|150.89|-34.42|280|W|,Wolverhampton|england|GB|-2.12|52.59|263|W|,Wong Tai Sin|wong tai sin district|HK|114.18|22.35|425|W|,Wonju|gangwon do|KR|127.95|37.35|332|W|,Wonsan|kangwon do|KP|127.44|39.15|329|W|gensan,Woodburn|OR|US|-122.86|45.14|25|N|,Woodbury|MN|US|-92.96|44.92|67|N|,Woodhaven|NY|US|-73.86|40.69|36|N|,Woodland|CA|US|-121.77|38.68|58|N|,Woodland Hills|CA|US|-118.61|34.17|70|N|,Woodlands||SG|103.79|1.44|254|W|,Woodlawn|MD|US|-76.73|39.32|37|N|,Woodridge|IL|US|-88.05|41.75|33|N|,Woodside|NY|US|-73.91|40.75|41|N|,Woodstock|ON|CA|-80.75|43.13|40|N|,Woodstock|GA|US|-84.52|34.1|29|N|,Woodstock|IL|US|-88.45|42.31|25|N|,Woonsocket|RI|US|-71.51|42|41|N|,Wooster|OH|US|-81.94|40.81|26|N|,Worcester|MA|US|-71.8|42.26|206|NW|,Wroclaw|lower silesia|PL|17.03|51.1|672|W|breslau;breslavia;vratislav;bresslau;vratislavie,Wuerzburg|bavaria|DE|9.95|49.79|133|W|wurzburg;wurtzbourg;wurtzburgo;wurzburgo,Wugang|hunan|CN|110.63|26.73|132|W|,Wuhai|inner mongolia|CN|106.82|39.68|218|W|wu chaj,Wuhan|hubei|CN|114.27|30.58|10392|W|vuhan;vu han;wu chan,Wuhu|anhui|CN|118.43|31.35|1598|W|wu chu,Wujiaqu|xinjiang|CN|87.52|44.16|154|W|,Wuppertal|north rhine westphalia|DE|7.15|51.26|360|W|,Wuwei|gansu|CN|102.63|37.93|1010|W|,Wuxi|jiangsu|CN|120.29|31.57|4396|W|vo tich;wu si,Wuxue|hubei|CN|115.55|29.85|220|W|,Wuyishan|fujian|CN|118.03|27.76|137|W|ciudad de wuyishan;vu di son;wuyishan city,Wuzhong|ningxia|CN|106.2|37.99|7202|W|,Wuzhou|guangxi|CN|111.29|23.48|761|W|ngo chau;wu cou,Wyandotte|MI|US|-83.15|42.21|25|N|,Wylie|TX|US|-96.54|33.02|46|N|,Wyoming|MI|US|-85.71|42.91|75|N|,Xai-Xai|gaza province|MZ|33.64|-25.05|154|W|,Xalapa de Enriquez|MX30|MX|-96.92|19.53|424|NW|xalapa;jalapa;jalapa enriques;jalapa enriquez,Xalisco|MX18|MX|-104.9|21.44|35|N|jalisco,Xenia|OH|US|-83.93|39.68|25|N|,Xi'an|shaanxi|CN|108.93|34.26|9600|W|tay an;xian,Xiamen|fujian|CN|118.08|24.48|4617|W|amoy;sia men,Xiangtan|hunan|CN|112.9|27.85|959|W|siang tchan;tuong dam,Xiangyang|hubei|CN|112.14|32.04|1294|W|siang jang;tuong duong;xiangfan,Xianning|hubei|CN|114.32|29.84|512|W|,Xiantao|hubei|CN|113.44|30.37|239|W|sientaochen,Xianyang|shaanxi|CN|108.7|34.34|1034|W|ham duong;sien jang,Xiaogan|hubei|CN|113.92|30.93|908|W|siao kan,Xiayang|shanghai|CN|121.12|31.15|137|W|,Xichang|sichuan|CN|102.26|27.9|481|W|,Xico|MX15|MX|-98.95|19.27|384|NW|san miguel xico,Xicotepec de Juarez|MX21|MX|-97.96|20.28|39|N|,Xilinhot|inner mongolia|CN|116.07|43.94|349|W|,Xindi|hubei|CN|113.47|29.82|175|W|,Xingning|guangdong|CN|115.72|24.15|274|W|,Xingtai|hebei|CN|114.49|37.06|798|W|hinh dai;sing tchaj,Xingyi|guizhou|CN|104.91|25.1|322|W|,Xining|qinghai|CN|101.76|36.63|1677|W|si ning;sining;tay ninh,Xinji|hebei|CN|115.22|37.93|145|W|,Xinqiao|shanghai|CN|121.31|31.07|155|W|,Xintai|shandong|CN|117.75|35.9|222|W|,Xinxiang|henan|CN|113.8|35.19|1047|W|,Xinyang|henan|CN|114.07|32.12|1230|W|,Xinyi|jiangsu|CN|118.35|34.38|300|W|,Xinyu|jiangxi|CN|114.93|27.8|839|W|sin ju;tan du,Xinyuan|xinjiang|CN|83.25|43.43|282|W|,Xinzhou|shanxi|CN|112.73|38.41|544|W|han chau;sin cou,Xiuying|hainan|CN|110.29|20|290|W|,Xizhi|taipei|TW|121.66|25.07|204|W|hsichih;xizhi district,Xochimilco|MX09|MX|-99.1|19.25|442|NW|delegacion xochimilco,Xuan Loc|dong nai|VN|107.23|10.93|253|W|,Xuancheng|anhui|CN|118.76|30.95|774|W|,Xuanhua|hebei|CN|115.06|40.61|373|W|,Xuchang|henan|CN|113.86|34.03|1265|W|,Xuhui|shanghai|CN|121.45|31.2|1109|W|,Xuzhou|jiangsu|CN|117.28|34.2|1253|W|pengcheng,Ya'an|sichuan|CN|103|29.99|612|W|,Yachiyo|chiba|JP|140.12|35.74|199|W|,Yaizu|shizuoka|JP|138.32|34.87|139|W|,Yakima|WA|US|-120.51|46.6|93|N|,Yakutsk|sakha|RU|129.72|62.03|235|W|iakoutsk;jakutsk,Yamagata|yamagata|JP|140.37|38.23|248|W|,Yamaguchi|yamaguchi|JP|131.47|34.18|193|W|jamaguci,Yamato|kanagawa|JP|139.45|35.47|242|W|,Yamoussoukro|lacs district|CI|-5.28|6.82|275|W|jamusukro;yamusukro,Yamuna Nagar|haryana|IN|77.28|30.13|217|W|yamunanagar,Yan'an|shaanxi|CN|109.49|36.6|475|W|,Yanbu|medina region|SA|38.06|24.09|200|W|yambo;yanbu al bahr;yenbo,Yancheng|jiangsu|CN|120.16|33.36|1615|W|diem thanh;jen ccheng,Yangcheng|chongqing|CN|106.26|30|186|W|,Yangchun|guangdong|CN|111.78|22.17|153|W|,Yanghang|shanghai|CN|121.44|31.37|204|W|,Yangjiang|guangdong|CN|111.96|21.86|1292|W|duong giang;jang tiang,Yangju|gyeonggi do|KR|127.06|37.83|179|W|,Yangon|yangon|MM|96.16|16.81|4477|W|rangoon;rangoun;rangum;rangun;yankoun,Yangpu|shanghai|CN|121.52|31.26|1210|W|,Yangquan|shanxi|CN|113.56|37.86|731|W|jang cchuan,Yangsan|gyeongsangnam do|KR|129.03|35.34|358|W|jangsan,Yangshuo|guangxi|CN|110.49|24.78|300|W|,Yangzhou|jiangsu|CN|119.44|32.4|1584|W|duong chau;jang cou,Yanji|jilin|CN|129.5|42.89|326|W|dien cat,Yantai|shandong|CN|121.44|37.48|2227|W|jen tchaj;yen dai;chefoo,Yanzhou|shandong|CN|116.83|35.55|254|W|,Yao|osaka|JP|135.6|34.62|273|W|,Yaounde|centre|CM|11.52|3.87|1299|W|jaunde;yaunde,Yarmouth|MA|US|-70.23|41.71|25|N|,Yaroslavl|yaroslavl oblast|RU|39.87|57.63|608|W|jaroslawl;iaroslavl;jaroslavl;jaroslaw,Yasenevo|moscow|RU|37.52|55.61|180|W|,Yautepec|MX17|MX|-99.07|18.88|105|N|yautepec de zaragoza,Yawnghwe|shan state|MM|96.93|20.66|188|W|,Yazd|yazd province|IR|54.37|31.9|477|W|jasd;jazd,Yei|central equatoria|SS|30.68|4.09|260|W|,Yekaterinburg|sverdlovsk oblast|RU|60.62|56.86|1495|W|jekaterinburg;ekaterimburgo;ekaterinbourg;ekaterinburg;ekaterinburgo;jekaterinenburg;jekaterynburg,Yenagoa|bayelsa state|NG|6.27|4.93|365|W|,Yeosu|jeollanam do|KR|127.66|34.76|268|W|josu,Yerevan|yerevan|AM|44.51|40.18|1144|W|erevan;erivan;erywan;jerevan;jerewan,Yibin|sichuan|CN|104.64|28.76|836|W|nghi tan,Yichang|hubei|CN|111.28|30.71|1350|W|i cchang;nghi xuong,Yichun|jiangxi|CN|114.4|27.83|1045|W|i cchun;nghi xuan,Yichun|heilongjiang|CN|128.88|47.72|155|W|i cchun;y xuan,Yinchuan|ningxia|CN|106.27|38.47|1487|W|jin cchuan;ngan xuyen,Yingkou|liaoning|CN|122.23|40.66|591|W|newchwang;eiko,Yingtan|jiangxi|CN|117|28.23|214|W|jing tchan;ung dam,Yintai|shaanxi|CN|109.1|35.12|217|W|,Yishun New Town||SG|103.83|1.43|228|W|,Yiwu|zhejiang|CN|120.08|29.32|1481|W|,Yixing|jiangsu|CN|119.82|31.36|1285|W|,Yizhou|guangxi|CN|108.67|24.5|155|W|,Yogyakarta|yogyakarta|ID|110.36|-7.8|375|W|di yogyakarta;jogjakarta;kota yogyakarta,Yokkaichi|mie|JP|136.62|34.97|305|W|,Yokohama|kanagawa|JP|139.65|35.43|3777|W|jokohama,Yokosuka|kanagawa|JP|139.67|35.28|409|W|jokosuka,Yola|adamawa|NG|12.48|9.21|460|W|,Yonago|tottori|JP|133.33|35.43|148|W|,Yong'an|chongqing|CN|109.46|31.02|144|W|fengjie;feng chieh;kweichow,Yongchuan|chongqing|CN|105.89|29.35|192|W|,Yongji|shanxi|CN|110.44|34.87|452|W|,Yongkang|taiwan|TW|120.26|23.02|233|W|vinh khang;yongkang district,Yongzhou|hunan|CN|111.61|26.42|1020|W|lingling,Yonkers|NY|US|-73.9|40.93|201|NW|,Yopal|casanare department|CO|-72.39|5.34|168|W|,Yorba Linda|CA|US|-117.81|33.89|67|N|,York|england|GB|-1.08|53.96|156|W|,York|PA|US|-76.73|39.96|43|N|,York University Heights|ON|CA|-79.49|43.77|27|N|,Yoshkar-Ola|mariy el republic|RU|47.89|56.64|268|W|iochkar ola;joschkar ola;josjkar ola;joszkar ola;joskar ola,Youngstown|OH|US|-80.65|41.1|64|N|,Yuba City|CA|US|-121.62|39.14|66|N|kota yuba,Yucaipa|CA|US|-117.04|34.03|53|N|,Yuci|shanxi|CN|112.73|37.68|235|W|,Yuen Long|yuen long|HK|114.03|22.45|200|W|,Yuen Long Kau Hui|yuen long|HK|114.03|22.45|169|W|,Yuen Long San Hui|yuen long|HK|114.03|22.43|200|W|,Yuepu|shanghai|CN|121.42|31.43|139|W|,Yueyang|hunan|CN|113.09|29.37|991|W|jue jang,Yukon|OK|US|-97.76|35.51|25|N|,Yulin|guangxi|CN|110.15|22.63|1056|W|ju lin,Yuma|AZ|US|-114.62|32.73|95|N|,Yuncheng|shanxi|CN|110.99|35.02|680|W|jun ccheng,Yunfu|guangdong|CN|112.04|22.93|2612|W|jun fu;van phu,Yunlong|jiangsu|CN|117.25|34.25|345|W|,Yunusobod|tashkent|UZ|69.28|41.37|352|W|,Yuriria|MX11|MX|-101.13|20.21|25|N|,Yushu|qinghai|CN|97.01|33|141|W|,Yuzhno-Sakhalinsk|sakhalin oblast|RU|142.74|46.95|198|W|juzjno sakhalinsk;ioujno sakhalinsk;iujno sahalinsk;iujno sakhalinsk;joezjno sachalinsk;juschno sachalinsk;juzjno sachalinsk;juznosachalinsk;juzno sachalinsk;juzno sahalinsk;yujno sahalinsk;yuzhno sajalinsk,Zaanstad|north holland|NL|4.81|52.45|140|W|,Zabrze|silesia|PL|18.79|50.32|192|W|hindenburg,Zacapu|MX16|MX|-101.79|19.82|50|N|,Zacatecas|MX32|MX|-102.58|22.77|129|N|zacatecas city,Zacatelco|MX29|MX|-98.24|19.22|42|N|,Zacatlan|MX21|MX|-97.96|19.94|33|N|,Zagazig|sharqia|EG|31.5|30.59|430|W|,Zagreb|zagreb|HR|15.98|45.81|663|W|zagabria;zagrep;zagrzeb;zahreb;agram,Zahedan|sistan and baluchestan|IR|60.86|29.5|551|W|,Zama|kanagawa|JP|139.39|35.49|132|W|,Zamboanga|zamboanga peninsula|PH|122.07|6.91|1018|W|zamboanga city,Zamora de Hidalgo|MX16|MX|-102.29|19.98|186|NW|zamora,Zanesville|OH|US|-82.01|39.94|25|N|,Zango|luanda|AO|13.38|-9.01|198|W|,Zanjan|zanjan|IR|48.5|36.68|357|W|zandschan,Zanzibar|zanzibar urban west|TZ|39.2|-6.16|709|W|sansibar stadt;zanzibar by,Zaoyang|hubei|CN|112.75|32.13|184|W|,Zaozhuang|shandong|CN|117.55|34.86|899|W|cao cuang,Zapopan|MX14|MX|-103.39|20.72|1476|NW|,Zaporizhzhya|zaporizhzhia|UA|35.12|47.85|710|W|zaporizjzja;zaporizzja;alessandrovia;saporischschja;zaporiggia;zaporijjia;zaporiyia;zaporizhzhia;zaporoye;zaporozhye;zaporoze;zaporozi;alexandrovsk;saporoschje;saporoshje,Zapotlanejo|MX14|MX|-103.07|20.62|32|N|,Zaragoza|aragon|ES|-0.88|41.66|686|W|saragossa;saragosse;saragozza;saragoca;zaragosa,Zaria|kaduna state|NG|7.72|11.11|980|W|,Zarichnyi|sumy|UA|34.81|50.9|150|W|zarichnyi rayon,Zarqa|zarqa|JO|36.09|32.07|792|W|zarka,Zawiya|az zawiyah|LY|12.73|32.75|186|W|,Zelenograd|moscow|RU|37.18|55.98|215|W|selenograd,Zemun|central serbia|RS|20.4|44.85|155|W|semlin,Zenica|federation of b h|BA|17.9|44.2|164|W|,Zeytinburnu|istanbul|TR|28.9|40.99|280|W|,Zhabei|shanghai|CN|121.46|31.26|840|W|,Zhalantun|inner mongolia|CN|122.74|48.01|132|W|,Zhangjiagang|jiangsu|CN|120.54|31.86|1432|W|,Zhangjiajie|hunan|CN|110.48|29.13|441|W|cang tia tie,Zhangjiakou|hebei|CN|114.87|40.78|692|W|cang tia kchou,Zhangye|gansu|CN|100.45|38.93|507|W|cang jie,Zhangzhou|fujian|CN|117.66|24.51|589|W|chuong chau;cang cou,Zhanjiang|guangdong|CN|110.39|21.23|1400|W|,Zhaodong|heilongjiang|CN|125.96|46.05|154|W|,Zhaoqing|guangdong|CN|112.46|23.05|1553|W|cao cching;shiu hing,Zhaotong|yunnan|CN|103.72|27.32|787|W|chieu thong;cao tchung,Zheleznodorozhnyy|moscow oblast|RU|38.02|55.74|141|W|zjeleznodorozjnyj,Zhengding|hebei|CN|114.57|38.15|193|W|,Zhengzhou|henan|CN|113.65|34.76|4253|W|czengczou;cengcou;ceng cou,Zhenjiang|jiangsu|CN|119.46|32.21|950|W|chinkiang,Zhenping|henan|CN|112.23|33.03|181|W|,Zhenzhou|jiangsu|CN|119.17|32.28|176|W|icheng ku,Zhicheng|hubei|CN|111.5|30.3|159|W|chihkiang,Zhongshan|guangdong|CN|113.38|22.52|3841|W|trung son;xiangshan;cung san,Zhongwei|ningxia|CN|105.19|37.51|1174|W|cung wej,Zhoukou|henan|CN|114.63|33.63|505|W|cou kchou,Zhoushan|zhejiang|CN|122.2|29.99|882|W|,Zhu Cheng City|shandong|CN|119.4|36|1000|W|,Zhubei|taiwan|TW|121.01|24.84|212|W|cu pej,Zhucheng|shandong|CN|119.4|35.99|499|W|,Zhuhai|guangdong|CN|113.57|22.28|2207|W|cu chaj,Zhulebino|moscow|RU|37.85|55.7|150|W|,Zhumadian|henan|CN|114.03|32.98|721|W|,Zhuzhou|hunan|CN|113.15|27.83|1129|W|chu chau;cu cou;jianning,Zhytomyr|zhytomyr oblast|UA|28.68|50.26|261|W|jytomyr;jitomir;schytomyr;zjytomyr;zytomierz;zitomir;zytomyr,Zibo|shandong|CN|118.06|36.79|3129|W|c po;truy bac,Zigong|sichuan|CN|104.78|29.34|1262|W|c kung,Ziguinchor|ziguinchor|SN|-16.27|12.57|214|W|,Zinacantepec|MX15|MX|-99.73|19.28|54|N|,Zinder|zinder region|NE|8.99|13.81|318|W|,Zionsville|IN|US|-86.26|39.95|26|N|,Zipaquira|cundinamarca|CO|-74|5.02|130|W|,Zitong|chongqing|CN|105.83|30.18|212|W|,Ziyang|sichuan|CN|104.65|30.12|905|W|,Zlatoust|chelyabinsk|RU|59.65|55.17|191|W|slatoust;zlato oest;zlatooust,Zliten|misratah|LY|14.57|32.47|203|W|zalitan;zlitan,Zoucheng|shandong|CN|116.97|35.4|277|W|trau thanh,Zuerich|zurich|CH|8.55|47.37|415|W|zurich;curych;zurigo;zurique;zurych;zurih,Zuglo|budapest|HU|19.11|47.52|130|W|lerchenfeld,Zumpango|MX15|MX|-99.1|19.8|280|NW|zumpango de ocampo,Zunyi|guizhou|CN|106.91|27.69|2037|W|cun i;tuan nghia";/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var wY={\u0142:"l",\u0141:"L",\u0131:"i",\u00F8:"o",\u00D8:"O",\u0111:"d",\u0110:"D",\u00F0:"d",\u00D0:"D"},WY=[1632,1776,2406,3664,65296],CY=/[\u0300-\u036F]/g;function AY(e){let t=wY[e];if(t)return t;let a=e.codePointAt(0);for(let n of WY)if(a>=n&&a<=n+9)return String.fromCharCode(48+a-n);if(a>=65313&&a<=65338||a>=65345&&a<=65370)return String.fromCharCode(a-65248);let r=e.normalize("NFD").replace(CY,"");return r.length===1?r:e}function Cn(e){if(!e)return e??"";let t="";for(let a of e)t+=AY(a);return t}var DM=new RegExp("([\\p{Ll}\\p{Nd}])(\\p{Lu})","gu"),_Y=/[_\-./]+/g,MY=/[^\p{L}\p{M}\p{N}\x00-\x7F]/gu;function Wa(e){return e?String(e).normalize("NFC").replace(DM,"$1 $2").replace(_Y," ").replace(MY," ").toLowerCase().split(/\s+/).filter(t=>t.length>0):[]}function LM(e,t={}){if(!e)return[];let a=String(e).normalize("NFC");return t.camel&&(a=a.replace(DM,"$1 $2")),a.toLowerCase().split(/[^\p{L}\p{M}]+/u).filter(r=>r.length>0)}function gr(e){let t=Wa(e),a=Wa(Cn(String(e??"").normalize("NFC")));return{words:t,folded:a.length===t.length?a:t.map(Cn)}}var xY=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Thai}\u30FC]/u,IY=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Thai}\u30FC]+/gu;function PY(e){return!!e&&xY.test(e)}function UY(e){return e?String(e).normalize("NFC").match(IY)??[]:[]}var D8=3;function wi(e,t,a=D8){return!e||!t||e.length<=t.length||!e.endsWith(t)?!1:Array.from(e.slice(0,e.length-t.length)).length>=a}var TY=2;function $g(e,t){let a=Ga(t);if(!e||!a||a.gluedPrefixes.length===0)return[];let r=[];for(let n of[...a.gluedPrefixes].sort((i,o)=>o.length-i.length))if(e.length>n.length&&e.startsWith(n)){let i=e.slice(n.length);Array.from(i).length>=TY&&!r.includes(i)&&r.push(i)}return r}var EY=2,RY=new RegExp("\\p{Script=Hangul}","u");function Og(e,t){return!e||!t||!RY.test(t)?!1:wi(e,t,EY)}var Dg=2;function jM(e,t,a){if(!e||!t)return null;let r=Ga(a);if(!r)return null;let n=t.normalize("NFC").toLowerCase();if(PY(n))return Array.from(n).length<Dg?null:UY(e).some(l=>l.includes(n))?"substring":null;let i=gr(e),o=r.foldSensitive?i.words:i.folded,s=r.foldSensitive?n:Cn(t.normalize("NFC")).toLowerCase();return o.includes(s)?"word":r.compounds&&o.some(l=>wi(l,s))||o.some(l=>Og(l,s))?"suffix":r.gluedPrefixes.length&&o.some(l=>$g(l,r.code).includes(s))?"prefix":null}function Lg(e){return e!=null?e.toString():""}function Xa(e,t){if(!e.length)return NaN;if(e.length===1)return e[0];let a=(e.length-1)*t,r=Math.floor(a),n=Math.ceil(a);return r===n?e[r]:e[r]+(e[n]-e[r])*(a-r)}function L8(e){if(!e)return 0;let t=0xcbf29ce484222325n,a=0x100000001b3n,r=t;for(let n=0;n<e.length;n++)r^=BigInt(e.charCodeAt(n)),r=r*a&0xFFFFFFFFFFFFFFFFn;return Number(r&0x1FFFFFFFFFFFFFn)}function jg(){let e=typeof globalThis<"u"?globalThis:{};if(e.crypto&&typeof e.crypto.getRandomValues=="function"){let t=new Uint32Array(1);return e.crypto.getRandomValues(t),t[0]/4294967296}return Math.floor(Date.now()%4294967295)/4294967296}function Fg(e){return!!e&&e.isRefusal===!0}var Bg=30;function Wi(e){let t=Date.parse(e);if(isNaN(t))return null;let a=new Date(t);if(zY.test(e)||$Y.test(e.trim())||OY.test(e))return a;let r=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds())),n=a.getFullYear();return n>=0&&n<100&&r.setUTCFullYear(n),r}function Hg(e){return!(e instanceof Date)||isNaN(e.getTime())?null:e.getUTCHours()===0&&e.getUTCMinutes()===0&&e.getUTCSeconds()===0&&e.getUTCMilliseconds()===0?"utc":e.getHours()===0&&e.getMinutes()===0&&e.getSeconds()===0&&e.getMilliseconds()===0?"local":null}function Gg(e){let t=Hg(e);if(!t)return null;let a=e;if(t==="utc")return a.toISOString().slice(0,10);let r=n=>(n<10?"0":"")+n;return`${a.getFullYear()}-${r(a.getMonth()+1)}-${r(a.getDate())}`}function j8(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())),a=e.getFullYear();return a>=0&&a<100&&t.setUTCFullYear(a),t}function Kg(e){let t=!1;for(let a of e)if(!(a==null||a==="")){if(!(a instanceof Date)||isNaN(a.getTime()))return!1;Hg(a)===null&&(t=!0)}return t}function Xg(e){let t=!1,a=!1;for(let r of e)if(!(r==null||r==="")){if(!(r instanceof Date)||isNaN(r.getTime())||(a=!0,!(r.getUTCFullYear()===1899&&r.getUTCMonth()===11&&r.getUTCDate()===30)))return!1;!t&&(r.getUTCHours()||r.getUTCMinutes()||r.getUTCSeconds()||r.getUTCMilliseconds())&&(t=!0)}return a&&t}var zY=/^\s*\d{4}(-\d{2}(-\d{2})?)?\s*$/,$Y=/(?:Z|[+-]\d{2}:?\d{2})$/i,OY=/\b(?:GMT|UTC)\b/i;/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var KM=new Set(["n a","none","null","nil","unknown","not applicable","not available","not specified","unspecified","missing","blank","empty","tbd","to be determined"]),DY=new Set(Array.from(KM).filter(e=>e.includes(" ")&&e!=="n a").map(e=>e.replace(/ /g,"")));function B8(e){return e?KM.has(e)||DY.has(e.replace(/ /g,"")):!0}var v0=80;function Ca(e){return mr(e.normalize("NFD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/[^\p{L}\p{Nd}\s]/gu," ").replace(/\s+/g," ").trim()}function ef(e){return Wn(e)}var LY="AD AND,AE ARE,AF AFG,AG ATG,AI AIA,AL ALB,AM ARM,AO AGO,AQ ATA,AR ARG,AS ASM,AT AUT,AU AUS,AW ABW,AX ALA,AZ AZE,BA BIH,BB BRB,BD BGD,BE BEL,BF BFA,BG BGR,BH BHR,BI BDI,BJ BEN,BL BLM,BM BMU,BN BRN,BO BOL,BQ BES,BR BRA,BS BHS,BT BTN,BV BVT,BW BWA,BY BLR,BZ BLZ,CA CAN,CC CCK,CD COD,CF CAF,CG COG,CH CHE,CI CIV,CK COK,CL CHL,CM CMR,CN CHN,CO COL,CR CRI,CU CUB,CV CPV,CW CUW,CX CXR,CY CYP,CZ CZE,DE DEU,DJ DJI,DK DNK,DM DMA,DO DOM,DZ DZA,EC ECU,EE EST,EG EGY,EH ESH,ER ERI,ES ESP,ET ETH,FI FIN,FJ FJI,FK FLK,FM FSM,FO FRO,FR FRA,GA GAB,GB GBR,GD GRD,GE GEO,GF GUF,GG GGY,GH GHA,GI GIB,GL GRL,GM GMB,GN GIN,GP GLP,GQ GNQ,GR GRC,GS SGS,GT GTM,GU GUM,GW GNB,GY GUY,HK HKG,HM HMD,HN HND,HR HRV,HT HTI,HU HUN,ID IDN,IE IRL,IL ISR,IM IMN,IN IND,IO IOT,IQ IRQ,IR IRN,IS ISL,IT ITA,JE JEY,JM JAM,JO JOR,JP JPN,KE KEN,KG KGZ,KH KHM,KI KIR,KM COM,KN KNA,KP PRK,KR KOR,KW KWT,KY CYM,KZ KAZ,LA LAO,LB LBN,LC LCA,LI LIE,LK LKA,LR LBR,LS LSO,LT LTU,LU LUX,LV LVA,LY LBY,MA MAR,MC MCO,MD MDA,ME MNE,MF MAF,MG MDG,MH MHL,MK MKD,ML MLI,MM MMR,MN MNG,MO MAC,MP MNP,MQ MTQ,MR MRT,MS MSR,MT MLT,MU MUS,MV MDV,MW MWI,MX MEX,MY MYS,MZ MOZ,NA NAM,NC NCL,NE NER,NF NFK,NG NGA,NI NIC,NL NLD,NO NOR,NP NPL,NR NRU,NU NIU,NZ NZL,OM OMN,PA PAN,PE PER,PF PYF,PG PNG,PH PHL,PK PAK,PL POL,PM SPM,PN PCN,PR PRI,PS PSE,PT PRT,PW PLW,PY PRY,QA QAT,RE REU,RO ROU,RS SRB,RU RUS,RW RWA,SA SAU,SB SLB,SC SYC,SD SDN,SE SWE,SG SGP,SH SHN,SI SVN,SJ SJM,SK SVK,SL SLE,SM SMR,SN SEN,SO SOM,SR SUR,SS SSD,ST STP,SV SLV,SX SXM,SY SYR,SZ SWZ,TC TCA,TD TCD,TF ATF,TG TGO,TH THA,TJ TJK,TK TKL,TL TLS,TM TKM,TN TUN,TO TON,TR TUR,TT TTO,TV TUV,TW TWN,TZ TZA,UA UKR,UG UGA,UM UMI,US USA,UY URY,UZ UZB,VA VAT,VC VCT,VE VEN,VG VGB,VI VIR,VN VNM,VU VUT,WF WLF,WS WSM,XK XKX,YE YEM,YT MYT,ZA ZAF,ZM ZMB,ZW ZWE",fr=(()=>{let e=new Map;for(let t of LY.split(",")){let[a,r]=t.split(" ");a&&r&&e.set(a,r)}return e})(),tf=new Set(fr.keys()),af=new Set(fr.values()),jY=["en","fr","es","de","it","pt","ru","ja","zh","ko","ar","hi","tr","pl","he","nl","sv","fi","nb","da","cs","el","uk","ro","id","vi","th","sk","hu","hr"],FY={usa:"USA","u.s.":"USA","u.s.a.":"USA",us:"USA",america:"USA","united states of america":"USA","the united states":"USA",uk:"GBR","u.k.":"GBR","great britain":"GBR",britain:"GBR",england:"GBR","south korea":"KOR","north korea":"PRK",korea:"KOR","ivory coast":"CIV","cote d ivoire":"CIV",vietnam:"VNM",laos:"LAO",syria:"SYR",iran:"IRN",russia:"RUS",moldova:"MDA",tanzania:"TZA",bolivia:"BOL",venezuela:"VEN",brunei:"BRN","czech republic":"CZE",czechia:"CZE",slovakia:"SVK",uae:"ARE","united arab emirates":"ARE",drc:"COD","dr congo":"COD","democratic republic of the congo":"COD","republic of the congo":"COG",congo:"COG",swaziland:"SWZ",eswatini:"SWZ","cape verde":"CPV","cabo verde":"CPV",burma:"MMR",myanmar:"MMR",holland:"NLD","the netherlands":"NLD",netherlands:"NLD",vatican:"VAT","vatican city":"VAT",palestine:"PSE",macau:"MAC",macao:"MAC","hong kong":"HKG",taiwan:"TWN",turkey:"TUR",turkiye:"TUR",macedonia:"MKD","north macedonia":"MKD",gambia:"GMB","the gambia":"GMB",bahamas:"BHS","the bahamas":"BHS","east timor":"TLS","timor leste":"TLS"},BY=Object.freeze({"Antigua and Barbuda":"ATG","Bosnia and Herzegovina":"BIH","Heard Island and McDonald Islands":"HMD","Saint Kitts and Nevis":"KNA","St Kitts and Nevis":"KNA","Saint Pierre and Miquelon":"SPM","St Pierre and Miquelon":"SPM","Saint Vincent and the Grenadines":"VCT","St Vincent and the Grenadines":"VCT","Sao Tome and Principe":"STP","South Georgia and the South Sandwich Islands":"SGS","Svalbard and Jan Mayen":"SJM","Trinidad and Tobago":"TTO","Turks and Caicos Islands":"TCA","Turks and Caicos":"TCA","Wallis and Futuna":"WLF","Saint Helena, Ascension and Tristan da Cunha":"SHN","Bonaire, Sint Eustatius and Saba":"BES","United Kingdom of Great Britain and Northern Ireland":"GBR","Bolivia, Plurinational State of":"BOL","Bolivia (Plurinational State of)":"BOL","Brunei Darussalam":"BRN","Congo, The Democratic Republic of the":"COD","Congo, Democratic Republic of the":"COD","Democratic Republic of Congo":"COD","Falkland Islands (Malvinas)":"FLK","Holy See (Vatican City State)":"VAT","Holy See":"VAT","Iran, Islamic Republic of":"IRN","Iran (Islamic Republic of)":"IRN","Islamic Republic of Iran":"IRN","Korea, Republic of":"KOR","Republic of Korea":"KOR","Korea (the Republic of)":"KOR","Korea, Democratic People's Republic of":"PRK","Democratic People's Republic of Korea":"PRK","Korea (the Democratic People's Republic of)":"PRK","Lao People's Democratic Republic":"LAO","Micronesia, Federated States of":"FSM","Micronesia (Federated States of)":"FSM","Moldova, Republic of":"MDA","Republic of Moldova":"MDA","Palestine, State of":"PSE","State of Palestine":"PSE","Russian Federation":"RUS","Syrian Arab Republic":"SYR","Taiwan, Province of China":"TWN","Tanzania, United Republic of":"TZA","United Republic of Tanzania":"TZA","Venezuela, Bolivarian Republic of":"VEN","Venezuela (Bolivarian Republic of)":"VEN","Viet Nam":"VNM","Virgin Islands, British":"VGB","Virgin Islands, U.S.":"VIR","Saint Martin (French part)":"MAF","Sint Maarten (Dutch part)":"SXM","Netherlands (Kingdom of the)":"NLD","Macedonia, the former Yugoslav Republic of":"MKD",Kosovo:"XKX","Republic of Kosovo":"XKX"}),Vg=null,Qg=null;function N0(){if(Vg)return Vg;let e=new Map,t=[],a=["en",...jY.filter(n=>n!=="en")];for(let n of a){let i=null;try{i=new Intl.DisplayNames([n],{type:"region"})}catch{continue}for(let[o,s]of fr){let l;try{l=i.of(o)}catch{l=void 0}if(!l||l===o)continue;let u=Ca(l);u&&!e.has(u)&&e.set(u,s),t.push([l,s])}}for(let[n,i]of Object.entries(BY)){let o=Ca(n);o&&!e.has(o)&&e.set(o,i),t.push([n,i])}for(let[n,i]of Object.entries(FY)){let o=Ca(n);o&&e.set(o,i),t.push([n,i])}let r=new m0;for(let[n,i]of t){let o=Ca(n);e.get(o)===i&&(r.add(n,i),r.add(o,i))}return Vg=e,Qg=r,e}function HY(){return Qg||N0(),Qg}function nf(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;let a=Ca(t);return N0().get(a)||(B8(a)?null:HY().get(ef(t))??null)}function H8(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;let a=t.toUpperCase();return a.length===3&&af.has(a)?a:a.length===2&&tf.has(a)?fr.get(a)??null:nf(t)}var XM={europe:[-25,34,45,71.5],asia:[25,-11,150,56],africa:[-26,-35,58,38],"south-america":[-92,-56,-34,13],"north-america":[-168,7,-52,72],oceania:[110,-48,200,20]};function GY(e,t,a){let r=XM[a];return!r||e<r[1]||e>r[3]?!1:t>=r[0]&&t<=r[2]?!0:r[2]>180&&t+360>=r[0]&&t+360<=r[2]}var KY=[[24.4,49.4,-125,-66.9],[51.2,71.5,-168,-129.9],[18.9,22.3,-160.3,-154.8]],XY=[7,72,-172,-52];function FM(e,t,a){return e>=a[0]&&e<=a[1]&&t>=a[2]&&t<=a[3]}var Va=e=>Math.round(e*10)/10;function VM(e,t=3){let a=[],r=[],n=0,i=0,o=Object.keys(XM),s=new Map(o.map(h=>[h,0]));for(let h of e){let p=h?.lat,m=h?.lon;if(typeof p!="number"||typeof m!="number"||!isFinite(p)||!isFinite(m)||p<-90||p>90||m<-180||m>180)continue;a.push(p),r.push(m);for(let y of o)GY(p,m,y)&&s.set(y,s.get(y)+1);let g=h?.country?String(h.country).trim().toUpperCase():"",f=g?Ci(g):null;f?((g==="US"||g==="USA")&&n++,f==="north-america"&&i++):(KY.some(y=>FM(p,m,y))&&n++,FM(p,m,XY)&&i++)}let l=a.length;if(l<t)return null;a.sort((h,p)=>h-p),r.sort((h,p)=>h-p);let u={},c,d=0;for(let h of[...o].sort()){let p=s.get(h);u[h]=Va(p/l*100),p>d&&(d=p,c=h)}return{pctUsa:Va(n/l*100),pctNa:Va(i/l*100),latP5:Va(Xa(a,.05)),latP95:Va(Xa(a,.95)),lonP5:Va(Xa(r,.05)),lonP95:Va(Xa(r,.95)),n:l,regionPct:u,...c?{dominantFrame:c,dominantFramePct:Va(d/l*100)}:{}}}var BM={"north-america":"AG AI AW BB BL BM BQ BS BZ CA CR CU CW DM DO GD GL GP GT HN HT JM KN KY LC MF MQ MS MX NI PA PM PR SV SX TC TT US VC VG VI","south-america":"AR BO BR CL CO EC FK GF GY PE PY SR UY VE",europe:"AD AL AT AX BA BE BG BY CH CY CZ DE DK EE ES FI FO FR GB GG GI GR HR HU IE IM IS IT JE LI LT LU LV MC MD ME MK MT NL NO PL PT RO RS RU SE SI SJ SK SM UA VA XK",africa:"AO BF BI BJ BW CD CF CG CI CM CV DJ DZ EG EH ER ET GA GH GM GN GQ GW KE KM LR LS LY MA MG ML MR MU MW MZ NA NE NG RE RW SC SD SH SL SN SO SS ST SZ TD TG TN TZ UG YT ZA ZM ZW",asia:"AE AF AM AZ BD BH BN BT CC CN CX GE HK ID IL IN IO IQ IR JO JP KG KH KP KR KW KZ LA LB LK MM MN MO MV MY NP OM PH PK PS QA SA SG SY TH TJ TL TM TR TW UZ VN YE",oceania:"AS AU CK FJ FM GU KI MH MP NC NF NR NU NZ PF PG PN PW SB TK TO TV UM VU WF WS",antarctica:"AQ BV GS HM TF"},F8=(()=>{let e=new Map;for(let t of Object.keys(BM))for(let a of BM[t].split(/\s+/))a&&e.set(a,t);return e})();function VY(e){for(let[t,a]of e){let r=F8.get(t);r&&!F8.has(a)&&F8.set(a,r)}}VY(fr);function Ci(e){if(!e)return null;let t=String(e).trim().toUpperCase();if(!t)return null;let a=F8.get(t);if(a)return a;let r=H8(String(e));return r?F8.get(r)??null:null}function qM(e,t=2){let a=new Map,r=0;for(let[s,l]of e){let u=Ci(s);if(!u)continue;let c=typeof l=="number"&&isFinite(l)&&l>0?l:1;a.set(u,(a.get(u)??0)+c),r+=c}if(r<t||!a.size)return null;let n=0;for(let[s,l]of e)qY(s)&&(n+=typeof l=="number"&&isFinite(l)&&l>0?l:1);let i="europe",o=-1;for(let s of Array.from(a.keys()).sort()){let l=a.get(s);l>o&&(i=s,o=l)}return{dominantGeoRegion:i,dominantGeoRegionPct:Va(o/r*100),regionCount:a.size,middleEastPct:Va(Math.min(n,r)/r*100),n:r}}var ZM=new Set("AE BH CY EG IL IQ IR JO KW LB OM PS QA SA SY TR YE".split(" ")),HM=new Set([...ZM].map(e=>fr.get(e)).filter(e=>!!e));function qY(e){if(!e)return!1;let t=String(e).trim().toUpperCase();if(ZM.has(t)||HM.has(t))return!0;let a=H8(String(e));return!!a&&HM.has(a)}var ZY=Symbol.for("@bicharts/shape-core/admin1-lookup/v1"),An=(e=>e[ZY]??={lookup:null})(globalThis),JY=(()=>{let e=new Map;return fr.forEach((t,a)=>e.set(t,a)),e})();function JM(){return An.lookup!==null}function YM(e){let t=H8(e);return t?JY.get(t)??null:null}var YY=10;function QM(e,t={}){if(!An.lookup||!e)return{status:"unmatched"};let a=Ca(String(e)),r=An.lookup.cityByKey.get(a);if(!r||r.length===0)return{status:"unmatched"};let n=t.country?YM(t.country):null;if(t.country&&n?r=r.filter(c=>c.cc===n):t.region&&(r=r.filter(c=>Ci(c.cc)===t.region)),r.length===0)return{status:"unmatched"};let i=r.filter(c=>c.primary),o=i.length>0?i:r,s=new Map;for(let c of o){let d=`${c.cc}|${c.a1}|${c.lat}|${c.lon}`;s.has(d)||s.set(d,c)}let l=[...s.values()].sort((c,d)=>d.popK-c.popK),u=l[0];return l.length===1||u.popK>=YY*Math.max(l[1].popK,1)?!u.a1&&!u.pid?{status:"unmatched"}:{status:"resolved",cc:u.cc,admin1:u.a1,code:`${u.cc}.${u.a1}`,provinceId:u.pid||null,lat:u.lat,lon:u.lon,popK:u.popK}:{status:"ambiguous",candidates:l.length}}function ex(e,t){if(!An.lookup||!e)return[];let a=An.lookup.admin1ByKey.get(Ca(String(e)))??[],r=t?YM(t):null;return r?a.filter(n=>n.startsWith(r+".")):[...a]}function tx(e){return!An.lookup||!e?null:An.lookup.provinceOfCode.get(e)??null}function ax(e){return!An.lookup||!e?!1:An.lookup.provinceIds.has(String(e).trim().toUpperCase())}var QY={"north-america":"N",world:"W"};function eQ(e,t){let a=e.filter(r=>r.row.kinds.includes(QY[t||"north-america"]));return a.length?a:(t||"north-america")==="world"?e:a}var tQ=OM;var aQ={US:"washington",CA:"ottawa",MX:"mexico city",GB:"london",FR:"paris",DE:"berlin",IT:"rome",ES:"madrid",PT:"lisbon",NL:"amsterdam",BE:"brussels",CH:"bern",AT:"vienna",IE:"dublin",PL:"warsaw",SE:"stockholm",NO:"oslo",DK:"copenhagen",FI:"helsinki",IS:"reykjavik",CZ:"prague",SK:"bratislava",HU:"budapest",RO:"bucharest",BG:"sofia",GR:"athens",TR:"ankara",UA:"kyiv",RU:"moscow",RS:"belgrade",HR:"zagreb",SI:"ljubljana",EE:"tallinn",LV:"riga",LT:"vilnius",JP:"tokyo",CN:"beijing",KR:"seoul",KP:"pyongyang",IN:"new delhi",PK:"islamabad",BD:"dhaka",LK:"colombo",TH:"bangkok",VN:"hanoi",PH:"manila",ID:"jakarta",MY:"kuala lumpur",SG:"singapore",MM:"naypyidaw",KH:"phnom penh",LA:"vientiane",NP:"kathmandu",AF:"kabul",IR:"tehran",IQ:"baghdad",SA:"riyadh",AE:"abu dhabi",QA:"doha",KW:"kuwait city",BH:"manama",OM:"muscat",JO:"amman",LB:"beirut",SY:"damascus",IL:"jerusalem",YE:"sanaa",EG:"cairo",LY:"tripoli",TN:"tunis",DZ:"algiers",MA:"rabat",SD:"khartoum",ET:"addis ababa",KE:"nairobi",TZ:"dodoma",UG:"kampala",NG:"abuja",GH:"accra",CI:"yamoussoukro",SN:"dakar",ML:"bamako",CM:"yaounde",CD:"kinshasa",CG:"brazzaville",AO:"luanda",ZM:"lusaka",ZW:"harare",MZ:"maputo",BW:"gaborone",NA:"windhoek",ZA:"pretoria",AU:"canberra",NZ:"wellington",PG:"port moresby",FJ:"suva",BR:"brasilia",AR:"buenos aires",CL:"santiago",PE:"lima",CO:"bogota",VE:"caracas",EC:"quito",BO:"la paz",PY:"asuncion",UY:"montevideo",GY:"georgetown",SR:"paramaribo",CU:"havana",DO:"santo domingo",HT:"port au prince",JM:"kingston",TT:"port of spain",PA:"panama city",CR:"san jose",NI:"managua",HN:"tegucigalpa",SV:"san salvador",GT:"guatemala city",BZ:"belmopan",AZ:"baku",AM:"yerevan",GE:"tbilisi",KZ:"astana",UZ:"tashkent",TM:"ashgabat",KG:"bishkek",TJ:"dushanbe",MN:"ulaanbaatar",BY:"minsk",MD:"chisinau",AL:"tirana",MK:"skopje",BA:"sarajevo",ME:"podgorica",XK:"pristina",CY:"nicosia",MT:"valletta",LU:"luxembourg"},qg=null;function b0(){if(qg)return qg;let e=new Map,t=tQ,a=(r,n,i)=>{if(!r)return;let o=e.get(r);o?o.some(s=>s.row===n)||o.push({row:n,primary:i}):e.set(r,[{row:n,primary:i}])};for(let r of t.split(",")){let n=r.split("|");if(n.length<7)continue;let i={a1:n[1],cc:n[2],lon:+n[3],lat:+n[4],pop:+n[5],kinds:n[6]||"N"};n.length>8&&n[8]&&(i.tags=n[8].split(";").filter(Boolean));let o=aQ[i.cc];if(o&&Wn(n[0])===Wn(o)&&(i.tags||(i.tags=[]),i.tags.includes("capital")||i.tags.push("capital")),a(Ca(n[0]),i,!0),n.length>7&&n[7])for(let s of n[7].split(";"))a(Ca(s),i,!1)}for(let r of e.values())r.sort((n,i)=>i.row.pop-n.row.pop);return qg=e,e}var nQ=200,Zg=null;function nx(){if(Zg)return Zg;let e=new Map;for(let[t,a]of b0()){if(!t.endsWith(" city"))continue;let r=t.slice(0,-5);!r||b0().get(r)?.some(n=>n.primary)||a[0].row.pop<nQ||e.set(r,a)}return Zg=e,e}function rQ(e,t){if(!e)return;let a=GM(b0(),nx(),e);if(a)return a;if(B8(e))return;let r=t??Wn(e);if(pr(r))return GM(iQ(),oQ(),r)}function GM(e,t,a){let r=e.get(a);if(r?.some(o=>o.primary))return r;let n=t.get(a);if(!n)return r;let i=n.map(o=>({row:o.row,primary:!0}));return r?[...i,...r]:i}var Jg=null;function iQ(){return Jg||(Jg=rx(b0())),Jg}var Yg=null;function oQ(){return Yg||(Yg=rx(nx())),Yg}function rx(e){let t=new Map;for(let[a,r]of e){let n=Wn(a);if(!pr(n))continue;let i=t.get(n);if(!i){t.set(n,r.slice());continue}for(let o of r){let s=i.findIndex(l=>l.row===o.row);s<0?i.push(o):o.primary&&!i[s].primary&&(i[s]=o)}}for(let a of t.values())a.sort((r,n)=>n.row.pop-r.row.pop);return t}function ix(e){if(e==null)return null;let t=String(e).trim().replace(/\.0+$/,"");if(!t)return null;let a=/^(\d{5})(-\d{4})?$/.exec(t);return a?a[1]:/^\d{3,4}$/.test(t)?t.padStart(5,"0"):null}function rf(e,t){if(!e)return!1;let a=rQ(e);return a?eQ(a,t).length>0:!1}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var sQ="006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191193194195196197198199200201202203204205206207208209210211212214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310312313314315316317318319320321322323324325326327328329330331333334335336337338339341342344346347349350351352354355356357358359360361362363364365366367368369370371372373374376377378379380381382383384385386387388389390391392393394395396397398400401402403404405406407408409410411412413414415416417418420421422423424425426427430431432433434435436437438439440441442443444445446447448449450451452453454455456457458460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508510511512513514515516520521522523524525526527528530531532534535537538539540541542543544545546547548549550551553554556557558559560561562563564565566567570571572573574575576577580581582583584585586587588590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620622623624625626627628629630631633634635636637638639640641644645646647648650651652653654655656657658660661662664665666667668669670671672673674675676677678679680681683684685686687688689690691692693700701703704705706707708710711712713714716717718719720721722723724725726727728729730731734735736737738739740741743744745746747748749750751752753754755756757758759760761762763764765766767768769770772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816820821822823824825826827828829830831832833834835836837838840841843844845846847850851852853855856857859860863864865870871873874875877878879880881882883884890891893894895897898900902903904905906907908910911912913914915916917918919920921922923924925926927928930931932933934935936937939940941943944945946947948949950951952953954955956957958959960961967968969970971972973974975976977978979980981982983984985986988989990991992993994995996997998999",ox=new Set(sQ.match(/.{3}/g)??[]),lx=[["AL","Alabama"],["AK","Alaska"],["AZ","Arizona"],["AR","Arkansas"],["CA","California"],["CO","Colorado"],["CT","Connecticut"],["DE","Delaware"],["FL","Florida"],["GA","Georgia"],["HI","Hawaii"],["ID","Idaho"],["IL","Illinois"],["IN","Indiana"],["IA","Iowa"],["KS","Kansas"],["KY","Kentucky"],["LA","Louisiana"],["ME","Maine"],["MD","Maryland"],["MA","Massachusetts"],["MI","Michigan"],["MN","Minnesota"],["MS","Mississippi"],["MO","Missouri"],["MT","Montana"],["NE","Nebraska"],["NV","Nevada"],["NH","New Hampshire"],["NJ","New Jersey"],["NM","New Mexico"],["NY","New York"],["NC","North Carolina"],["ND","North Dakota"],["OH","Ohio"],["OK","Oklahoma"],["OR","Oregon"],["PA","Pennsylvania"],["RI","Rhode Island"],["SC","South Carolina"],["SD","South Dakota"],["TN","Tennessee"],["TX","Texas"],["UT","Utah"],["VT","Vermont"],["VA","Virginia"],["WA","Washington"],["WV","West Virginia"],["WI","Wisconsin"],["WY","Wyoming"],["DC","District of Columbia"],["PR","Puerto Rico"],["GU","Guam"],["VI","U.S. Virgin Islands"],["AS","American Samoa"],["MP","Northern Mariana Islands"]],lQ=new Set(lx.map(e=>e[0])),uQ={"Ala.":"AL","Alab.":"AL","Ariz.":"AZ","Ark.":"AR","Calif.":"CA","Cal.":"CA","Colo.":"CO","Col.":"CO","Conn.":"CT","Del.":"DE","Fla.":"FL","Flor.":"FL","Ga.":"GA","Ill.":"IL","Ind.":"IN","Kan.":"KS","Kans.":"KS","Ky.":"KY","La.":"LA","Md.":"MD","Mass.":"MA","Mich.":"MI","Minn.":"MN","Miss.":"MS","Mo.":"MO","Mont.":"MT","Neb.":"NE","Nebr.":"NE","Nev.":"NV","N.H.":"NH","N.J.":"NJ","N.M.":"NM","N.Mex.":"NM","N. Mex.":"NM","N.Y.":"NY","N.C.":"NC","N.D.":"ND","N.Dak.":"ND","N. Dak.":"ND","Okla.":"OK","Ore.":"OR","Oreg.":"OR","Pa.":"PA","Penn.":"PA","Penna.":"PA","R.I.":"RI","S.C.":"SC","S.D.":"SD","S.Dak.":"SD","S. Dak.":"SD","Tenn.":"TN","Tex.":"TX","Vt.":"VT","Va.":"VA","Wash.":"WA","W.Va.":"WV","W. Va.":"WV","Wis.":"WI","Wisc.":"WI","Wyo.":"WY","D.C.":"DC","Wash. D.C.":"DC","Wash., D.C.":"DC","P.R.":"PR","V.I.":"VI"},lf=(()=>{let e=new Map;for(let[t,a]of lx)e.set(f3(a),t);e.set(f3("Washington DC"),"DC"),e.set(f3("Washington D.C."),"DC"),e.set(f3("US Virgin Islands"),"VI");for(let[t,a]of Object.entries(uQ)){let r=f3(t);r&&!e.has(r)&&e.set(r,a)}return e})(),cQ=(()=>{let e=new m0;for(let[t,a]of lf)e.add(t,a);return e})();function dQ(e){let t=f3(e);return lf.get(t)||(B8(t)?null:cQ.get(ef(e))??null)}var hQ=new Set(["01","02","04","05","06","08","09","10","11","12","13","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","44","45","46","47","48","49","50","51","53","54","55","56","60","66","69","72","78"]);function pQ(e){return e.trim().toUpperCase()}function f3(e){return Ca(e)}var of=new Set(["country","countries","nation","nationality","iso","geo"]),sf=new Set(["state","province","st"]),sx=new Set(["zip","zipcode","postal","postcode","plz"]),mQ=new Set(["county","fips","borough","parish"]),uf=new Set(["city","cities","town","municipality","metro","location","place"]);function qa(e,t){if(!e)return!1;for(let a of Wa(e))if(t.has(a))return!0;return!1}var gQ=95,cf=5,fQ=6e4;function ux(e,t,a){if(!e||e.length===0)return null;let r=[],n=new Set;for(let D of e){if(D==null)continue;let $=String(D).trim();if($.length===0||B8(f3($)))continue;let J=$.toLowerCase();if(!n.has(J)&&(n.add(J),r.push($),r.length>fQ))return null}let i=r.length;if(i<2)return null;let o=r.map(pQ),s=r.map(f3),l=N0(),u=0,c=0,d=0,h=0,p=0,m=0,g=0,f=0,y=0,b=0,v=0,k=0,w=D=>(ix(D)??"").slice(0,3),S=0,M=0,U=0,W=qa(t,sx);for(let D=0;D<i;++D){let $=o[D],J=s[D],F=r[D],Z=tf.has($),oe=lQ.has($);af.has($)&&u++,Z&&c++,oe&&d++,Z&&oe&&S++;let G=l.has(J)||nf(F)!==null,ee=lf.has(J)||dQ(F)!==null;G&&h++,ee&&p++,G&&ee&&M++,H8(F)&&b++,oe&&ee&&U++,/^\d{5}(-\d{4})?$/.test(F)||W&&/^\d{3,4}$/.test(F)?(m++,ox.has(w(F))&&k++):/^\d{4}$/.test(F)&&v++,/^\d{5}$/.test(F)&&hQ.has(F.slice(0,2))&&g++,rf(J)&&f++,rf(J,"world")&&y++}if(!W&&m>0){m+=v;for(let D of r)/^\d{4}$/.test(D)&&ox.has(w(D))&&k++}let A=D=>D/i*100,R=[],j=(D,$,J,F=!1)=>{let Z=A($),oe=D==="city-name"||D==="city-name-world";Z<(oe?v0:gQ)||$<2||F&&$<cf&&!qa(t,D==="country-name"?of:oe?uf:sf)||R.push({kind:D,matched:$,spec:J,pct:Z})};j("country-iso3",u,6),j("country-name",h,5,!0),j("us-state-name",p,5,!0),j("us-zip5",m,4),j("us-county-fips",g,4),j("country-iso2",c,3),j("us-state-code",d,3);let C=R.length;j("city-name",f,2,!0),R.length===C&&j("city-name-world",y,2,!0);let N=d-U,x=p-U;N>0&&x>0&&j("us-state-name",d+p-U,5,!0);let I=Math.max(u,c,h);if(b>I){let D=u===I?"country-iso3":h===I?"country-name":"country-iso2";j(D,b,D==="country-iso3"?6:D==="country-name"?5:3,D==="country-name")}if(R.length===0)return null;R.sort((D,$)=>$.pct-D.pct||$.spec-D.spec);let P=R[0],E=!1,B={"country-iso2":"us-state-code","us-state-code":"country-iso2","us-zip5":"us-county-fips","us-county-fips":"us-zip5","country-name":"us-state-name","us-state-name":"country-name"}[P.kind],O=R[1],q=B&&O&&O.kind===B&&Math.abs(P.pct-O.pct)<=15;if(P.kind==="country-iso2"||P.kind==="us-state-code"){let D=P.matched>0?S/P.matched:0,$=qa(t,of),J=qa(t,sf);if(q||D>=.5){if($&&!J)return L("country-iso2",c,!1);if(J&&!$)return L("us-state-code",d,!1);E=!0}}else if(P.kind==="us-zip5"||P.kind==="us-county-fips"){let D=g===m&&m===i,$=qa(t,sx),J=qa(t,mQ);return J&&!$?L("us-county-fips",g,!1):$&&!J?L("us-zip5",m,!1):D?L("us-zip5",m,!0):L("us-zip5",m,!1)}else if(q&&(P.kind==="country-name"||P.kind==="us-state-name")){let D=P.matched>0?M/P.matched:0,$=qa(t,of),J=qa(t,sf);if($&&!J)return L("country-name",h,!1);if(J&&!$)return L("us-state-name",p,!1);D>=.5&&(E=!0)}return L(P.kind,P.matched,E);function L(D,$,J){let F={geoKind:D,geoMatchPct:Math.round(A(D==="us-zip5"?k:$)*10)/10};return J&&(F.geoAmbiguous=!0),F}}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Uhe=Object.freeze({hour:24,weekday:7,month:12,quarter:4,week:53,season:4}),yQ={nl:["jaar"],de:["jahr"],fr:["ann\xE9e"],es:["a\xF1o"],pt:["ano"],it:["anno"],pl:["rok"],cs:["rok"],sk:["rok"],sv:["\xE5r"],da:["\xE5r"],nb:["\xE5r"],fi:["vuosi"],hu:["\xE9v"],tr:["y\u0131l"],ro:["anul"],hr:["godina"],id:["tahun"],vi:["n\u0103m"],ru:["\u0433\u043E\u0434"],uk:["\u0440\u0456\u043A"],el:["\u03AD\u03C4\u03BF\u03C2"],zh:["\u5E74\u4EFD","\u5E74\u5EA6"],ja:["\u5E74\u5EA6"],ko:["\uC5F0\uB3C4","\uB144\uB3C4"],ar:["\u0633\u0646\u0629"],he:["\u05E9\u05E0\u05D4"],hi:["\u0935\u0930\u094D\u0937","\u0938\u093E\u0932"],th:["\u0E1B\u0E35\u0E07\u0E1A\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13"],fa:["\u0633\u0627\u0644"]},cx={hour:{de:["stunde"],fr:["heure"],es:["hora"],pt:["hora"],it:["ora"],pl:["godzina"],cs:["hodina"],sk:["hodina"],sv:["timme"],fi:["tunti"],hu:["\xF3ra"],ro:["ora"],vi:["gi\u1EDD"],ru:["\u0447\u0430\u0441"],uk:["\u0433\u043E\u0434\u0438\u043D\u0430"],el:["\u03CE\u03C1\u03B1"],zh:["\u5C0F\u65F6"],ar:["\u0633\u0627\u0639\u0629"],he:["\u05E9\u05E2\u05D4"],hi:["\u0918\u0902\u091F\u093E"],th:["\u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07"],fa:["\u0633\u0627\u0639\u062A"]},weekday:{nl:["weekdag"],de:["wochentag"],sv:["veckodag"],da:["ugedag"],nb:["ukedag"],fi:["viikonp\xE4iv\xE4"],zh:["\u661F\u671F"],ja:["\u66DC\u65E5"],ko:["\uC694\uC77C"]},month:{nl:["maand"],de:["monat"],fr:["mois"],es:["mes"],pt:["m\xEAs"],it:["mese"],pl:["miesi\u0105c"],cs:["m\u011Bs\xEDc"],sk:["mesiac"],sv:["m\xE5nad"],da:["m\xE5ned"],nb:["m\xE5ned"],fi:["kuukausi"],hu:["h\xF3nap"],hr:["mjesec"],id:["bulan"],vi:["th\xE1ng"],ru:["\u043C\u0435\u0441\u044F\u0446"],uk:["\u043C\u0456\u0441\u044F\u0446\u044C"],el:["\u03BC\u03AE\u03BD\u03B1\u03C2"],zh:["\u6708\u4EFD"],ar:["\u0634\u0647\u0631"],he:["\u05D7\u05D5\u05D3\u05E9"],hi:["\u092E\u0939\u0940\u0928\u093E","\u092E\u093E\u0939"],th:["\u0E40\u0E14\u0E37\u0E2D\u0E19"],fa:["\u0645\u0627\u0647"]},quarter:{nl:["kwartaal"],de:["quartal"],fr:["trimestre"],es:["trimestre"],pt:["trimestre"],it:["trimestre"],pl:["kwarta\u0142"],cs:["\u010Dtvrtlet\xED"],sk:["\u0161tvr\u0165rok"],sv:["kvartal"],da:["kvartal"],nb:["kvartal"],fi:["vuosinelj\xE4nnes"],hu:["negyed\xE9v"],tr:["\xE7eyrek"],ro:["trimestru"],hr:["tromjese\u010Dje"],id:["kuartal","triwulan"],vi:["qu\xFD"],ru:["\u043A\u0432\u0430\u0440\u0442\u0430\u043B"],uk:["\u043A\u0432\u0430\u0440\u0442\u0430\u043B"],el:["\u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF"],zh:["\u5B63\u5EA6"],ja:["\u56DB\u534A\u671F"],ko:["\uBD84\uAE30"],ar:["\u0631\u0628\u0639"],he:["\u05E8\u05D1\u05E2\u05D5\u05DF"],hi:["\u0924\u093F\u092E\u093E\u0939\u0940"],th:["\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A"]},week:{de:["woche"],fr:["semaine"],es:["semana"],pt:["semana"],it:["settimana"],pl:["tydzie\u0144"],cs:["t\xFDden"],sk:["t\xFD\u017Ede\u0148"],sv:["vecka"],da:["uge"],nb:["uke"],fi:["viikko"],hu:["h\xE9t"],tr:["hafta"],ro:["s\u0103pt\u0103m\xE2n\u0103"],hr:["tjedan"],id:["minggu"],vi:["tu\u1EA7n"],ru:["\u043D\u0435\u0434\u0435\u043B\u044F"],uk:["\u0442\u0438\u0436\u0434\u0435\u043D\u044C"],el:["\u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1"],ar:["\u0623\u0633\u0628\u0648\u0639"],he:["\u05E9\u05D1\u05D5\u05E2"],hi:["\u0938\u092A\u094D\u0924\u093E\u0939"],th:["\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C"],fa:["\u0647\u0641\u062A\u0647"]},season:{nl:["seizoen"],de:["jahreszeit"],fr:["saison"],es:["temporada"],it:["stagione"],pl:["sezon"],cs:["sez\xF3na"],sk:["sez\xF3na"],sv:["s\xE4song","\xE5rstid"],da:["s\xE6son","\xE5rstid"],nb:["sesong","\xE5rstid"],fi:["vuodenaika"],hu:["\xE9vszak"],tr:["mevsim"],ro:["anotimp"],vi:["m\xF9a"],ru:["\u0441\u0435\u0437\u043E\u043D"],uk:["\u0441\u0435\u0437\u043E\u043D"],el:["\u03B5\u03C0\u03BF\u03C7\u03AE"],zh:["\u5B63\u8282"],ja:["\u5B63\u7BC0"],ko:["\uACC4\uC808"],ar:["\u0645\u0648\u0633\u0645"],he:["\u05E2\u05D5\u05E0\u05D4"],hi:["\u092E\u094C\u0938\u092E"],th:["\u0E24\u0E14\u0E39"],fa:["\u0641\u0635\u0644"]}},bQ=["\xE5r","\xE9v","h\xE9t","\xF3ra"];function vQ(e,t,a){let r=Ga(a);if(!r)return null;let n=t.normalize("NFC").toLowerCase(),i=gr(e).words;return i.includes(n)?"word":r.compounds&&i.some(o=>wi(o,n,D8))?"suffix":null}function wx(e,t){let a=String(e??"");if(!a.trim())return null;for(let[r,n]of Object.entries(t))for(let i of n){let o=bQ.includes(i)?vQ(a,i,r):jM(a,i,r);if(o)return{lang:r,word:i,view:o}}return null}function pf(e){return wx(e,yQ)}function NQ(e){let t=null;for(let a of Object.keys(cx)){let r=wx(e,cx[a]);if(r){if(t&&t.concept!==a)return null;t={concept:a,hit:r}}}return t}var SQ=Object.freeze({quarter:4,half:2,week:53}),Ai={quarter:{en:{words:["quarter #","qtr #"],codes:["q #"]},nl:{words:["kwartaal #","# kwartaal","#e kwartaal","@ kwartaal"],codes:["k #"]},de:{words:["quartal #","# quartal","@ quartal"]},fr:{words:["trimestre #","# trimestre","#er trimestre","#e trimestre","#eme trimestre","@ trimestre"],codes:["t #","# t","trim. #"]},es:{words:["trimestre #","# trimestre","#er trimestre","#o trimestre","#\xBA trimestre","#\xB0 trimestre","@ trimestre"],codes:["t #","# t","trim. #"]},pt:{words:["trimestre #","# trimestre","#o trimestre","#\xBA trimestre","#\xB0 trimestre","@ trimestre"],codes:["t #","# t","#\xBA t","trim. #"]},it:{words:["trimestre #","# trimestre","#\xBA trimestre","#\xB0 trimestre","% trimestre","@ trimestre"],codes:["t #","trim. #"]},pl:{words:["kwarta\u0142 #","# kwarta\u0142","% kwarta\u0142","@ kwarta\u0142","# kw.","% kw."]},cs:{words:["\u010Dtvrtlet\xED #","# \u010Dtvrtlet\xED","% \u010Dtvrtlet\xED","@ \u010Dtvrtlet\xED"]},sk:{words:["\u0161tvr\u0165rok #","# \u0161tvr\u0165rok","% \u0161tvr\u0165rok","@ \u0161tvr\u0165rok"]},sv:{words:["kvartal #","# kvartalet","#:a kvartalet","#:e kvartalet","@ kvartalet"],codes:["k #"]},da:{words:["kvartal #","# kvartal","@ kvartal"],codes:["k #"]},nb:{words:["kvartal #","# kvartal","@ kvartal"],codes:["k #"]},fi:{words:["nelj\xE4nnes #","# nelj\xE4nnes","# vuosinelj\xE4nnes","vuosinelj\xE4nnes #"]},hu:{words:["negyed\xE9v #","# negyed\xE9v","% negyed\xE9v"]},tr:{words:["\xE7eyrek #","# \xE7eyrek","@ \xE7eyrek"],codes:["\xE7 #"]},ro:{words:["trimestrul #","trimestrul %","trimestru #"],codes:["t #"]},hr:{words:["tromjese\u010Dje #","# tromjese\u010Dje","% tromjese\u010Dje","kvartal #","# kvartal"]},id:{words:["kuartal #","kuartal %","kuartal ke #","triwulan #","triwulan %","triwulan ke #"],codes:["tw #","tw %"]},vi:{words:["qu\xFD #","qu\xFD %"]},ru:{words:["\u043A\u0432\u0430\u0440\u0442\u0430\u043B #","# \u043A\u0432\u0430\u0440\u0442\u0430\u043B","% \u043A\u0432\u0430\u0440\u0442\u0430\u043B","@ \u043A\u0432\u0430\u0440\u0442\u0430\u043B","# \u043A\u0432.","% \u043A\u0432."]},uk:{words:["\u043A\u0432\u0430\u0440\u0442\u0430\u043B #","# \u043A\u0432\u0430\u0440\u0442\u0430\u043B","% \u043A\u0432\u0430\u0440\u0442\u0430\u043B","@ \u043A\u0432\u0430\u0440\u0442\u0430\u043B","# \u043A\u0432.","% \u043A\u0432."]},el:{words:["\u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF #","# \u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF","#\u03BF \u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF","@ \u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF"]},zh:{words:["\u7B2C#\u5B63\u5EA6","\u7B2C@\u5B63\u5EA6","@\u5B63\u5EA6","#\u5B63\u5EA6"]},ja:{words:["\u7B2C#\u56DB\u534A\u671F","\u7B2C@\u56DB\u534A\u671F","#\u56DB\u534A\u671F"],codes:["# q"]},ko:{words:["#\uBD84\uAE30","#/4\uBD84\uAE30"]},ar:{words:["\u0627\u0644\u0631\u0628\u0639 #","\u0627\u0644\u0631\u0628\u0639 @","\u0631\u0628\u0639 #"]},he:{words:["\u05E8\u05D1\u05E2\u05D5\u05DF #","\u05E8\u05D1\u05E2\u05D5\u05DF @"]},hi:{words:["\u0924\u093F\u092E\u093E\u0939\u0940 #","# \u0924\u093F\u092E\u093E\u0939\u0940","@ \u0924\u093F\u092E\u093E\u0939\u0940"]},th:{words:["\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A #","\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A\u0E17\u0E35\u0E48 #"]}},half:{en:{words:["half #"],codes:["h #"]},nl:{words:["halfjaar #","# halfjaar","@ halfjaar"]},de:{words:["halbjahr #","# halbjahr","@ halbjahr"],codes:["hj #"]},fr:{words:["semestre #","# semestre","#er semestre","#e semestre","#eme semestre","@ semestre"],codes:["s #"]},es:{words:["semestre #","# semestre","#er semestre","#o semestre","#\xBA semestre","#\xB0 semestre","@ semestre"],codes:["s #","# s"]},pt:{words:["semestre #","# semestre","#o semestre","#\xBA semestre","#\xB0 semestre","@ semestre"],codes:["s #","# s"]},it:{words:["semestre #","# semestre","#\xBA semestre","#\xB0 semestre","% semestre","@ semestre"],codes:["s #"]},pl:{words:["p\xF3\u0142rocze #","# p\xF3\u0142rocze","% p\xF3\u0142rocze","@ p\xF3\u0142rocze"]},cs:{words:["pololet\xED #","# pololet\xED","% pololet\xED","@ pololet\xED"]},sk:{words:["polrok #","# polrok","% polrok"]},sv:{words:["halv\xE5r #","# halv\xE5ret","@ halv\xE5ret"]},da:{words:["halv\xE5r #","# halv\xE5r","@ halv\xE5r"]},nb:{words:["halv\xE5r #","# halv\xE5r","@ halv\xE5r"]},fi:{words:["vuosipuolisko #","# vuosipuolisko"]},hu:{words:["f\xE9l\xE9v #","# f\xE9l\xE9v","% f\xE9l\xE9v"]},tr:{words:["yar\u0131y\u0131l #","# yar\u0131y\u0131l","@ yar\u0131y\u0131l"]},ro:{words:["semestrul #","semestrul %"],codes:["s #"]},hr:{words:["polugodi\u0161te #","# polugodi\u0161te","% polugodi\u0161te"]},id:{words:["semester #","semester %"]},ru:{words:["\u043F\u043E\u043B\u0443\u0433\u043E\u0434\u0438\u0435 #","# \u043F\u043E\u043B\u0443\u0433\u043E\u0434\u0438\u0435","% \u043F\u043E\u043B\u0443\u0433\u043E\u0434\u0438\u0435","@ \u043F\u043E\u043B\u0443\u0433\u043E\u0434\u0438\u0435"]},uk:{words:["\u043F\u0456\u0432\u0440\u0456\u0447\u0447\u044F #","# \u043F\u0456\u0432\u0440\u0456\u0447\u0447\u044F","% \u043F\u0456\u0432\u0440\u0456\u0447\u0447\u044F","@ \u043F\u0456\u0432\u0440\u0456\u0447\u0447\u044F"]},el:{words:["\u03B5\u03BE\u03AC\u03BC\u03B7\u03BD\u03BF #","# \u03B5\u03BE\u03AC\u03BC\u03B7\u03BD\u03BF","#\u03BF \u03B5\u03BE\u03AC\u03BC\u03B7\u03BD\u03BF","@ \u03B5\u03BE\u03AC\u03BC\u03B7\u03BD\u03BF"]},zh:{words:["\u4E0A\u534A\u5E74=1","\u4E0B\u534A\u5E74=2"]},ja:{words:["\u4E0A\u671F=1","\u4E0B\u671F=2","\u4E0A\u534A\u671F=1","\u4E0B\u534A\u671F=2"]},ko:{words:["\uC0C1\uBC18\uAE30=1","\uD558\uBC18\uAE30=2"]},ar:{words:["\u0627\u0644\u0646\u0635\u0641 @"]},he:{words:["\u05D7\u05E6\u05D9\u05D5\u05DF #"]},hi:{words:["\u091B\u092E\u093E\u0939\u0940 #","@ \u091B\u092E\u093E\u0939\u0940"]},th:{words:["\u0E04\u0E23\u0E36\u0E48\u0E07\u0E1B\u0E35\u0E41\u0E23\u0E01=1","\u0E04\u0E23\u0E36\u0E48\u0E07\u0E1B\u0E35\u0E2B\u0E25\u0E31\u0E07=2"]}},week:{en:{words:["week #","wk #"],codes:["w #"]},de:{words:["woche #","# woche","kw #"]},fr:{words:["semaine #","sem. #"],codes:["s #"]},es:{words:["semana #","sem. #"],codes:["s #"]},pt:{words:["semana #","sem. #"],codes:["s #"]},it:{words:["settimana #","sett. #"]},pl:{words:["tydzie\u0144 #","# tydzie\u0144","tydz. #"]},cs:{words:["t\xFDden #","# t\xFDden"]},sk:{words:["t\xFD\u017Ede\u0148 #","# t\xFD\u017Ede\u0148"]},sv:{words:["vecka #"],codes:["v #"]},da:{words:["uge #"]},nb:{words:["uke #"]},fi:{words:["viikko #","vko #","vk #"]},hu:{words:["h\xE9t #","# h\xE9t"]},tr:{words:["hafta #","# hafta"]},ro:{words:["s\u0103pt\u0103m\xE2na #"]},hr:{words:["tjedan #","# tjedan"]},id:{words:["minggu #","minggu ke #"]},vi:{words:["tu\u1EA7n #"]},ru:{words:["\u043D\u0435\u0434\u0435\u043B\u044F #","# \u043D\u0435\u0434\u0435\u043B\u044F","\u043D\u0435\u0434. #"]},uk:{words:["\u0442\u0438\u0436\u0434\u0435\u043D\u044C #","# \u0442\u0438\u0436\u0434\u0435\u043D\u044C","\u0442\u0438\u0436. #"]},el:{words:["\u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1 #","# \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1"]},zh:{words:["\u7B2C#\u5468"]},ja:{words:["\u7B2C#\u9031"]},ko:{words:["#\uC8FC","#\uC8FC\uCC28"]},ar:{words:["\u0627\u0644\u0623\u0633\u0628\u0648\u0639 #","\u0623\u0633\u0628\u0648\u0639 #"]},he:{words:["\u05E9\u05D1\u05D5\u05E2 #"]},hi:{words:["\u0938\u092A\u094D\u0924\u093E\u0939 #"]},th:{words:["\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C #","\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C\u0E17\u0E35\u0E48 #"]}}},Wx={nl:[["eerste"],["tweede"],["derde"],["vierde"]],de:[["erstes","erste"],["zweites","zweite"],["drittes","dritte"],["viertes","vierte"]],fr:[["premier"],["deuxi\xE8me","second"],["troisi\xE8me"],["quatri\xE8me"]],es:[["primer","primero"],["segundo"],["tercer","tercero"],["cuarto"]],pt:[["primeiro"],["segundo"],["terceiro"],["quarto"]],it:[["primo"],["secondo"],["terzo"],["quarto"]],pl:[["pierwszy","pierwsze"],["drugi","drugie"],["trzeci","trzecie"],["czwarty","czwarte"]],cs:[["prvn\xED"],["druh\xE9","druh\xFD"],["t\u0159et\xED"],["\u010Dtvrt\xE9","\u010Dtvrt\xFD"]],sk:[["prv\xFD"],["druh\xFD"],["tret\xED"],["\u0161tvrt\xFD"]],sv:[["f\xF6rsta"],["andra"],["tredje"],["fj\xE4rde"]],da:[["f\xF8rste"],["andet","anden"],["tredje"],["fjerde"]],nb:[["f\xF8rste"],["andre"],["tredje"],["fjerde"]],tr:[["birinci","ilk"],["ikinci"],["\xFC\xE7\xFCnc\xFC"],["d\xF6rd\xFCnc\xFC"]],ru:[["\u043F\u0435\u0440\u0432\u044B\u0439","\u043F\u0435\u0440\u0432\u043E\u0435"],["\u0432\u0442\u043E\u0440\u043E\u0439","\u0432\u0442\u043E\u0440\u043E\u0435"],["\u0442\u0440\u0435\u0442\u0438\u0439","\u0442\u0440\u0435\u0442\u044C\u0435"],["\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044B\u0439","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435"]],uk:[["\u043F\u0435\u0440\u0448\u0438\u0439","\u043F\u0435\u0440\u0448\u0435"],["\u0434\u0440\u0443\u0433\u0438\u0439","\u0434\u0440\u0443\u0433\u0435"],["\u0442\u0440\u0435\u0442\u0456\u0439","\u0442\u0440\u0435\u0442\u0454"],["\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438\u0439","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0435"]],el:[["\u03C0\u03C1\u03CE\u03C4\u03BF"],["\u03B4\u03B5\u03CD\u03C4\u03B5\u03C1\u03BF"],["\u03C4\u03C1\u03AF\u03C4\u03BF"],["\u03C4\u03AD\u03C4\u03B1\u03C1\u03C4\u03BF"]],zh:[["\u4E00"],["\u4E8C"],["\u4E09"],["\u56DB"]],ja:[["\u4E00"],["\u4E8C"],["\u4E09"],["\u56DB"]],ar:[["\u0627\u0644\u0623\u0648\u0644"],["\u0627\u0644\u062B\u0627\u0646\u064A"],["\u0627\u0644\u062B\u0627\u0644\u062B"],["\u0627\u0644\u0631\u0627\u0628\u0639"]],he:[["\u05E8\u05D0\u05E9\u05D5\u05DF"],["\u05E9\u05E0\u05D9"],["\u05E9\u05DC\u05D9\u05E9\u05D9"],["\u05E8\u05D1\u05D9\u05E2\u05D9"]],hi:[["\u092A\u0939\u0932\u0940","\u092A\u0939\u0932\u093E"],["\u0926\u0942\u0938\u0930\u0940","\u0926\u0942\u0938\u0930\u093E"],["\u0924\u0940\u0938\u0930\u0940","\u0924\u0940\u0938\u0930\u093E"],["\u091A\u094C\u0925\u0940","\u091A\u094C\u0925\u093E"]]},kQ=["\xE7 #"],wQ=String.raw`[\s\-_./]*`,WQ={i:1,ii:2,iii:3,iv:4};function yr(e,t){let a=String(e??"").normalize("NFC").toLowerCase();return t||(a=Cn(a)),a.replace(/[\s_]+/g," ").trim().replace(/\.+$/,"").trim()}function dx(e){return/[.*+?^${}()|[\]\\]/.test(e)?"\\"+e:e}function hx(e,t,a,r){let n=!!Ga(t)?.foldSensitive||kQ.includes(e),i=e,o=null,s=/=(\d+)$/.exec(i);s&&(o=Number(s[1]),i=i.slice(0,s.index));let l=(Wx[t]??[]).map(d=>d.map(h=>yr(h,n))),u=o!==null?{kind:"fixed",n:o}:{kind:"digits"},c="";for(let d of yr(i,n))if(d==="#")c+="([0-9]{1,2})",u={kind:"digits"};else if(d==="%")c+="(iv|iii|ii|i)",u={kind:"roman"};else if(d==="@"){let h=l.flat().sort((p,m)=>m.length-p.length).map(p=>[...p].map(dx).join(""));c+="("+h.join("|")+")",u={kind:"ordinal",words:l}}else d===" "?c+=wQ:d==="."?c+="\\.?":c+=dx(d);return{lang:t,grain:a,form:r,unfold:n,re:new RegExp("^"+c+"$","u"),number:u}}var df=null;function CQ(){if(df)return df;let e=[];for(let t of Object.keys(Ai))for(let[a,r]of Object.entries(Ai[t])){for(let n of r.words??[])e.push(hx(n,a,t,"word"));for(let n of r.codes??[])e.push(hx(n,a,t,"code"))}return df=e,e}var px=/^[0-9]+$/,mx=/^[0-9]/,gx=/[0-9]$/,AQ=/^[\s\-_./,']*/,_Q=/[\s\-_./,']*$/,MQ=/^(年|년)/u;function fx(e){if(e.length===4){let t=Number(e);return t>=1900&&t<=2099?t:null}return 2e3+Number(e)}function yx(e){let t=[{body:e,year:null,yearDigits:0}];for(let a of[4,2]){if(e.length<=a)continue;let r=e.slice(0,a);if(px.test(r)&&!mx.test(e.slice(a))){let o=e.slice(a),s=MQ.exec(o),l=s?o.slice(s[0].length):o,u=AQ.exec(l)[0],c=l.slice(u.length),d=fx(r);c&&d!==null&&(s||u||!mx.test(c))&&t.push({body:c,year:d,yearDigits:a})}let n=e.slice(e.length-a),i=e.slice(0,e.length-a);if(px.test(n)&&!gx.test(i)){let o=_Q.exec(i)[0],s=i.slice(0,i.length-o.length),l=fx(n);s&&l!==null&&(o||!gx.test(s))&&t.push({body:s,year:l,yearDigits:a})}}return t}var S0=null;function xQ(){if(S0)return S0;let e=new Set;for(let[t,a]of Object.entries(Wx)){let r=!!Ga(t)?.foldSensitive;for(let n of a)for(let i of n)e.add(yr(i,!1)),r&&e.add(yr(i,!0))}for(let t of Object.keys(Ai))for(let a of Object.values(Ai[t]))for(let r of a?.words??[]){let n=/=[0-9]+$/.exec(r);n&&e.add(yr(r.slice(0,n.index),!1))}return S0=[...e],S0}var IQ=/[0-9]/,PQ=/(^|[^\p{L}])(iv|iii|ii|i)([^\p{L}]|$)/u;function bx(e){return IQ.test(e)||PQ.test(e)?!0:xQ().some(t=>e.includes(t))}function UQ(e,t){switch(e.number.kind){case"fixed":return e.number.n;case"digits":return t[1]===void 0?null:Number(t[1]);case"roman":return t[1]===void 0?null:WQ[t[1]]??null;case"ordinal":{let a=t[1],r=e.number.words.findIndex(n=>n.includes(a));return r<0?null:r+1}}}function k0(e){let t=String(e??"");if(!t.trim()||t.length>40)return[];let a=yr(t,!1),r=yr(t,!0);if(!bx(a)&&!bx(r))return[];let n=yx(a),i=yx(r),o=[],s=new Set;for(let l of CQ()){let u=l.lang+"|"+l.grain;if(!s.has(u))for(let c of l.unfold?i:n){let d=l.re.exec(c.body);if(!d)continue;let h=UQ(l,d);if(!(h===null||h<1||h>SQ[l.grain])){o.push({lang:l.lang,grain:l.grain,n:h,year:c.year,yearDigits:c.yearDigits,form:l.form}),s.add(u);break}}}return o}function TQ(e,t=()=>!0){if(e.length===0)return null;let a=e.map(r=>k0(r).filter(t));if(a.some(r=>r.length===0))return null;for(let r of Object.keys(Ai))for(let n of Object.keys(Ai[r])){let i=[],o=0;for(let s of a){let l=s.find(c=>c.grain===r&&c.lang===n),u=s.find(c=>c.grain===r&&c.lang==="en")??l;if(!u)break;u.lang===n&&o++,i.push(u)}if(i.length===e.length&&(n==="en"||o>0))return{lang:n,grain:r,readings:i}}return null}var Cx=[{name:"likert7_agreement",minMatches:5,canonical:["strongly disagree","disagree","slightly disagree","neutral","slightly agree","agree","strongly agree"]},{name:"likert5_agreement",minMatches:3,canonical:["strongly disagree","disagree","neutral","agree","strongly agree"]},{name:"likert3_agreement",minMatches:2,canonical:["disagree","neutral","agree"]},{name:"likert5_satisfaction",minMatches:3,canonical:["very dissatisfied","dissatisfied","neutral","satisfied","very satisfied"]},{name:"likert3_satisfaction",minMatches:2,canonical:["dissatisfied","neutral","satisfied"]},{name:"likert5_quality",minMatches:3,canonical:["poor","fair","good","very good","excellent"]},{name:"likert3_quality",minMatches:2,canonical:["poor","fair","good"]},{name:"frequency5",minMatches:3,canonical:["never","rarely","sometimes","often","always"]},{name:"intensity5",minMatches:3,canonical:["not at all","slightly","moderately","very","extremely"]},{name:"importance5",minMatches:3,canonical:["not important","slightly important","moderately important","very important","extremely important"]},{name:"severity_low_critical",minMatches:3,canonical:["low","medium","high","critical"]},{name:"severity_low_urgent",minMatches:3,canonical:["low","medium","high","urgent"]},{name:"severity_none_critical",minMatches:3,canonical:["none","mild","moderate","severe","critical"]},{name:"priority_p4_p1",minMatches:3,canonical:["p4","p3","p2","p1","p0"]},{name:"severity_trivial_blocker",minMatches:3,canonical:["trivial","minor","major","critical","blocker"]},{name:"severity_minor_severe",minMatches:3,canonical:["minor","moderate","major","severe"]},{name:"magnitude5_medium",minMatches:3,canonical:["very low","low","medium","high","very high"]},{name:"magnitude5_moderate",minMatches:3,canonical:["very low","low","moderate","high","very high"]},{name:"speed5",minMatches:3,canonical:["very slow","slow","moderate","fast","very fast"]},{name:"temperature6",minMatches:3,canonical:["freezing","cold","cool","mild","warm","hot"]},{name:"experience6",minMatches:3,canonical:["novice","beginner","intermediate","advanced","expert","master"]},{name:"tier_metal",minMatches:3,canonical:["bronze","silver","gold","platinum","diamond"]},{name:"tshirt_letter_sizes",minMatches:4,canonical:["xxs","xs","s","m","l","xl","xxl","xxxl"]},{name:"tshirt_word_sizes",minMatches:3,canonical:["extra small","small","medium","large","extra large"]},{name:"nps_bands",minMatches:2,canonical:["detractor","passive","promoter"]},{name:"likelihood5",minMatches:3,canonical:["very unlikely","unlikely","neutral","likely","very likely"]},{name:"education",minMatches:3,canonical:["none","primary","secondary","bachelors","masters","doctoral"]},{name:"grades_a_to_f",minMatches:3,canonical:["a","b","c","d","f"]},{name:"grades_a_to_f_plusminus",minMatches:4,canonical:["a+","a","a-","b+","b","b-","c+","c","c-","d+","d","d-","f"]}],EQ={seldom:"rarely",infrequently:"rarely","hardly ever":"rarely",occasionally:"sometimes",periodically:"sometimes","now and then":"sometimes",frequently:"often",frequent:"often",regularly:"often",commonly:"often",usually:"often",constantly:"always","every time":"always","all the time":"always",consistently:"always",continually:"always",bad:"poor",weak:"poor",subpar:"poor",mediocre:"fair",passable:"fair","so so":"fair",decent:"good",solid:"good",outstanding:"excellent",superb:"excellent",exceptional:"excellent",stellar:"excellent",unsatisfied:"dissatisfied",unhappy:"dissatisfied",displeased:"dissatisfied",happy:"satisfied",content:"satisfied",pleased:"satisfied",delighted:"very satisfied","highly satisfied":"very satisfied","extremely satisfied":"very satisfied","highly dissatisfied":"very dissatisfied","extremely dissatisfied":"very dissatisfied",neither:"neutral",undecided:"neutral","no opinion":"neutral","neither agree nor disagree":"neutral","completely agree":"strongly agree","totally agree":"strongly agree","completely disagree":"strongly disagree","totally disagree":"strongly disagree","highly unlikely":"very unlikely","extremely unlikely":"very unlikely","highly likely":"very likely","extremely likely":"very likely","almost certain":"very likely",bachelor:"bachelors","bachelor's":"bachelors",undergraduate:"bachelors","bachelor degree":"bachelors","master's":"masters",graduate:"masters","master degree":"masters",doctorate:"doctoral",phd:"doctoral"},RQ=(()=>{let e=new Set;for(let t of Cx)for(let a of t.canonical)e.add(Aa(a));return e})(),zQ=(()=>{let e=new Map;for(let[t,a]of Object.entries(EQ)){let r=Aa(t);RQ.has(r)||e.has(r)||e.set(r,Aa(a))}return e})();function vx(e){return zQ.get(e)??e}var $Q=new Set(["hour","hr","day","dow","dom","weekday","week","wk","woy","month","mth","quarter","qtr","year","yr","semester","trimester","decade","period","fiscal","fy","rank","level","lvl","tier","grade","band","decile","percentile","quartile","quintile","score","rating","stars","step","stage","phase","round","wave","episode","chapter","age","cohort","generation","seniority","position","sequence","seq","priority"]);function Ax(e){if(!e)return!1;for(let t of Wa(e))if($Q.has(t))return!0;return NQ(e)!==null||pf(e)!==null}function Aa(e){return e.toLowerCase().replace(/[-_]+/g," ").replace(/\s+/g," ").trim()}function _x(e){return mr(e.normalize("NFD").replace(new RegExp("\\p{Diacritic}","gu"),""))}function OQ(e){let t=new Map;for(let[a,r]of e){let n=_x(a);if(!n)continue;let i=t.get(n);t.set(n,i===void 0||i===r?r:-1)}return t}function hf(e){let t=new Map;for(let[a,r]of e)for(let n of a)t.set(Aa(n),r);return t}var mf=[{name:"weekday_mon_sun",minMatches:4,dict:hf([[["monday","mon"],0],[["tuesday","tue","tues"],1],[["wednesday","wed","weds"],2],[["thursday","thu","thur","thurs","thr"],3],[["friday","fri"],4],[["saturday","sat"],5],[["sunday","sun"],6]])},{name:"month_jan_dec",minMatches:4,dict:hf([[["january","jan"],0],[["february","feb"],1],[["march","mar"],2],[["april","apr"],3],[["may"],4],[["june","jun"],5],[["july","jul"],6],[["august","aug"],7],[["september","sep","sept"],8],[["october","oct"],9],[["november","nov"],10],[["december","dec"],11]])},{name:"quarter_q1_q4",minMatches:3,dict:hf([[["q1","qtr 1","qtr1","quarter 1","q 1"],0],[["q2","qtr 2","qtr2","quarter 2","q 2"],1],[["q3","qtr 3","qtr3","quarter 3","q 3"],2],[["q4","qtr 4","qtr4","quarter 4","q 4"],3]])}],Nx={};function DQ(e){let t=e||"";if(!t)return{weekday:new Map,month:new Map};let a=Nx[t];if(a)return a;let r=new Map,n=new Map,i=(s,l,u)=>{let c=Aa(l);c&&s.set(c,u);let d=Aa(l.replace(/\./g,""));d&&d!==c&&s.set(d,u)};try{let s=new Intl.DateTimeFormat(t,{weekday:"long",timeZone:"UTC"}),l=new Intl.DateTimeFormat(t,{weekday:"short",timeZone:"UTC"});for(let d=0;d<7;++d){let h=new Date(Date.UTC(2024,0,1+d));i(r,s.format(h),d),i(r,l.format(h),d)}let u=new Intl.DateTimeFormat(t,{month:"long"}),c=new Intl.DateTimeFormat(t,{month:"short"});for(let d=0;d<12;++d){let h=new Date(Date.UTC(2020,d,15));i(n,u.format(h),d),i(n,c.format(h),d)}}catch{}let o={weekday:r,month:n};return Nx[t]=o,o}function Sx(e,t){if(t.size===0)return e;let a=new Map(e);for(let[r,n]of t)a.has(r)||a.set(r,n);return a}function LQ(e,t){let a=DQ(t);for(let r of mf){let n=r.name==="weekday_mon_sun"?Sx(r.dict,a.weekday):r.name==="month_jan_dec"?Sx(r.dict,a.month):r.dict,i=!0,o=null,s=new Map;for(let[u,c]of e){let d=n.get(u);if(d===void 0){o=o??OQ(n);let h=o.get(_x(u));d=h===void 0||h<0?void 0:h}if(d===void 0){i=!1;break}s.has(d)||s.set(d,c)}if(!i||s.size<r.minMatches)continue;let l=[...s.entries()].sort((u,c)=>u[0]-c[0]).map(u=>u[1]);return{pattern:r.name,orderedDomain:l}}return jQ(e)}var kx=mf.find(e=>e.name==="quarter_q1_q4");function jQ(e){let t=[...e.values()],a=TQ(t,i=>i.grain==="quarter"&&i.year===null&&(i.lang==="en"||i.form==="word"));if(!a||a.lang==="en")return null;let r=new Map;if(a.readings.forEach((i,o)=>{r.has(i.n)||r.set(i.n,t[o])}),r.size<kx.minMatches)return null;let n=[...r.entries()].sort((i,o)=>i[0]-o[0]).map(i=>i[1]);return{pattern:kx.name,orderedDomain:n}}function Mx(e){let t=new Map;for(let a of e){if(a==null)continue;let r=String(a);if(r.length===0)continue;let n=Aa(r);t.has(n)||t.set(n,r)}return t}var FQ=15,BQ=10,HQ=(()=>{let e=["xxs","xs","s","sm","small","m","med","medium","l","lg","large","xl","xlarge","xxl","xxxl","2xl","3xl","4xl","y","n","yes","no","t","f","true","false","na","n/a","n a","none","null","unknown","other","all","both","low","medium","med","high","very low","very high","minimal","critical","urgent"],t=new Set(e.map(Aa));for(let a of mf)for(let r of a.dict.keys())t.add(r);return t})();function GQ(e){let t=e.trim();return t.length===0||t.length>BQ||(t.match(new RegExp("\\p{L}","gu"))||[]).length>1?!1:new RegExp("\\p{Nd}","u").test(t)}function KQ(e){let t=e.trim();return t.length===1&&/[\p{L}\p{Nd}]/u.test(t)}function xx(e){if(!e||e.length===0)return null;let t=new Set,a=[];for(let r of e){if(r==null)continue;let n=String(r);if(t.has(n))continue;let i=Aa(n);if(!(i===""||HQ.has(i)||GQ(n)||KQ(n))||(t.add(n),a.push(n),a.length>FQ))return null}return a.length>0?a:null}var XQ=new RegExp("^(\\p{L}{0,3}) ?([0-9]+)\\s*[-\u2013\u2014:.)]\\s*(.+)$","u");function VQ(e){let t=null,a=new Set,r=[];for(let n of e.values()){let i=XQ.exec(n.trim());if(!i)return null;let o=i[1].toLowerCase();if(t===null)t=o;else if(o!==t)return null;let s=Number(i[2]);if(a.has(s)||Aa(i[3])==="")return null;a.add(s),r.push({code:s,original:n,label:i[3]})}return r}function qQ(e,t){let a=Ix(Mx(e.map(s=>s.label)),t);if(a===null)return;if(a.orderedDomain.length!==e.length)return null;let r=new Map;for(let s of e)r.set(s.label,s);let n=a.orderedDomain.map(s=>r.get(s));if(n.some(s=>s===void 0))return null;let i=!0,o=!0;for(let s=1;s<n.length;++s)n[s].code<=n[s-1].code&&(i=!1),n[s].code>=n[s-1].code&&(o=!1);return!i&&!o?null:{pattern:a.pattern,orderedDomain:n.map(s=>s.original)}}function gf(e,t){if(!e||e.length<2)return null;let a=Mx(e);if(a.size<2)return null;let r=VQ(a);if(r!==null){let i=qQ(r,t);if(i!==void 0)return i}let n=Ix(a,t);return n!==null?n:r!==null?QQ(a):null}var ZQ=/^([0-9]+)\s*(?:\.|\)|-)\s*([^\s\d].*)$/u,JQ=3,YQ=20;function QQ(e){if(e.size<JQ||e.size>YQ)return null;let t=new Set,a=[];for(let r of e.values()){let n=ZQ.exec(r.trim());if(!n||Aa(n[2])==="")return null;let i=Number(n[1]);if(t.has(i))return null;t.add(i),a.push({n:i,original:r})}return a.sort((r,n)=>r.n-n.n),{pattern:"numeric_rank_prefix",orderedDomain:a.map(r=>r.original)}}function Ix(e,t){let a=new Map;for(let[n,i]of e){let o=vx(n);a.has(o)||a.set(o,i)}let r=null;for(let n of Cx){let i=[];for(let u of n.canonical){let c=a.get(u);c!==void 0&&i.push(c)}if(i.length<n.minMatches)continue;let o=new Set(n.canonical),s=!0;for(let u of e.keys())if(!o.has(vx(u))){s=!1;break}if(!s)continue;let l;r===null||i.length>r.matched||i.length===r.matched&&n.canonical.length<r.pattern.canonical.length?l=!0:l=!1,l&&(r={pattern:n,matched:i.length,orderedDomain:i})}return r?{pattern:r.pattern.name,orderedDomain:r.orderedDomain}:LQ(e,t)}var _f=vo(bf(),1);/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var eee=85,tee=60,aee=/(^|[^a-z])(state|province|provincia|provinz|region|regione|regiao|county|department|departement|departamento|prefecture|oblast|canton|kanton|bundesland|land|territory)([^a-z]|$)/i,Af=e=>Math.round(e*10)/10,w0=e=>e.split("-")[0];function Px(e){let t=new Map,a=0;if(e.forEach((i,o)=>{let s=Ci(o);s&&(t.set(s,(t.get(s)||0)+i),a+=i)}),a===0)return{};let[r,n]=[...t].sort((i,o)=>o[1]-i[1])[0];return{dominantRegion:r,dominantRegionPct:Af(100*n/a)}}function nee(e,t,a={}){let r=new Map;if(!JM()||t.length===0)return r;let n=e.findIndex(s=>!s.isMeasure&&(s.geoKind||"").startsWith("country")),i=s=>s==null?"":String(s).trim(),o=s=>{let l=new Map;for(let p of t){let m=i(p[s]);if(!m)continue;let g=n>=0&&i(p[n])||null,f=m+""+(g??""),y=l.get(f);y?y.rows++:l.set(f,{city:m,country:g,rows:1})}if(l.size===0)return null;let u=0,c=0,d=new Set,h=new Map;return l.forEach(p=>{let m=QM(p.city,{country:p.country});m.status!=="unmatched"&&c++,!(m.status!=="resolved"||!m.provinceId)&&(u++,d.add(m.provinceId),h.set(m.cc,(h.get(m.cc)||0)+p.rows))}),{signals:{rollupPct:Af(100*u/l.size),regionCount:d.size,countryCount:h.size,...Px(h)},cityPct:100*c/l.size,distinct:l.size}};return e.forEach((s,l)=>{if(s.isMeasure||l===n)return;let u=s.geoKind||"";if(u.startsWith("city")){if(a.cities===!1)return;let S=o(l);S&&r.set(l,S.signals);return}if(u)return;let c=new Map,d=new Map;for(let S of t){let M=i(S[l]);M&&(c.set(M,(c.get(M)||0)+1),d.has(M)||d.set(M,n>=0&&i(S[n])||null))}if(c.size<3)return;let h=0,p=0,m=0,g=new Set,f=new Map;c.forEach((S,M)=>{if(ax(M)){h++;let W=M.toUpperCase();g.add(W),f.set(w0(W),(f.get(w0(W))||0)+S);return}let U=new Set(ex(M,d.get(M)).map(tx).filter(W=>!!W));if(U.size===1){p++;let W=[...U][0];g.add(W),f.set(w0(W),(f.get(w0(W))||0)+S)}else U.size>1&&m++});let y=aee.test(s.name.replace(/[_-]+/g," "))?tee:eee,b=100*h/c.size,v=100*p/c.size,k=b>=v,w=k?b:v;if(w<y){if(a.cities===!1)return;let S=o(l);if(!S||S.cityPct<v0||S.distinct<cf&&!qa(s.name,uf))return;r.set(l,S.signals);return}r.set(l,{kind:k?"admin1-code":"admin1-name",matchPct:Af(w),ambiguous:!k&&m/c.size>.15?!0:void 0,regionCount:g.size,countryCount:f.size,...Px(f)})}),r}function Gx(e){let t=(e||"").toLowerCase();return t==="en-us"||t==="en"||t.startsWith("en-us-")||t==="en-ph"||t==="en-bz"}var vf={a:0,b:0,c:0,yearFirst:!1,sep:"",trail:"",word:"",day:0,year:0,namedOrder:"dmy",cjkPattern:""},ree=/\s+(\d{1,2}):(\d{2})(?::(\d{2})(?:[.,]\d{1,9})?)?(?:\s*([ap])\.?\s?m\.?)?$/i,iee=/^(\d{1,4})(\s*[./-]\s*)(\d{1,2})(\s*[./-]\s*)(\d{1,4})(\.?)$/,oee=/^(\d{4})(\s*[年년]\s*)(\d{1,2})(\s*[月월]\s*)(\d{1,2})(\s*[日일号])$/,see=/(\d)(?:st|nd|rd|th|er|º|ª)(?=[\s.,/-]|$)/gi,lee=new Set(["de","del","of"]),uee=new Set(["\u0433","\u0440","r"]),cee=/^[\p{L}\p{M}\u0970\u05f3]+$/u,Nf=/^\d+$/;function dee(e){let t=+e[1],a=+e[2],r=e[3]===void 0?0:+e[3],n=e[4]!==void 0;if(a>59||r>59)return null;if(n){if(t<1||t>12)return null;t=t%12+(e[4].toLowerCase()==="p"?12:0)}else if(t>23)return null;return{h:t,mi:a,s:r,seconds:e[3]!==void 0,meridiem:n}}function Ux(e){let t=e.replace(/[\u200e\u200f\u061c]/g,"").replace(/\s+/g," ").trim();if(t==="")return null;t=g3(t);let a=null,r=ree.exec(t);if(r){if(a=dee(r),!a)return null;t=t.slice(0,r.index)}let n;if(n=oee.exec(t)){let h=`cjk|${n[2]}|${n[4]}|${n[6]}`;return{...vf,form:"cjk",key:h,clock:a,a:+n[1],b:+n[3],c:+n[5],yearFirst:!0,cjkPattern:`%Y${n[2]}%m${n[4]}%d${n[6]}`}}if(n=iee.exec(t)){let h=n[2],p=n[4];if(h!==p)return null;let m=h.trim(),g=n[6];if(g&&m!==".")return null;let f=[n[1].length,n[3].length,n[5].length],y=f[0]===4,b=f[2]===4;return y===b||(y?f[1]>2||f[2]>2:f[0]>2||f[1]>2)?null:y&&m==="-"&&h==="-"&&f[1]===2&&f[2]===2?"iso":y&&m==="."&&h==="."&&!g&&!(f[1]===2&&f[2]===2)?null:{...vf,form:"numeric",key:`num|${y?"y":"x"}|${h}|${g}`,clock:a,a:+n[1],b:+n[3],c:+n[5],yearFirst:y,sep:h,trail:g}}let i=t.replace(see,"$1").split(/[\s.,/-]+/).filter(h=>h!==""&&!lee.has(h.toLowerCase()));if(i.length===4&&Nf.test(i[2])&&uee.has(i[3].toLowerCase())&&i.pop(),i.length!==3)return null;let o=i.map(h=>Nf.test(h)?"N":cee.test(h)?"W":"?").join(""),s=i.map(h=>Nf.test(h)?h:""),l=0,u=0,c="",d;if(o==="NWN"&&s[0].length<=2&&s[2].length===4)l=+s[0],c=i[1],u=+s[2],d="dmy";else if(o==="WNN"&&s[1].length<=2&&s[2].length===4)c=i[0],l=+s[1],u=+s[2],d="mdy";else if(o==="NWN"&&s[0].length===4&&s[2].length<=2)u=+s[0],c=i[1],l=+s[2],d="ymd";else return null;return{...vf,form:"named",key:`named|${d}`,clock:a,day:l,year:u,word:c,namedOrder:d}}var hee=[31,28,31,30,31,30,31,31,30,31,30,31],pee=e=>e%4===0&&e%100!==0||e%400===0;function Tx(e,t,a){return e>=1&&e<=9999&&t>=1&&t<=12&&a>=1?a<=(t===2&&pee(e)?29:hee[t-1]):!1}function mee(e,t,a,r){let n=new Date(Date.UTC(2e3,t-1,a,r?.h??0,r?.mi??0,r?.s??0));return n.setUTCFullYear(e),n}function Pf(e,t={}){let a=(t.floor??1)>=1,r=new Map,n=new Map,i=0,o=null;for(let y of e){if(y==null)continue;if(typeof y!="string"){if(a)return null;i++;continue}let b=y.trim();if(b==="")continue;i++;let v=r.get(b);if(v===void 0&&(v=Ux(b),r.set(b,v)),v===null||v==="iso"){if(a)return null;continue}if(a){if(o===null)o=v;else if(v.key!==o.key)return null}else n.set(v.key,(n.get(v.key)??0)+1)}if(!a){let y=0,b="";for(let[v,k]of n)k>y&&(y=k,b=v);if(y===0||y/i<t.floor)return null;o=[...r.values()].find(v=>v!==null&&v!=="iso"&&v.key===b)??null}if(o===null)return null;let s=o.key,l=[...r.values()].filter(y=>y!==null&&y!=="iso"&&y.key===s),u,c="shape",d=null;if(o.form==="named"){if(u=o.namedOrder,d=zg(l.map(y=>y.word),t.locale),!d)return null}else if(o.form==="cjk"||o.yearFirst)u="ymd";else{let y=0,b=0;for(let v of l)v.a>12&&y++,v.b>12&&b++;if(y>0&&b>0)return null;y>0?(u="dmy",c="values"):b>0?(u="mdy",c="values"):o.sep.trim()==="."?(u="dmy",c="shape"):(u=Gx(t.locale)?"mdy":"dmy",c="locale")}let h=y=>{if(y.form==="named"){let b=d.get(Ka(y.word));return b===void 0?null:[y.year,b+1,y.day]}return y.yearFirst?[y.a,y.b,y.c]:u==="dmy"?[y.c,y.b,y.a]:[y.c,y.a,y.b]},p=1/0,m=-1/0,g=0;for(let y of l){let b=h(y);if(!b||!Tx(b[0],b[1],b[2])){if(a)return null;g++;continue}p=Math.min(p,b[0]),m=Math.max(m,b[0])}if(!a&&(n.get(s)-g)/i<t.floor||p>=2400&&m<=2699||p>=1300&&m<=1500)return null;let f={form:o.form,order:u,orderFrom:c,hasTime:l.some(y=>y.clock!==null),read(y){if(typeof y!="string")return null;let b=y.trim();if(b==="")return null;let v=r.get(b);if(v===void 0&&(v=Ux(b),r.set(b,v)),v===null||v==="iso"||v.key!==s)return null;let k=h(v);return!k||!Tx(k[0],k[1],k[2])?null:mee(k[0],k[1],k[2],v.clock)}};if(o.form!=="named"&&!l.some(y=>y.clock?.meridiem)){let y;o.form==="cjk"?y=o.cjkPattern:o.yearFirst?y=`%Y${o.sep}%m${o.sep}%d${o.trail}`:y=(u==="dmy"?`%d${o.sep}%m${o.sep}%Y`:`%m${o.sep}%d${o.sep}%Y`)+o.trail;let b=l.filter(v=>v.clock!==null).length;b===0?f.pattern=y:b===l.length&&(f.pattern=y+(l.every(v=>v.clock.seconds)?" %H:%M:%S":" %H:%M"))}return f}var gee={es:["latitud"],pt:["latitude"],fr:["latitude"],it:["latitudine"],nl:["breedtegraad"],de:["breitengrad"]},fee={es:["longitud"],pt:["longitude"],fr:["longitude"],it:["longitudine"],nl:["lengtegraad"],de:["l\xE4ngengrad"]},Uf=e=>Cn(e.normalize("NFC")).toLowerCase(),yee=new Set(Object.values(gee).flatMap(e=>(e??[]).map(Uf))),bee=new Set(Object.values(fee).flatMap(e=>(e??[]).map(Uf)));function vee(e){let t=!1,a=!1;for(let r of e){let n=Uf(r);yee.has(n)?t=!0:bee.has(n)&&(a=!0)}return t===a?null:t?"lat":"lon"}var Nee=["rate","ratio","pct","percent","percentage","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","z[_-]?score","average","avg","mean","median","stddev","variance","gpa","percentile","quantile","efficiency","accuracy","probability","multiplier","coefficient","correlation","occupancy","age","bmi","temperature","density","pressure","humidity","ph","velocity","speed","elevation","altitude","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps","capita","temperatuur","temperatur","temperatura","teplota","lampotila","homerseklet","sicaklik","pression","presion","pressao","pressione","druck","tryck","tlak","paine","nyomas","presiune","humidite","humedad","umidade","umidita","feuchtigkeit","vochtigheid","kosteus","vlhkost","vitesse","velocidad","velocidade","velocita","geschwindigkeit","snelheid","hastighet","hastighed","rychlost","nopeus","sebesseg","brzina","predkosc","densite","densidad","densidade","densita","dichte","dichtheid","hustota","tiheys","gustoca","moyenne","mediane","promedio","mediana","gemiddelde","durchschnitt","mittelwert","genomsnitt","gennemsnit","gjennomsnitt","keskiarvo","atlag","ortalama","prosjek","srednia","prumer","priemer","medie","taux","tasa","taxa","tasso","verhaltnis","verhouding","aandeel","anteil","andel","osuus","podil","udzial","udio","pourcentage","porcentaje","percentual","prozent","procent","prosentti","szazalek","yuzde","participacion","participacao","pondere","omjer","arany","oran","rata","leeftijd","edad","idade","wiek","eletkor","varsta","puntuacion","pontuacao","punteggio","betyg","ocena","indice","indeks","wskaznik","puan","ocupacion","ocupacao","occupazione","auslastung","bezetting","belaggning","belaegning","belegg","kayttoaste","oblozenie","obsazenost","obsadenost","kihasznaltsag","doluluk","ocupare","popunjenost","efficacite","eficiencia","efficienza","effizienz","effectiviteit","verimlilik"],See=["pct","percent","percentage","rate","ratio","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","gpa","percentile","quantile","bmi","density","pressure","humidity","velocity","efficiency","occupancy","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps"],kee=["latitude","longitude"],wee=["latitude","longitude"];function Tf(e){return Cn(e)}var Kx=["somme de","suma de","soma de","summe von","som van","somma di","summa av","sum av","sum af","soucet z","suma z","totaal van","total de","toplam","osszeg","nombre de","recuento de","contagem de","anzahl von","aantal van","conteggio di","antal av","lukumaara","pocet z","sum pa","\u0441\u0443\u043C\u043C\u0430","\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E","\u0441\u0443\u043C\u0430","\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C","\u03B1\u03B8\u03C1\u03BF\u03B9\u03C3\u03BC\u03B1","\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2"],Wee=["moyenne de","promedio de","media de","media di","durchschnitt von","gemiddelde van","medelvarde av","genomsnitt av","gennemsnit af","keskiarvo","atlag","ortalama","prumer z","srednia z","medie de","minimum de","minimo de","minimo di","minimum von","maximum de","maximo de","massimo di","maximum von","prom.","\u0441\u0440\u0435\u0434\u043D\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435","\u0441\u0440\u0435\u0434\u043D\u0435\u0435","\u0441\u0435\u0440\u0435\u0434\u043D\u0454","\u03BC\u03B5\u03C3\u03BF\u03C2 \u03BF\u03C1\u03BF\u03C2","\u0645\u06CC\u0627\u0646\u06AF\u06CC\u0646"],Cee=["osszege","sucet","\u7684\u603B\u548C","\u7684\u8BA1\u6570","\u306E\u5408\u8A08","\uC758 \uD569\uACC4"],Aee=["atlaga","priemer","\u7684\u5E73\u5747\u503C","\u306E\u5E73\u5747","\uC758 \uD3C9\uADE0"],W0=Object.freeze({"nombre de":"count","recuento de":"count","contagem de":"count","anzahl von":"count","aantal van":"count","conteggio di":"count","antal av":"count",lukumaara:"count","pocet z":"count",\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:"count",\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C:"count",\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2:"count",\u7684\u8BA1\u6570:"count","minimum de":"min","minimo de":"min","minimo di":"min","minimum von":"min","maximum de":"max","maximo de":"max","massimo di":"max","maximum von":"max"});function Mf(e){return[...e].sort((t,a)=>a.length-t.length).map(t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")}var _ee=new RegExp("^\\s*(?:(?:sum|count|count\\s+distinct|distinct\\s+count)\\s+of\\s+|(?:"+Mf(Kx)+")\\s+)","i");function Ex(e){for(let t of e){let a=t.codePointAt(0)??0;if(a>=11904&&a<=40959||a>=44032&&a<=55215)return!0}return!1}var Mee="[\u2013\u2014-]";function Xx(e){let t=e.filter(n=>!Ex(n)),a=e.filter(Ex),r=[];return t.length&&r.push("(?:\\s+|\\s*"+Mee+"\\s*)("+Mf(t)+")"),a.length&&r.push("\\s*("+Mf(a)+")"),new RegExp("(?:"+r.join("|")+")\\s*$","i")}var Vx=Xx(Cee),xee=Xx(Aee);function xf(e,t){let a=t.exec(e);if(!a)return null;let r=e.slice(0,a.index);return r.trim()===""?null:{base:r,label:(a[1]??a[2]??"").toLowerCase()}}function Iee(e){let t=Tf(String(e??"").trim().toLowerCase());if(!t)return null;for(let n of Wee)if(t.startsWith(n+" "))return W0[n]??"avg";for(let n of Kx)if(t.startsWith(n+" ")||t===n)return W0[n]??"sum";let a=xf(t,xee);if(a)return W0[a.label]??"avg";let r=xf(t,Vx);return r?W0[r.label]??"sum":null}var Bhe=new RegExp("\\b("+Nee.join("|")+")\\b|("+See.join("|")+")$","i"),Hhe=new RegExp("\\b("+kee.join("|")+")\\b|("+wee.join("|")+")$","i");function Pee(e){if(!e)return"";let t=String(e),a=Tf(t),r=_ee.exec(a);if(r)return t.slice(r[0].length).trim();let n=xf(a,Vx);return(n?t.slice(0,n.base.length):t).trim()}var Uee=["count (distinct)","count distinct","distinct count","standard deviation","average","variance","median","product","stddev","std dev","count","sum","avg","min","minimum","max","maximum","var"],Rx=new RegExp("^\\s*("+[...Uee].sort((e,t)=>t.length-e.length).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")+")\\s+of\\s+","i");function zx(e){if(e==null)return"";let t=String(e),a=Rx.exec(t);if(!a)return t;let r=s=>s.toLowerCase().replace(/\s+/g," ").trim(),n=r(a[1]),i=t.slice(a[0].length),o=0;for(;o<8;){let s=Rx.exec(i);if(!s||r(s[1])!==n)break;let l=i.slice(s[0].length);if(l.trim()==="")break;i=l,o++}return o===0?t:t.slice(0,a[0].length)+i}function $x(e,t){if(!e||!t)return!1;let a=String(e);for(let r of t){let n=r?.hostName;if(n&&n!==r?.name&&a.includes(n))return!0}return!1}var C0={Sum:["Sum of "],Avg:["Average of "],Average:["Average of "],Count:["Count of "],CountNonNull:["Count of "],Min:["Min of ","First ","Earliest "],Max:["Max of ","Last ","Latest "],Median:["Median of "],StandardDeviation:["Standard deviation of "],Variance:["Variance of "]},qx=new RegExp("^("+Object.keys(C0).join("|")+")\\((.+)\\)$");function Tee(e){if(!e)return[];let t=qx.exec(String(e).trim());if(!t)return[];let a=C0[t[1]],r=t[2],n=[];for(let i=r.indexOf(".");i>=0;i=r.indexOf(".",i+1)){if(i===0)continue;let o=r.slice(i+1);if(o.trim()!=="")for(let s of a){let l=s+o;n.includes(l)||n.push(l)}}return n}function Eee(e,t,a){let r=qx.exec(String(e??"").trim());if(!r)return!1;let n=r[1];if((n==="Count"||n==="CountNonNull")&&a==="Decimal")return!0;let i=new Set(C0[n]),o=String(t??""),s=r[2];for(let l=s.indexOf(".");l>=0;l=s.indexOf(".",l+1)){if(l===0)continue;let u=s.slice(l+1);if(u.trim()!==""){for(let c of Object.values(C0))for(let d of c)if(!i.has(d)&&o===d+u)return!0}}return!1}var Ree={de:["nr","nummer","kennung","kennziffer","plz","postleitzahl"],nl:["nr","nummer"],sv:["nr","nummer"],da:["nr","nummer"],nb:["nr","nummer"],fi:["tunnus","koodi","nro"],hu:["azonos\xEDt\xF3","k\xF3d"],tr:["kod","kodu","numaras\u0131","numarasi"],zh:["\u7F16\u53F7","\u4EE3\u7801","\u7F16\u7801","\u53F7\u7801","\u90AE\u7F16"],ja:["\u756A\u53F7","\u30B3\u30FC\u30C9"],ko:["\uBC88\uD638","\uCF54\uB4DC"],hi:["\u0915\u094B\u0921","\u0915\u094D\u0930\u092E\u093E\u0902\u0915"],fr:["num\xE9ro"],es:["c\xF3digo"],pt:["c\xF3digo","cep"],it:["codice"],pl:["kod","numer"],cs:["k\xF3d","\u010D\xEDslo"],sk:["k\xF3d","\u010D\xEDslo"],hr:["\u0161ifra","oznaka"],ru:["\u043A\u043E\u0434","\u043D\u043E\u043C\u0435\u0440"],uk:["\u043A\u043E\u0434","\u043D\u043E\u043C\u0435\u0440"],el:["\u03BA\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2"],ar:["\u0631\u0645\u0632","\u0643\u0648\u062F","\u0631\u0642\u0645"],he:["\u05E7\u05D5\u05D3"],id:["kode","nomor"],vi:["m\xE3"],th:["\u0E23\u0E2B\u0E31\u0E2A"]},zee=["fr","es","pt","it","pl","cs","sk","hr","ru","uk","el","ar","he","id","vi","th"],$ee=["num\xE9ro"],Oee=e=>e.normalize("NFC").toLowerCase();function Dee(e,t,a,r){let n=Ga(a);return!n||!e?null:e===t?"word":n.wordBreaks===!1?Array.from(t).length<Dg?null:(r?e.startsWith(t):e.endsWith(t))&&e.length>t.length?"suffix":null:r?$g(e,a).includes(t)?"word":null:n.script==="Hang"?Og(e,t)?"suffix":null:n.compounds&&wi(e,t,D8)?"suffix":null}function Lee(e){let t=String(e??"").trim();if(!t)return null;let a=gr(t),r=gr(Pee(t));for(let[n,i]of Object.entries(Ree)){let o=zee.includes(n),s=o?r:a;for(let l of i){let u=$ee.includes(l)||!!Ga(n)?.foldSensitive,c=u?s.words:s.folded;if(c.length===0)continue;let d=u?Oee(l):gr(l).folded.join(" "),h=Dee(o?c[0]:c[c.length-1],d,n,o);if(h)return{lang:n,word:l,view:h}}}return null}var jee=[["Lu",new RegExp("^\\p{Lu}$","u")],["Ll",new RegExp("^\\p{Ll}$","u")],["Lt",new RegExp("^\\p{Lt}$","u")],["Lm",new RegExp("^\\p{Lm}$","u")],["Lo",new RegExp("^\\p{Lo}$","u")],["Mn",new RegExp("^\\p{Mn}$","u")],["Mc",new RegExp("^\\p{Mc}$","u")],["Nd",new RegExp("^\\p{Nd}$","u")]];function A0(e){for(let[t,a]of jee)if(a.test(e))return t;return null}var Fee=[{id:"ascii",test:/^[A-Za-z]$/,ranges:[[65,90],[97,122]]},{id:"latin",test:/^[\u00C0-\u017F]$/u,ranges:[[192,383]]},{id:"cyrillic",test:/^[\u0400-\u045F\u0490-\u0491]$/u,ranges:[[1024,1119],[1168,1169]]},{id:"greek",test:/^[\u0386-\u03CE]$/u,ranges:[[902,974]]},{id:"han",test:/^[\u4E00-\u9FFF]$/u,ranges:[[19968,40959]]},{id:"hiragana",test:new RegExp("^\\p{Script=Hiragana}$","u"),ranges:[[12353,12447]]},{id:"katakana",test:new RegExp("^\\p{Script=Katakana}$","u"),ranges:[[12448,12543]]},{id:"hangul",test:/^[\uAC00-\uD7A3]$/u,ranges:[[44032,55203]]},{id:"arabic",test:/^[\u0620-\u0652\u0671-\u06D3]$/u,ranges:[[1568,1618],[1649,1747]]},{id:"hebrew",test:/^[\u05B0-\u05EA]$/u,ranges:[[1456,1514]]},{id:"devanagari",test:new RegExp("^\\p{Script=Devanagari}$","u"),ranges:[[2304,2431]]},{id:"thai",test:new RegExp("^\\p{Script=Thai}$","u"),ranges:[[3585,3662]]}],_0=new Map;function Ox(e,t,a,r){let n=_0.get(e);if(n)return n;let i=[];for(let[o,s]of t)for(let l=o;l<=s;l++){let u=String.fromCodePoint(l);A0(u)===a&&(r&&!r.test(u)||i.push(u))}return _0.set(e,i),i}function Bee(e){let t=e.codePointAt(0);for(let i=0;i<9&&A0(String.fromCodePoint(t-1))==="Nd";i++)t--;let a="nd:"+t.toString(16),r=_0.get(a);if(r)return r;let n=[];for(let i=t;i<t+10;i++){let o=String.fromCodePoint(i);A0(o)==="Nd"&&n.push(o)}return _0.set(a,n),n}function Hee(e,t){if(t==="Nd")return Bee(e);for(let r of Fee)if(r.test.test(e))return Ox(r.id+":"+t,r.ranges,t,r.id==="ascii"?null:r.test);let a=e.codePointAt(0)&-128;return Ox("block:"+a.toString(16)+":"+t,[[a,a+127]],t,null)}function Gee(e,t,a,r){let n=e.filter(i=>!t.has(i));return n.length===0&&(n=e.filter(i=>i!==a)),n.length===0?a:n[Math.min(n.length-1,Math.floor(r()*n.length))]}var Kee=/^[\p{L}\p{M}\p{Nd}]$/u,Dx=/^[\p{L}\p{Nd}]$/u;function Xee(e,t){if(!e)return e??"";let a=new Set(Array.from(e)),r=u=>{let c=A0(u);return!c||!Kee.test(u)?u:Gee(Hee(u,c),a,u,t)},n=u=>{let c=[];for(let d of u)c.push(r(d)),Dx.test(d)&&t()<.2&&c.push(r(d));if(c.length>6){let d=Math.floor(t()*Math.min(3,c.length-6));for(let h=0;h<d;h++)for(let p=0;p<5;p++){let m=Math.floor(t()*c.length);if(Dx.test(c[m])){c.splice(m,1);break}}}return c.join("")};if(!(e.includes("@")&&e.includes(".")))return n(e);let[i,o=""]=e.split("@"),s=o.endsWith(".com"),l=s?o.slice(0,-4):o;return`${n(i)}@${n(l)}${s?".com":""}`}var Vee=/^[A-Za-z_$][A-Za-z0-9_$]*$/,qee=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Ghe=new RegExp([String.raw`\bisMeasure\b`,String.raw`\bdataType\b`,String.raw`\bcolumns\s*\[\s*-?\d`,String.raw`\.iloc\s*\[[^\]]*,`,String.raw`\.iat\s*\[`,String.raw`\bselect_dtypes\b`,String.raw`\b_get_numeric_data\b`,String.raw`\bis_numeric_dtype\b`,String.raw`\bfor\s+\w+\s+in\s+(?:list\s*\(\s*)?df\.columns\b`,String.raw`\bdf\.columns\s*\.\s*(?:tolist|to_list|difference|drop)\b`,String.raw`\bdf\.dtypes\b`,String.raw`\bObject\s*\.\s*(?:keys|values|entries)\s*\(\s*(?:rows|data|df)?\s*\[\s*0\s*\]`,String.raw`\b(?:row|rw|r)\s*\[\s*\d+\s*\]`].join("|"));function Lx(e,t){if(!e||!t)return!1;let a=qee(t);return new RegExp("['\"`]"+a+"['\"`]").test(e)?!0:Vee.test(t)&&new RegExp("\\."+a+"(?![A-Za-z0-9_$])").test(e)}var Zee=5,Jee=6,Yee=3,br=864e5,Qee=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2}))?(?:\.\d+)?Z?)?$/,ete=/^(\d{4})[-/](\d{1,2})$/,tte=/^(\d{4})[-\s]?Q([1-4])$/i,ate=/^Q([1-4])[-\s](\d{4})$/i,nte=/^(\d{4})$/,rte=/^(\d{4})(0[1-9]|1[0-2])$/,ite=/^(\d{4})(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])$/,ote=/^(\D+?)[\s\-/.,']*((?:19|20)\d{2})$/u,ste=/^((?:19|20)\d{2})[\s\-/.,']+(\D+)$/u;function Sf(e,t,a){let r=Ka(e);if(!r)return 0;if(r==="sept")return 9;for(let o of t&&!/^en\b/i.test(t)?["en",t]:["en"]){let s=Rg(o)[r];if(s!==void 0)return s+1}let n=a?.get(r);if(n!==void 0)return n+1;let i=y0(e);if(i.length>0){if(i.every(l=>l.month===i[0].month))return i[0].month+1;let o=$8(String(t??"").split(/[-_]/)[0])?.code,s=i.find(l=>l.lang===o);if(s)return s.month+1}return 0}function lte(e){let t=k0(e).filter(r=>r.yearDigits===4);if(t.length===0||t.some(r=>r.lang==="en"))return null;let a=t[0];return t.some(r=>r.grain!=="quarter"||r.n!==a.n||r.year!==a.year)?null:oa(a.year,(a.n-1)*3+1,1)}function oa(e,t,a,r=0,n=0,i=0){if(!(e>=1&&t>=1&&t<=12&&a>=1&&a<=31))return null;let o=Date.UTC(e,t-1,a,r,n,i);if(!Number.isFinite(o))return null;let s=l=>l<10?"0"+l:String(l);return{ms:o,y:e,m:t,d:a,iso:`${e}-${s(t)}-${s(a)}`}}function ute(e,t){let a=[],r="";for(let l=0;l<t.length;l++){if(t[l]!=="%"){r+=t[l].replace(/[.*+?^${}()|[\]\\]/g,"\\$&");continue}switch(t[++l]){case"Y":a.push("Y"),r+="(\\d{4})";break;case"m":a.push("m"),r+="(\\d{1,2})";break;case"d":a.push("d"),r+="(\\d{1,2})";break;case"H":case"M":case"S":r+="\\d{1,2}";break;case"%":r+="%";break;default:return null}}let n=new RegExp("^"+r+"$").exec(e);if(!n)return null;let i=0,o=1,s=1;return a.forEach((l,u)=>{let c=+n[u+1];l==="Y"?i=c:l==="m"?o=c:s=c}),i?oa(i,o,s):null}function K8(e,t,a,r){let n=(e??"").trim();if(n==="")return null;if(t)return ute(n,t)||null;let i=Qee.exec(n);if(i)return oa(+i[1],+i[2],+i[3],+(i[4]??0),+(i[5]??0),+(i[6]??0));if(i=tte.exec(n),i)return oa(+i[1],(+i[2]-1)*3+1,1);if(i=ate.exec(n),i)return oa(+i[2],(+i[1]-1)*3+1,1);if(i=ete.exec(n),i&&+i[2]>=1&&+i[2]<=12)return oa(+i[1],+i[2],1);if(i=ite.exec(n),i)return oa(+i[1],+i[2],+i[3]);if(i=rte.exec(n),i)return oa(+i[1],+i[2],1);if(i=nte.exec(n),i){let l=+i[1];return l>=1900&&l<=2100?oa(l,1,1):null}let o=lte(n);if(o)return o;if(i=ote.exec(n),i){let l=Sf(i[1],a,r);if(l)return oa(+i[2],l,1)}if(i=ste.exec(n),i){let l=Sf(i[2],a,r);if(l)return oa(+i[1],l,1)}let s=O8(n);if(s){let l="month"in s?s.month:Sf(s.word,a,r);if(l)return oa(s.year,l,1)}return null}function Zx(e){let t=new Date(e).getUTCDay();return t>=1&&t<=5}function Jx(e,t){if(t<=e)return 0;let a=Math.round((t-e)/br),r=Math.floor(a/7),n=r*5,i=e+r*7*br;for(;i<t;)Zx(i)&&n++,i+=br;return n}function cte(e){if(e.length===0)return 0;let t=[...e].sort((r,n)=>r-n),a=t.length>>1;return t.length%2?t[a]:(t[a-1]+t[a])/2}function dte(e){return e>0?e<.95?"hour":e<=1.05?"day":e>=6.5&&e<=7.5?"week":e>=27&&e<=31.5?"month":e>=88&&e<=93?"quarter":e>=362&&e<=368?"year":"irregular":"irregular"}function M0(e,t,a,r){switch(a){case"year":return t.y-e.y;case"quarter":return t.y*4+Math.floor((t.m-1)/3)-(e.y*4+Math.floor((e.m-1)/3));case"month":return t.y*12+t.m-(e.y*12+e.m);case"week":return Math.round((t.ms-e.ms)/(7*br));case"weekday":return Jx(e.ms,t.ms);case"day":return Math.round((t.ms-e.ms)/br);default:return r>0?Math.round((t.ms-e.ms)/r):0}}function hte(e,t){return Yx(e,t)?.cadence??null}function Yx(e,t){let a=t?.gapFactor??Zee,r=0,n=0,i=new Map,o=Array.from(e),s;if(!t?.pattern){let k=[];for(let w of o){if(w==null||w==="")continue;let S=O8(String(w));S&&"word"in S&&k.push(S.word)}k.length>0&&(s=zg(k,t?.locale)??void 0)}for(let k of o){if(k==null||k==="")continue;r++;let w=K8(String(k),t?.pattern,t?.locale,s);w&&(n++,i.set(w.ms,w))}let l=[...i.values()].sort((k,w)=>k.ms-w.ms);if(l.length<Yee||r>0&&n/r<.8)return null;let u=l[l.length-1].ms-l[0].ms;if(u<=0)return null;let c=[];for(let k=1;k<l.length;k++)c.push(l[k].ms-l[k-1].ms);let d=cte(c);if(!(d>0))return null;let h=dte(d/br);h==="day"&&u>=7*br&&l.every(k=>Zx(k.ms))&&Jx(l[0].ms,l[l.length-1].ms)+1>l.length*.5&&(h="weekday");let p=h==="irregular"?l.length:M0(l[0],l[l.length-1],h,d)+1,m=1,g=1,f=[],y=l[0],b=1;for(let k=1;k<l.length;k++){let w=M0(l[k-1],l[k],h,d);w>m&&(m=w),h!=="irregular"&&w>a?(g++,f.push({from:y.iso,to:l[k-1].iso,points:b}),y=l[k],b=1):b++}f.push({from:y.iso,to:l[l.length-1].iso,points:b});let v={grain:h,points:l.length,expectedPoints:Math.max(p,l.length),coveragePct:Math.round(l.length/Math.max(p,l.length)*1e3)/10,runs:g,largestGapUnits:m,gapFactor:a};return t?.includeBounds&&f.length<=Jee&&(v.runBounds=f),{cadence:v,points:l,stepMs:d}}var pte=8,mte=.5,gte=200,fte=new Set(["category","categories","subcategory","type","types","kind","class","classes","classification","segment","segments","tier","status","priority","severity","grade","level","band","bucket","group","channel","method","mode","stage","phase","period","shift","gender","sex","result","outcome","reason","flag","genre","sector","source"]),yte=["category","classification","segment","status","priority","severity","channel"],bte=new Set(["UUID","EMAIL_LIKE","URL_LIKE","PHONE_LIKE","NUMERIC_ID","HEX_ID","OPAQUE_ID_ALPHANUMERIC","DATE_STR","BOOLEAN"]);function vte(e){let t=Wa(e);if(t.length===0)return!1;let a=t[t.length-1];return fte.has(a)?!0:yte.some(r=>a.length>r.length&&a.endsWith(r))}function Nte(e){if(e.isMeasure)return"measure";if(e.isTemporal||e.isDatePart||e.isReassembledDate)return"temporal";let t=Array.from(e.values).filter(a=>a!==""&&a!==null&&a!==void 0);return t.length<2||t.length>gte?"cardinality":e.rows>0&&t.length>=e.rows?"row-identity":e.isBinaryFlag?"flag":gf(t,e.locale)!==null?"ordinal":e.identifierNamed||e.dataType==="String"&&bte.has(Tg(t))?"identifier":!e.geoKind&&vte(e.name)?"attribute":"entity"}function Ste(e){let t=-1,a=1/0,r=!1;return e.forEach((n,i)=>{if(Nte(n)!=="entity")return;let o=new Set(Array.from(n.values).filter(l=>l!=="")).size,s=!!n.geoKind;(o<a||o===a&&s&&!r)&&(t=i,a=o,r=s)}),t}var jx=e=>e<10?"0"+e:String(e);function Fx(e,t){switch(t){case"year":return`${e.y}-01-01`;case"quarter":return`${e.y}-${jx(Math.floor((e.m-1)/3)*3+1)}-01`;case"month":return`${e.y}-${jx(e.m)}-01`;case"hour":return new Date(e.ms).toISOString().replace(/\.\d{3}Z$/,"Z");default:return e.iso}}function kte(e){let{periods:t,series:a}=e,r=Math.min(t.length,a.length),n=new Set;for(let w=0;w<r;w++)t[w]&&n.add(t[w]);let i=Yx(n,{pattern:e.pattern,locale:e.locale});if(!i)return null;let o=i.cadence.grain;if(o==="irregular")return null;let s=i.points[0],l=M0(s,i.points[i.points.length-1],o,i.stepMs)+1;if(l!==i.cadence.expectedPoints)return null;let u=new Map;for(let w of n){let S=K8(w,e.pattern,e.locale);if(!S)continue;let M=M0(s,S,o,i.stepMs);M>=0&&M<l&&u.set(w,{idx:M,stamp:S})}let c=new Map;for(let w=0;w<r;w++){let S=a[w];if(!S)continue;let M=u.get(t[w]);if(!M)continue;let U=c.get(S);U||(U={seen:new Set,lo:M.idx,hi:M.idx,loStamp:M.stamp,hiStamp:M.stamp,order:c.size},c.set(S,U)),U.seen.add(M.idx),M.idx<U.lo&&(U.lo=M.idx,U.loStamp=M.stamp),M.idx>U.hi&&(U.hi=M.idx,U.hiStamp=M.stamp)}if(c.size<2)return null;let d=0;for(let w of c.values())d+=w.seen.size;if(d/(c.size*l)<(e.minFill??mte))return null;let h=[],p=new Set,m=0,g=0,f=0,y=0,b=0,v=1;for(let[w,S]of c){for(let A of S.seen)p.add(A);if(S.seen.size>=l)continue;let M=[...S.seen].sort((A,R)=>A-R),U=1;for(let A=1;A<M.length;A++)U=Math.max(U,M[A]-M[A-1]);let W={key:w,acc:S,coverage:S.seen.size/l,before:S.lo,after:l-1-S.hi,interior:S.hi-S.lo+1-S.seen.size,gap:U};h.push(W),W.before>0&&m++,W.after>0&&g++,W.interior>0&&f++,y=Math.max(y,W.before),b=Math.max(b,W.after),v=Math.max(v,U)}if(h.length===0)return null;h.sort((w,S)=>w.coverage-S.coverage||w.acc.order-S.acc.order);let k=h.slice(0,e.maxListed??pte);return{seriesColumn:e.seriesColumn,grain:o,periods:l,seriesCount:c.size,incompleteSeries:h.length,lateStarts:m,earlyEnds:g,withHoles:f,columnWideMissing:l-p.size,maxMissingBefore:y,maxMissingAfter:b,largestGap:v,series:k.map(w=>{let S={};return e.includeNames&&(S.name=w.key),e.includeDates&&(S.first=Fx(w.acc.loStamp,o),S.last=Fx(w.acc.hiStamp,o)),S.missingBefore=w.before,S.missingAfter=w.after,S.missingInterior=w.interior,S.largestGap=w.gap,S.coverage=Math.round(w.coverage*1e3)/1e3,S}),more:h.length-k.length}}var If=6;function G8(e){let t=e.slice().sort((r,n)=>r-n),a=t.length>>1;return t.length%2?t[a]:(t[a-1]+t[a])/2}function wte(e){let t=e.length;if(t<If)return null;let a=e[0],r=e[0],n=0;for(let v of e)v<a&&(a=v),v>r&&(r=v),n+=v;if(a===r)return null;let i=G8(e.map(Math.abs));if(i===0)return null;let o=[];for(let v=1;v<t;v++)o.push(e[v]-e[v-1]);let s=G8(o.map(Math.abs))/i,l=(t-1)/2,u=n/t,c=0,d=0,h=0;for(let v=0;v<t;v++)c+=(v-l)*(e[v]-u),d+=(v-l)*(v-l),h+=(e[v]-u)*(e[v]-u);h/=t;let p=c/d,m=u-p*l,g=e.map((v,k)=>v-(m+p*k)),f=g.reduce((v,k)=>v+k,0)/t,y=0,b=0;for(let v=0;v<t;v++)y+=(g[v]-f)*(g[v]-f),v>0&&(b+=(g[v]-g[v-1])*(g[v]-g[v-1]));return y/=t,b/=t-1,{vnDetrended:y<=h*1e-12?2:b/y,relStep:s}}function Wte(e){let{stamps:t,series:a,values:r}=e,n=Math.min(t.length,r.length),i=new Map;for(let u=0;u<n;u++){let c=t[u],d=r[u];if(c===null||d===null||!Number.isFinite(d))continue;let h="";if(a&&(h=a[u]??"",h===""))continue;let p=i.get(h);p||i.set(h,p=new Map),p.set(c,(p.get(c)??0)+d)}let o=[],s=[],l=[];for(let u of i.values()){let c=[...u.entries()].sort((h,p)=>h[0]-p[0]).map(h=>h[1]),d=wte(c);d&&(o.push(d.vnDetrended),s.push(d.relStep),l.push(c.length))}return o.length===0?null:{series:o.length,points:Math.round(G8(l)),vnDetrended:Math.round(G8(o)*1e3)/1e3,relStep:Math.round(G8(s)*1e4)/1e4}}var Cte=5e5,Ate=8,_te=4,Mte=5,kf=1,wf=2,xte=4,Ite=8;function Pte(e,t,a){let[r,n]=[...e];if(t.isTemporal){let i=K8(r,t.temporalTextPattern,a),o=K8(n,t.temporalTextPattern,a);if(i&&o&&i.ms!==o.ms)return i.ms<o.ms?{a:r,b:n,setOrder:"temporal"}:{a:n,b:r,setOrder:"temporal"}}return r<n?{a:r,b:n,setOrder:"none"}:{a:n,b:r,setOrder:"none"}}function Ute(e,t,a){let{rows:r,text:n,locale:i}=e,o=Pte(a.values,a,i),s=new Uint8Array(r.length),l=0;for(let u=0;u<r.length;u++){let c=n(r[u][t]);c===o.a?s[u]=1:c===o.b?s[u]=2:l++}return{code:s,blankRows:l,setOrder:o.setOrder}}function Tte(e,t){let{rows:a,text:r}=e,n=new Int32Array(a.length),i=new Map;for(let o=0;o<a.length;o++){let s=r(a[o][t]);if(s===""){n[o]=-1;continue}let l=i.get(s);l===void 0&&(l=i.size,i.set(s,l)),n[o]=l}return{ids:n,dict:i}}function Ete(e,t,a){let r=new Uint8Array(a);for(let i=0;i<e.length;i++){let o=t[i];if(o===0)continue;let s=e[i];if(s<0)continue;let l=r[s];r[s]=l&o?l|o<<2:l|o}let n={keysA:0,keysB:0,keysBoth:0,dupA:0,dupB:0};for(let i=0;i<a;i++){let o=r[i];o&kf&&n.keysA++,o&wf&&n.keysB++,(o&(kf|wf))===(kf|wf)&&n.keysBoth++,o&xte&&n.dupA++,o&Ite&&n.dupB++}return n}function Rte(e,t){let a=(e.dupA+e.dupB)*(t.keysA+t.keysB),r=(t.dupA+t.dupB)*(e.keysA+e.keysB);return a<r||a===r&&e.keysBoth>t.keysBoth}var Bx=e=>e==null||typeof e=="string"&&e.trim()==="";function zte(e,t,a){if(e===t)return!0;let r=Bx(e),n=Bx(t);return r||n?r&&n:typeof e=="number"&&typeof t=="number"?!1:e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():a(e).trim()===a(t).trim()}function $te(e){let{rows:t,columns:a}=e,r=t.length;if(r<2||r>Cte)return null;let n=a.map((S,M)=>({c:S,i:M})).filter(({c:S})=>!S.isMeasure&&!S.isTemporal&&!S.isDatePart&&S.distinct>=Mte).sort((S,M)=>(M.c.identifierNamed?1:0)-(S.c.identifierNamed?1:0)||M.c.distinct-S.c.distinct||S.i-M.i).slice(0,Ate),i=a.map((S,M)=>({c:S,i:M})).filter(({c:S})=>!S.isMeasure&&S.values!==null&&S.values.size===2).slice(0,_te);if(n.length===0||i.length===0)return null;let o=i.map(({c:S,i:M})=>Ute(e,M,S)),s=null;for(let{i:S}of n){let M=Tte(e,S);for(let U=0;U<i.length;U++){if(i[U].i===S)continue;let W=Ete(M.ids,o[U].code,M.dict.size);W.keysBoth<1||(!s||Rte(W,s.tally))&&(s={tally:W,keyIdx:S,setNo:U,ids:M.ids,dict:M.dict})}}if(!s)return null;let{ids:l,dict:u,tally:c}=s,d=o[s.setNo],h=i[s.setNo].i,p=u.size,m=new Int32Array(p).fill(-1),g=new Int32Array(p).fill(-1);for(let S=0;S<r;S++){let M=d.code[S],U=l[S];M===0||U<0||(M===1?m[U]<0&&(m[U]=S):g[U]<0&&(g[U]=S))}let f=[];for(let S=0;S<a.length;S++)S!==s.keyIdx&&S!==h&&f.push(S);let y=0;for(let S=0;S<p;S++){let M=m[S],U=g[S];if(M<0||U<0)continue;let W=t[M],A=t[U],R=!0;for(let j of f)if(!zte(W[j],A[j],e.text)){R=!1;break}R&&y++}let b=y===c.keysBoth?100:y===0?0:Math.min(99,Math.max(1,Math.round(y/c.keysBoth*100))),v=new Map,k=new Map;for(let[S,M]of u){let U=m[M]>=0,W=g[M]>=0;if(!U&&!W)continue;let A=Wn(S);pr(A)&&(U&&v.set(A,(v.get(A)??0)+1),W&&k.set(A,(k.get(A)??0)+1))}let w=S=>{let M=0;for(let U of S.values())U>=2&&(M+=U);return M};return{key:s.keyIdx,discriminator:h,pairing:{form:"long",key:a[s.keyIdx].name,discriminator:a[h].name,keysA:c.keysA,keysB:c.keysB,keysBoth:c.keysBoth,duplicateKeysA:c.dupA,duplicateKeysB:c.dupB,identicalPct:b,discriminatorBlankRows:d.blankRows,looseCollisionsA:w(v),looseCollisionsB:w(k),setOrder:d.setOrder}}}var Ote=e=>e==="Integer"||e==="Decimal";function Dte(e){let t=[],a=[];return e.forEach((r,n)=>{if(r.twoValues){if(r.isBinaryFlag){t.push(n);return}r.isMeasure||r.isTemporal||r.isDatePart||r.identifierNamed||a.push(n)}}),[...t,...a].slice(0,6)}function Lte(e,t){let a=[];for(let r=0;r<e.length&&a.length<12;r++){let n=e[r];t.has(r)||!Ote(n.dataType)||n.isTemporal||n.isDatePart||n.identifierNamed||n.distinct<3||a.push(r)}return a}function jte(e){let t=new Map,{rows:a,columns:r,text:n}=e;if(a.length===0||a.length>(e.maxRows??5e5))return t;let i=Dte(r);if(i.length===0)return t;let o=Lte(r,new Set(i));if(o.length===0)return t;let s=i.map(l=>{let[u,c]=r[l].twoValues,d=new Uint8Array(a.length);for(let h=0;h<a.length;h++){let p=n(a[h][l]);d[h]=p===u?1:p===c?2:0}return d});for(let l of o){let u=new Float64Array(a.length),c=0;for(let b=0;b<a.length;b++){let v=a[b][l],k=v==null||v===""?NaN:typeof v=="number"?v:parseFloat(v);u[b]=k,k===k&&k!==1/0&&k!==-1/0&&c++}if(c<2)continue;let d=new Float64Array(c);for(let b=0,v=0;b<a.length;b++){let k=u[b];k===k&&k!==1/0&&k!==-1/0&&(d[v++]=k)}d.sort();let h=new Float64Array(c),p=0;for(let b=0;b<c;b++)(b===0||d[b]!==d[b-1])&&(h[p++]=d[b]);let m=new Int32Array(a.length).fill(-1);for(let b=0;b<a.length;b++){let v=u[b];if(!(v===v&&v!==1/0&&v!==-1/0))continue;let k=0,w=p-1;for(;k<w;){let S=k+w>>>1;h[S]<v?k=S+1:w=S}m[b]=k}let g=[],f=new Int32Array(p),y=new Int32Array(p);for(let b=0;b<i.length;b++){let v=s[b];f.fill(0),y.fill(0);let k=0,w=0;for(let N=0;N<a.length;N++){let x=m[N];x<0||(v[N]===1?(f[x]++,k++):v[N]===2&&(y[x]++,w++))}if(k===0||w===0)continue;let S=k<=w,M=S?k:w,U=S?w:k,W=S?f:y,A=S?y:f,R=0,j=0,C=0;for(let N=0;N<p;N++){let x=W[N],I=A[N];R+=x*(j+.5*I),j+=I,x+I>=2&&(C+=x+I)}g.push({outcome:r[i[b]].name,aucMinorityHigh:Math.round(R/(M*U)*1e4)/1e4,nMinority:M,nMajority:U,ties:C})}g.length>0&&t.set(l,g)}return t}var Fte=12,Bte=100,Hte=.3,Gte=.9,Kte=120,Xte=1900,Vte=2100,qte=0,Zte=20,Jte=new Set(["id","ids","uuid","guid","key","zip","zipcode","postal","postalcode","ssn","code","codes","sku","isbn","msisdn","imei"]);function _i(e){if(!e)return!1;let t=Wa(e);return t.length===0?!1:Jte.has(t[t.length-1])?!0:Lee(e)!==null}var Yte=new Set(["year","yr","fy"]),Qte=e=>Wa(e).some(t=>Yte.has(t))||pf(e)!==null,e1e=/^(?:(?:19|20)\d{2}(?:[-/ ]?(?:q[1-4]|w(?:0?[1-9]|[1-4]\d|5[0-3])|(?:0?[1-9]|1[0-2])))?|q[1-4][-/ ](?:19|20)\d{2}|(?:jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]*[-/ ]?(?:19|20)?\d{2})$/i;function Wf(e){if(!Number.isInteger(e)||e<190001||e>210012)return!1;let t=e%100;return t>=1&&t<=12}function Cf(e){if(!Number.isInteger(e)||e<19000101||e>21001231)return!1;let t=Math.floor(e/100)%100,a=e%100;return t>=1&&t<=12&&a>=1&&a<=31}var t1e=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2}))?(?:\.\d+)?Z?)?$/,a1e=/^(\d{4})([\/.])(\d{1,2})\2(\d{1,2})$/,n1e=/^(\d{1,2})([\/.\-])(\d{1,2})\2(\d{4})(?:[ T](\d{2}):(\d{2})(?::(\d{2}))?)?$/;function Qx(e,t){let a=[],r=0,n=r1e(e,t,a,()=>{r++});if(n)return n;if(r>0||a.length<2)return null;let i=Pf(a,{locale:t,floor:.8});return!i||!i.pattern||i.form==="named"?null:{pattern:i.pattern,orderFrom:i.orderFrom==="shape"?i.order==="ymd"?"iso":"shape":i.orderFrom}}function r1e(e,t,a,r){let n=0,i=0,o=0,s=0,l=0,u="",c=0,d="",h=0,p=0,m=0,g=0,f=!1;for(let k of e){if(k==null)continue;let w=String(k).trim();if(w==="")continue;n++,a.push(w);let S;if(S=t1e.exec(w)){r();let M=+S[2],U=+S[3];M>=1&&M<=12&&U>=1&&U<=31&&(i++,S[4]!==void 0&&o++,S[6]!==void 0&&s++)}else if(S=a1e.exec(w)){r();let M=+S[3],U=+S[4];M>=1&&M<=12&&U>=1&&U<=31&&(u&&u!==S[2]&&(f=!0),u=S[2],l++)}else if(S=n1e.exec(w)){r();let M=+S[1],U=+S[3];M>=1&&M<=31&&U>=1&&U<=31&&(M<=12||U<=12)&&(d&&d!==S[2]&&(f=!0),d=S[2],c++,M>12&&m++,U>12&&g++,S[5]!==void 0&&h++,S[7]!==void 0&&p++)}if(n>=200)break}if(n<2||(i+l+c)/n<.8||(i>0?1:0)+(l>0?1:0)+(c>0?1:0)!=1||f)return null;if(i>0)return o===i?{pattern:s===i?"%Y-%m-%dT%H:%M:%S":"%Y-%m-%dT%H:%M",orderFrom:"iso"}:{pattern:"%Y-%m-%d",orderFrom:"iso"};if(l>0)return{pattern:`%Y${u}%m${u}%d`,orderFrom:"iso"};if(m>0&&g>0)return null;let y,b;m>0?(y=!0,b="values"):g>0?(y=!1,b="values"):d==="."?(y=!0,b="shape"):(y=!Gx(t),b="locale");let v=y?`%d${d}%m${d}%Y`:`%m${d}%d${d}%Y`;return h===c?{pattern:v+(p===c?" %H:%M:%S":" %H:%M"),orderFrom:b}:{pattern:v,orderFrom:b}}function i1e(e,t){if(!t||!/\b(?:19|20)\d{2}\b/.test(e))return!1;let a=e.replace(/\b(?:19|20)\d{2}\b/g,"").replace(/[-/.,]/g," ").trim();if(!a)return!1;let r=Ka(a);return r.length>0&&t[r]!==void 0}function o1e(e,t){let a=new Map,r=new Map;for(let s of e){let l=O8(s);if(!l||"month"in l)continue;let u=y0(l.word),c=u.some(h=>h.lang==="en"),d=Ka(l.word);for(let h of new Set(u.map(p=>p.lang)))h!=="en"&&(a.has(h)||(a.set(h,new Set),r.set(h,new Set)),a.get(h).add(d),c||r.get(h).add(d))}let n=[...a.keys()].filter(s=>a.get(s).size>=3&&r.get(s).size>=1),i=0,o=new Map(n.map(s=>[s,0]));for(let s of t){let l=O8(s);if(!l)continue;if("month"in l){i++;continue}let u=y0(l.word);if(u.length===0)continue;let c=u.some(d=>d.lang==="en");for(let d of n)(c||u.some(h=>h.lang===d))&&o.set(d,o.get(d)+1)}return i+Math.max(0,...o.values())}var s1e=/(?:19|20)[0-9]{2}/;function l1e(e){let t=new Map,a=0;for(let n of e){if(!s1e.test(Cn(n)))continue;let i=new Set(k0(n).filter(o=>o.yearDigits===4&&(o.grain==="quarter"||o.grain==="week")).map(o=>o.lang));if(i.size!==0){if(i.has("en")){a++;continue}for(let o of i)t.set(o,(t.get(o)??0)+1)}}let r=0;for(let n of t.values())r=Math.max(r,n);return r>0?r+a:0}function u1e(e){let{dataType:t,name:a,isMeasure:r,distinctCount:n}=e;if(t==="DateTime")return!0;if(r)return!1;if(t==="Integer"||t==="Decimal"){let i=e.minNum,o=e.maxNum;if(!(i!=null&&o!=null&&Number.isFinite(i)&&Number.isFinite(o)&&Number.isInteger(i)&&Number.isInteger(o)&&o>=i))return!1;let s=i>=1900&&o<=2100;if(s&&n>=2&&Qte(a)||s&&n>=3&&n===o-i+1)return!0;let l=Wf(i)&&Wf(o),u=Cf(i)&&Cf(o);if(l||u){if(!e.sampleValues)return!0;let c=0,d=0;for(let h of e.sampleValues){if(h==null||h==="")continue;c++;let p=Number(String(h).trim());if(Number.isFinite(p)&&(l?Wf(p):Cf(p))&&d++,c>=60)break}if(c>=2&&d===c)return!0}return!1}if(e.sampleValues){let i=e.locale?Rg(e.locale):null,o=0,s=0,l=[],u=[];for(let c of e.sampleValues){if(c==null||c==="")continue;o++;let d=String(c).trim();if(l.push(d),e1e.test(d)||i1e(d,i)?s++:u.push(d),o>=60)break}if(o>=2&&s/o>=.8||o>=2&&(s+l1e(u)+o1e(l,u))/o>=.8||Qx(l,e.locale)!==null)return!0}return!1}function c1e(e){let t=Tf((e||"").trim().toLowerCase());return t.startsWith("sum ")||t.startsWith("total ")?"sum":t.startsWith("average ")||t.startsWith("avg. ")?"avg":t.startsWith("count ")||t.startsWith("distinct count ")||t.startsWith("count (distinct) ")?"count":t.startsWith("min ")||t.startsWith("minimum ")?"min":t.startsWith("max ")||t.startsWith("maximum ")?"max":Iee(e)}function d1e(e){let{rows:t,measureColIdx:a,measureName:r,candidateDims:n,minNum:i,maxNum:o,discourageAgg:s}=e,l=100,u=.01,c="";for(let h of n){if(h.distinct<2||h.distinct>l)continue;let p=n.filter(b=>b.idx!==h.idx).map(b=>b.idx),m=new Map;for(let b of t){let v=b[a];if(typeof v!="number"||!Number.isFinite(v))continue;let k=p.length?p.map(S=>String(b[S])).join(c):"",w=m.get(k);w||(w={sum:0,cset:new Set},m.set(k,w)),w.sum+=v,w.cset.add(String(b[h.idx]))}let g=0,f=0,y=0;for(let b of m.values())b.cset.size<2||(y++,Math.abs(b.sum-100)<=100*u?g++:Math.abs(b.sum-1)<=1*u&&f++);if(y>=2&&(g/y>=.9||f/y>=.9))return{additivity:"part_of_whole",partOfWholeDim:h.name}}if(s)return{additivity:"intensive_rate"};let d=c1e(r);return d==="avg"||d==="min"||d==="max"?{additivity:"intensive_rate"}:d==="count"?{additivity:"additive"}:d==="sum"?{additivity:"unknown"}:i!=null&&o!=null&&Number.isFinite(i)&&Number.isFinite(o)&&i>=0&&o<=1.0001&&o>0?{additivity:"intensive_rate"}:{additivity:"unknown"}}function eI(e){let{dataType:t,isMeasure:a,name:r,distinct:n,nonblank:i,prec:o,maxval:s,minval:l}=e,u=s-l+1,c=u>0?n/u:1,d=i>0?n/i:0,h=t==="Decimal"||o>0;return!a&&_i(r)?"Categorical":c>=Gte&&!(e.ordinalNeedsWholeNumbers&&o>0)&&(Ax(r)&&n<=Kte||l>=Xte&&s<=Vte||l>=qte&&s<=Zte)?"Ordinal":a||n>Fte&&(h||n>=Bte||d>=Hte)?"Continuous":"Categorical"}function Hx(e,t,a){return!e||e.isMeasure||t||e.dataType!=="Integer"&&e.dataType!=="Decimal"?!1:eI({dataType:e.dataType,isMeasure:!1,name:e.name,distinct:a.distinct,nonblank:a.nonblank,prec:a.prec,maxval:typeof a.maxval=="number"?a.maxval:0,minval:typeof a.minval=="number"?a.minval:0,ordinalNeedsWholeNumbers:!0})==="Continuous"}function h1e(e){let t=null;for(let a=0;a<e.length;a++){let r=e[a];if(typeof r!="string"||r.length===0)continue;let n=r.trim();n.length!==r.length&&(t||(t=e.slice()),t[a]=n)}return t||e}var tI=class{_computedStatsForLevel=null;_cols=[];_rows=[];_origIndices=[];_rowHashes=new Set;_hostQueryNames=[];_englishAliases=new Map;_generationColumns=[];_generationColumnsSig="[]";_declaredDimensions=new WeakSet;_inferredMeasureFlags=null;dedupRows=!0;emitLegacyAggAliases=!1;deriveProvinces=!0;dateCellsAreLocalWallClock=!1;wallClockColumnIndexes(){let e=new Set;if(!this.dateCellsAreLocalWallClock||!this._cols)return e;for(let t=0;t<this._cols.length;t++){let a=this._cols[t];!a||!/date|time/i.test(String(a.dataType??""))||Kg(this._rows.map(r=>r[t]))&&e.add(t)}return e}STR(e){return e==null?"":e instanceof Date?this.wholeDayIso(e)??(isNaN(e.getTime())?"":e.toISOString()):e.toString()}getPrecision(e){if(!isFinite(e))return 0;let t=e.toString().split(".")[1];return t?t.length:0}getColumns(){return this._cols}inferredMeasureFlags(){if(this._inferredMeasureFlags)return this._inferredMeasureFlags;let e=this._cols.map(t=>!!(t&&t.isMeasure));return this._cols.forEach((t,a)=>{if(!t||t.isMeasure||this._declaredDimensions.has(t)||t.dataType!=="Integer"&&t.dataType!=="Decimal")return;let r=new Set,n=0,i=0,o=null,s=null;for(let l of this._rows){let u=l[a],c=this.STR(u);if(c!=""&&(r.add(c),n++,(o===null||u<o)&&(o=u),(s===null||u>s)&&(s=u),t.dataType=="Decimal")){let d=this.getPrecision(u);d>i&&(i=d)}}e[a]=Hx(t,!1,{distinct:r.size,nonblank:n,prec:i,minval:o,maxval:s})}),Object.freeze(e),this._inferredMeasureFlags=e,e}declareDimensions(e){this._inferredMeasureFlags=null;for(let t of e)t&&this._declaredDimensions.add(t)}wholeDayIso(e){return Gg(e)}hasTimeComponent(e){return!(e instanceof Date)||isNaN(e.getTime())?!1:this.wholeDayIso(e)===null}getColumnsWithStats(e,t){if(this._computedStatsForLevel==e)return this._cols;let a=0,r=parseInt(e),n=this.wallClockColumnIndexes(),i=[],o=[],s=[];for(let N of this._cols){let x=new Map,I=[],P=0,E=0,B=0,O=null,q=null,L=null,D=!1,$=!0,J=!0,F=null,Z=!1,oe=n.has(a);for(let G of this._rows){let ee=G[a],ie=oe&&ee instanceof Date?j8(ee):ee,le=this.STR(ie);if(le!=""){if(P+=le.length,x.set(le,(x.get(le)||0)+1),E++,N.dataType=="Integer"||N.dataType=="Decimal"||N.dataType=="DateTime")if((O===null||ie<O)&&(O=ie),(q===null||ie>q)&&(q=ie),N.dataType=="Integer"||N.dataType=="Decimal"){if(L===null?L=ie:L+=ie,N.dataType=="Decimal"){let ke=this.getPrecision(ie);ke>B&&(B=ke)}I.push(ie)}else D=D||this.hasTimeComponent(ie);Z&&(ie<F?$=!1:ie>F&&(J=!1)),F=ie,Z=!0}}if(E>=3&&($&&!J?N.sortedDirection="asc":J&&!$?N.sortedDirection="desc":N.sortedDirection="none"),E>0&&x.size>0&&!N.isMeasure){let G=0,ee=Number.MAX_SAFE_INTEGER;for(let ie of x.values())ie>G&&(G=ie),ie<ee&&(ee=ie);if(N.modalShare=G/E,N.minGroupCount=ee===Number.MAX_SAFE_INTEGER?null:ee,x.size===2){let ie=[...x.keys()].map(Pe=>Lg(Pe).trim().toLowerCase()).sort(),le=[["false","true"],["no","yes"],["n","y"],["0","1"],["f","t"]].some(Pe=>ie[0]===Pe[0]&&ie[1]===Pe[1]),ke=/^(is|has)[_\p{L}\p{N}]|(?:default|churn|fraud|approv|convert|active|cancel|delinquen|flag|paid|win|pass|fail)/iu.test(N.name);(le||ke)&&(N.isBinaryFlag=!0)}}else N.isMeasure&&(N.dataType==="Integer"||N.dataType==="Decimal")&&x.size===2&&x.has("0")&&x.has("1")&&(N.isBinaryFlag=!0);if(N.dataType=="DateTime"&&(N.dateWithTime=D,D&&Xg(oe?this._rows.map(G=>G[a]instanceof Date?j8(G[a]):G[a]):this._rows.map(G=>G[a]))?N.timeOfDayOnly=!0:delete N.timeOfDayOnly),N.isTemporal=u1e({dataType:N.dataType,name:N.name,isMeasure:N.isMeasure,distinctCount:x.size,minNum:typeof O=="number"?O:null,maxNum:typeof q=="number"?q:null,sampleValues:x.keys(),locale:t}),N.isTemporal&&N.dataType==="String"&&!N.isMeasure){let G=Qx(x.keys(),t);G&&(N.temporalTextPattern=G.pattern)}if(N.timeOfDayOnly)delete N.temporalCadence;else if(N.isTemporal&&!N.isMeasure){let G=hte(x.keys(),{includeBounds:r>=20,pattern:N.temporalTextPattern,locale:t});G&&(N.temporalCadence=G)}this.updateColumnStats10(r,N,E,x,B,q,O),this.updateColumnStats20(r,I,E,L,N,P,D,O,q,B,x,t),Hx(N,this._declaredDimensions.has(N),{distinct:x.size,nonblank:E,prec:B,minval:O,maxval:q})&&(N.isMeasure=!0,N.valueNature="Continuous",N.geoKind=void 0,N.geoMatchPct=void 0,N.geoAmbiguous=void 0,N.dominantGeoRegion=void 0,N.dominantGeoRegionPct=void 0,N.geoRegionCount=void 0),i[a]=N.isMeasure||x.size>2e3?null:new Set(x.keys()),o[a]=x.size,s[a]=x.size===2?[...x.keys()].sort():null,a++}nee(this._cols,this._rows,{cities:this.deriveProvinces}).forEach((N,x)=>{let I=this._cols[x];N.kind&&(I.geoKind=N.kind,I.geoMatchPct=N.matchPct,N.ambiguous&&(I.geoAmbiguous=!0)),N.rollupPct!==void 0&&(I.admin1RollupPct=N.rollupPct),N.regionCount!==void 0&&(I.admin1RegionCount=N.regionCount),N.countryCount!==void 0&&(I.admin1CountryCount=N.countryCount),N.dominantRegion&&(I.dominantGeoRegion=N.dominantRegion,I.dominantGeoRegionPct=N.dominantRegionPct)});let l=this.getGeoExtent();if(l&&l.dominantFrame&&this._geoExtentLatIdx>=0){let N=this._cols[this._geoExtentLatIdx];N.geoKind||(N.dominantGeoRegion=l.dominantFrame,N.dominantGeoRegionPct=l.dominantFramePct,this.deriveProvinces&&(N.admin1RollupPct=l.dominantFramePct))}let u=[];this._cols.forEach((N,x)=>{N.isMeasure||u.push({idx:x,distinct:N.distinctCount??0,name:N.name})}),this._cols.forEach((N,x)=>{if(!N.isMeasure)return;let I=typeof N.lowValue=="number"?N.lowValue:null,P=typeof N.highValue=="number"?N.highValue:null,E=d1e({rows:this._rows,measureColIdx:x,measureName:N.name,candidateDims:u,minNum:I,maxNum:P,discourageAgg:!!N.discourageAggregationAcrossGroups});N.additivity=E.additivity,E.partOfWholeDim&&(N.partOfWholeDim=E.partOfWholeDim)});let c=50,d=4,h=u.filter(N=>N.distinct>=2&&N.distinct<=c);this._cols.forEach((N,x)=>{if(!N.isMeasure)return;let I=[];for(let J of this._rows){let F=J[x];if(F==null||F==="")continue;let Z=typeof F=="number"?F:parseFloat(F);isNaN(Z)||I.push(Z)}if(I.length===0)return;let P=[...I].sort((J,F)=>J-F);if(P[0]===P[P.length-1])N.relativeDispersion=0;else if(P.length>=d){let J=Xa(P,.5),F=Xa(P,.1),Z=Xa(P,.9);N.relativeDispersion=Math.abs(J)>1e-9?Math.round((Z-F)/Math.abs(J)*1e3)/1e3:void 0}else N.relativeDispersion=void 0;let E=[];for(let J of h){let F=new Set;for(let Z of this._rows){let oe=Z[x];oe==null||oe===""||F.add(this.STR(Z[J.idx])+"")}E.push({otherColumn:J.name,nonBlankGroupCount:F.size})}E.length>0&&(N.nonBlankGroups=E);let B=0;for(let J of I)B+=J;B/=I.length;let O=0;for(let J of I)O+=(J-B)*(J-B);if(O<=1e-12)return;let q=[],L=[],D=J=>{if(J.length<4)return NaN;let F=[...J].sort((oe,G)=>oe-G),Z=oe=>F[Math.min(F.length-1,Math.max(0,Math.floor(oe*(F.length-1))))];return Z(.75)-Z(.25)},$=D(I);for(let J of h){let F=new Map;for(let G of this._rows){let ee=G[x];if(ee==null||ee==="")continue;let ie=typeof ee=="number"?ee:parseFloat(ee);if(isNaN(ie))continue;let le=this.STR(G[J.idx])+"",ke=F.get(le);ke?(ke.s+=ie,ke.n++,ke.vals.push(ie)):F.set(le,{s:ie,n:1,vals:[ie]})}let Z=0;for(let G of F.values()){let ee=G.s/G.n;Z+=G.n*(ee-B)*(ee-B)}q.push({otherColumn:J.name,eta2:Math.round(Z/O*1e4)/1e4});let oe=[];for(let G of F.values()){let ee=D(G.vals);isNaN(ee)||oe.push(ee)}if(oe.length>=2&&isFinite($)&&$>1e-9){let G=(Math.max(...oe)-Math.min(...oe))/$;L.push({otherColumn:J.name,spreadRatio:Math.round(G*1e4)/1e4})}}q.length>0&&(N.groupDiscrimination=q),L.length>0&&(N.spreadDiscrimination=L)});let p=.97,m=.8,g=8,f=5,y=this._cols.map((N,x)=>({c:N,i:x})).filter(N=>N.c.isMeasure);for(let N=0;N<y.length;N++)for(let x=N+1;x<y.length;x++){let I=y[N].i,P=y[x].i,E=0,B=0,O=0,q=0,L=0,D=0;for(let oe of this._rows){let G=oe[I],ee=oe[P];if(G==null||G===""||ee===null||ee===void 0||ee==="")continue;let ie=typeof G=="number"?G:parseFloat(G),le=typeof ee=="number"?ee:parseFloat(ee);isNaN(ie)||isNaN(le)||(E++,B+=ie,O+=le,q+=ie*ie,L+=le*le,D+=ie*le)}if(E<f)continue;let $=E*q-B*B,J=E*L-O*O;if($<=1e-12||J<=1e-12)continue;let F=(E*D-B*O)/Math.sqrt($*J),Z=Math.min(1,Math.round(Math.abs(F)*1e3)/1e3);for(let oe of[y[N].c,y[x].c])(oe.maxAbsMeasureCorrelation===void 0||Z>oe.maxAbsMeasureCorrelation)&&(oe.maxAbsMeasureCorrelation=Z);if(Math.abs(F)>=p){let oe=y[N].c,G=y[x].c;oe.collinearWithMeasures||(oe.collinearWithMeasures=[]),G.collinearWithMeasures||(G.collinearWithMeasures=[]),oe.collinearWithMeasures.push(G.name),G.collinearWithMeasures.push(oe.name)}else if(Math.abs(F)>=m){let oe=y[N].c,G=y[x].c,ee=Math.round(F*1e3)/1e3;oe.correlatedWithMeasures||(oe.correlatedWithMeasures=[]),G.correlatedWithMeasures||(G.correlatedWithMeasures=[]),oe.correlatedWithMeasures.push({otherColumn:G.name,r:ee}),G.correlatedWithMeasures.push({otherColumn:oe.name,r:ee})}}for(let{c:N}of y)N.correlatedWithMeasures&&(N.correlatedWithMeasures.sort((x,I)=>Math.abs(I.r)-Math.abs(x.r)||(x.otherColumn<I.otherColumn?-1:1)),N.correlatedWithMeasures.length=Math.min(N.correlatedWithMeasures.length,g));for(let N=0;N<this._cols.length;N++){let x=i[N];if(!x||x.size===0)continue;let I=[];for(let P=0;P<this._cols.length;P++){if(P===N)continue;let E=i[P];if(!E||E.size===0)continue;let B=0;for(let q of x)E.has(q)&&B++;let O=Math.round(B/x.size*100);O>0&&I.push({otherColumn:this._cols[P].name,percentShared:O})}I.length>0&&(this._cols[N].sharedValueRatioWithOthers=I)}let b=50,v=[];for(let N=0;N<this._cols.length;N++){let x=i[N];x&&x.size>=2&&x.size<=b&&v.push(N)}if(v.length>=2){let N=new Map,x=(P,E)=>P+":"+E;for(let P=0;P<v.length;P++)for(let E=P+1;E<v.length;E++)N.set(x(v[P],v[E]),new Map);for(let P of this._rows)for(let E=0;E<v.length;E++){let B=this.STR(P[v[E]])+"";for(let O=E+1;O<v.length;O++){let q=""+this.STR(P[v[O]]),L=N.get(x(v[E],v[O])),D=B+""+q;L.set(D,(L.get(D)??0)+1)}}let I=new Map;for(let P=0;P<v.length;P++)for(let E=P+1;E<v.length;E++){let B=v[P],O=v[E],q=i[B].size,L=i[O].size,D=N.get(x(B,O)),$=D.size,J=0;for(let G of D.values())(J===0||G<J)&&(J=G);let F=Math.round($/(q*L)*100),Z=$===q,oe=$===L;if((this._cols[B].categoricalPairStats||=[]).push({otherColumn:this._cols[O].name,fillPct:F,determinesOther:Z,minCellCount:J,distinctCombinations:$}),(this._cols[O].categoricalPairStats||=[]).push({otherColumn:this._cols[B].name,fillPct:F,determinesOther:oe,minCellCount:J,distinctCombinations:$}),Z&&q>L){let G=I.get(B);(!G||L<G.card)&&I.set(B,{name:this._cols[O].name,card:L,ratio:L/q})}if(oe&&L>q){let G=I.get(O);(!G||q<G.card)&&I.set(O,{name:this._cols[B].name,card:q,ratio:q/L})}}for(let[P,E]of I)this._cols[P].primaryParentColumn=E.name,this._cols[P].nestingRatio=Math.round(E.ratio*100)/100}let k=6,w=this._rows.length;for(let N=0;N<this._cols.length;N++){let x=this._cols[N];if(x.isMeasure||x.primaryParentColumn)continue;let I=x.distinctCount??0;if(I<=b||w>0&&I>=w)continue;let P=[];for(let E=0;E<this._cols.length;E++){if(E===N)continue;let B=this._cols[E];if(B.isMeasure)continue;let O=B.distinctCount??0;O<2||O>=I||P.push(E)}P.sort((E,B)=>(this._cols[E].distinctCount??0)-(this._cols[B].distinctCount??0));for(let E of P.slice(0,k)){let B=new Map,O=!0;for(let L of this._rows){let D=this.STR(L[N])+"",$=this.STR(L[E])+"",J=B.get(D);if(J===void 0)B.set(D,$);else if(J!==$){O=!1;break}}if(!O)continue;let q=this._cols[E].distinctCount??0;x.primaryParentColumn=this._cols[E].name,x.nestingRatio=Math.round(q/I*100)/100;break}}let S=.01,M=.05,U=.95,W=8,A=8,R=6,j=500,C=[];for(let N=0;N<this._cols.length&&C.length<A;N++){let x=this._cols[N].dataType;(x==="Double"||x==="Integer"||x==="Decimal")&&C.push(N)}if(C.length>=3&&this._rows.length>=W){let N=Math.min(this._rows.length,j),x=C.map(q=>{let L=[];for(let J=0;J<N;J++){let F=this._rows[J][q],Z=typeof F=="number"?F:parseFloat(String(F).replace(/,/g,""));if(F==null||F===""||!isFinite(Z))return null;L.push(Z)}let D=L[0],$=!1;for(let J of L)if(J!==D){$=!0;break}return $?L:null}),I=C.map((q,L)=>L).filter(q=>x[q]!==null),P=q=>{let L=q.slice().sort(($,J)=>$-J),D=L.length>>1;return L.length%2?L[D]:(L[D-1]+L[D])/2},E=null,B=[],O=q=>{if(B.length>=3){let L=B.map(F=>x[F]),D=L[0].length,$=new Array(D);for(let F=0;F<D;F++){let Z=0;for(let oe of L)Z+=oe[F];$[F]=Z}let J=P($);if(J>0){let F=0;for(let oe of $)Math.abs(oe-J)<=J*S&&F++;let Z=F/D;if(Z>=U){let oe=1;for(let G of L){let ee=P(G)/J;ee<oe&&(oe=ee)}oe>=M&&(!E||B.length>E.cols.length)&&(E={cols:B.slice(),total:J,matched:Z})}}}if(!(B.length>=R))for(let L=q;L<I.length;L++)B.push(I[L]),O(L+1),B.pop()};if(O(0),E){let q=E,L={columns:q.cols.map(D=>this._cols[C[D]].name),total:Math.round(q.total*1e3)/1e3,matchedPct:Math.round(q.matched*100)/100};for(let D of q.cols)this._cols[C[D]].constantSumGroup=L}}return this.applyTwoSetPairing(t,i),this.applyScoreSeparation(o,s),this.applySeriesCompleteness(r,t,i),this.applyMeasurePersistence(t,i),this._computedStatsForLevel=e,this._cols}applyTwoSetPairing(e,t){for(let r of this._cols)r.twoSetPairing!==void 0&&delete r.twoSetPairing;let a=$te({rows:this._rows,columns:this._cols.map((r,n)=>{let i=t[n];return{name:r.name,values:i,distinct:i?i.size:r.distinctCount??0,isMeasure:!!r.isMeasure,isTemporal:!!r.isTemporal,isDatePart:!!r.isDatePart,identifierNamed:_i(r.name),temporalTextPattern:r.temporalTextPattern}}),text:r=>this.STR(r),locale:e});a&&(this._cols[a.key].twoSetPairing=a.pairing,this._cols[a.discriminator].twoSetPairing=a.pairing)}applyScoreSeparation(e,t){for(let r of this._cols)r.scoreSeparation!==void 0&&delete r.scoreSeparation;let a=jte({rows:this._rows,columns:this._cols.map((r,n)=>({name:r.name,dataType:r.dataType,isMeasure:!!r.isMeasure,isTemporal:!!r.isTemporal,isDatePart:!!r.isDatePart,identifierNamed:_i(r.name),isBinaryFlag:!!r.isBinaryFlag,distinct:e[n]??0,twoValues:t[n]??null})),text:r=>this.STR(r)});for(let[r,n]of a)this._cols[r].scoreSeparation=n}applySeriesCompleteness(e,t,a){for(let l of this._cols)l.seriesCompleteness!==void 0&&delete l.seriesCompleteness;let r=this._cols.map((l,u)=>({c:l,i:u})).filter(({c:l})=>l.isTemporal&&!l.isMeasure&&l.temporalCadence&&l.temporalCadence.grain!=="irregular");if(r.length===0)return;let n=this.seriesKeyIndex(t,a);if(n<0)return;let i=this._cols[n],o=this._rows.map(l=>this.STR(l[n])),s=e>=20&&(i.dataType!=="String"||Array.isArray(i.safeDistinctValues));for(let{c:l,i:u}of r){let c=kte({periods:this._rows.map(d=>this.STR(d[u])),series:o,seriesColumn:i.name,pattern:l.temporalTextPattern,locale:t,includeDates:e>=20,includeNames:s});c&&(l.seriesCompleteness=c)}}seriesKeyIndex(e,t){let a=[],r=[];this._cols.forEach((i,o)=>{let s=t[o];s&&(a.push(o),r.push({name:i.name,dataType:i.dataType,isMeasure:!!i.isMeasure,isTemporal:!!i.isTemporal,isDatePart:!!i.isDatePart,isReassembledDate:!!i.isReassembledDate,isBinaryFlag:!!i.isBinaryFlag,geoKind:i.geoKind,identifierNamed:_i(i.name),values:s,rows:this._rows.length,locale:e}))});let n=Ste(r);return n<0?-1:a[n]}applyMeasurePersistence(e,t){for(let s of this._cols)s.persistence!==void 0&&delete s.persistence;let a=[];if(this._cols.forEach((s,l)=>{s.isMeasure&&(s.dataType==="Integer"||s.dataType==="Decimal"||s.dataType==="Double")&&a.push(l)}),a.length===0||this._rows.length<If)return;let r=-1,n=[];for(let s=0;s<this._cols.length&&r<0;s++){let l=this._cols[s];if(!l.isTemporal||l.isMeasure||l.isDatePart)continue;let u=this._rows.map(c=>K8(this.STR(c[s]),l.temporalTextPattern,e)?.ms??null);new Set(u.filter(c=>c!==null)).size<If||(r=s,n=u)}if(r<0)return;let i=this.seriesKeyIndex(e,t),o=i>=0?this._rows.map(s=>this.STR(s[i])):void 0;for(let s of a){let l=this._rows.map(c=>{let d=c[s];if(d==null||d==="")return null;let h=typeof d=="number"?d:parseFloat(String(d).replace(/,/g,""));return Number.isFinite(h)?h:null}),u=Wte({stamps:n,series:o,values:l});u&&(this._cols[s].persistence={timeColumn:this._cols[r].name,...i>=0?{seriesColumn:this._cols[i].name}:{},...u})}}updateColumnStats20(e,t,a,r,n,i,o,s,l,u,c,d){if(e>=20){let h=[...t].sort((g,f)=>g-f),p=Math.floor(h.length/2);if(a>0&&r!=null?n.avgValue=n.dataType=="Integer"?Math.round(r/a):r/a:n.avgValue=null,a>0&&(n.avgLength=i/a),this._rows.length>0){let g=f=>{let y=f instanceof Date?f:typeof f=="string"?Wi(f)??new Date(f):new Date(f),b=this.wholeDayIso(y);return b?b+"T00:00:00.000Z":isNaN(y.getTime())?f:y.toISOString().slice(0,10)+"T00:00:00.000Z"};n.dataType!="DateTime"||o||!s?n.lowValue=s:n.lowValue=g(s),n.dataType!="DateTime"||o||!l?n.highValue=l:n.highValue=g(l),n.medianValue=h.length===0?null:h.length%2===0?n.dataType=="Integer"?Math.round((h[p-1]+h[p])/2):(h[p-1]+h[p])/2:h[p],n.numericPrecision=u}if(h.length>0){let g=n.avgValue??0,f=h.length,y=0,b=0;for(let w of h){let S=w-g;y+=S*S,b+=S*S*S}let v=y/f,k=Math.sqrt(v);n.skewness=v===0?0:b/f/(k*k*k),n.stdDev=Math.sqrt(v)}r!==null&&(n.sum=r);let m=Array.from(c.entries()).sort((g,f)=>f[1]-g[1]);if(n.topCategories=m.slice(0,10).map(g=>g[1]),!n.isMeasure&&m.length>0&&(n.dataType!=="String"&&(n.topCategoryValues=m.slice(0,5).map(g=>g[0])),e>=20)){let g=m.map(y=>y[0]),f=gf(g,d);if(f!==null)n.ordinalPattern=f.pattern,n.orderedDomain=f.orderedDomain;else if(n.dataType==="String"){let y=xx(g);y!==null&&(n.safeDistinctValues=y)}}if(h.length>=8&&(n.dataType==="Integer"||n.dataType==="Decimal")){let g=f=>h[Math.floor((h.length-1)*f)];n.quantiles={p05:g(.05),p25:g(.25),p75:g(.75),p95:g(.95)}}}if(!n.isMeasure&&n.dataType==="String"&&c.size>0){let h=Array.from(c.entries()).sort((g,f)=>f[1]-g[1]).map(g=>g[0]);n.formatSignature=Tg(h);let p=a>0?i/a:void 0,m=/^(UUID|EMAIL_LIKE|URL_LIKE|PHONE_LIKE|NUMERIC_ID|HEX_ID|OPAQUE_ID_ALPHANUMERIC|DATE_STR|BOOLEAN)$/;n.formatSignature&&!m.test(n.formatSignature)&&(p===void 0||p>=3)&&(n.isFreeText=!0)}if(!n.isMeasure&&c.size>0){let h=Array.from(c.entries()).sort((m,g)=>g[1]-m[1]),p=ux(h.map(m=>m[0]),n.name,d);if(p!==null&&(n.geoKind=p.geoKind,n.geoMatchPct=p.geoMatchPct,p.geoAmbiguous&&(n.geoAmbiguous=!0),p.geoKind.indexOf("country")===0)){let m=qM(h);m&&(n.dominantGeoRegion=m.dominantGeoRegion,n.dominantGeoRegionPct=m.dominantGeoRegionPct,n.geoRegionCount=m.regionCount,m.middleEastPct>0&&(n.middleEastPct=m.middleEastPct))}}}updateColumnStats10(e,t,a,r,n,i,o){let s=this._rows.length-a;e>=10&&(t.blankCount=s),t.distinctCount=r.size+(s!=0?1:0),t.valueNature="Categorical",a>0&&(t.dataType==="Integer"||t.dataType==="Decimal"?t.valueNature=eI({dataType:t.dataType,isMeasure:!!t.isMeasure,name:t.name,distinct:r.size,nonblank:a,prec:n,maxval:i,minval:o}):t.dataType==="DateTime"&&(t.valueNature=t.dateWithTime?"Continuous":"Ordinal"))}getRowCount(){return this._rows.length}getLeafCardinality(){if(this._leafCardinality!==null)return this._leafCardinality;let e=[];if(this._cols.forEach((a,r)=>{a.isMeasure||e.push(r)}),e.length===0)return this._leafCardinality=this._rows.length,this._leafCardinality;let t=new Set;for(let a of this._rows)t.add(JSON.stringify(e.map(r=>a[r])));return this._leafCardinality=t.size,this._leafCardinality}_leafCardinality=null;getGeoExtent(){if(this._geoExtentComputed)return this._geoExtent;this._geoExtentComputed=!0,this._geoExtent=null;let e=i=>LM(i,{camel:!0}),t=-1,a=-1,r=-1;if(this._cols.forEach((i,o)=>{let s=e(i.name),l=i.dataType==="Integer"||i.dataType==="Decimal";l&&t<0&&s.some(u=>u==="lat"||u==="latitude")?t=o:l&&a<0&&s.some(u=>u==="lon"||u==="lng"||u==="long"||u==="longitude")&&(a=o),r<0&&!i.isMeasure&&typeof i.geoKind=="string"&&i.geoKind.indexOf("country")===0&&(r=o)}),t<0||a<0){let i=(l,u)=>{let c=0;for(let d of this._rows){let h=d[l];if(h==null||h==="")continue;let p=Number(h);if(!Number.isFinite(p)||p<-u||p>u)return!1;c++}return c>0},o=-1,s=-1;if(this._cols.forEach((l,u)=>{if(!(l.dataType==="Integer"||l.dataType==="Decimal"))return;let c=e(l.name),d=c.some(h=>h==="lat"||h==="latitude")?"lat":c.some(h=>h==="lon"||h==="lng"||h==="long"||h==="longitude")?"lon":vee(c);d==="lat"&&o<0&&i(u,90)?o=u:d==="lon"&&s<0&&i(u,180)&&(s=u)}),o<0||s<0)return null;t=o,a=s}this._geoExtentLatIdx=t;let n=[];for(let i of this._rows){let o=i[t],s=i[a],l=o==null||o===""?null:Number(o),u=s==null||s===""?null:Number(s);n.push({lat:l,lon:u,country:r>=0&&Ci(this.STR(i[r]))?this.STR(i[r]):null})}return this._geoExtent=VM(n),this._geoExtent}_geoExtent=null;_geoExtentComputed=!1;_geoExtentLatIdx=-1;obfuscateString(e){return Xee(e,jg)}toObjectArray(){let e=this.liveEnglishAliases();return this._rows.map(t=>{let a={};this._cols.forEach((r,n)=>{a[r.name]=t[n],this.emitLegacyAggAliases&&r.hostName&&r.hostName!==r.name&&!Object.prototype.hasOwnProperty.call(a,r.hostName)&&(a[r.hostName]=t[n])});for(let[r,n]of e)Object.prototype.hasOwnProperty.call(a,n.alias)||(a[n.alias]=t[r]);return a})}async getCSVAsync(e){let t=[],a=e?25:1e7,r=e?4e3:1e7,n=new Map,i=this.wallClockColumnIndexes();for(let o of this._rows){let s={};for(let l=0;l<this._cols.length;l++){let u=this._cols[l],c=o[l];if(this.STR(c)!=""){if(e&&u.dataType=="String")if(n.has(c))c=n.get(c);else{let d=this.obfuscateString(c);n.set(c,d),c=d}else if(u.dataType=="DateTime"&&!u.dateWithTime){let d=c instanceof Date?c:typeof c=="string"?Wi(c)??new Date(c):new Date(c);c=(this.wholeDayIso(d)??d.toISOString().slice(0,10))+"T00:00:00.000Z"}else i.has(l)&&c instanceof Date&&(c=j8(c));r-=this.STR(c).length}else c=null;s[l]=c,--r}if(t.push(s),--a,a<=0||r<=0)break}return await _f.default.unparse(t,{header:!1})}getCSVHeaderLine(){let e=this.liveEnglishAliases();return _f.default.unparse([this._cols.map((t,a)=>{if(this.emitLegacyAggAliases&&t.hostName)return this.STR(t.hostName);let r=e.get(a);return this.STR(r&&r.headerName?r.alias:t.name)})])}setHostQueryNames(e){this._hostQueryNames=(e??[]).map(t=>t==null?null:this.STR(t)),this._englishAliases=new Map}setGenerationColumns(e){let t=(e??[]).filter(r=>!!r&&typeof r.n=="string"&&r.n!==""&&typeof r.q=="string"&&r.q!=="").map(r=>({n:r.n,q:r.q})),a=JSON.stringify(t);a!==this._generationColumnsSig&&(this._generationColumns=t,this._generationColumnsSig=a,this._englishAliases=new Map)}aliasesForCode(e){let t=$x(e,this._cols)?this.legacyAliases():[];for(let a of this.englishAliasesFor(e).values())t.push({name:a.name,alias:a.alias,reason:a.reason});return t}armAliasesForCode(e){return this.emitLegacyAggAliases=$x(e,this._cols),this._englishAliases=this.englishAliasesFor(e),this.getArmedAliases()}getArmedAliases(){let e=this.emitLegacyAggAliases?this.legacyAliases():[];for(let t of this.liveEnglishAliases().values())e.push({name:t.name,alias:t.alias,reason:t.reason});return e}legacyAliases(){let e=[];for(let t of this._cols)t&&t.hostName&&t.hostName!==t.name&&e.push({name:this.STR(t.name),alias:this.STR(t.hostName),reason:"doubled-agg-prefix"});return e}englishAliasesFor(e){let t=new Map;if(!e||this._hostQueryNames.length===0||!this._cols||this._cols.length===0)return t;let a=String(e),r=new Set;for(let o of this._cols)o&&(r.add(this.STR(o.name)),o.hostName&&r.add(this.STR(o.hostName)));let n=new Map,i=new Set;for(let o=0;o<this._cols.length;o++){if(!this._cols[o])continue;let s=this._hostQueryNames[o],l=Eee(s,this._cols[o].name,this._cols[o].dataType)?[]:Tee(s),u=this.STR(this._cols[o].name),c=[];if(s){for(let h of this._generationColumns)if(h.q===s)for(let p of[h.n,zx(h.n)])p&&p!==u&&!l.includes(p)&&!c.includes(p)&&c.push(p)}let d=[...l,...c].filter(h=>!r.has(h)&&Lx(a,h));d.length===1&&(n.set(d[0],[...n.get(d[0])??[],o]),c.includes(d[0])&&i.add(d[0]))}for(let[o,s]of n){if(s.length!==1)continue;let l=this.STR(this._cols[s[0]].name);t.set(s[0],{name:l,alias:o,headerName:!Lx(a,l),reason:i.has(o)?"stored-query-name":"english-implicit-agg"})}return t}liveEnglishAliases(){let e=new Map;for(let[t,a]of this._englishAliases){let r=this._cols?this._cols[t]:null;r&&this.STR(r.name)===a.name&&e.set(t,a)}return e}addRow(e,t){if(this.dedupRows){let a="";for(let n of e)a+=this.STR(n)+"~";let r=L8(a);if(this._rowHashes.has(r))return!1;this._rowHashes.add(r)}return this._rows.push(h1e(e)),this._inferredMeasureFlags=null,this._origIndices.push(t??-1),!0}getOriginalRowIndex(e){return e<0||e>=this._origIndices.length?-1:this._origIndices[e]}invalidateStats(){this._computedStatsForLevel=null,this._geoExtentComputed=!1,this._geoExtent=null,this._geoExtentLatIdx=-1}reset(){this._inferredMeasureFlags=null,this._cols=[],this._rows=[],this._origIndices=[],this._rowHashes=new Set,this._leafCardinality=null,this._hostQueryNames=[],this._englishAliases=new Map,this._generationColumns=[],this._generationColumnsSig="[]"}setColumns(e){if(this._inferredMeasureFlags=null,this._cols=e,!e||e.length===0)return;let t=new Set(e.map(a=>this.STR(a?.name)));for(let a of e){if(!a)continue;let r=this.STR(a.name),n=zx(r);!n||n===r||t.has(n)||(t.delete(r),t.add(n),a.hostName=r,a.name=n)}}};var Rf=vo(bf(),1);/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var aI=500,nI=/^[+-]?\d{1,15}$/,p1e=/^\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|[+-]\d{2}:?\d{2})?)?$/,m1e=/^\d{1,2}[\/\-.]\d{1,2}[\/\-.]\d{2,4}$/;function g1e(e,t=".",a=!1){if(a)return"DateTime";let r=0,n=0,i=0,o=0;for(let s of e){if(s==null)continue;if(typeof s=="number"){o++,n++,Number.isInteger(s)&&r++;continue}if(s instanceof Date){o++,i++;continue}if(typeof s=="boolean"){o++;continue}let l=String(s).trim();if(l!==""){if(o++,nI.test(g3(l))){r++,n++;continue}if(RM(l,t)){n++;continue}if((p1e.test(l)||m1e.test(l))&&!isNaN(Date.parse(l))){i++;continue}}}return o===0?"String":i===o?"DateTime":r===o?"Integer":n===o?"Decimal":"String"}function f1e(e,t,a=".",r=null){if(e==null)return null;if(typeof e=="number")return t==="String"?String(e):e;if(e instanceof Date)return t==="DateTime"?e:e.toISOString();if(typeof e=="boolean")return String(e);let n=String(e).trim();if(n==="")return null;switch(t){case"Integer":{let i=g3(n);return nI.test(i)?parseInt(i,10):null}case"Decimal":return Eg(n,a);case"DateTime":return r?r.read(n):Wi(n);default:return n}}function rI(e){let t=(e||"").toLowerCase().replace(/\(.*$/,"").trim();return/^(tinyint|smallint|int|integer|int2|int4|int8|bigint|serial|bigserial)$/.test(t)?"Integer":/^(decimal|numeric|money|smallmoney|float|real|double|double precision|number)$/.test(t)?"Decimal":/^(date|datetime|datetime2|smalldatetime|datetimeoffset|timestamp|timestamptz|time)$/.test(t)?"DateTime":(/^(bit|bool|boolean)$/.test(t),"String")}function*y1e(e,t){for(let a of e)yield a?.[t]}function X8(e,t,a){if(e.length===0)throw new Error("ingest: no columns were resolved from the source. Supply column descriptors, or use a source shape that carries them (grid/table/objects/sql).");let r=e.length,n=e.map((f,y)=>t.slice(0,aI).map(b=>b?.[y])),i=n.map(f=>EM(f,a.locale)),o=e.map((f,y)=>f.dataType===void 0||f.dataType==="DateTime"?Pf(y1e(t,y),{locale:a.locale??"en"}):null),s=e.map((f,y)=>f.dataType??g1e(n[y],i[y],o[y]!==null)),l=new Set((a.measures??[]).map(f=>f.toLowerCase())),u=new Set((a.dimensions??[]).map(f=>f.toLowerCase())),c=new Set((a.nonAdditive??[]).map(f=>f.toLowerCase())),d=e.map((f,y)=>{let b=f.name.toLowerCase(),v=f.isMeasure??((s[y]==="Integer"||s[y]==="Decimal")&&!_i(f.name));l.has(b)&&(v=!0),u.has(b)&&(v=!1);let k={name:f.name,dataType:s[y],isMeasure:v};return v&&c.has(b)&&(k.discourageAggregationAcrossGroups=!0),k}),h=new tI;h.dedupRows=a.dedup!==!1,h.deriveProvinces=a.deriveProvinces!==!1,h.setColumns(d),h.declareDimensions(d.filter((f,y)=>u.has(e[y].name.toLowerCase())));for(let f=0;f<t.length;f++){let y=t[f];h.addRow(Array.from({length:r},(b,v)=>f1e(y?.[v],s[v],i[v],o[v])),f)}let p=h.getColumnsWithStats(a.privacyLevel??"20",a.locale??"en"),m=new Map(p.map(f=>[f.name,f]));e.forEach(f=>{let y=m.get(f.name);y&&(f.format&&(y.modelFormat=f.format),f.description&&(y.modelDesc=f.description))});let g=f=>{let y=m.get(f);if(y)return[y];let b=f.toLowerCase();return p.filter(v=>v.name.toLowerCase()===b)};for(let[f,y]of Object.entries(a.formats??{}))for(let b of g(f))b.modelFormat=y;for(let[f,y]of Object.entries(a.descriptions??{}))for(let b of g(f))b.modelDesc=y;for(let f of a.groupBy??[])for(let y of g(f))y.isGrouping=!0;return{columns:p,rows:h.toObjectArray(),totalRows:h.getRowCount(),index:h}}function Ef(e,t){return e.map(a=>Array.isArray(a)?a:t.map(r=>a[r]))}function b1e(e,t){let a=[],r=new Set,n=Math.min(e.length,Math.max(1,t));for(let i=0;i<n;i++){let o=e[i];if(!(!o||typeof o!="object"))for(let s of Object.keys(o))r.has(s)||(r.add(s),a.push(s))}return a}function Mi(e){let t=String(e??"").replace(/^\uFEFF/,""),a=[],r=[],n=0;return Rf.default.parse(t,{skipEmptyLines:!1,step:i=>{let o=i.meta.cursor,s=t.slice(n,o);n=o,i.errors?.length&&r.push(...i.errors);let l=i.data;l.length===1&&l[0]===""&&s.replace(/[\r\n]/g,"")===""||a.push(l)}}),!a.length&&!r.length&&r.push(...Rf.default.parse(t,{skipEmptyLines:!0}).errors),{rows:a,errors:r}}function x0(e,t={}){switch(e.kind){case"csv":{let a=Mi(e.text);if(a.errors.length&&a.rows.length===0)throw new Error(`ingest: CSV parse failed - ${a.errors[0].message}`);let r=a.rows;if(r.length<2)throw new Error("ingest: CSV needs a header line plus at least one data row.");let n=r[0].map(i=>(i??"").trim());return X8(n.map(i=>({name:i})),r.slice(1),t)}case"grid":{if(!e.header?.length)throw new Error("ingest: 'grid' needs a non-empty header.");return X8(e.header.map(a=>({name:(a??"").trim()})),e.rows??[],t)}case"table":{if(!e.columns?.length)throw new Error("ingest: 'table' needs at least one column descriptor.");let a=e.columns.map(r=>r.name);return X8(e.columns,Ef(e.rows??[],a),t)}case"objects":{let a=e.rows??[],r=e.columns?.length?e.columns:b1e(a,t.columnScanLimit??aI).map(n=>({name:n}));if(!r.length)throw new Error("ingest: 'objects' produced no columns - the rows array is empty or holds no object keys.");return X8(r,Ef(a,r.map(n=>n.name)),t)}case"sql":{if(!e.schema?.length)throw new Error("ingest: 'sql' needs at least one schema column.");let a=e.schema.map(r=>{let n=rI(r.dataType);return{name:r.name,dataType:n,isMeasure:r.isMeasure,format:r.format,description:r.description}});return X8(a,Ef(e.rows??[],a.map(r=>r.name)),t)}default:{let a=e;throw new Error(`ingest: unknown source kind '${a?.kind}'. Expected one of: csv, grid, table, objects, sql.`)}}}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */function iI(e){return{shape:e.columns,totalRows:e.totalRows,sampleCsv:null,index:e.index}}function v1e(e,t,a={}){if(e.length===0)throw new Error("no columns provided");let r=t.map(n=>n??[]);return iI(x0({kind:"table",columns:e,rows:r},a))}function y3(e,t={}){let a=Mi(e);if(a.errors.length&&a.rows.length===0)throw new Error(`CSV parse failed: ${a.errors[0].message}`);let r=a.rows;if(r.length<2)throw new Error("CSV needs a header line plus at least one data row.");let n=r[0].map(i=>(i??"").trim());return v1e(n.map(i=>({name:i})),r.slice(1),t)}function I0(e,t,a={}){if(!e||e.length===0)throw new Error("profileTabular: at least one column is required");if(!t||t.length===0)throw new Error("profileTabular: at least one row is required");return iI(x0({kind:"table",columns:e,rows:t},a))}async function zf(e,t){return parseInt(t)>=30&&(e.sampleCsv=await e.index.getCSVAsync(!0)),e}import{randomBytes as Dre,randomUUID as Lre}from"node:crypto";import{readFileSync as jre}from"node:fs";import{homedir as Fre}from"node:os";import{join as Bre}from"node:path";/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. *//*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var oI=Object.freeze(["licenseKey","licensee","secretKey","freemiumKey","linkNonce","accessToken","clientId","instanceKey","correlationId"]);function N1e(e){let t=e.shape;return!Array.isArray(t)||t.length===0}function $f(e,t={}){let a=new Set(oI),r={};for(let[n,i]of Object.entries(e??{}))if(!a.has(n)){if(n==="sampleCsv"){let o=typeof i=="string"?i.length>0:i!=null;r[n]=o?t.sampleNote??null:i;continue}r[n]=i}return t.emptyShapeNote&&N1e(e??{})&&(r._note=t.emptyShapeNote),r}var sI=4,lI=0,uI=1,S1e=2;function Ti(e){let t=e.length;for(;--t>=0;)e[t]=0}var k1e=0,yI=1,w1e=2,bI=29,Zf=256,vI=286,Ii=30,Jf=19,NI=573,J8=15,Of=16,W1e=7,Yf=256,SI=16,kI=17,wI=18,Bf=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),P0=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),C1e=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),WI=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),A1e=512,_n=new Array(288*2);Ti(_n);var Y8=new Array(Ii*2);Ti(Y8);var Q8=new Array(A1e);Ti(Q8);var es=new Array(256);Ti(es);var Qf=new Array(bI);Ti(Qf);var T0=new Array(Ii);Ti(T0);var Df=class{constructor(e,t,a,r,n){this.static_tree=e,this.extra_bits=t,this.extra_base=a,this.elems=r,this.max_length=n,this.has_stree=e&&e.length}},CI,AI,_I,Lf=class{constructor(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}},MI=e=>e<256?Q8[e]:Q8[256+(e>>>7)],ts=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},x1=(e,t,a)=>{e.bi_valid>Of-a?(e.bi_buf|=t<<e.bi_valid&65535,ts(e,e.bi_buf),e.bi_buf=t>>Of-e.bi_valid,e.bi_valid+=a-Of):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=a)},Ja=(e,t,a)=>{x1(e,a[t*2],a[t*2+1])},xI=(e,t)=>{let a=0;do a|=e&1,e>>>=1,a<<=1;while(--t>0);return a>>>1},_1e=e=>{e.bi_valid===16?(ts(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},M1e=(e,t)=>{let a=t.dyn_tree,r=t.max_code,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,l=t.stat_desc.max_length,u,c,d,h,p,m,g=0;for(h=0;h<=J8;h++)e.bl_count[h]=0;for(a[e.heap[e.heap_max]*2+1]=0,u=e.heap_max+1;u<NI;u++)c=e.heap[u],h=a[a[c*2+1]*2+1]+1,h>l&&(h=l,g++),a[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,p=0,c>=s&&(p=o[c-s]),m=a[c*2],e.opt_len+=m*(h+p),i&&(e.static_len+=m*(n[c*2+1]+p)));if(g!==0){do{for(h=l-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(h=l;h!==0;h--)for(c=e.bl_count[h];c!==0;)d=e.heap[--u],!(d>r)&&(a[d*2+1]!==h&&(e.opt_len+=(h-a[d*2+1])*a[d*2],a[d*2+1]=h),c--)}},II=(e,t,a)=>{let r=new Array(16),n=0,i,o;for(i=1;i<=J8;i++)n=n+a[i-1]<<1,r[i]=n;for(o=0;o<=t;o++){let s=e[o*2+1];s!==0&&(e[o*2]=xI(r[s]++,s))}},x1e=()=>{let e,t,a,r,n,i=new Array(16);for(a=0,r=0;r<bI-1;r++)for(Qf[r]=a,e=0;e<1<<Bf[r];e++)es[a++]=r;for(es[a-1]=r,n=0,r=0;r<16;r++)for(T0[r]=n,e=0;e<1<<P0[r];e++)Q8[n++]=r;for(n>>=7;r<Ii;r++)for(T0[r]=n<<7,e=0;e<1<<P0[r]-7;e++)Q8[256+n++]=r;for(t=0;t<=J8;t++)i[t]=0;for(e=0;e<=143;)_n[e*2+1]=8,e++,i[8]++;for(;e<=255;)_n[e*2+1]=9,e++,i[9]++;for(;e<=279;)_n[e*2+1]=7,e++,i[7]++;for(;e<=287;)_n[e*2+1]=8,e++,i[8]++;for(II(_n,287,i),e=0;e<Ii;e++)Y8[e*2+1]=5,Y8[e*2]=xI(e,5);CI=new Df(_n,Bf,257,vI,J8),AI=new Df(Y8,P0,0,Ii,J8),_I=new Df(new Array(0),C1e,0,Jf,W1e)},PI=e=>{let t;for(t=0;t<vI;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ii;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Jf;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Yf*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},UI=e=>{e.bi_valid>8?ts(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},cI=(e,t,a,r)=>{let n=t*2,i=a*2;return e[n]<e[i]||e[n]===e[i]&&r[t]<=r[a]},jf=(e,t,a)=>{let r=e.heap[a],n=a<<1;for(;n<=e.heap_len&&(n<e.heap_len&&cI(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!cI(t,r,e.heap[n],e.depth));)e.heap[a]=e.heap[n],a=n,n<<=1;e.heap[a]=r},dI=(e,t,a)=>{let r,n,i=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+i++]&255,r+=(e.pending_buf[e.sym_buf+i++]&255)<<8,n=e.pending_buf[e.sym_buf+i++],r===0?Ja(e,n,t):(o=es[n],Ja(e,o+Zf+1,t),s=Bf[o],s!==0&&(n-=Qf[o],x1(e,n,s)),r--,o=MI(r),Ja(e,o,a),s=P0[o],s!==0&&(r-=T0[o],x1(e,r,s)));while(i<e.sym_next);Ja(e,Yf,t)},Hf=(e,t)=>{let a=t.dyn_tree,r=t.stat_desc.static_tree,n=t.stat_desc.has_stree,i=t.stat_desc.elems,o,s,l=-1,u;for(e.heap_len=0,e.heap_max=NI,o=0;o<i;o++)a[o*2]!==0?(e.heap[++e.heap_len]=l=o,e.depth[o]=0):a[o*2+1]=0;for(;e.heap_len<2;)u=e.heap[++e.heap_len]=l<2?++l:0,a[u*2]=1,e.depth[u]=0,e.opt_len--,n&&(e.static_len-=r[u*2+1]);for(t.max_code=l,o=e.heap_len>>1;o>=1;o--)jf(e,a,o);u=i;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],jf(e,a,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,a[u*2]=a[o*2]+a[s*2],e.depth[u]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,a[o*2+1]=a[s*2+1]=u,e.heap[1]=u++,jf(e,a,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],M1e(e,t),II(a,l,e.bl_count)},hI=(e,t,a)=>{let r,n=-1,i,o=t[1],s=0,l=7,u=4;for(o===0&&(l=138,u=3),t[(a+1)*2+1]=65535,r=0;r<=a;r++)i=o,o=t[(r+1)*2+1],!(++s<l&&i===o)&&(s<u?e.bl_tree[i*2]+=s:i!==0?(i!==n&&e.bl_tree[i*2]++,e.bl_tree[SI*2]++):s<=10?e.bl_tree[kI*2]++:e.bl_tree[wI*2]++,s=0,n=i,o===0?(l=138,u=3):i===o?(l=6,u=3):(l=7,u=4))},pI=(e,t,a)=>{let r,n=-1,i,o=t[1],s=0,l=7,u=4;for(o===0&&(l=138,u=3),r=0;r<=a;r++)if(i=o,o=t[(r+1)*2+1],!(++s<l&&i===o)){if(s<u)do Ja(e,i,e.bl_tree);while(--s!==0);else i!==0?(i!==n&&(Ja(e,i,e.bl_tree),s--),Ja(e,SI,e.bl_tree),x1(e,s-3,2)):s<=10?(Ja(e,kI,e.bl_tree),x1(e,s-3,3)):(Ja(e,wI,e.bl_tree),x1(e,s-11,7));s=0,n=i,o===0?(l=138,u=3):i===o?(l=6,u=3):(l=7,u=4)}},I1e=e=>{let t;for(hI(e,e.dyn_ltree,e.l_desc.max_code),hI(e,e.dyn_dtree,e.d_desc.max_code),Hf(e,e.bl_desc),t=Jf-1;t>=3&&e.bl_tree[WI[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},P1e=(e,t,a,r)=>{let n;for(x1(e,t-257,5),x1(e,a-1,5),x1(e,r-4,4),n=0;n<r;n++)x1(e,e.bl_tree[WI[n]*2+1],3);pI(e,e.dyn_ltree,t-1),pI(e,e.dyn_dtree,a-1)},U1e=e=>{let t=4093624447,a;for(a=0;a<=31;a++,t>>>=1)if(t&1&&e.dyn_ltree[a*2]!==0)return lI;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return uI;for(a=32;a<Zf;a++)if(e.dyn_ltree[a*2]!==0)return uI;return lI},mI=!1,T1e=e=>{mI||(x1e(),mI=!0),e.l_desc=new Lf(e.dyn_ltree,CI),e.d_desc=new Lf(e.dyn_dtree,AI),e.bl_desc=new Lf(e.bl_tree,_I),e.bi_buf=0,e.bi_valid=0,PI(e)},E0=(e,t,a,r)=>{x1(e,(k1e<<1)+(r?1:0),3),UI(e),ts(e,a),ts(e,~a),a&&e.pending_buf.set(e.window.subarray(t,t+a),e.pending),e.pending+=a},E1e=e=>{x1(e,yI<<1,3),Ja(e,Yf,_n),_1e(e)},R1e=(e,t,a,r)=>{let n,i,o=0;e.level>0?(e.strm.data_type===S1e&&(e.strm.data_type=U1e(e)),Hf(e,e.l_desc),Hf(e,e.d_desc),o=I1e(e),n=e.opt_len+3+7>>>3,i=e.static_len+3+7>>>3,(i<=n||e.strategy===sI)&&(n=i)):n=i=a+5,a+4<=n&&t!==-1?E0(e,t,a,r):e.strategy===sI||i===n?(x1(e,(yI<<1)+(r?1:0),3),dI(e,_n,Y8)):(x1(e,(w1e<<1)+(r?1:0),3),P1e(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),dI(e,e.dyn_ltree,e.dyn_dtree)),PI(e),r&&UI(e)},N3=(e,t,a)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=a,t===0?e.dyn_ltree[a*2]++:(e.matches++,t--,e.dyn_ltree[(es[a]+Zf+1)*2]++,e.dyn_dtree[MI(t)*2]++),e.sym_next===e.sym_end),TI=(e,t,a,r)=>{let n=e&65535|0,i=e>>>16&65535|0,o=0;for(;a!==0;){o=a>2e3?2e3:a,a-=o;do n=n+t[r++]|0,i=i+n|0;while(--o);n%=65521,i%=65521}return n|i<<16|0},z1e=()=>{let e,t=[];for(var a=0;a<256;a++){e=a;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[a]=e}return t},$1e=new Uint32Array(z1e()),b3=(e,t,a,r)=>{let n=$1e,i=r+a;e^=-1;for(let o=r;o<i;o++)e=e>>>8^n[(e^t[o])&255];return e^-1},U0={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};var O1e=9;var D1e=573,ot=3,vr=258,Ya=262,L1e=32,Pi=42,ey=57,Gf=69,Kf=73,Xf=91,Vf=103,Nr=113,q8=666,b1=1,Ei=2,kr=3,Ri=4,j1e=3,Sr=(e,t)=>(e.msg=U0[t],t),gI=e=>e*2-(e>4?9:0),v3=e=>{let t=e.length;for(;--t>=0;)e[t]=0},F1e=e=>{let t,a,r,n=e.w_size;t=e.hash_size,r=t;do a=e.head[--r],e.head[r]=a>=n?a-n:0;while(--t);t=n,r=t;do a=e.prev[--r],e.prev[r]=a>=n?a-n:0;while(--t)},ty=(e,t,a)=>(t<<e.hash_shift^a)&e.hash_mask,wr=(e,t)=>{let a;if(e.legacy_hash)a=e.ins_h=ty(e,e.ins_h,e.window[t+ot-1]);else{let n=e.window,i=n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24;a=e.ins_h=Math.imul(i,66521)+66521>>>16&e.hash_mask}let r=e.prev[t&e.w_mask]=e.head[a];return e.head[a]=t,r},F1=e=>{let t=e.state,a=t.pending;a>e.avail_out&&(a=e.avail_out),a!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+a),e.next_out),e.next_out+=a,t.pending_out+=a,e.total_out+=a,e.avail_out-=a,t.pending-=a,t.pending===0&&(t.pending_out=0))},B1=(e,t)=>{R1e(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F1(e.strm)},it=(e,t)=>{e.pending_buf[e.pending++]=t},V8=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},qf=(e,t,a,r)=>{let n=e.avail_in;return n>r&&(n=r),n===0?0:(e.avail_in-=n,t.set(e.input.subarray(e.next_in,e.next_in+n),a),e.state.wrap===1?e.adler=TI(e.adler,t,n,a):e.state.wrap===2&&(e.adler=b3(e.adler,t,n,a)),e.next_in+=n,e.total_in+=n,n)},EI=(e,t)=>{let a=e.max_chain_length,r=e.strstart,n,i,o=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-Ya?e.strstart-(e.w_size-Ya):0,u=e.window,c=e.w_mask,d=e.prev,h=e.strstart+vr,p=u[r+o-1],m=u[r+o];e.prev_length>=e.good_match&&(a>>=2),s>e.lookahead&&(s=e.lookahead);do if(n=t,!(u[n+o]!==m||u[n+o-1]!==p||u[n]!==u[r]||u[++n]!==u[r+1])){r+=2,n++;do;while(u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&r<h);if(i=vr-(h-r),r=h-vr,i>o){if(e.match_start=t,o=i,i>=s)break;p=u[r+o-1],m=u[r+o]}}while((t=d[t&c])>l&&--a!==0);return o<=e.lookahead?o:e.lookahead},Ui=e=>{let t=e.w_size,a,r,n;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ya)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),F1e(e),r+=t),e.strm.avail_in===0)break;if(a=qf(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=a,e.legacy_hash){if(e.lookahead+e.insert>=ot)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=ty(e,e.ins_h,e.window[n+1]);e.insert&&(wr(e,n),n++,e.insert--,!(e.lookahead+e.insert<ot)););}else if(e.lookahead+e.insert>ot)for(n=e.strstart-e.insert;e.insert&&(wr(e,n),n++,e.insert--,!(e.lookahead+e.insert<=ot)););}while(e.lookahead<Ya&&e.strm.avail_in!==0)},RI=(e,t)=>{let a=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,n,i,o=0,s=e.strm.avail_in;do{if(r=65535,i=e.bi_valid+42>>3,e.strm.avail_out<i||(i=e.strm.avail_out-i,n=e.strstart-e.block_start,r>n+e.strm.avail_in&&(r=n+e.strm.avail_in),r>i&&(r=i),r<a&&(r===0&&t!==4||t===0||r!==n+e.strm.avail_in)))break;o=t===4&&r===n+e.strm.avail_in?1:0,E0(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,F1(e.strm),n&&(n>r&&(n=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+n),e.strm.next_out),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n,e.block_start+=n,r-=n),r&&(qf(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?Ri:t!==0&&t!==4&&e.strm.avail_in===0&&e.strstart===e.block_start?Ei:(i=e.window_size-e.strstart,e.strm.avail_in>i&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,i+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),i>e.strm.avail_in&&(i=e.strm.avail_in),i&&(qf(e.strm,e.window,e.strstart,i),e.strstart+=i,e.insert+=i>e.w_size-e.insert?e.w_size-e.insert:i),e.high_water<e.strstart&&(e.high_water=e.strstart),i=e.bi_valid+42>>3,i=e.pending_buf_size-i>65535?65535:e.pending_buf_size-i,a=i>e.w_size?e.w_size:i,n=e.strstart-e.block_start,(n>=a||(n||t===4)&&t!==0&&e.strm.avail_in===0&&n<=i)&&(r=n>i?i:n,o=t===4&&e.strm.avail_in===0&&r===n?1:0,E0(e,e.block_start,r,o),e.block_start+=r,F1(e.strm)),o?kr:b1)},Ff=(e,t)=>{let a,r;for(;;){if(e.lookahead<Ya){if(Ui(e),e.lookahead<Ya&&t===0)return b1;if(e.lookahead===0)break}if(a=0,e.lookahead>=ot&&(a=wr(e,e.strstart)),a!==0&&e.strstart-a<=e.w_size-Ya&&(e.match_length=EI(e,a)),e.match_length>=ot)if(r=N3(e,e.strstart-e.match_start,e.match_length-ot),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ot){e.match_length--;do e.strstart++,a=wr(e,e.strstart);while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.legacy_hash&&(e.ins_h=e.window[e.strstart],e.ins_h=ty(e,e.ins_h,e.window[e.strstart+1]));else r=N3(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(B1(e,!1),e.strm.avail_out===0))return b1}return e.insert=e.strstart<ot-1?e.strstart:ot-1,t===4?(B1(e,!0),e.strm.avail_out===0?kr:Ri):e.sym_next&&(B1(e,!1),e.strm.avail_out===0)?b1:Ei},xi=(e,t)=>{let a,r,n;for(;;){if(e.lookahead<Ya){if(Ui(e),e.lookahead<Ya&&t===0)return b1;if(e.lookahead===0)break}if(a=0,e.lookahead>=ot&&(a=wr(e,e.strstart)),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ot-1,a!==0&&e.prev_length<e.max_lazy_match&&e.strstart-a<=e.w_size-Ya&&(e.match_length=EI(e,a),e.match_length<=5&&(e.strategy===1||e.match_length===ot&&e.strstart-e.match_start>4096)&&(e.match_length=ot-1)),e.prev_length>=ot&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-ot,r=N3(e,e.strstart-1-e.prev_match,e.prev_length-ot),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(a=wr(e,e.strstart));while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ot-1,e.strstart++,r&&(B1(e,!1),e.strm.avail_out===0))return b1}else if(e.match_available){if(r=N3(e,0,e.window[e.strstart-1]),r&&B1(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return b1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=N3(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ot-1?e.strstart:ot-1,t===4?(B1(e,!0),e.strm.avail_out===0?kr:Ri):e.sym_next&&(B1(e,!1),e.strm.avail_out===0)?b1:Ei},B1e=(e,t)=>{let a,r,n,i,o=e.window;for(;;){if(e.lookahead<=vr){if(Ui(e),e.lookahead<=vr&&t===0)return b1;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ot&&e.strstart>0&&(n=e.strstart-1,r=o[n],r===o[++n]&&r===o[++n]&&r===o[++n])){i=e.strstart+vr;do;while(r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&n<i);e.match_length=vr-(i-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ot?(a=N3(e,1,e.match_length-ot),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(a=N3(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),a&&(B1(e,!1),e.strm.avail_out===0))return b1}return e.insert=0,t===4?(B1(e,!0),e.strm.avail_out===0?kr:Ri):e.sym_next&&(B1(e,!1),e.strm.avail_out===0)?b1:Ei},H1e=(e,t)=>{let a;for(;;){if(e.lookahead===0&&(Ui(e),e.lookahead===0)){if(t===0)return b1;break}if(e.match_length=0,a=N3(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,a&&(B1(e,!1),e.strm.avail_out===0))return b1}return e.insert=0,t===4?(B1(e,!0),e.strm.avail_out===0?kr:Ri):e.sym_next&&(B1(e,!1),e.strm.avail_out===0)?b1:Ei},Za=class{constructor(e,t,a,r,n){this.good_length=e,this.max_lazy=t,this.nice_length=a,this.max_chain=r,this.func=n}},Z8=[new Za(0,0,0,0,RI),new Za(4,4,8,4,Ff),new Za(4,5,16,8,Ff),new Za(4,6,32,32,Ff),new Za(4,4,16,16,xi),new Za(8,16,32,32,xi),new Za(8,16,128,128,xi),new Za(8,32,128,256,xi),new Za(32,128,258,1024,xi),new Za(32,258,258,4096,xi)],G1e=e=>{e.window_size=2*e.w_size,v3(e.head),e.max_lazy_match=Z8[e.level].max_lazy,e.good_match=Z8[e.level].good_length,e.nice_match=Z8[e.level].nice_length,e.max_chain_length=Z8[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ot-1,e.match_available=0,e.ins_h=0},K1e=class{constructor(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.legacy_hash=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(D1e*2),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),v3(this.dyn_ltree),v3(this.dyn_dtree),v3(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),v3(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),v3(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}},R0=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==Pi&&t.status!==ey&&t.status!==Gf&&t.status!==Kf&&t.status!==Xf&&t.status!==Vf&&t.status!==Nr&&t.status!==q8?1:0},X1e=e=>{if(R0(e))return Sr(e,-2);e.total_in=e.total_out=0,e.data_type=2;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?ey:t.wrap?Pi:Nr,e.adler=t.wrap===2?0:1,t.last_flush=-2,T1e(t),0},V1e=e=>{let t=X1e(e);return t===0&&G1e(e.state),t};var q1e=(e,t,a,r,n,i,o)=>{if(!e)return-2;let s=1;if(t===-1&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),n<1||n>O1e||a!==8||r<8||r>15||t<0||t>9||i<0||i>4||r===8&&s!==1)return Sr(e,-2);r===8&&(r=9);let l=new K1e;return e.state=l,l.strm=e,l.status=Pi,l.wrap=s,l.gzhead=null,l.w_bits=r,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.legacy_hash=o?1:0,l.hash_bits=n+7,!l.legacy_hash&&l.hash_bits<15&&(l.hash_bits=15),l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+ot-1)/ot),l.window=new Uint8Array(l.w_size*2),l.head=new Uint16Array(l.hash_size),l.prev=new Uint16Array(l.w_size),l.lit_bufsize=1<<n+6,l.pending_buf_size=l.lit_bufsize*4,l.pending_buf=new Uint8Array(l.pending_buf_size),l.sym_buf=l.lit_bufsize,l.sym_end=(l.lit_bufsize-1)*3,l.level=t,l.strategy=i,l.method=a,V1e(e)};var Z1e=(e,t)=>{if(R0(e)||t>5||t<0)return e?Sr(e,-2):-2;let a=e.state;if(!e.output||e.avail_in!==0&&!e.input||a.status===q8&&t!==4)return Sr(e,e.avail_out===0?-5:-2);let r=a.last_flush;if(a.last_flush=t,a.pending!==0){if(F1(e),e.avail_out===0)return a.last_flush=-1,0}else if(e.avail_in===0&&gI(t)<=gI(r)&&t!==4)return Sr(e,-5);if(a.status===q8&&e.avail_in!==0)return Sr(e,-5);if(a.status===Pi&&a.wrap===0&&(a.status=Nr),a.status===Pi){let n=8+(a.w_bits-8<<4)<<8,i=-1;if(a.strategy>=2||a.level<2?i=0:a.level<6?i=1:a.level===6?i=2:i=3,n|=i<<6,a.strstart!==0&&(n|=L1e),n+=31-n%31,V8(a,n),a.strstart!==0&&(V8(a,e.adler>>>16),V8(a,e.adler&65535)),e.adler=1,a.status=Nr,F1(e),a.pending!==0)return a.last_flush=-1,0}if(a.status===ey){if(e.adler=0,it(a,31),it(a,139),it(a,8),a.gzhead)it(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),it(a,a.gzhead.time&255),it(a,a.gzhead.time>>8&255),it(a,a.gzhead.time>>16&255),it(a,a.gzhead.time>>24&255),it(a,a.level===9?2:a.strategy>=2||a.level<2?4:0),it(a,a.gzhead.os&255),a.gzhead.extra&&a.gzhead.extra.length&&(it(a,a.gzhead.extra.length&255),it(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(e.adler=b3(e.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=Gf;else if(it(a,0),it(a,0),it(a,0),it(a,0),it(a,0),it(a,a.level===9?2:a.strategy>=2||a.level<2?4:0),it(a,j1e),a.status=Nr,F1(e),a.pending!==0)return a.last_flush=-1,0}if(a.status===Gf){if(a.gzhead.extra){let n=a.pending,i=(a.gzhead.extra.length&65535)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let s=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+s),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex+=s,F1(e),a.pending!==0)return a.last_flush=-1,0;n=0,i-=s}let o=new Uint8Array(a.gzhead.extra);a.pending_buf.set(o.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex=0}a.status=Kf}if(a.status===Kf){if(a.gzhead.name){let n=a.pending,i;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n)),F1(e),a.pending!==0)return a.last_flush=-1,0;n=0}a.gzindex<a.gzhead.name.length?i=a.gzhead.name.charCodeAt(a.gzindex++)&255:i=0,it(a,i)}while(i!==0);a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex=0}a.status=Xf}if(a.status===Xf){if(a.gzhead.comment){let n=a.pending,i;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n)),F1(e),a.pending!==0)return a.last_flush=-1,0;n=0}a.gzindex<a.gzhead.comment.length?i=a.gzhead.comment.charCodeAt(a.gzindex++)&255:i=0,it(a,i)}while(i!==0);a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n))}a.status=Vf}if(a.status===Vf){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(F1(e),a.pending!==0))return a.last_flush=-1,0;it(a,e.adler&255),it(a,e.adler>>8&255),e.adler=0}if(a.status=Nr,F1(e),a.pending!==0)return a.last_flush=-1,0}if(e.avail_in!==0||a.lookahead!==0||t!==0&&a.status!==q8){let n=a.level===0?RI(a,t):a.strategy===2?H1e(a,t):a.strategy===3?B1e(a,t):Z8[a.level].func(a,t);if((n===kr||n===Ri)&&(a.status=q8),n===b1||n===kr)return e.avail_out===0&&(a.last_flush=-1),0;if(n===Ei&&(t===1?E1e(a):t!==5&&(E0(a,0,0,!1),t===3&&(v3(a.head),a.lookahead===0&&(a.strstart=0,a.block_start=0,a.insert=0))),F1(e),e.avail_out===0))return a.last_flush=-1,0}return t!==4?0:a.wrap<=0?1:(a.wrap===2?(it(a,e.adler&255),it(a,e.adler>>8&255),it(a,e.adler>>16&255),it(a,e.adler>>24&255),it(a,e.total_in&255),it(a,e.total_in>>8&255),it(a,e.total_in>>16&255),it(a,e.total_in>>24&255)):(V8(a,e.adler>>>16),V8(a,e.adler&65535)),F1(e),a.wrap>0&&(a.wrap=-a.wrap),a.pending!==0?0:1)},J1e=e=>{if(R0(e))return-2;let t=e.state.status;return e.state=null,t===Nr?Sr(e,-3):0},Y1e=(e,t)=>{let a=t.length;if(R0(e))return-2;let r=e.state,n=r.wrap;if(n===2||n===1&&r.status!==Pi||r.lookahead)return-2;if(n===1&&(e.adler=TI(e.adler,t,a,0)),r.wrap=0,a>=r.w_size){n===0&&(v3(r.head),r.strstart=0,r.block_start=0,r.insert=0);let l=new Uint8Array(r.w_size);l.set(t.subarray(a-r.w_size,a),0),t=l,a=r.w_size}let i=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=a,e.next_in=0,e.input=t,Ui(r);r.lookahead>=ot;){let l=r.strstart,u=r.lookahead-(ot-1);do wr(r,l),l++;while(--u);r.strstart=l,r.lookahead=ot-1,Ui(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=ot-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=i,r.wrap=n,0};var cpe=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),dpe=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,199,75]),hpe=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),ppe=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Q1e=class{constructor(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}};var eae=e=>{let t=new Uint8Array(e.reduce((r,n)=>r+n.length,0)),a=0;for(let r of e)t.set(r,a),a+=r.length;return t},fI=Object.prototype.toString,tae={level:-1,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,raw:!1,gzip:!1,legacyHash:!1,dictionary:new Uint8Array(0)},aae=class{options;err;msg;ended;started;chunks;strm;result;constructor(e={}){this.options=Object.assign({},tae,e);let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.started=!1,this.chunks=[],this.result=new Uint8Array(0),this.strm=new Q1e,this.strm.avail_out=0;let a=q1e(this.strm,t.level,8,t.windowBits,t.memLevel,t.strategy,t.legacyHash);if(a!==0)throw new Error(U0[a]);fI.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary));let r=t.dictionary;if(r.length){if(t.gzip)throw new Error("dictionary is not supported with gzip");if(a=Y1e(this.strm,r),a!==0)throw new Error(U0[a])}}push(e,t=!1){let a=this.strm,r=this.options.chunkSize,n,i;if(this.ended)return!1;for(typeof t=="number"?i=t:i=t===!0?4:0,typeof e=="string"?a.input=new TextEncoder().encode(e):fI.call(e)==="[object ArrayBuffer]"?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length,this.started||(this.started=!0,this.onStart(a));;){if(a.avail_out===0&&(a.output=new Uint8Array(r),a.next_out=0,a.avail_out=r),(i===2||i===3)&&a.avail_out<=6){this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;continue}if(n=Z1e(a,i),n===-2)break;if(n===1){a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=J1e(this.strm);break}if(a.avail_out===0){this.onData(a.output);continue}if(i>0&&a.next_out>0){this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;continue}if(a.avail_in===0)return!0}return this.err=n,this.msg=a.msg||U0[n],this.ended=!0,this.onEnd(n),n===0}onStart(e){}onData(e){this.chunks.push(e)}onEnd(e){e===0&&(this.result=eae(this.chunks)),this.chunks=[]}};function nae(e,t={}){let a=new aae(t);if(a.push(e,!0),a.err)throw new Error(a.msg);return a.result}function zI(e,t={}){return nae(e,Object.assign({},t,{gzip:!0}))}var mpe={chunkSize:1024*64,windowBits:15,raw:!1,dictionary:new Uint8Array(0)};/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var $I=e=>zI(e);function zi(e){return rae($I(JSON.stringify(e))).replace(/\//g,".")}function rae(e){let t="";for(let a=0;a<e.length;a+=32768)t+=String.fromCharCode(...e.subarray(a,a+32768));return btoa(t)}function ay(e){if(typeof e!="string"||e==="")throw new TypeError("keyedSigner needs the host's signing key");return{sign:t=>String(L8(t+e))}}function ny(e,t){let a=t.sign(e);if(typeof a!="string"||a.trim()==="")throw new TypeError("the host's signer returned a blank signature");return a}function vt(e,t){if(e==null||typeof e!="object")return;let a=e;return a[t]??a[t.charAt(0).toUpperCase()+t.slice(1)]}function OI(e){return String(e??"").toLowerCase().includes("ndjson")}function ry(e){let t=null;try{t=e.headers?.get?.("content-type")??null}catch{t=null}return{status:typeof e.status=="number"?e.status:0,...typeof e.statusText=="string"?{statusText:e.statusText}:{},contentType:t,body:e.body??null,text:()=>e.text()}}function iae(e,t,a){let r=e.trim();if(!r)return{result:null,typed:!1,parsed:!1};let n;try{n=JSON.parse(r)}catch{return{result:null,typed:!1,parsed:!1}}return DI(n,t,a)}function DI(e,t,a){if(!e||typeof e!="object"||Array.isArray(e))return{result:null,typed:!1,parsed:!0};let r=vt(e,"type");if(r!=null){if(r==="progress"){let n=String(vt(e,"stage")??"").trim(),i=String(vt(e,"stageId")??"").trim();return n&&t?.(n,i||void 0),{result:null,typed:!0,parsed:!0}}if(r==="result"){let n=vt(e,"result");return{result:n&&typeof n=="object"?n:null,typed:!0,parsed:!0}}return{result:null,typed:!0,parsed:!0}}return a?{result:vt(e,"code")!==void 0||vt(e,"errorMessage")!==void 0?e:null,typed:!1,parsed:!0}:{result:e,typed:!1,parsed:!0}}var LI=class{constructor(e){this.onStage=e}onStage;result=null;anyParsed=!1;take(e){let t=iae(e,this.onStage,!0);t.parsed&&(this.anyParsed=!0),t.result&&(t.typed||this.result===null)&&(this.result=t.result)}};function iy(){return new Error("the generate response ended without a result")}async function oae(e,t){let a=e.body;if(!a||typeof a.getReader!="function")return jI(await e.text(),t,null);let r=a.getReader(),n=new TextDecoder,i=new LI(t),o="";try{for(;;){let{done:s,value:l}=await r.read();if(s)break;o+=n.decode(l,{stream:!0});let u;for(;(u=o.indexOf(`
95
+ `}var p0=class{constructor(t=AM.stdin,a=AM.stdout,r){this._stdin=t,this._stdout=a,this._started=!1,this._ondata=n=>{try{this._readBuffer.append(n),this.processReadBuffer()}catch(i){this.onerror?.(i),this.close().catch(()=>{})}},this._onerror=n=>{this.onerror?.(n)},this._readBuffer=new h0({maxBufferSize:r?.maxBufferSize})}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(a=>{let r=CM(t);this._stdout.write(r)?a():this._stdout.once("drain",a)})}};import{readFileSync as eN,writeFileSync as Pa,mkdirSync as su,existsSync as LO}from"node:fs";import{join as V1,resolve as Or}from"node:path";/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */function tY(e){if(e==null)return null;let t=String(e);if(t.length===0)return null;let a=t.length;if(a===36&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t))return"UUID";if(/^[^\s@]+@[^\s@]+\.[A-Za-z]{2,}$/.test(t))return"EMAIL_LIKE";if(/^https?:\/\//i.test(t)||/^www\./i.test(t))return"URL_LIKE";if(/^[+\d][\d\s().\-]{5,17}\d$/.test(t)){let i=(t.match(/\d/g)||[]).length;if(i>=7&&i<=15)return"PHONE_LIKE"}if(/^\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2}(:\d{2})?(\.\d+)?Z?)?$/.test(t)||/^\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}$/.test(t))return"DATE_STR";if(/^(true|false|yes|no|t|f|y|n)$/i.test(t))return"BOOLEAN";if(/^\d+$/.test(t))return a>=6?"NUMERIC_ID":null;if(a>=8&&/^[0-9a-f]+$/i.test(t))return"HEX_ID";if(/^[A-Z][A-Z0-9]*$/.test(t)&&!/^\d+$/.test(t))return"ALL_UPPER";if(a>=6&&/^[A-Za-z0-9_-]+$/.test(t)&&/\d/.test(t)&&/[A-Za-z]/.test(t))return"OPAQUE_ID_ALPHANUMERIC";let r=t.trim().split(/\s+/).length,n=/[.!?,;:]/.test(t);return r>=2?n||new RegExp("\\p{Ll}\\p{Lu}","u").test(t)||t.length>40?"SENTENCE_TEXT":new RegExp("^\\p{Lu}","u").test(t)&&aY.test(t)?"TITLE_CASE_WORDS":new RegExp("^\\p{Ll}","u").test(t)&&!new RegExp("\\p{Lu}","u").test(t)?"LOWER_WORDS":"SENTENCE_TEXT":new RegExp("^\\p{Lu}[\\p{Ll}\\p{M}]*\\p{Ll}[\\p{Ll}\\p{M}]*$","u").test(t)?"TITLE_CASE_WORDS":new RegExp("^\\p{Ll}[\\p{Ll}\\p{M}]*$","u").test(t)?"LOWER_WORDS":null}var aY=new RegExp("(?<![\\p{L}\\p{M}\\p{N}_])\\p{Lu}\\p{M}*\\p{Ll}","u");function Tg(e){if(!e||e.length===0)return"OTHER";let t=new Map,a=new Map,r=0;for(let o of e){let s=tY(o);s&&(r++,t.set(s,(t.get(s)||0)+1),a.has(s)||a.set(s,new Set),a.get(s).add(String(o).length))}if(r===0)return"OTHER";let n=null,i=0;for(let[o,s]of t.entries())s>i&&(i=s,n=o);if(!n)return"OTHER";if(i/e.length<.7)return"MIXED";if(n==="ALL_UPPER"){let o=a.get("ALL_UPPER");if(o.size===1)return`ALL_UPPER_FIXED_${o.values().next().value}`}return n}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var _M=Object.freeze({\u00F8:"o",\u0153:"oe",\u00E6:"ae",\u00DF:"ss",\u0142:"l",\u0111:"d",\u00F0:"d",\u00FE:"th",\u0131:"i",\u0127:"h",\u0167:"t",\u014B:"n",\u0138:"k",\u0259:"e",\u01DD:"e",\u0133:"ij",\u0140:"l",\u017F:"s"}),nY=new RegExp(`[${Object.keys(_M).join("")}]`,"gu");function mr(e){return e.replace(nY,t=>_M[t]??t)}function Wn(e){return e==null?"":mr(String(e).replace(new RegExp("\\p{No}","gu")," ").normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/&/g,"and").replace(/[^\p{L}\p{Nd}]/gu,"")}var rY=4;function pr(e){return e.length>=rY}var m0=class{constructor(e=(t,a)=>t===a){this.same=e}same;map=new Map;add(e,t){let a=Wn(e);if(!pr(a))return;let r=this.map.get(a);if(!r){this.map.set(a,{value:t,ambiguous:!1});return}!r.ambiguous&&!this.same(r.value,t)&&(r.ambiguous=!0)}get(e){if(!pr(e))return;let t=this.map.get(e);return t&&!t.ambiguous?t.value:void 0}isAmbiguous(e){return this.map.get(e)?.ambiguous===!0}entries(){return Array.from(this.map.entries())}};/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var rt=(e,t,a,r={})=>({code:e,name:t,script:a,dir:"ltr",intl:e,aliases:[],wordBreaks:!0,compounds:!1,gluedPrefixes:[],foldSensitive:!1,...r}),z8=Object.freeze([rt("en","English","Latn"),rt("nl","Dutch","Latn",{compounds:!0}),rt("de","German","Latn",{compounds:!0}),rt("fr","French","Latn"),rt("es","Spanish","Latn"),rt("pt","Portuguese","Latn"),rt("it","Italian","Latn"),rt("pl","Polish","Latn"),rt("cs","Czech","Latn"),rt("sk","Slovak","Latn"),rt("sv","Swedish","Latn",{compounds:!0}),rt("da","Danish","Latn",{compounds:!0}),rt("nb","Norwegian Bokmal","Latn",{compounds:!0,aliases:["no"]}),rt("fi","Finnish","Latn",{compounds:!0}),rt("hu","Hungarian","Latn",{compounds:!0}),rt("tr","Turkish","Latn"),rt("ro","Romanian","Latn"),rt("hr","Croatian","Latn"),rt("id","Indonesian","Latn",{aliases:["in"]}),rt("vi","Vietnamese","Latn",{foldSensitive:!0}),rt("ru","Russian","Cyrl"),rt("uk","Ukrainian","Cyrl"),rt("el","Greek","Grek"),rt("zh","Chinese (Simplified)","Hani",{intl:"zh-Hans",wordBreaks:!1}),rt("ja","Japanese","Jpan",{wordBreaks:!1}),rt("ko","Korean","Hang"),rt("ar","Arabic","Arab",{dir:"rtl",gluedPrefixes:["\u0627\u0644","\u0648\u0627\u0644","\u0628\u0627\u0644","\u0641\u0627\u0644","\u0643\u0627\u0644","\u0644\u0644","\u0648","\u0641","\u0628","\u0643","\u0644"]}),rt("he","Hebrew","Hebr",{dir:"rtl",aliases:["iw"],gluedPrefixes:["\u05D4","\u05D5","\u05D1","\u05DC","\u05DE","\u05E9","\u05DB","\u05D5\u05D4","\u05E9\u05D4","\u05DE\u05D4","\u05D5\u05D1","\u05D5\u05DC","\u05D5\u05DE","\u05D1\u05D4","\u05DC\u05D4"]}),rt("hi","Hindi","Deva"),rt("th","Thai","Thai",{wordBreaks:!1})]),iY=Object.freeze(z8.map(e=>e.code)),oY=new Map(z8.map(e=>[e.code,e])),sY=new Map(z8.flatMap(e=>e.aliases.map(t=>[t,e])));function $8(e){let t=String(e??"").trim().toLowerCase();return oY.get(t)??sY.get(t)}var MM=Object.freeze([rt("fa","Persian","Arab",{dir:"rtl"})]),hhe=Object.freeze([...iY,...MM.map(e=>e.code)]),lY=new Map(MM.map(e=>[e.code,e]));function Ga(e){let t=String(e??"").trim().toLowerCase();return $8(t)??lY.get(t)}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var UM=[1632,1776,2406,2534,2662,2790,2918,3046,3174,3302,3430,3664,3792,3872,4160,6112,65296],uY=new RegExp("["+UM.map(e=>String.fromCharCode(e)+"-"+String.fromCharCode(e+9)).join("")+"\\u066B\\u066C\\uFF0C\\uFF0E]","g"),cY=/[^\x00-\x7F]/;function g3(e){return cY.test(e)?e.replace(uY,t=>{let a=t.charCodeAt(0);if(a===1643||a===65294)return".";if(a===1644||a===65292)return",";for(let r of UM)if(a>=r&&a<=r+9)return String(a-r);return t}):e}function dY(e){if(!e)return".";try{return new Intl.NumberFormat(e).formatToParts(1.5).find(t=>t.type==="decimal")?.value===","?",":"."}catch{return"."}}var TM="[ \\u00A0\\u202F]",f0="(?:[eE][+-]?\\d+)?",hY=new RegExp(`^[+-]?(?:\\d{1,3}(?:,\\d{3})+|\\d+)(?:\\.\\d+)?${f0}$`),pY=new RegExp(`^[+-]?(?:\\d{1,3}(?:\\.\\d{3})+|\\d{1,3}(?:${TM}\\d{3})+|\\d+)(?:,\\d+)?${f0}$`),mY=/^[+-]?\d{1,3}[.,]\d{3}$/,gY=[/^[+-]?\d{1,3}(?:,\d{3}){2,}$/,new RegExp(`^[+-]?(?:\\d{1,3}(?:,\\d{3})+|\\d+)\\.\\d+${f0}$`)],fY=[/^[+-]?\d{1,3}(?:\.\d{3}){2,}$/,new RegExp(`^[+-]?(?:\\d{1,3}(?:\\.\\d{3})+|\\d{1,3}(?:${TM}\\d{3})+|\\d+),\\d+${f0}$`)];function EM(e,t){let a=0,r=0;for(let n of e){if(typeof n!="string")continue;let i=g3(n.trim());i===""||mY.test(i)||(gY.some(o=>o.test(i))?a++:fY.some(o=>o.test(i))&&r++)}return r>0&&a===0?",":a>0?".":dY(t)}function Eg(e,t){let a=g3(String(e??"").trim());return a===""?null:t===","?pY.test(a)?parseFloat(a.replace(/[.   ]/g,"").replace(",",".")):null:hY.test(a)?parseFloat(a.replace(/,/g,"")):null}function RM(e,t){return Eg(e,t)!==null}var xM={};function Ka(e){return mr(e.normalize("NFD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/[.‎‏\s]/g,"")}function Rg(e){let t=e||"en",a=xM[t];if(a)return a;let r={};try{let n=new Intl.DateTimeFormat(t,{month:"long"}),i=new Intl.DateTimeFormat(t,{month:"short"});for(let o=0;o<12;++o){let s=new Date(Date.UTC(2020,o,15));r[Ka(n.format(s))]=o,r[Ka(i.format(s))]=o}}catch{}return xM[t]=r,r}var yY=new Set(["zh","ja","ko","vi"]),bY=[["en","sept",8],["de","j\xE4nner",0]],g0=null,zM=[];function $M(){let e=new Map,t=[],a=(r,n,i)=>{let o=Ka(n);if(o.length<2||/^\d+$/.test(o))return;let s=e.get(o);s||e.set(o,s=[]),!s.some(l=>l.lang===r&&l.month===i)&&(r==="en"?s.unshift({lang:r,month:i}):s.push({lang:r,month:i}))};for(let r of z8)if(!yY.has(r.code))try{let n=`${r.intl}-u-ca-gregory-nu-latn`,i=[{month:"long"},{month:"short"},{day:"numeric",month:"long"},{day:"numeric",month:"short"},{year:"numeric",month:"long"},{year:"numeric",month:"short"}].map(o=>new Intl.DateTimeFormat(n,{timeZone:"UTC",...o}));for(let o=0;o<12;++o){let s=new Date(Date.UTC(2020,o,15));for(let l of i){let u=l.formatToParts(s).filter(c=>c.type==="month").map(c=>c.value).join("");a(r.code,u,o)}}t.push(r.code)}catch{}for(let[r,n,i]of bY)a(r,n,i);return zM=t,e}function y0(e){return g0??=$M(),g0.get(Ka(e))??[]}var vY="\u05D1\u05DC\u05DE\u05D4\u05D5\u05E9\u05DB";function NY(e,t){if(e.length<3||!vY.includes(e[0]))return;let a=t.get(e.slice(1))?.filter(r=>r.lang==="he");return a&&a.length?a:void 0}function zg(e,t){g0??=$M();let a=g0,r=[];for(let d of e){let h=Ka(d);if(!h)return null;r.includes(h)||r.push(h)}if(r.length===0)return null;let n=r.map(d=>a.get(d)??NY(d,a));if(n.some(d=>!d))return null;let i=d=>{let h=[];for(let p of n){let m=p.find(g=>g.lang===d)??p.find(g=>g.lang==="en");if(!m)return null;h.push(m.month)}return h},o=d=>new Map(r.map((h,p)=>[h,d[p]]));if(n.every(d=>d.some(h=>h.lang==="en")))return o(i("en"));let s=new Map;for(let d of zM){if(d==="en")continue;let h=i(d);h&&s.set(d,h)}if(s.size===0)return null;let l=[...s.values()];if(l.every(d=>d.every((h,p)=>h===l[0][p])))return o(l[0]);let u=$8(String(t??"").split(/[-_]/)[0])?.code,c=u?s.get(u):void 0;return c?o(c):null}var SY=/^((?:19|20)\d{2})\s*[年년]\s*(\d{1,2})\s*[月월]$/,kY=new Set(["de","del","of"]),IM=/^(?:19|20)\d{2}$/,PM=/^[\p{L}\p{M}\u0970\u05f3]+$/u;function O8(e){let t=g3(String(e??"").replace(/[\u200e\u200f\u061c]/g,"")).replace(/\s+/g," ").trim();t=t.replace(/(\d{4})\s*(?:г|р|r)\.?$/iu,"$1");let a=SY.exec(t);if(a){let o=+a[2];return o>=1&&o<=12?{year:+a[1],month:o}:null}let r=t.split(/[\s\-/.,']+/).filter(o=>o!==""&&!kY.has(o.toLowerCase()));if(r.length!==2)return null;let[n,i]=r;return IM.test(i)&&PM.test(n)?{year:+i,word:n}:IM.test(n)&&PM.test(i)?{year:+n,word:i}:null}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var OM="6th of October City|giza|EG|31.05|29.82|368|W|,A Coruna|galicia|ES|-8.4|43.37|250|W|corunha;la coruna;coruna;la corogne;the groyne,Aachen|north rhine westphalia|DE|6.08|50.78|265|W|aix la chapelle;aquisgrao;aken;akwizgran;aquisgrana;aquisgrano;aquisgran;cachy;kreisfreie stadt aachen,Aalborg|north denmark|DK|9.92|57.05|142|W|alborg,Aba|abia state|NG|7.37|5.11|1160|W|,Abadan|khuzestan|IR|48.3|30.34|231|W|,Abaetetuba|para|BR|-48.88|-1.72|158|W|,Abakaliki|ebonyi state|NG|8.11|6.32|134|W|,Abakan|khakasiya republic|RU|91.43|53.72|184|W|,Abasolo|MX11|MX|-101.53|20.45|27|N|,Abbotsford|BC|CA|-122.25|49.06|141|NW|,Abbottabad|khyber pakhtunkhwa|PK|73.21|34.15|275|W|,Abeche|ouadai|TD|20.83|13.83|139|W|,Abengourou|comoe district|CI|-3.5|6.73|130|W|,Abeokuta|ogun state|NG|3.35|7.16|735|W|,Aberdeen|scotland|GB|-2.1|57.14|198|W|,Aberdeen|southern district|HK|114.15|22.25|157|W|aberdeen harbour,Aberdeen|SD|US|-98.49|45.46|28|N|,Abha|asir region|SA|42.51|18.22|210|W|,Abidjan|abidjan autonomous district|CI|-4|5.35|6321|W|abican;abidzan;abiyan,Abiko|chiba|JP|140.02|35.87|131|W|,Abilene|TX|US|-99.73|32.45|125|N|,Abington|PA|US|-75.12|40.12|55|N|abington township;municipio de abington,Abobo|abidjan autonomous district|CI|-4.02|5.42|1340|W|,Abohar|punjab|IN|74.2|30.14|145|W|,Abomey-Calavi|atlantique|BJ|2.36|6.45|385|W|,Abu al-Kahsib|basra|IQ|47.88|30.44|357|W|,Abu Dhabi|abu dhabi|AE|54.4|24.45|1807|W|abou dabi;abu dabi;abu zabi,Abu Ghurayb|baghdad|IQ|44.18|33.31|900|W|abou ghraib;abu ghraib;abu ghuraib,Abu Kabir|sharqia|EG|31.67|30.73|154|W|,Abuja|fct|NG|7.5|9.06|2690|W|abudza;abuya,Acambaro|MX11|MX|-100.72|20.03|57|N|,Acapulco de Juarez|MX12|MX|-99.91|16.85|658|NW|acapulco,Acarigua|portuguesa|VE|-69.2|9.55|188|W|,Acatzingo|MX21|MX|-97.78|18.98|25|N|san juan acatzingo,Acayucan|MX30|MX|-94.91|17.95|50|N|,Accra|greater accra|GH|-0.2|5.56|1963|W|acra;akra,Acheng|heilongjiang|CN|126.95|45.55|144|W|,Actopan|MX13|MX|-98.94|20.27|32|N|,Ad-Damazin|blue nile|SD|34.36|11.79|186|W|damazin,Ad-Dawahy|port said|EG|32.28|31.24|148|W|al dawahi,Adachi|tokyo|JP|139.81|35.76|695|W|adachi city,Adana|adana|TR|35.33|36.99|1816|W|antioch on sarus,Adapazari|sakarya|TR|30.4|40.78|286|W|,Addis Ababa|addis ababa|ET|38.75|9.02|3860|W|addis abeba;adis abeba,Addison|IL|US|-87.99|41.93|37|N|,Adelaide|south australia|AU|138.6|-34.93|1469|W|adelaida;adelajda,Adelanto|CA|US|-117.41|34.58|33|N|,Aden|aden|YE|45.04|12.78|1079|W|adem,Adiwerna|central java|ID|109.13|-6.94|134|W|,Adiyaman|adiyaman province|TR|38.28|37.76|290|W|adiyamanska,Admiralteisky|st petersburg|RU|30.3|59.92|157|W|,Ado-Ekiti|ekiti state|NG|5.22|7.62|435|W|,Adoni|andhra pradesh|IN|77.27|15.63|184|W|,Afyonkarahisar|afyonkarahisar province|TR|30.54|38.76|251|W|afyon;afyonkarahissar,Agadez|agadez|NE|7.99|16.97|149|W|agades,Agadir|souss massa|MA|-9.6|30.42|698|W|santa cruz,Agartala|tripura|IN|91.28|23.84|400|W|,Agawam|MA|US|-72.61|42.07|28|N|,Agege|lagos|NG|3.33|6.62|683|W|,Ageo|saitama|JP|139.61|35.97|226|W|,Agincourt North|ON|CA|-79.28|43.8|29|N|,Agra|uttar pradesh|IN|78.02|27.18|1430|W|,Agua Caliente|CA|US|-122.49|38.32|27|N|,Agua Dulce|MX30|MX|-94.15|18.14|36|N|,Agua Prieta|MX26|MX|-109.54|31.32|77|N|,Aguas Lindas de Goias|goias|BR|-48.28|-15.76|245|W|,Aguascalientes|MX01|MX|-102.28|21.88|722|NW|aguascalientes city;aguascalientes by,Ahilyanagar|maharashtra|IN|74.74|19.09|367|W|,Ahmadpur East|punjab|PK|71.26|29.14|196|W|ahmedpur east;ahmedpur sharqia;ahmedpur sarki,Ahmedabad|gujarat|IN|72.59|23.03|6357|W|ahmadabad,Ahuntsic-Cartierville|QC|CA|-73.67|45.57|135|NW|,Ahvaz|khuzestan|IR|48.68|31.32|841|W|ahwas;ahwaz,Ahwatukee Foothills|AZ|US|-111.98|33.34|83|N|,Aihara|kanagawa|JP|139.32|35.6|725|W|,Aihui|heilongjiang|CN|127.48|49.98|192|W|,Aiken|SC|US|-81.72|33.56|30|N|,Airdrie|AB|CA|-114.04|51.3|90|N|,Airport|HI|US|-157.93|21.34|28|N|,Ait Melloul|souss massa|MA|-9.5|30.34|187|W|,Aix-en-Provence|provence alpes cote d azur|FR|5.45|43.53|146|W|,Aizawl|mizoram|IN|92.72|23.73|293|W|aijal;aizol;aizwal,Ajalpan|MX21|MX|-97.26|18.38|28|N|,Ajax|ON|CA|-79.03|43.85|119|N|,Ajdabiya|al wahat|LY|20.23|30.76|131|W|adjdabia;adschdabiya;adzdabija;adzedabija;ajdabiyah;ecdebiye,Ajegunle|lagos|NG|3.33|6.45|550|W|,Ajman|ajman|AE|55.48|25.4|490|W|acman;adschman;adzman;ajman city;ajma;ujman,Ajmer|rajasthan|IN|74.64|26.45|542|W|adzmer,Akashi|hyogo|JP|135.01|34.66|303|W|,Akhmim|sohag|EG|31.75|26.56|151|W|,Akita|akita|JP|140.12|39.72|307|W|akita shi,Akola|maharashtra|IN|77|20.71|428|W|,Akowonjo|lagos|NG|3.31|6.61|308|W|,Akron|OH|US|-81.52|41.08|197|NW|,Aksaray|aksaray|TR|34.03|38.37|327|W|,Aktau|mangystau|KZ|51.17|43.66|147|W|aktaou;aktav;aqtau;aqtaw;shevchenko,Aktobe|aktobe|KZ|57.21|50.28|500|W|aktioube;aktiube;aqtobe;aktyubinsk,Akure|ondo state|NG|5.19|7.25|730|W|,Al Ahmadi|al ahmadi|KW|48.08|29.08|637|W|el ahmedi,Al Ain City|abu dhabi|AE|55.76|24.19|846|W|al ain;al ajn;al ayn,Al Ajaylat|an nuqat al khams|LY|12.38|32.76|130|W|,Al 'Amarah|maysan|IQ|47.14|31.84|323|W|amarah;amara,Al 'Ashir min Ramadan|sharqia|EG|31.75|30.3|246|W|cidade do ramadao;citta del decimo ramadan,Al Bab|aleppo|SY|37.52|36.37|130|W|,Al Basrah al Qadimah|basra|IQ|47.82|30.5|2015|W|,Al Diwaniyah|al qadisiyah|IQ|44.93|31.99|318|W|ad diwaniyah;diwaniya;diwaniyya;divanija;ed divaniye,Al Fallujah|anbar|IQ|43.79|33.35|190|W|al falludza;al falluja;falloujah;falludscha;falluja;fallujah;falludza;faluja;faluya;felluce,Al Fayyum|faiyum|EG|30.84|29.31|519|W|el fayum;faijum;fajum;fayoum;fayyum;fayun,Al Hasakah|al hasakah|SY|40.75|36.5|422|W|al hasaka;hasaka;hasakah;haseke;hassake,Al Hawamidiyah|giza|EG|31.25|29.9|155|W|,Al Hillah|babil|IQ|44.42|32.46|455|W|hillah;al hilla;el hille;hilla,Al Hindiyah|karbala|IQ|44.22|32.54|139|W|,Al Hoceima|tanger tetouan al hoceima|MA|-3.94|35.25|395|W|al husajma;alhucemas;villa alhucemas;villa sanjurjo,Al Hudaydah|al hudaydah|YE|42.95|14.8|734|W|el hudeyda,Al Hufuf|eastern province|SA|49.59|25.36|293|W|hofuf;al hofuf;hufuf,Al Jubayl|eastern province|SA|49.62|27.02|237|W|jubail;al jubail;al dschubail;al dzubajl;el cubeyl,Al-Junaynah|western darfur|SD|22.45|13.45|162|W|geneina;al dschunaina;al dzunajna;el geneina,Al Kharj|riyadh region|SA|47.33|24.16|425|W|al khardj;el harc,Al Khums|al marqab|LY|14.26|32.65|201|W|al jums;al chums;el hums;qabilat al khums,Al Khusus|qalyubia|EG|31.32|30.15|488|W|,Al-Kut|wasit|IQ|45.82|32.51|315|W|kut;al koet,Al Madinah|basra|IQ|47.27|30.96|255|W|,Al Mahallah al Kubra|gharbia|EG|31.17|30.97|592|W|,Al Mahmudiyah|baghdad|IQ|44.37|33.06|350|W|,Al Mansurah|dakahlia|EG|31.38|31.04|621|W|al mansura;el mansura;mansourah;mansura,Al Matariyah|dakahlia|EG|32.03|31.18|162|W|,Al Mawsil al Jadidah|nineveh|IQ|43.11|36.33|2065|W|,Al'met'yevsk|tatarstan republic|RU|52.32|54.9|140|W|almetjevsk;almetjewsk,Al Miqdadiyah|diyala|IQ|44.94|33.98|155|W|,Al Mubarraz|eastern province|SA|49.59|25.41|290|W|,Al Muharraq|muharraq|BH|50.61|26.26|176|W|al muharrak;muharraq,Al Qadarif|al qadarif|SD|35.38|14.03|363|W|gedaref;al kadarif;el gadarif;gadaref;gadarif,Al Qahirah al Jadidah||EG|31.44|30.04|313|W|,Al Qamishli|al hasakah|SY|41.23|37.05|184|W|kamischli;kamishli;kamishlie;kamisli;qamichli;qamischli,Al Qurnah|basra|IQ|47.43|31.02|134|W|,Al-'Ubur|qalyubia|EG|31.48|30.23|138|W|,Alabaster|AL|US|-86.82|33.24|32|N|,Alafaya|FL|US|-81.21|28.56|78|N|,Alagoinhas|bahia|BR|-38.42|-12.14|161|W|,Alameda|CA|US|-122.26|37.77|78|N|,Alamo|MX30|MX|-97.68|20.91|25|N|,Alamogordo|NM|US|-105.96|32.9|30|N|,Alandur|tamil nadu|IN|80.21|13|164|W|,Alanya|antalya|TR|32|36.54|364|W|,Alappuzha|kerala|IN|76.33|9.49|240|W|alleppey,Albacete|castille la mancha|ES|-1.86|38.99|173|W|,Albany|NY|US|-73.76|42.65|101|N|,Albany|GA|US|-84.16|31.58|74|N|albania,Albany|OR|US|-123.11|44.64|52|N|,Albany Park|IL|US|-87.72|41.97|52|N|,Albuquerque|NM|US|-106.65|35.08|564|NW|alburquerque;methville,Alcala de Henares|madrid|ES|-3.36|40.48|193|W|compluto,Alcorcon|madrid|ES|-3.82|40.35|172|W|,Aleppo|aleppo|SY|37.16|36.2|2098|W|alep;alepo;halep,Alexandra|gauteng|ZA|28.1|-26.11|179|W|,Alexandria|alexandria|EG|29.92|31.2|5263|W|alejandria;aleksandria;alessandria d egitto;alexandrie;iskandariyah;iskenderiye,Alexandria|VA|US|-77.05|38.8|159|NW|,Alexandria|LA|US|-92.45|31.31|47|N|,Aley|mount lebanon|LB|35.6|33.81|130|W|alayh,Algiers|algiers|DZ|3.09|36.73|2364|W|alger;algeri;algier;aljir;alzir;argel;cezayir,Algonquin|IL|US|-88.29|42.17|30|N|,Alhambra|AZ|US|-112.13|33.5|127|N|,Alhambra|CA|US|-118.13|34.1|85|N|,Aliamanu / Salt Lakes / Foster Village|HI|US|-157.92|21.36|38|N|salt lake,Aliayabiagba|lagos|NG|3.33|6.45|228|W|,Alicante|valencia|ES|-0.48|38.35|348|W|alacante,Alief|TX|US|-95.6|29.71|98|N|,Aligarh|uttar pradesh|IN|78.07|27.88|753|W|,Alimosho|lagos|NG|3.3|6.61|308|W|,Aliso Viejo|CA|US|-117.73|33.57|50|N|,Allapattah|FL|US|-80.22|25.81|54|N|,Allen|TX|US|-96.67|33.1|98|N|,Allen Park|MI|US|-83.21|42.26|27|N|,Allentown|PA|US|-75.49|40.61|120|N|,Allston|MA|US|-71.13|42.36|28|N|,Alma|QC|CA|-71.65|48.55|29|N|,Almaty|almaty|KZ|76.91|43.25|1977|W|almati;alma ata;werny,Almendares|havana|CU|-82.42|23.11|240|W|,Almere Stad|flevoland|NL|5.21|52.37|176|W|almere,Almeria|andalusia|ES|-2.46|36.84|196|W|,Aloha|OR|US|-122.87|45.49|49|N|,Alor Setar|kedah|MY|100.36|6.12|417|W|alor star,Alpharetta|GA|US|-84.29|34.08|63|N|,Altadena|CA|US|-118.13|34.19|42|N|,Altamira|para|BR|-52.21|-3.2|138|W|,Altamira|MX28|MX|-97.94|22.39|59|N|,Altamonte Springs|FL|US|-81.37|28.66|43|N|,Alto Barinas|barinas|VE|-70.23|8.59|284|W|,Alto Hospicio|tarapaca|CL|-70.1|-20.27|142|W|,Alton|IL|US|-90.18|38.89|27|N|,Altona|hamburg|DE|9.93|53.55|250|W|arrondissement daltona;bezirk altona;distretto di altona;hamburgo altona,Altoona|PA|US|-78.39|40.52|45|N|,Alvaro Obregon|MX09|MX|-99.2|19.36|726|NW|,Alvin|TX|US|-95.24|29.42|25|N|,Alvorada|rio grande do sul|BR|-51.08|-30|187|W|,Alwar|rajasthan|IN|76.62|27.56|322|W|,Amadora|lisbon|PT|-9.23|38.75|178|W|,Amagasaki|hyogo|JP|135.42|34.72|459|W|,Amarapura|mandalay region|MM|96.05|21.91|237|W|,Amarillo|TX|US|-101.83|35.22|198|NW|,Ambala|haryana|IN|76.8|30.36|195|W|,Ambarnath|maharashtra|IN|73.17|19.2|253|W|,Ambato|tungurahua province|EC|-78.62|-1.25|387|W|,Ambattur|tamil nadu|IN|80.16|13.1|466|W|,Ambon|maluku|ID|128.18|-3.7|347|W|ambon city;kota ambon,Ameca|MX14|MX|-104.05|20.55|36|N|municipio ameca,Amecameca|MX15|MX|-98.77|19.12|31|N|amecameca de juarez,American Fork|UT|US|-111.8|40.38|28|N|,Americana|sao paulo|BR|-47.33|-22.74|246|W|,Amersfoort|utrecht|NL|5.39|52.16|139|W|,Ames|IA|US|-93.62|42.03|65|N|,Amherst|NY|US|-78.8|42.98|122|N|,Amherst|MA|US|-72.52|42.37|39|N|,Amiens|hauts de france|FR|2.3|49.9|143|W|,Amman|amman|JO|35.95|31.96|1275|W|aman;ama,Amol|mazandaran|IR|52.35|36.47|237|W|,Amozoc de Mota|MX21|MX|-98.05|19.05|95|N|amozoc,Amravati|maharashtra|IN|77.75|20.93|647|W|,Amritsar|punjab|IN|74.88|31.62|1159|W|,Amroha|uttar pradesh|IN|78.47|28.9|176|W|,Amsterdam|north holland|NL|4.89|52.37|741|W|amesterda;amesterdao;amseutereudam;amsterda;amsterodam;amsut erudam;amusuterudamu;aemstelredamme;aemsterdam,An Nhon|gia lai|VN|109.11|13.89|308|W|,Anaco|anzoategui|VE|-64.46|9.43|139|W|,Anaheim|CA|US|-117.91|33.84|350|NW|,Anand|gujarat|IN|72.96|22.55|209|W|,Ananindeua|para|BR|-48.37|-1.37|535|W|,Anantapur|andhra pradesh|IN|77.61|14.68|267|W|,Anantnag|jammu and kashmir|IN|75.15|33.73|150|W|,Anapolis|goias|BR|-48.95|-16.33|319|W|,Anbu|guangdong|CN|116.68|23.45|162|W|,Ancaster|ON|CA|-79.99|43.22|40|N|,Anchorage|AK|US|-149.9|61.22|289|NW|,Anda|heilongjiang|CN|125.3|46.45|181|W|,Anderlecht|brussels capital|BE|4.31|50.84|160|W|,Anderson|IN|US|-85.68|40.11|55|N|,Anderson|SC|US|-82.65|34.5|27|N|,Andijon|andijan region|UZ|72.35|40.78|747|W|andican;andijan;andisjan;andizan;andizjan,Andimeshk|khuzestan|IR|48.35|32.46|135|W|,Andong|gyeongsangbuk do|KR|128.72|36.57|153|W|,Andover|MN|US|-93.29|45.23|32|N|,Ang Mo Kio New Town||SG|103.84|1.38|159|W|,Angarsk|irkutsk oblast|RU|103.91|52.56|243|W|,Angeles City|central luzon|PH|120.58|15.15|483|W|,Angers|pays de la loire|FR|-0.55|47.47|168|W|,Angono|calabarzon|PH|121.15|14.53|134|W|,Angra dos Reis|rio de janeiro|BR|-44.32|-23.01|179|W|,Angren|tashkent region|UZ|70.14|41.02|191|W|,Anjo|aichi|JP|137.08|34.96|188|W|,Ankang|shaanxi|CN|109.02|32.68|870|W|,Ankara|ankara|TR|32.85|39.92|3517|W|ancara;angora,Ankeny|IA|US|-93.61|41.73|56|N|,Ann Arbor|MI|US|-83.74|42.28|117|N|,Annaba|annaba|DZ|7.77|36.9|342|W|bone,Annandale|VA|US|-77.2|38.83|41|N|,Annapolis|MD|US|-76.49|38.98|40|N|,Annex|ON|CA|-79.4|43.67|30|N|,Anqing|anhui|CN|117.05|30.51|804|W|an khanh;an cching;anking,Anqiu|shandong|CN|119.19|36.43|364|W|,Ansan-si|gyeonggi do|KR|126.82|37.32|623|W|ansan,Anshan|liaoning|CN|122.99|41.12|1450|W|an son;an san,Anshun|guizhou|CN|105.93|26.25|765|W|an sun,Antakya|hatay|TR|36.16|36.21|399|W|antioche;antiochia am orontes;antiochia di siria;antiochia vid orontes;antiochie;antiokia;antioquia;antioch;teopolis,Antalya|antalya|TR|30.7|36.91|1335|W|antalia,Antananarivo|analamanga|MG|47.54|-18.91|1349|W|antananarywa;tananarive,Antelope|CA|US|-121.33|38.71|45|N|,Antioch|CA|US|-121.81|38|110|N|,Antipolo|calabarzon|PH|121.12|14.63|913|W|antipolo city,Antofagasta|antofagasta|CL|-70.4|-23.65|401|W|,Antsirabe|vakinankaratra|MG|47.03|-19.87|260|W|,Antsiranana|diana|MG|49.29|-12.32|136|W|diego suarez,Antwerp|flanders|BE|4.4|51.22|529|W|amberes;antuerpia;antverpy;antwerpen;antwerpia;anvers;anversa;kota antwerpen,Anyama|abidjan autonomous district|CI|-4.05|5.49|133|W|,Anyang|henan|CN|114.38|36.1|1146|W|an duong;an jang,Anyang-si|gyeonggi do|KR|126.93|37.39|595|W|anyang,Aomori|aomori|JP|140.73|40.82|298|W|,Apache Junction|AZ|US|-111.55|33.42|38|N|,Apan|MX13|MX|-98.45|19.71|26|N|,Aparecida de Goiania|goias|BR|-49.24|-16.82|527|W|,Apaseo el Alto|MX11|MX|-100.62|20.46|27|N|,Apaseo el Grande|MX11|MX|-100.69|20.55|26|N|,Apatzingan|MX16|MX|-102.36|19.09|102|N|,Apeldoorn|gelderland|NL|5.97|52.21|136|W|,Apex|NC|US|-78.85|35.73|45|N|,Apizaco|MX29|MX|-98.14|19.41|49|N|ciudad de apizaco,Apopka|FL|US|-81.51|28.68|48|N|,Apple Valley|CA|US|-117.19|34.5|72|N|,Apple Valley|MN|US|-93.22|44.73|51|N|,Appleton|WI|US|-88.42|44.26|74|N|,Apucarana|parana|BR|-51.46|-23.55|134|W|,Aqsu|xinjiang|CN|80.28|41.18|535|W|aksou;aksu;ciudad de aksu,Ar Ramtha|irbid|JO|36.01|32.56|155|W|,Ar Raqqah|raqqa|SY|39.01|35.95|531|W|raqqa;rakka,Ar Rayyan|baladiyat ar rayyan|QA|51.42|25.29|272|W|al rayyan,Arabi|somali|ET|42.49|9.96|148|W|,Aracaju|sergipe|BR|-37.07|-10.91|664|W|,Aracatuba|sao paulo|BR|-50.43|-21.21|208|W|,Arad|arad county|RO|21.32|46.18|169|W|,Araguaina|tocantins|BR|-48.21|-7.19|183|W|,Arak|markazi|IR|49.7|34.09|503|W|,Arakawa|tokyo|JP|139.78|35.74|216|W|arakawa city,Arandas|MX14|MX|-102.35|20.71|52|N|,Arapiraca|alagoas|BR|-36.66|-9.75|243|W|,Arar|northern borders region|SA|41.04|30.98|148|W|,Araraquara|sao paulo|BR|-48.18|-21.79|168|W|,Araras|sao paulo|BR|-47.38|-22.36|135|W|,Araruama|rio de janeiro|BR|-42.34|-22.87|137|W|,Araucaria|parana|BR|-49.41|-25.59|162|W|,Araure|portuguesa|VE|-69.24|9.58|181|W|,Arba Minch|south ethiopia regional state|ET|37.55|6.03|201|W|,Arcadia|CA|US|-118.04|34.14|58|N|,Arcahaie|ouest|HT|-72.51|18.77|130|W|,Archway|england|GB|-0.13|51.57|215|W|,Arcola East|SK|CA|-104.54|50.43|33|N|,Ardabil|ardabil province|IR|48.29|38.25|410|W|ardebil;erdebil,Arden-Arcade|CA|US|-121.38|38.6|92|N|,Ardmore|OK|US|-97.14|34.17|25|N|,Arequipa|arequipa|PE|-71.54|-16.4|1195|W|,Arganzuela|madrid|ES|-3.7|40.4|148|W|,Arhus|central jutland|DK|10.21|56.16|285|W|aarhus,Arica|arica y parinacota region|CL|-70.3|-18.48|241|W|,Arif Wala|balochistan|PK|66.3|26.32|157|W|,Arifwala|punjab|PK|73.07|30.29|854|W|,Arish|north sinai|EG|33.8|31.13|199|W|al arisch;al arish;al arisz;alarixe;aris;el arish;el aris;el arich;city of cut noses,Arkhangel'sk|arkhangelskaya|RU|40.55|64.55|349|W|arkhangelsk;arcangelo;archangelsk;arcangel;arkangeli,Arlington|TX|US|-97.11|32.74|388|NW|,Arlington|VA|US|-77.1|38.88|207|NW|,Arlington|MA|US|-71.16|42.42|42|N|,Arlington Heights|IL|US|-87.98|42.09|75|N|,Armavir|krasnodar krai|RU|41.11|45|199|W|armawir,Armenia|quindio department|CO|-75.67|4.54|304|W|armenien;armenie;ermenistan,Arnavutkoey|istanbul|TR|28.74|41.18|198|W|arnavutkoy,Arnhem|gelderland|NL|5.91|51.98|162|W|arnheim;arnhemia,Arrah|bihar|IN|84.66|25.56|261|W|,Arroyo Naranjo|havana|CU|-82.38|23.04|210|W|,Artux|xinjiang|CN|76.18|39.71|285|W|,Arusha|arusha|TZ|36.68|-3.37|617|W|,Arvada|CO|US|-105.09|39.8|115|N|,As Salimiyah|hawalli|KW|48.08|29.33|147|W|,As Samawah|muthanna|IQ|45.29|31.33|152|W|samawa;samawah;semave,Asahikawa|hokkaido|JP|142.36|43.77|333|W|,Asaka|saitama|JP|139.6|35.8|141|W|,Asansol|west bengal|IN|86.98|23.68|504|W|,Asela|oromiya|ET|39.13|7.95|139|W|,Ash Sharqat|salah ad din|IQ|43.23|35.52|160|W|,Ash Shatrah|dhi qar|IQ|46.17|31.41|182|W|,Ashaiman|greater accra|GH|-0.03|5.7|190|W|ashiaman,Ashburn|VA|US|-77.49|39.04|43|N|,Ashburn|IL|US|-87.71|41.75|42|N|,Ashdod|southern district|IL|34.65|31.79|226|W|aschdod;asdod;asdode;ashdod yam;asjdod;aszdod,Asheboro|NC|US|-79.81|35.71|26|N|,Asheville|NC|US|-82.55|35.6|95|N|,Ashgabat|ashgabat|TM|58.38|37.95|1030|W|achgabat;aschgabat;asgabate;ashkabad;ashkhabad;asjabad;asjchabad;asjkhabad;aszchabad;asgabat;askabat;aschabad,Ashikaga|tochigi|JP|139.45|36.33|144|W|,Ashkelon|southern district|IL|34.57|31.67|144|W|ashqelon;ashquelon,Ashmont|MA|US|-71.07|42.28|30|N|,Ashuganj City|chittagong|BD|91.01|24.04|210|W|,Asmara|maekel|ER|38.93|15.34|563|W|,Aspen Hill|MD|US|-77.07|39.08|48|N|,Assiut|asyut|EG|31.18|27.18|528|W|asyut,Astana|astana|KZ|71.45|51.18|1544|W|akmolinsk;noer soeltan;nour soultan;nur sultan;tselinograd,Astanajapura|west java|ID|108.63|-6.8|148|W|,Astoria|NY|US|-73.93|40.77|150|NW|,Astrakhan|astrakhan oblast|RU|48.04|46.35|533|W|astrachan;astracan;astraca;astrahan,Asuncion|asuncion|PY|-57.65|-25.29|1482|W|assuncao,Aswan|aswan|EG|32.9|24.09|379|W|assouan;assuan;assuao;asuan;asvan,Atani|anambra|NG|6.75|6.01|230|W|,Atascadero|CA|US|-120.67|35.49|29|N|,Atascocita|TX|US|-95.18|30|65|N|,Atasehir|istanbul|TR|29.12|40.98|361|W|,Athens|attica|GR|23.73|37.98|664|W|ateena;aten;atena;atenas;atene;ateny;athen;athena;athene;athenes;atheny;athinai;atina;kota athena,Athens|GA|US|-83.38|33.96|127|N|,Athens|OH|US|-82.1|39.33|25|N|,Athlone|western cape|ZA|18.5|-33.97|237|W|,Atibaia|sao paulo|BR|-46.55|-23.12|158|W|,Atlanta|GA|US|-84.39|33.75|510|NW|,Atlantic City|NJ|US|-74.42|39.36|39|N|kota atlantic,Atlixco|MX21|MX|-98.44|18.91|86|N|,Atotonilco el Alto|MX14|MX|-102.51|20.55|26|N|,Atsiaman|greater accra|GH|-0.33|5.7|202|W|achiaman;ashaiman,Atsugi|kanagawa|JP|139.37|35.44|223|W|acugi,Attleboro|MA|US|-71.29|41.94|44|N|,Attock City|punjab|PK|72.36|33.77|141|W|,Atwater|CA|US|-120.61|37.35|29|N|,Atyrau|atyrau oblisi|KZ|51.88|47.1|290|W|atyraou;atyraw;atirau;atirav;atiraw,Auburn|WA|US|-122.23|47.31|77|N|,Auburn|AL|US|-85.48|32.61|62|N|,Auburn|NY|US|-76.57|42.93|26|N|,Auburn Gresham|IL|US|-87.65|41.74|45|N|,Auckland|auckland|NZ|174.76|-36.85|1547|W|,Augsburg|bavaria|DE|10.9|48.37|301|W|augsbourg;augsburg innenstadt;augsburgo;augusta,Augusta|GA|US|-81.97|33.47|43|N|,Aurangabad|maharashtra|IN|75.34|19.88|1175|W|,Aurora|CO|US|-104.83|39.73|359|NW|,Aurora|IL|US|-88.32|41.76|200|NW|,Aurora|ON|CA|-79.47|44|55|N|,Austin|TX|US|-97.74|30.27|974|NW|,Austintown|OH|US|-80.76|41.1|29|N|,Autlan de Navarro|MX14|MX|-104.37|19.77|45|N|,Avadi|tamil nadu|IN|80.11|13.11|345|W|,Avellaneda|buenos aires|AR|-58.37|-34.66|367|W|,Aventura|FL|US|-80.14|25.96|37|N|,Avondale|AZ|US|-112.35|33.44|80|N|,Avondale|IL|US|-87.71|41.94|39|N|,Avtozavodskyi|poltava|UA|33.43|49.1|157|W|avtozavodskyi rayon;avtozavodskyy;avtozavodskyy rayon,Awasa|sidama region|ET|38.48|7.06|422|W|awassa,Awka|anambra|NG|7.07|6.21|167|W|avka,Ayacucho|ayacucho|PE|-74.22|-13.16|140|W|,Aydin|aydin|TR|27.84|37.85|163|W|tralleis;tralli,Aylmer|QC|CA|-75.81|45.4|56|N|,Az Zawiyah|az zawiyah|LY|12.73|32.76|200|W|ez zaviye;zawiyah,Az-Zuhur|port said|EG|32.26|31.27|266|W|al zohur,Azcapotzalco|MX09|MX|-99.19|19.49|414|NW|,Azusa|CA|US|-117.91|34.13|49|N|,Ba Dinh|hanoi|VN|105.83|21.04|221|W|,Ba Vi|hanoi|VN|105.38|21.08|282|W|,Bab Ezzouar|algiers|DZ|3.18|36.73|275|W|,Babol|mazandaran|IR|52.68|36.55|202|W|,Bac Giang|bac ninh|VN|106.19|21.27|450|W|,Bac Lieu|ca mau|VN|105.73|9.29|156|W|,Bac Ninh|bac ninh|VN|106.08|21.19|287|W|,Bac Tu Liem|hanoi|VN|105.75|21.07|340|W|,Bacau|bacau county|RO|26.91|46.57|136|W|,Bachuan|chongqing|CN|106.05|29.85|208|W|,Back Mountain|PA|US|-76|41.34|26|N|,Bacolod City|western visayas|PH|122.95|10.67|454|W|bacolod,Bacoor|calabarzon|PH|120.94|14.46|356|W|,Badajoz|extremadura|ES|-6.97|38.88|150|W|badajos,Badalona|catalonia|ES|2.25|41.45|217|W|,Bade|taiwan|TW|121.28|24.93|209|W|bade district,Badlapur|maharashtra|IN|73.27|19.16|174|W|,Bafoussam|west|CM|10.42|5.48|373|W|bafousam;bafusam;befoussam,Bagcilar|istanbul|TR|28.86|41.04|740|W|,Bagerhat|khulna division|BD|89.79|22.66|266|W|,Baghdad|baghdad|IQ|44.4|33.34|7216|W|bagdad;bagda;bagdat,Bago|bago region|MM|96.48|17.34|244|W|pegu;pegou,Bago City|western visayas|PH|122.83|10.53|192|W|bago,Bagong Silang|national capital region|PH|121.04|14.78|261|W|,Baguio|cordillera|PH|120.59|16.42|272|W|baguio city;kota baguio,Bahadurgarh|haryana|IN|76.94|28.69|170|W|,Baharampur|west bengal|IN|88.25|24.1|180|W|,Baharkah|erbil|IQ|44.04|36.32|130|W|,Bahawalnagar|punjab|PK|73.25|30|241|W|bahawalpur,Bahawalpur|punjab|PK|71.68|29.4|903|W|,Bahcelievler|istanbul|TR|28.86|41|576|W|,Bahia Blanca|buenos aires|AR|-62.27|-38.72|299|W|,Bahir Dar|amhara|ET|37.39|11.59|350|W|bahar dar;baher dar;bahyr dar,Bahraigh|uttar pradesh|IN|81.59|27.57|182|W|bahraich,Baicheng|jilin|CN|122.83|45.62|316|W|paj ccheng,Baise|guangxi|CN|106.63|23.89|686|W|baise city,Baishan|jilin|CN|126.42|41.94|183|W|paj san,Baiyin|gansu|CN|104.17|36.55|294|W|paj jin,Bakersfield|CA|US|-119.02|35.37|373|NW|,Baku|baki|AZ|49.89|40.38|2351|W|bacu;bakoe;bakou,Balakovo|saratov oblast|RU|47.8|52.03|199|W|balakowo,Balashikha|moscow oblast|RU|37.95|55.79|150|W|balachikha;balaschicha;balasjicha;balasjikha;balasiha;balasicha;balaszycha,Balasore|odisha|IN|86.93|21.49|144|W|baleshwar;baleswar,Balbala|djibouti|DJ|43.11|11.56|554|W|,Balch Springs|TX|US|-96.62|32.73|25|N|,Balcon de la Lisa|havana|CU|-82.45|23.05|147|W|,Baldwin Park|CA|US|-117.96|34.09|77|N|,Bali|west bengal|IN|88.34|22.65|296|W|,Balikesir|balikesir|TR|27.89|39.65|238|W|,Balikpapan|east kalimantan|ID|116.83|-1.27|695|W|kota balikpapan,Baliuag|central luzon|PH|120.9|14.95|135|W|,Ballari|karnataka|IN|76.92|15.14|410|W|bellary,Ballwin|MO|US|-90.55|38.6|30|N|,Balneario Camboriu|santa catarina|BR|-48.63|-26.99|139|W|camboriu,Baltimore|MD|US|-76.61|39.29|585|NW|baltimora,Balurghat|west bengal|IN|88.78|25.22|153|W|,Balvanera|buenos aires f d|AR|-58.4|-34.61|152|W|,Bamako|bamako|ML|-7.98|12.61|4227|W|,Bamenda|north west|CM|10.15|5.96|420|W|,Ban Khlong Prawet|bangkok|TH|100.68|13.72|160|W|,Banan|chongqing|CN|106.54|29.38|508|W|,Banbury-Don Mills|ON|CA|-79.35|43.74|27|N|,Banda|uttar pradesh|IN|80.33|25.48|152|W|,Banda Aceh|aceh|ID|95.33|5.54|267|W|banda acheh;banda achem;banda atjeh;kota banda aceh,Bandar Abbas|hormozgan|IR|56.28|27.19|352|W|bandar e abbas;bender abbas;cambarao;gombroon;gumrun;port comorao,Bandar Bukit Raja|selangor|MY|101.43|3.09|146|W|,Bandar-e Mahshahr|khuzestan|IR|49.19|30.56|162|W|,Bandar Lampung|lampung|ID|105.26|-5.43|1166|W|bandarlampung;kota bandar lampung,Bandar Seri Alam|johor|MY|103.88|1.5|220|W|seri alam city,Bandar Sunway|selangor|MY|101.61|3.07|200|W|sunway city,Bandar Tasik Puteri|selangor|MY|101.47|3.29|150|W|puteri lake city,Bandar Utama|kuala lumpur|MY|101.61|3.15|200|W|,Bandarban|chittagong|BD|92.22|22.2|495|W|,Bandundu Province|kwilu|CD|17.38|-3.32|202|W|bandundu;bandundu bolgesi;provincia de bandundu;provincia di bandundu;provinsi bandundu;provinz bandundu,Bandung|west java|ID|107.61|-6.92|2528|W|kota bandung,Bang Kapi|bangkok|TH|100.65|13.77|147|W|,Bang Khae|bangkok|TH|100.41|13.69|193|W|,Bang Khun Thian|bangkok|TH|100.43|13.66|165|W|,Bangkok|bangkok|TH|100.5|13.75|5104|W|banguecoque;bancoque,Bangor|ME|US|-68.77|44.8|32|N|,Bangui|bangui|CF|18.55|4.36|812|W|bangi,Banha|qalyubia|EG|31.18|30.46|182|W|,Bani Suwayf|beni suweif|EG|31.1|29.07|273|W|,Banja Luka|srpska|BA|17.21|44.78|221|W|bania luka;banya luka,Banjar|west java|ID|107.43|-7.2|209|W|,Banjaran|west java|ID|107.59|-7.05|164|W|,Banjarbaru|south kalimantan|ID|114.84|-3.44|293|W|bandjarbaru,Banjarmasin|south kalimantan|ID|114.59|-3.32|657|W|,Bankura|west bengal|IN|87.07|23.23|133|W|,Banning|CA|US|-116.88|33.93|30|N|,Bannu|khyber pakhtunkhwa|PK|70.6|32.99|1357|W|,Banqiao|taipei|TW|121.47|25.01|551|W|banqiao district;banciao;banciao district,Bao'an|guangdong|CN|113.88|22.55|4476|W|,Bao Loc|lam dong|VN|107.81|11.55|170|W|,Baoding|hebei|CN|115.46|38.87|2739|W|prefettura di baoding,Baoji|shaanxi|CN|107.24|34.37|1437|W|,Baoshan|shanghai|CN|121.49|31.41|2265|W|,Baoshan|yunnan|CN|99.16|25.12|935|W|pao san,Baotou|inner mongolia|CN|109.84|40.65|2150|W|pao tchou,Baqubah|diyala|IQ|44.61|33.75|152|W|bakouba;bakuba;baquba,Barakpur|west bengal|IN|88.36|22.77|148|W|,Baranagar|west bengal|IN|88.38|22.64|260|W|barahanagore,Baranovichi|brest|BY|26.01|53.13|170|W|baranavitsjy;baranawitschy;baranovitchi;baranovitsi;baranowicze,Barasat|west bengal|IN|88.48|22.72|298|W|,Barberton|OH|US|-81.61|41.01|26|N|,Barcarena|para|BR|-48.63|-1.51|139|W|,Barcelona|catalonia|ES|2.16|41.39|1686|W|barcellona;barcelone;barselona;la ciudad condal,Barcelona|anzoategui|VE|-64.69|10.14|815|W|barselona,Barddhaman|west bengal|IN|87.86|23.26|301|W|bardhaman;burdwan,Bareilly|uttar pradesh|IN|79.43|28.37|745|W|bareli,Bari|apulia|IT|16.87|41.12|316|W|,Bariadi|simiyu|TZ|33.98|-2.8|260|W|,Barinas|barinas|VE|-70.23|8.62|397|W|,Barishal|barisal division|BD|90.37|22.7|202|W|,Barking|england|GB|0.08|51.53|218|W|barking town,Barnaul|altai krai|RU|83.73|53.36|632|W|barnaoel;barnaoul,Barnstable|MA|US|-70.3|41.7|47|N|,Barquisimeto|lara|VE|-69.36|10.06|1240|W|,Barra da Tijuca|rio de janeiro|BR|-43.37|-23|421|W|kiki,Barra Mansa|rio de janeiro|BR|-44.17|-22.54|181|W|,Barrancabermeja|santander department|CO|-73.85|7.07|191|W|barracana bermeja,Barranquilla|atlantico|CO|-74.78|10.97|1206|W|barranquilha,Barreiras|bahia|BR|-44.99|-12.15|171|W|,Barrie|ON|CA|-79.67|44.4|147|NW|,Bartlesville|OK|US|-95.98|36.75|36|N|,Bartlett|TN|US|-89.87|35.2|58|N|,Bartlett|IL|US|-88.19|42|41|N|,Barueri|sao paulo|BR|-46.88|-23.51|316|W|tambore,Baruta|miranda|VE|-66.88|10.43|244|W|,Barysaw|minsk|BY|28.5|54.23|133|W|borisov,Basaksehir|istanbul|TR|28.79|41.11|193|W|,Basel|basel city|CH|7.57|47.56|177|W|basilea;basileia;basilej;bazel;bazylea;bale,Basildon|england|GB|0.46|51.57|144|W|,Basirhat City|west bengal|IN|88.85|22.66|143|W|,Basrah|basra|IQ|47.78|30.51|1326|W|basra;al basra;basora;bassora;bassorah;bacora,Basuo|hainan|CN|108.67|19.1|444|W|,Bata|litoral|GQ|9.77|1.86|173|W|,Batala|punjab|IN|75.2|31.81|158|W|,Batam|riau|ID|104.02|1.15|1296|W|kota batam,Batang|central java|ID|110.71|-6.48|139|W|,Batangas|calabarzon|PH|121.06|13.76|237|W|,Batavia|IL|US|-88.31|41.85|26|N|,Bath Beach|NY|US|-74|40.6|33|N|,Bathinda|punjab|IN|74.94|30.21|285|W|,Batikent|ankara|TR|32.73|39.97|300|W|,Batman|batman|TR|41.13|37.89|452|W|,Batna|batna|DZ|6.17|35.56|289|W|batina;batna city;batnah,Baton Rouge|LA|US|-91.19|30.44|227|NW|,Battagram|khyber pakhtunkhwa|PK|73.02|34.68|700|W|battagram city,Battle Creek|MI|US|-85.18|42.32|51|N|,Batu|east java|ID|112.53|-7.87|225|W|kota batu,Batu Caves|selangor|MY|101.68|3.24|254|W|,Batu Pahat|johor|MY|102.93|1.85|156|W|,Batumi|adjara|GE|41.63|41.64|186|W|bat umi;batoemi;batoumi;batum,Baturaja|south sumatra|ID|104.17|-4.13|134|W|,Baubau|southeast sulawesi|ID|122.6|-5.46|161|W|bau bau,Bauchi|bauchi|NG|9.84|10.31|693|W|bauczi,Bauru|sao paulo|BR|-49.06|-22.31|392|W|,Bawshar|muscat|OM|58.4|23.58|383|W|,Bay City|MI|US|-83.89|43.59|33|N|kota bay,Bay Shore|NY|US|-73.25|40.73|26|N|,Bay Street Corridor|ON|CA|-79.39|43.66|25|N|,Bayamo|granma province|CU|-76.64|20.37|192|W|,Bayamon|bayamon|PR|-66.16|18.4|203|W|,Bayan Lepas|penang|MY|100.26|5.3|130|W|,Bayan Nur|inner mongolia|CN|107.39|40.74|1760|W|,Bayji|salah ad din|IQ|43.49|34.93|173|W|,Bayonne|NJ|US|-74.11|40.67|66|N|,Bayside|NY|US|-73.78|40.77|66|N|,Baytown|TX|US|-94.98|29.74|76|N|,Bayview-Hunters Point|CA|US|-122.38|37.73|34|N|,Bazhong|sichuan|CN|106.74|31.87|2712|W|,Beaumont|TX|US|-94.1|30.09|115|N|,Beaumont|CA|US|-116.98|33.93|43|N|,Beauport|QC|CA|-71.19|46.86|81|N|montmorency,Beavercreek|OH|US|-84.06|39.71|46|N|beaver creek,Beaverton|OR|US|-122.8|45.49|96|N|,Beawar|rajasthan|IN|74.32|26.1|151|W|,Bechar|bechar|DZ|-2.22|31.62|165|W|basyar;baszszar,Bedford|TX|US|-97.14|32.84|49|N|,Bedok New Town||SG|103.94|1.33|276|W|,Beed|maharashtra|IN|75.76|18.99|146|W|,Beersheba|southern district|IL|34.79|31.25|186|W|be er scheva;be er sheva;beer sheba;beer szewa;beer seva;beer sheva;beerseba;beerseva;berseba;bersyeba;beer sjeva,Begoua|ombella m poko|CF|18.53|4.45|264|W|,Begusarai|bihar|IN|86.13|25.42|252|W|,Bei'an|heilongjiang|CN|126.6|48.27|436|W|,Beibei|chongqing|CN|106.44|29.83|247|W|,Beihai|guangxi|CN|109.12|21.48|525|W|pej chaj,Beijing|beijing|CN|116.4|39.91|18960|W|pechino;pekin;peking;pequim,Beiliu|guangxi|CN|110.35|22.71|199|W|,Beining|liaoning|CN|121.79|41.6|152|W|,Beipiao|liaoning|CN|120.78|41.79|190|W|,Beira|sofala|MZ|34.84|-19.84|687|W|,Beirut|beirut|LB|35.5|33.89|1916|W|beiroet;beirute;bejrut;beyrouth;beyrut,Bejaia|bejaia|DZ|5.08|36.76|176|W|bidschaya;bijaya;bougie;bugia,Bekasi|west java|ID|106.99|-6.23|2648|W|kota bekasi,Bel Air North|MD|US|-76.37|39.55|30|N|,Bel Air South|MD|US|-76.32|39.51|47|N|,Belagavi|karnataka|IN|74.5|15.85|490|W|belgaum,Belem|para|BR|-48.5|-1.46|1499|W|,Belfast|northern ireland|GB|-5.93|54.6|348|W|belfast city,Belford Roxo|rio de janeiro|BR|-43.4|-22.76|518|W|,Belgorod|belgorod oblast|RU|36.58|50.6|345|W|bielgorod;bilhorod;bilhorod dnistrovskyi,Belgrade|central serbia|RS|20.47|44.8|1273|W|belgrad;belgrado;beograd;belehrad,Belgrano|buenos aires f d|AR|-58.46|-34.56|138|W|barrio belgrano,Bell|CA|US|-118.19|33.98|36|N|,Bell Gardens|CA|US|-118.15|33.97|43|N|,Bella Vista|nacional|DO|-69.95|18.46|175|W|,Bella Vista|AR|US|-94.27|36.48|27|N|,Belleville|ON|CA|-77.38|44.17|50|N|,Belleville|IL|US|-89.98|38.52|42|N|,Belleville|NJ|US|-74.15|40.79|36|N|,Bellevue|WA|US|-122.2|47.61|139|NW|,Bellevue|NE|US|-95.89|41.14|55|N|,Bellflower|CA|US|-118.12|33.88|78|N|,Bellingham|WA|US|-122.49|48.76|85|N|,Bello|antioquia|CO|-75.56|6.34|392|W|,Belmont|CA|US|-122.28|37.52|27|N|,Belmont Cragin|IL|US|-87.77|41.93|79|N|,Belo Horizonte|minas gerais|BR|-43.94|-19.92|2721|W|b h;belo hte;bhte,Beloit|WI|US|-89.03|42.51|36|N|,Beltline|AB|CA|-114.07|51.04|25|N|,Belvidere|IL|US|-88.84|42.26|25|N|,Ben Cat|ho chi minh city hcmc|VN|106.6|11.15|364|W|,Bend|OR|US|-121.32|44.06|87|N|,Bendale|ON|CA|-79.25|43.77|29|N|,Benfica|luanda|AO|13.16|-8.94|191|W|,Bengaluru|karnataka|IN|77.59|12.97|8495|W|bangalore,Bengbu|anhui|CN|117.36|32.94|972|W|,Benghazi|banghazi|LY|20.07|32.11|757|W|banghazi;bengasi;bengazi;bingazi,Bengkulu|bengkulu|ID|102.27|-3.8|397|W|,Benguela|benguela|AO|13.4|-12.58|555|W|,Beni|north kivu|CD|29.47|0.49|140|W|new beni;nouveau beni,Beni Mellal|beni mellal khenifra|MA|-6.35|32.34|210|W|bani mallal;beni melal,Benicia|CA|US|-122.16|38.05|28|N|,Benin City|edo state|NG|5.63|6.34|1782|W|benim;benin;benin by;benin stadt;ciudad de benin;kota benin,Benito Juarez|MX09|MX|-99.16|19.37|385|NW|,Benoni|gauteng|ZA|28.32|-26.19|605|W|,Bensalem|PA|US|-74.95|40.1|60|N|bensalem township;municipio de bensalem;xa bensalem,Bensonhurst|NY|US|-73.99|40.6|60|N|,Benton|AR|US|-92.59|34.56|34|N|,Bentonville|AR|US|-94.21|36.37|44|N|,Benxi|liaoning|CN|123.77|41.29|987|W|pen si,Berazategui|buenos aires|AR|-58.21|-34.77|180|W|,Berbera|woqooyi galbeed|SO|45.01|10.44|242|W|,Bercham|perak|MY|101.14|4.64|150|W|,Berezniki|perm krai|RU|56.82|59.41|167|W|beresniki;bieriezniki,Bergen|vestland|NO|5.32|60.39|294|W|,Bergenfield|NJ|US|-74|40.93|27|N|,Berkeley|CA|US|-122.27|37.87|120|N|,Berlin|state of berlin|DE|13.41|52.52|3426|W|berliini;berlijn;berlim;berlino,Berrechid|casablanca settat|MA|-7.59|33.27|149|W|,Berriozabal|MX05|MX|-93.27|16.8|28|N|,Bertoua|east|CM|13.68|4.58|137|W|,Berwyn|IL|US|-87.79|41.85|56|N|,Bessemer|AL|US|-86.95|33.4|26|N|,Bethel Park|PA|US|-80.04|40.33|32|N|,Bethesda|MD|US|-77.1|38.98|60|N|,Bethlehem|PA|US|-75.37|40.63|74|N|,Betim|minas gerais|BR|-44.2|-19.97|384|W|,Bettendorf|IA|US|-90.52|41.52|35|N|,Bettiah|bihar|IN|84.5|26.8|132|W|,Beverly|MA|US|-70.88|42.56|41|N|,Beverly Cove|MA|US|-70.85|42.55|40|N|,Beverly Hills|CA|US|-118.4|34.07|34|N|,Bexley|england|GB|0.15|51.44|228|W|london borough of bexley,Beylikduezue|istanbul|TR|28.64|40.98|415|W|beylikduzu,Bhadravati|karnataka|IN|75.71|13.85|163|W|,Bhagalpur|bihar|IN|86.97|25.24|400|W|,Bhakkar|punjab|PK|71.06|31.63|131|W|,Bhalswa Jahangirpur|delhi|IN|77.17|28.74|197|W|,Bharatpur|bagmati province|NP|84.44|27.68|369|W|,Bharatpur|rajasthan|IN|77.49|27.22|252|W|,Bharuch|gujarat|IN|72.98|21.69|169|W|,Bhatara|dhaka division|BD|90.45|23.8|324|W|,Bhatpara|west bengal|IN|88.4|22.87|483|W|,Bhavnagar|gujarat|IN|72.15|21.76|605|W|,Bhawana|punjab|PK|72.65|31.57|373|W|bhanawa,Bhayandar|maharashtra|IN|72.85|19.3|809|W|,Bhetia|jharkhand|IN|86.14|22.79|174|W|,Bhilai|chhattisgarh|IN|81.43|21.21|627|W|bhilai nagar;bhilaj nagar,Bhilwara|rajasthan|IN|74.64|25.35|359|W|,Bhimavaram|andhra pradesh|IN|81.52|16.54|146|W|,Bhind|madhya pradesh|IN|78.79|26.57|197|W|,Bhisho|eastern cape|ZA|27.44|-32.85|137|W|bisho,Bhiwandi|maharashtra|IN|73.06|19.3|874|W|,Bhiwani|haryana|IN|76.14|28.79|196|W|,Bhopal|madhya pradesh|IN|77.4|23.25|1798|W|,Bhubaneswar|odisha|IN|85.83|20.27|885|W|bhubaneshwar,Bhuj|gujarat|IN|69.67|23.25|148|W|,Bhusawal|maharashtra|IN|75.79|21.04|187|W|,Bialystok|podlasie|PL|23.16|53.13|295|W|,Bibirevo|moscow|RU|37.6|55.88|159|W|,Bida|niger state|NG|6.01|9.08|400|W|,Bidar|karnataka|IN|77.52|17.91|216|W|,Bielany|mazovia|PL|20.94|52.29|131|W|,Bielefeld|north rhine westphalia|DE|8.53|52.03|331|W|,Bielsko-Biala|silesia|PL|19.05|49.82|176|W|bielitz biala;bilsko bela,Bien Hoa|dong nai|VN|106.82|10.94|1272|W|bienhoa,Big Spring|TX|US|-101.48|32.25|28|N|,Bihar Sharif|bihar|IN|85.52|25.2|297|W|,Bijie|guizhou|CN|105.29|27.3|1137|W|pi tie;prefecture de bijie,Bikaner|rajasthan|IN|73.31|28.02|644|W|,Bila Tserkva|kyiv oblast|UA|30.12|49.8|207|W|belaya tserkov;biala cerkiew;bila cerkva;bila zerkwa;bila terkva,Bilaspur|chhattisgarh|IN|82.16|22.08|365|W|,Bilbao|basque country|ES|-2.93|43.26|347|W|bilbau;el bocho,Bilbeis|sharqia|EG|31.56|30.42|185|W|bilbajs;bilbays;bilbeys,Bilimora|gujarat|IN|72.96|20.77|510|W|,Billerica|MA|US|-71.27|42.56|39|N|,Billings|MT|US|-108.5|45.78|117|N|,Biloxi|MS|US|-88.89|30.4|45|N|,Bilqas|dakahlia|EG|31.36|31.21|137|W|,Bima|west nusa tenggara|ID|118.73|-8.46|165|W|,Bimbo|ombella m poko|CF|18.42|4.26|348|W|,Binan|calabarzon|PH|121.08|14.34|300|W|binan city;kota binan,Binangonan|calabarzon|PH|121.19|14.46|219|W|,Binghamton|NY|US|-75.92|42.1|46|N|,Binh Thanh|ho chi minh city hcmc|VN|106.71|10.81|552|W|,Binjai|north sumatra|ID|98.49|3.6|279|W|kota binjai,Bintulu|sarawak|MY|113.03|3.17|151|W|,Binzhou|shandong|CN|118.02|37.37|682|W|pin cou;tan chau,Biratnagar|koshi|NP|87.27|26.46|244|W|,Birendranagar|karnali pradesh|NP|81.62|28.6|154|W|birendra nagar;birendranagara,Birganj|madhesh|NP|84.88|27.02|268|W|birgunj,Birjand|south khorasan province|IR|59.22|32.87|196|W|birdschand,Birkenhead|england|GB|-3.01|53.39|325|W|,Birmingham|england|GB|-1.9|52.48|1157|W|,Birmingham|AL|US|-86.8|33.52|196|NW|,Biryulevo|moscow|RU|37.68|55.59|144|W|,Bishan|chongqing|CN|106.22|29.59|204|W|,Bishkek|bishkek|KG|74.59|42.87|900|W|bichkek;bischkek;bisjkek;biskek;bisqueque;biszkek,Bishoftu|oromiya|ET|38.98|8.75|207|W|,Biskra|biskra|DZ|5.73|34.85|204|W|biskira,Bismarck|ND|US|-100.78|46.81|75|N|bismarck i nord dakota,Bissau|bissau|GW|-15.6|11.86|439|W|bisau,Bitung|north sulawesi|ID|125.13|1.44|225|W|kota bitung,Biysk|altai krai|RU|85.2|52.53|215|W|biejsk;bijsk,Bizerte|bizerte governorate|TN|9.87|37.27|138|W|biserta;bizert;bizerta,Blackburn|england|GB|-2.48|53.75|146|W|,Blackpool|england|GB|-3.05|53.82|145|W|,Blacksburg|VA|US|-80.41|37.23|44|N|,Blagoveshchensk|amur oblast|RU|127.53|50.28|225|W|blagovesjtsjensk;blagovechtchensk;blagoveschensk;blagovesjtjensk;blagovescensk;blagovestsensk;blagoweschtschensk;blagowieszczensk,Blaine|MN|US|-93.23|45.16|62|N|,Blainville|QC|CA|-73.88|45.67|46|N|,Blantyre|southern region|MW|35.01|-15.78|902|W|,Blida|blida|DZ|2.83|36.47|331|W|al bulajda;buleyde,Blitar|east java|ID|112.17|-8.1|161|W|kota blitar,Bloemfontein|free state|ZA|26.21|-29.12|556|W|,Bloomfield|NJ|US|-74.19|40.81|49|N|,Bloomington|MN|US|-93.3|44.84|86|N|,Bloomington|IN|US|-86.53|39.17|84|N|,Bloomington|IL|US|-88.99|40.48|78|N|,Blue Springs|MO|US|-94.28|39.02|54|N|,Blumenau|santa catarina|BR|-49.07|-26.92|361|W|,Bnei Brak|tel aviv|IL|34.83|32.08|214|W|benai beraq;bene berak;bene beraq;benei beraq;beney beraq;bnei berak;bnej brak;bney brak;bne beraq,Bo|southern province|SL|-11.74|7.96|233|W|,Boa Vista|roraima|BR|-60.67|2.82|419|W|,Boardman|OH|US|-80.66|41.02|35|N|,Bobo-Dioulasso|hauts bassins|BF|-4.29|11.18|904|W|,Bobruysk|mogilev|BY|29.21|53.15|205|W|babroejsk;babruisk;babrujsk;babruysk;bobruisk;bobrujsk,Boca Raton|FL|US|-80.08|26.36|93|N|boca de ratones;wta boca raton,Bochum|north rhine westphalia|DE|7.22|51.48|385|W|,Bocoio|benguela|AO|14.14|-12.47|164|W|,Bogor|west java|ID|106.79|-6.59|1078|W|kota bogor,Bogota|bogota d c|CO|-74.08|4.61|7674|W|santafe de bogota,Bogra|rajshahi division|BD|89.37|24.85|210|W|,Bohuniya|zhytomyr oblast|UA|28.61|50.28|147|W|bohunia;bohuniia;bohunskyi;bohunskyi rayon,Boisbriand|QC|CA|-73.83|45.62|26|N|,Boise|ID|US|-116.2|43.61|235|NW|,Bojnurd|north khorasan|IR|57.33|37.47|192|W|bojnourd,Bokaro|jharkhand|IN|86.15|23.67|564|W|bokaro steel city,Boksburg|gauteng|ZA|28.26|-26.21|445|W|,Bole|xinjiang|CN|82.07|44.89|235|W|,Bolingbrook|IL|US|-88.07|41.7|74|N|,Bologna|emilia romagna|IT|11.34|44.49|394|W|bologne;bolonha;bolonia;bolonya,Bolton|england|GB|-2.43|53.58|141|W|,Bolton|ON|CA|-79.74|43.88|26|N|,Bolu|bolu|TR|31.61|40.74|184|W|,Boma|bas congo|CD|13.05|-5.85|297|W|,Bondoukou|zanzan district|CI|-2.8|8.04|141|W|,Bonita Springs|FL|US|-81.78|26.34|51|N|,Bonn|north rhine westphalia|DE|7.1|50.73|330|W|bona,Bontang|east kalimantan|ID|117.49|0.13|194|W|kota bontang,Borama|awdal|SO|43.18|9.94|597|W|boorama,Bordeaux|new aquitaine|FR|-0.58|44.84|265|W|bordeus;burdeos,Bordj Bou Arreridj|bordj bou arreridj|DZ|4.76|36.07|158|W|burdz bu urajridz,Borivli|maharashtra|IN|72.86|19.23|609|W|borivali,Borough Park|NY|US|-74|40.63|149|NW|,Borshchahivka|kyiv city|UA|30.39|50.43|179|W|,Borujerd|lorestan province|IR|48.75|33.9|251|W|,Boshan|shandong|CN|117.83|36.48|153|W|,Bossier City|LA|US|-93.73|32.52|68|N|,Boston|MA|US|-71.06|42.36|653|NW|,Botad|gujarat|IN|71.67|22.17|130|W|,Bothell|WA|US|-122.21|47.76|42|N|,Botshabelo|free state|ZA|26.73|-29.27|309|W|,Botucatu|sao paulo|BR|-48.45|-22.89|145|W|,Bouake|vallee du bandama district|CI|-5.03|7.69|832|W|,Boucherville|QC|CA|-73.44|45.59|39|N|,Boulder|CO|US|-105.27|40.01|106|N|,Bountiful|UT|US|-111.88|40.89|43|N|,Bournemouth|england|GB|-1.88|50.72|163|W|,Bowie|MD|US|-76.73|38.94|58|N|bowie station;huntington city;huntington station,Bowling Green|KY|US|-86.44|36.99|63|N|,Bowling Green|OH|US|-83.65|41.37|31|N|,Bowmanville|ON|CA|-78.68|43.92|39|N|,Boyeros|havana|CU|-82.4|23.01|188|W|,Boyle Heights|CA|US|-118.21|34.03|92|N|,Boynton Beach|FL|US|-80.07|26.53|73|N|,Bozeman|MT|US|-111.04|45.68|43|N|,Bozhou|anhui|CN|115.77|33.88|1409|W|po cou,Bradenton|FL|US|-82.57|27.5|54|N|,Bradford|england|GB|-1.75|53.79|366|W|,Braga|braga|PT|-8.42|41.55|193|W|,Braganca|para|BR|-46.77|-1.05|132|W|,Braganca Paulista|sao paulo|BR|-46.54|-22.95|176|W|,Brahmanbaria|chittagong|BD|91.11|23.97|264|W|,Brahmapur|odisha|IN|84.79|19.31|356|W|,Braila|braila county|RO|27.97|45.27|154|W|berail;ibrail;brillago;drinago,Braintree|MA|US|-71|42.2|37|N|,Brakpan|gauteng|ZA|28.37|-26.24|305|W|,Brampton|ON|CA|-79.77|43.68|656|NW|,Brandon|FL|US|-82.29|27.94|103|N|,Brandon|MB|CA|-99.95|49.85|48|N|,Branford|CT|US|-72.82|41.28|29|N|,Brant|ON|CA|-80.35|43.13|34|N|,Brantford|ON|CA|-80.27|43.13|104|N|,Brasilandia|sao paulo|BR|-46.69|-23.45|243|W|,Brasilia|federal district|BR|-47.93|-15.78|2207|W|,Brasov|brasov county|RO|25.61|45.65|253|W|kronstadt;braszow,Bratislava|bratislava region|SK|17.11|48.15|423|W|bratyslawa;presbourg;pressburg,Bratsk|irkutsk oblast|RU|101.61|56.13|256|W|brack,Braunschweig|lower saxony|DE|10.53|52.27|244|W|brunswick;brunszwik,Brawley|CA|US|-115.53|32.98|25|N|,Brazzaville|brazzaville|CG|15.28|-4.27|1982|W|brazavil,Brea|CA|US|-117.9|33.92|41|N|,Breda|north brabant|NL|4.78|51.59|184|W|,Bremen|bremen|DE|8.81|53.08|546|W|brema;bremy;breme,Bremerton|WA|US|-122.63|47.57|39|N|,Brent|england|GB|-0.3|51.55|329|W|london borough of brent,Brentwood|NY|US|-73.25|40.78|60|N|,Brentwood|CA|US|-121.7|37.93|58|N|,Brentwood|TN|US|-86.78|36.03|41|N|,Brentwood Estates|TN|US|-86.78|36.03|31|N|,Brescia|lombardy|IT|10.21|45.54|200|W|,Brest|brest|BY|23.72|52.11|347|W|brest nad bugem;brest litovsk;brzesc;brest litowsk,Brest|brittany|FR|-4.49|48.39|144|W|,Briarwood|NY|US|-73.82|40.71|53|N|,Brick|NJ|US|-74.14|40.06|76|N|,Bridgeport|CT|US|-73.19|41.18|147|NW|,Bridgeport|IL|US|-87.65|41.84|33|N|,Bridgeton|NJ|US|-75.23|39.43|25|N|,Bridgewater|NJ|US|-74.65|40.6|44|N|,Brighouse-City Centre|BC|CA|-123.13|49.17|62|N|brighouse;richmond brighouse,Brighton|england|GB|-0.14|50.83|283|W|,Brighton|MA|US|-71.16|42.35|45|N|,Brighton|CO|US|-104.82|39.99|37|N|,Brighton|NY|US|-77.55|43.15|36|N|,Brighton Beach|NY|US|-73.96|40.58|31|N|,Brighton Park|IL|US|-87.7|41.82|44|N|,Brisbane|queensland|AU|153.03|-27.47|2780|W|brisbane city,Bristol|england|GB|-2.6|51.46|479|W|,Bristol|CT|US|-72.95|41.67|60|N|,Bristol|TN|US|-82.19|36.6|26|N|,Brno|south moravian|CZ|16.61|49.2|379|W|brunn,Brockton|MA|US|-71.02|42.08|95|N|,Broken Arrow|OK|US|-95.79|36.05|106|N|,Brookfield|WI|US|-88.11|43.06|38|N|,Brookhaven|GA|US|-84.34|33.86|51|N|north atlanta,Brooklin|ON|CA|-78.96|43.96|25|N|,Brookline|MA|US|-71.12|42.33|58|N|,Brooklyn|NY|US|-73.95|40.65|2736|NW|borough of brooklyn,Brooklyn Center|MN|US|-93.33|45.08|30|N|,Brooklyn Park|MN|US|-93.36|45.09|79|N|,Broomfield|CO|US|-105.09|39.92|65|N|,Brossard|QC|CA|-73.47|45.45|69|N|,Brownsville|TX|US|-97.5|25.9|186|NW|,Brownsville|NY|US|-73.92|40.66|74|N|,Brunswick|OH|US|-81.84|41.24|34|N|,Brusque|santa catarina|BR|-48.91|-27.1|155|W|,Brussels|brussels capital|BE|4.35|50.85|1019|W|brussel;bruxelles;bruksela;brusel;bruselas;bruxelas;bryssel;bruksel;citta di bruxelles;city of brussels;kota brusel,Bryan|TX|US|-96.37|30.67|82|N|,Bryansk|bryansk oblast|RU|34.32|53.27|427|W|brjansk;breansk;briansk;brianski,Bucaramanga|santander department|CO|-73.12|7.12|581|W|,Bucharest|bucharest|RO|26.11|44.43|1877|W|boekarest;bucarest;bucareste;bucuresti;bukarest;bukareszt;bukurest;bukres,Bucheon-si|gyeonggi do|KR|126.78|37.5|850|W|bucheon,Buckeye|AZ|US|-112.58|33.37|50|N|,Buda|budapest|HU|19.03|47.5|510|W|altofen;boeda;budin;ofen,Budapest|budapest|HU|19.04|47.5|1741|W|boedapest;budapesta;budapeste;budapeszt;ofen pest,Budapest XI. keruelet|budapest|HU|19.04|47.48|139|W|budapest xi kerulet;ujbuda,Budaun|uttar pradesh|IN|79.13|28.04|161|W|badaun,Budta|autonomous region in muslim mindanao|PH|124.44|7.2|1273|W|,Buea|south west|CM|9.24|4.15|140|W|,Buena Park|CA|US|-118|33.87|83|N|,Buenaventura|valle del cauca department|CO|-77|3.58|432|W|,Buenaventura Lakes|FL|US|-81.35|28.34|26|N|,Buenavista|MX15|MX|-99.17|19.61|216|NW|,Bueng Kum|bangkok|TH|100.67|13.79|145|W|ban bueng kum;ban cum,Buenos Aires|buenos aires f d|AR|-58.38|-34.61|2891|W|santa maria del buen ayre,Bueyuekcekmece|istanbul|TR|28.59|41.02|163|W|buyukcekmece,Buffalo|NY|US|-78.88|42.89|258|NW|bufalo,Buffalo Grove|IL|US|-87.96|42.15|41|N|,Buguma|rivers state|NG|6.86|4.74|135|W|,Bujumbura|bujumbura mairie|BI|29.36|-3.38|769|W|buyumbura;buzumbura,Bukan|west azerbaijan|IR|46.21|36.52|193|W|,Bukavu|south kivu|CD|28.84|-2.49|816|W|costermansstad;costermansville,Bukhara|bukhara|UZ|64.43|39.77|280|W|boukhara;bucara;buchara;buhara;bujara,Bukit Batok New Town||SG|103.76|1.36|158|W|,Bukit Jalil|kuala lumpur|MY|101.68|3.05|200|W|,Bukit Merah Estate||SG|103.82|1.28|151|W|,Bukit Mertajam|penang|MY|100.47|5.36|212|W|bukit mertarajam,Bukit Panjang New Town||SG|103.76|1.38|138|W|,Bukit Rahman Putra|selangor|MY|101.56|3.22|607|W|,Bukoba|kagera|TZ|31.81|-1.33|144|W|,Bulandshahr|uttar pradesh|IN|77.86|28.4|198|W|bulendsehr,Bulaon|central luzon|PH|120.66|15.08|131|W|,Bulawayo|bulawayo|ZW|28.58|-20.15|665|W|,Bullhead City|AZ|US|-114.57|35.15|39|N|,Bumba|mongala|CD|22.47|2.19|154|W|,Bunamwaya|central region|UG|32.56|0.25|413|W|,Bunda|mara|TZ|33.87|-2.02|182|W|,Bunia|ituri|CD|30.25|1.56|399|W|,Bunkyo|kanagawa|JP|139.42|35.53|240|W|bunkyo city,Buon Ma Thuot|dak lak|VN|108.04|12.67|434|W|,Burari|delhi|IN|77.2|28.76|146|W|,Buraydah|al qassim region|SA|43.97|26.33|745|W|buraidah;burajda;burayda,Burbank|CA|US|-118.31|34.18|105|N|,Burbank|IL|US|-87.78|41.73|29|N|,Burewala|punjab|PK|72.65|30.17|361|W|,Burgas|burgas|BG|27.47|42.51|210|W|boergas;bourgas;burgaz,Burgos|castille and leon|ES|-3.7|42.34|176|W|,Burhanpur|madhya pradesh|IN|76.23|21.31|210|W|,Burien|WA|US|-122.35|47.47|50|N|,Burke|VA|US|-77.27|38.79|41|N|,Burleson|TX|US|-97.32|32.54|43|N|,Burlingame|CA|US|-122.37|37.58|30|N|,Burlington|ON|CA|-79.84|43.39|186|NW|,Burlington|NC|US|-79.44|36.1|52|N|,Burlington|VT|US|-73.21|44.48|42|N|,Burlington|IA|US|-91.11|40.81|25|N|,Burnaby|BC|CA|-122.95|49.27|249|NW|,Burnley|england|GB|-2.23|53.8|149|W|,Burnsville|MN|US|-93.28|44.77|61|N|,Bursa|bursa province|TR|29.06|40.2|3101|W|,Burton|MI|US|-83.62|43|28|N|,Busan|busan|KR|129.03|35.1|3285|W|busan si;pusan,Bush|beni suweif|EG|31.13|29.15|136|W|,Bushehr|bushehr|IR|50.84|28.97|165|W|bandar bushehr;buschehr;bushire;busehr,Bushwick|NY|US|-73.92|40.69|112|N|,Business Bay|dubai|AE|55.27|25.19|191|W|,Bustleton|PA|US|-75.03|40.08|32|N|,Butembo|north kivu|CD|29.29|0.14|286|W|,Butte|MT|US|-112.53|46|34|N|,Butuan|caraga|PH|125.54|8.95|309|W|butuan city;city of butuan;kota butuan,Butwal|lumbini province|NP|83.45|27.69|195|W|,Bydgoszcz|kujawsko pomorskie|PL|18.01|53.12|330|W|bromberg;bydhost,Bytom|silesia|PL|18.93|50.35|189|W|beuthen,Ca Mau|ca mau|VN|105.15|9.18|226|W|,Caala|huambo|AO|15.56|-12.85|130|W|,Cabanatuan City|central luzon|PH|120.97|15.49|343|W|cabanatuan,Cabimas|zulia|VE|-71.45|10.4|351|W|,Cabinda|cabinda|AO|12.19|-5.56|550|W|,Cabo de Santo Agostinho|pernambuco|BR|-35.03|-8.29|216|W|,Cabo Frio|rio de janeiro|BR|-42.03|-22.89|238|W|,Cabo San Lucas|MX03|MX|-109.91|22.89|202|NW|,Cabot|AR|US|-92.02|34.97|25|N|,Cabuyao|calabarzon|PH|121.13|14.27|308|W|cabuyao city,Cachoeirinha|sao paulo|BR|-46.66|-23.45|143|W|,Cachoeirinha|rio grande do sul|BR|-51.09|-29.95|141|W|,Cachoeiro de Itapemirim|espirito santo|BR|-41.11|-20.85|198|W|,Cacuaco|luanda|AO|13.37|-8.78|146|W|,Cadereyta|MX19|MX|-99.98|25.58|67|N|,Cadereyta Jimenez|MX19|MX|-100|25.59|68|N|,Cagayan de Oro|northern mindanao|PH|124.65|8.48|741|W|,Cagliari|sardinia|IT|9.12|39.23|149|W|casteddu,Cai Lay|dong thap|VN|106.12|10.4|143|W|,Cainta|calabarzon|PH|121.12|14.58|283|W|,Cairns|queensland|AU|145.77|-16.92|153|W|,Cairo|cairo|EG|31.25|30.06|9606|W|el cairo;kairo;le caire;il cairo;kahire;kair;kahira,Cajamarca|cajamarca department|PE|-78.5|-7.16|201|W|,Calabar|cross river state|NG|8.33|4.96|540|W|,Calabozo|guarico|VE|-67.43|8.92|168|W|,Calama|antofagasta|CL|-68.92|-22.46|166|W|,Calamba|calabarzon|PH|121.17|14.21|575|W|calamba city;kota calamba,Caldwell|ID|US|-116.69|43.66|51|N|,Caledon|ON|CA|-79.99|43.87|76|N|,Calexico|CA|US|-115.5|32.68|40|N|,Calgary|AB|CA|-114.09|51.05|1306|NW|,Cali|valle del cauca department|CO|-76.52|3.43|2392|W|santiago de cali,Callao|callao|PE|-77.13|-12.05|1226|W|el callao,Caloocan|national capital region|PH|120.97|14.65|1712|W|caloocan city;lungsod ng caloocan,Calpulalpan|MX29|MX|-98.57|19.59|33|N|,Calumbo|bengo|AO|13.42|-9.15|652|W|,Calumet City|IL|US|-87.53|41.62|37|N|calumet,Cam Pha|quang ninh|VN|107.27|21.01|190|W|,Cam Pha Mines|quang ninh|VN|107.3|21.02|135|W|,Cam Ranh|khanh hoa|VN|109.16|11.92|146|W|,Camacari|bahia|BR|-38.32|-12.7|321|W|,Camagueey|camaguey|CU|-77.92|21.38|347|W|camaguey,Camama|luanda|AO|13.27|-8.94|667|W|,Camaragibe|pernambuco|BR|-34.98|-8.02|160|W|,Camarillo|CA|US|-119.04|34.22|67|N|,Camayenne|conakry|GN|-13.69|9.54|1871|W|,Cambridge|england|GB|0.12|52.2|145|W|,Cambridge|ON|CA|-80.31|43.36|129|N|,Cambridge|MA|US|-71.11|42.38|110|N|,Camden|NJ|US|-75.12|39.93|76|N|,Cameta|para|BR|-49.5|-2.24|134|W|,Campbell|CA|US|-121.95|37.29|41|N|,Campbell River|BC|CA|-125.24|50.02|33|N|,Campeche|MX04|MX|-90.52|19.84|220|NW|san francisco de campeche,Campina Grande|paraiba|BR|-35.88|-7.23|443|W|,Campinas|sao paulo|BR|-47.06|-22.91|1031|W|campinas e regiao;regiao de campinas,Campo Grande|mato grosso do sul|BR|-54.65|-20.44|906|W|,Campo Largo|parana|BR|-49.53|-25.46|144|W|,Campo Limpo|sao paulo|BR|-46.77|-23.64|236|W|,Campos dos Goytacazes|rio de janeiro|BR|-41.33|-21.75|483|W|,Can Giuoc|tay ninh|VN|106.67|10.61|152|W|,Can Tho|can tho city|VN|105.79|10.04|1507|W|,Canakkale|canakkale|TR|26.41|40.16|143|W|,Cananea|MX26|MX|-110.3|30.98|31|N|heroica ciudad de cananea,Canarsie|NY|US|-73.9|40.64|87|N|,Canberra|australian capital territory|AU|149.13|-35.28|367|W|camberra;kanberra,Cancun|MX23|MX|-86.85|21.17|888|NW|ciudad cancun,Candelaria|calabarzon|PH|121.42|13.93|137|W|,Cangaiba|sao paulo|BR|-46.52|-23.5|141|W|,Cangzhou|hebei|CN|116.85|38.31|527|W|cchang cou;thuong chau,Cankaya|ankara|TR|32.86|39.92|792|W|,Canoas|rio grande do sul|BR|-51.18|-29.92|328|W|,Canoga Park|CA|US|-118.6|34.2|60|N|,Canton|MI|US|-83.48|42.31|86|N|,Canton|OH|US|-81.38|40.8|71|N|,Canton|GA|US|-84.49|34.24|25|N|,Cantonment|FL|US|-87.34|30.61|26|N|,Canyon Country|CA|US|-118.47|34.42|59|N|,Cao Lanh|dong thap|VN|105.63|10.46|211|W|,Cap-Haitien|nord|HT|-72.2|19.76|134|W|cabo haitiano,Capao Redondo|sao paulo|BR|-46.78|-23.67|270|W|,Capas|central luzon|PH|120.59|15.33|162|W|,Cape Coast|central|GH|-1.25|5.11|212|W|,Cape Coral|FL|US|-81.95|26.56|175|NW|cabo coral,Cape Girardeau|MO|US|-89.52|37.31|39|N|cap girardeau,Cape Town|western cape|ZA|18.42|-33.93|4772|W|citta del capo;cidade do cabo;ciudad del cabo;el cabo;kaapstad;kapkaupunki;kapske mesto;kapstaden;kapstadt;kapsztad;le cap,Capiata|central department|PY|-57.45|-25.36|198|W|,Carabanchel|madrid|ES|-3.72|40.39|253|W|,Caracas|distrito federal|VE|-66.88|10.49|3000|W|karakas,Carapicuiba|sao paulo|BR|-46.84|-23.52|386|W|,Carbondale|IL|US|-89.22|37.73|26|N|,Cardenas|MX27|MX|-93.38|18|91|N|,Cardiff|wales|GB|-3.18|51.48|372|W|,Cariacica|espirito santo|BR|-40.42|-20.26|376|W|,Carletonville|gauteng|ZA|27.4|-26.36|182|W|,Carlsbad|CA|US|-117.35|33.16|114|N|,Carlsbad|NM|US|-104.23|32.42|28|N|,Carmel|IN|US|-86.12|39.98|88|N|,Carmichael|CA|US|-121.33|38.62|61|N|,Carney|MD|US|-76.52|39.39|29|N|,Carol City|FL|US|-80.25|25.94|63|N|,Carol Stream|IL|US|-88.13|41.91|40|N|,Carolina|carolina|PR|-65.96|18.38|170|W|caroline,Carpentersville|IL|US|-88.26|42.12|38|N|,Carrefour|ouest|HT|-72.4|18.53|511|W|,Carrollton|TX|US|-96.89|32.95|133|NW|,Carrollton|GA|US|-85.08|33.58|26|N|,Carrollwood|FL|US|-82.49|28.05|33|N|,Carrollwood Village|FL|US|-82.52|28.07|40|N|,Carson|CA|US|-118.28|33.83|93|N|,Carson City|NV|US|-119.77|39.16|58|N|kota carson,Cartagena|bolivar|CO|-75.49|10.4|914|W|carthagene;cartagena de indias;cartagena das indias;carthagene des indes,Cartagena|murcia|ES|-0.98|37.6|213|W|carthagene;kartagena,Cartago|valle del cauca department|CO|-75.91|4.75|134|W|,Cartierville|QC|CA|-73.7|45.53|34|N|,Caruaru|pernambuco|BR|-35.98|-8.28|402|W|,Carupano|sucre|VE|-63.25|10.67|167|W|,Cary|NC|US|-78.78|35.79|159|NW|,Casa Grande|AZ|US|-111.76|32.88|51|N|,Casablanca|casablanca settat|MA|-7.61|33.59|3665|W|dar ul beyda;kazablanka;white house,Casas Adobes|AZ|US|-111|32.32|66|N|,Cascavel|parana|BR|-53.46|-24.96|368|W|ular derik,Casper|WY|US|-106.31|42.87|60|N|,Casselberry|FL|US|-81.33|28.68|27|N|,Castanhal|para|BR|-47.93|-1.29|192|W|,Castello de la Plana|valencia|ES|-0.05|39.99|171|W|castellon;castellon de la plana,Castle Rock|CO|US|-104.86|39.37|55|N|,Castlewood|CO|US|-104.9|39.58|25|N|,Castro Valley|CA|US|-122.09|37.69|61|N|,Catacamas|olancho department|HN|-85.89|14.85|140|W|,Catalina Foothills|AZ|US|-110.92|32.3|50|N|,Catamarca|catamarca|AR|-65.79|-28.47|159|W|,Catania|sicily|IT|15.07|37.49|311|W|catane;katania,Catemaco|MX30|MX|-95.11|18.42|27|N|,Cathedral City|CA|US|-116.47|33.78|53|N|,Catonsville|MD|US|-76.73|39.27|41|N|,Cau Giay|hanoi|VN|105.8|21.03|292|W|,Caucaia|ceara|BR|-38.65|-3.74|378|W|,Caxias|maranhao|BR|-43.36|-4.86|163|W|,Caxias do Sul|rio grande do sul|BR|-51.18|-29.17|479|W|,Cazenga|luanda|AO|13.28|-8.84|394|W|,Cebu City|central visayas|PH|123.89|10.32|965|W|cebu;ciudad de cebu;cebu sehri;cidade de cebu;city of cebu;kota cebu,Cedar City|UT|US|-113.06|37.68|30|N|,Cedar Falls|IA|US|-92.45|42.53|41|N|,Cedar Hill|TX|US|-96.96|32.59|48|N|,Cedar Park|TX|US|-97.82|30.51|65|N|,Cedar Rapids|IA|US|-91.64|42.01|130|NW|,Ceilandia|federal district|BR|-48.13|-15.81|287|W|,Celaya|MX11|MX|-100.81|20.52|340|NW|,Celina|TX|US|-96.78|33.32|64|N|,Centennial|CO|US|-104.88|39.58|109|N|,Center City|PA|US|-75.16|39.95|57|N|centro de filadelfia,Centereach|NY|US|-73.1|40.86|31|N|,Central|LA|US|-91.04|30.55|28|N|,Central 14th Street / Spring Road|DC|US|-77.03|38.94|25|N|,Central City|AZ|US|-112.06|33.44|58|N|,Central Coast|new south wales|AU|151.37|-33.43|346|W|costa central,Central Islip|NY|US|-73.2|40.79|34|N|,Centralniy|st petersburg|RU|30.36|59.93|214|W|,Centre City|AB|CA|-114.07|51.05|41|N|,Centretown|ON|CA|-75.7|45.42|25|N|,Centreville|VA|US|-77.43|38.84|71|N|,Centro Familiar la Soledad|MX11|MX|-101.75|21.14|32|N|,Centro Habana|havana|CU|-82.37|23.13|158|W|,Centurion|gauteng|ZA|28.19|-25.86|236|W|,Ceres|CA|US|-120.96|37.59|47|N|,Cergy-Pontoise|ile de france|FR|2.08|49.04|183|W|,Cerritos|CA|US|-118.06|33.86|49|N|,Cerro|havana|CU|-82.38|23.11|132|W|,Ch'ongdan-up|south hwanghae|KP|125.94|37.97|142|W|,Chak Jhumra|punjab|PK|73.18|31.57|385|W|,Chakwama|jigawa state|NG|9.66|11.56|200|W|,Chalco|MX15|MX|-98.9|19.26|168|NW|,Chaman|balochistan|PK|66.45|30.92|130|W|caman,Chamartin|madrid|ES|-3.68|40.46|140|W|,Chamberi|madrid|ES|-3.7|40.43|145|W|,Chamblee|GA|US|-84.3|33.89|28|N|,Champaign|IL|US|-88.24|40.12|86|N|,Champoton|MX04|MX|-90.72|19.34|30|N|,Chanda|maharashtra|IN|79.3|19.95|328|W|chandrapur;candrapur,Chandannagar|west bengal|IN|88.37|22.86|180|W|chandernagor;chandernagore;candarnagar,Chandigarh|chandigarh|IN|76.79|30.74|970|W|czandigarh;candigarh,Chandler|AZ|US|-111.84|33.31|260|NW|,Chandpur|chittagong|BD|90.65|23.23|203|W|,Chang-hua|taiwan|TW|120.56|24.07|226|W|,Changam-ch'on|south hamgyong|KP|128.78|40.61|207|W|,Changchun|jilin|CN|125.32|43.88|4714|W|tschangtung;cangcun;cchang cchun,Changde|hunan|CN|111.7|29.03|1457|W|cchang te;changteh,Changhua|taiwan|TW|120.55|24.07|226|W|,Changji|xinjiang|CN|87.3|44.01|198|W|,Changle|shandong|CN|118.83|36.71|259|W|,Changning|shanghai|CN|121.42|31.22|694|W|,Changsha|hunan|CN|112.97|28.2|3093|W|cchang sa,Changsha|guangdong|CN|112.68|22.38|688|W|,Changshu|jiangsu|CN|120.74|31.65|1677|W|,Changwon|gyeongsangnam do|KR|128.68|35.23|1025|W|ch angwon;cchangwon,Changyi|shandong|CN|119.39|36.85|302|W|,Changyuan|chongqing|CN|105.59|29.4|186|W|,Changzheng|shanghai|CN|121.37|31.24|229|W|,Changzhi|shanxi|CN|113.11|36.18|1214|W|cchang c,Changzhou|jiangsu|CN|119.95|31.77|3290|W|cchang cou,Chanhassen|MN|US|-93.53|44.86|25|N|,Channelview|TX|US|-95.11|29.78|38|N|,Chaohu|anhui|CN|117.87|31.6|138|W|,Chaoyang|liaoning|CN|120.46|41.57|410|W|,Chaozhou|guangdong|CN|116.62|23.65|1750|W|cchao cou,Chapeco|santa catarina|BR|-52.62|-27.1|282|W|,Chapel Hill|NC|US|-79.06|35.91|59|N|,Chapra|bihar|IN|84.75|25.78|202|W|,Charleroi|wallonia|BE|4.44|50.41|200|W|,Charlesbourg|QC|CA|-71.31|46.9|82|N|,Charleston|SC|US|-79.93|32.78|132|NW|,Charleston|WV|US|-81.63|38.35|46|N|,Charlotte|NC|US|-80.84|35.23|911|NW|,Charlottesville|VA|US|-78.48|38.03|46|N|,Charlottetown|PE|CA|-63.13|46.23|38|N|,Chas|jharkhand|IN|86.17|23.64|141|W|,Chaska|MN|US|-93.6|44.79|25|N|,Chateauguay|QC|CA|-73.75|45.38|42|N|,Chatham|ON|CA|-82.18|42.41|43|N|,Chatham|IL|US|-87.61|41.74|31|N|,Chatsworth|CA|US|-118.6|34.26|41|N|,Chattanooga|TN|US|-85.31|35.05|181|NW|,Chattogram|chittagong|BD|91.83|22.34|3920|W|chittagong;cottogram;cattagram,Chatuchak|bangkok|TH|100.56|13.83|160|W|,Cheboksary|chuvash republic|RU|47.25|56.13|492|W|ceboksari;czeboksary;tcheboksary;tjeboksary;tscheboksary;tsjeboksary;tseboksary;ceboksary;supaskar,Cheektowaga|NY|US|-78.75|42.9|75|N|,Chelmsford|MA|US|-71.37|42.6|33|N|,Chelsea|MA|US|-71.03|42.39|39|N|,Chelyabinsk|chelyabinsk|RU|61.43|55.16|1202|W|tsjeljabinsk;celeabinsk;celiabinsc;cheliabinsk;czelabinsk;tcheliabinsk;tjeljabinsk;tscheljabinsk;tseljabinsk;celyabinsk;celjabinsk,Chemnitz|saxony|DE|12.93|50.84|247|W|saska kamenice,Chengde|hebei|CN|117.96|40.95|449|W|ccheng te,Chengdu|sichuan|CN|104.07|30.67|13568|W|thanh do;cengdu;ccheng tu,Chengguan Qu|tibet|CN|91.04|29.64|478|W|,Chenghua|guangdong|CN|116.77|23.46|152|W|,Chengzhong|hubei|CN|113.55|30.94|265|W|,Chennai|tamil nadu|IN|80.28|13.09|4681|W|cennaj;cennai;madras,Chenzhou|hunan|CN|113.03|25.8|822|W|,Cheonan|chungcheongnam do|KR|127.15|36.81|658|W|cchonan,Cheongju-si|north chungcheong|KR|127.49|36.64|852|W|cheongju,Cheras|selangor|MY|101.73|3.11|135|W|,Cherepovets|vologda oblast|RU|37.9|59.13|315|W|cerepovet;czerepowiec;tcherepovets;tjerepovets;tscherepowez;tsjerepovets;tserepovets;cerepovets;cerepovec,Cherkasy|cherkasy|UA|32.06|49.44|269|W|cerkasi;czerkasy;tcherkassy;tcherkassi;tjerkasy;tscherkassy;tsjerkasy;tserkasy;cerkassi;cerkasy;cherkassy,Chernihiv|chernihiv oblast|UA|31.29|51.51|282|W|cernigau;chernigov;czernihow;tchernihiv;tjernihiv;tschernihiw;tsjernihiv;tsernihiv;cernigiv;cernihiv;cernihov;cernigovia,Chernivtsi|chernivtsi|UA|25.93|48.29|264|W|cernivci;cernovizza;cernauti;czerniowce;czernowitz;tchernivtsi;tjernivtsi;tschernowitz;tsjernivtsi;tsernivtsi;cernivtsi;cernovice,Cherry Hill|NJ|US|-75.03|39.93|70|N|,Chertanovo Yuzhnoye|moscow|RU|37.6|55.59|142|W|,Chesapeake|VA|US|-76.27|36.82|235|NW|,Cheshire|CT|US|-72.9|41.5|29|N|,Chester|PA|US|-75.36|39.85|34|N|,Chesterfield|MO|US|-90.58|38.66|47|N|,Chestermere|AB|CA|-113.82|51.03|32|N|,Chetumal|MX23|MX|-88.3|18.52|169|NW|,Cheyenne|WY|US|-104.82|41.14|65|N|,Chhatarpur|madhya pradesh|IN|79.59|24.92|142|W|chhattarpur,Chhindwara|madhya pradesh|IN|78.94|22.06|175|W|,Chi Linh|hai phong|VN|106.32|21.07|220|W|,Chiapa de Corzo|MX05|MX|-93.01|16.71|45|N|,Chiayi City|taiwan|TW|120.45|23.48|263|W|jiayi shi,Chiba|chiba|JP|140.12|35.6|979|W|ciba,Chicago|IL|US|-87.65|41.85|2664|NW|sikago,Chicago Heights|IL|US|-87.64|41.51|30|N|,Chicago Lawn|IL|US|-87.7|41.78|55|N|,Chicago Loop|IL|US|-87.63|41.88|33|N|loop,Chichicastenango|quiche|GT|-91.11|14.94|141|W|,Chiclayo|lambayeque|PE|-79.85|-6.77|609|W|,Chico|CA|US|-121.84|39.73|121|N|,Chicoloapan|MX15|MX|-98.9|19.42|172|NW|san vicente chicoloapan,Chicopee|MA|US|-72.61|42.15|56|N|,Chicoutimi|QC|CA|-71.06|48.42|69|N|,Chifeng|inner mongolia|CN|118.96|42.27|346|W|tschifong;xich phong;cch feng,Chigasaki|kanagawa|JP|139.4|35.34|242|W|,Chihuahua|MX06|MX|-106.09|28.64|925|NW|chihuahua city;chihuahua by,Chilanzar|tashkent|UZ|69.18|41.28|260|W|,Chilapa de Alvarez|MX12|MX|-99.17|17.6|31|N|,Chillan|nuble|CL|-72.1|-36.61|150|W|,Chilliwack|BC|CA|-121.95|49.17|101|N|,Chilliwack-Downtown|BC|CA|-121.96|49.16|31|N|,Chillum|MD|US|-76.99|38.96|33|N|,Chilpancingo|MX12|MX|-99.5|17.55|187|NW|chilpancingo de los bravo,Chimbote|ancash|PE|-78.59|-9.08|316|W|,Chimoio|manica|MZ|33.48|-19.12|422|W|,Chinatown|CA|US|-122.41|37.8|100|N|,Chinatown|NY|US|-74|40.72|90|N|,Chincha Alta|ica|PE|-76.13|-13.41|153|W|,Chingola|copperbelt|ZM|27.88|-12.53|256|W|,Chiniot|punjab|PK|72.98|31.72|318|W|,Chinju|gyeongsangnam do|KR|128.08|35.19|307|W|jinju,Chino|CA|US|-117.69|34.01|85|N|,Chino Hills|CA|US|-117.76|33.99|78|N|,Chipata|eastern province|ZM|32.65|-13.63|327|W|,Chirchiq|tashkent region|UZ|69.58|41.47|162|W|circik;tchirtchik;tjirtjik;circig,Chishtian|punjab|PK|72.86|29.8|149|W|,Chisinau|chisinau municipality|MD|28.86|47.01|635|W|kishinev;kiszyniow;kisinev,Chita|zabaykalskiy transbaikal kray|RU|113.49|52.04|349|W|tsjita;tchita;tschita;tsita;cita,Chitato|luanda norte|AO|20.73|-7.3|246|W|,Chitradurga|karnataka|IN|76.4|14.22|145|W|,Chittoor|andhra pradesh|IN|79.1|13.21|160|W|chittur,Chitungwiza|harare|ZW|31.08|-18.01|371|W|,Chizhou|anhui|CN|117.48|30.66|615|W|,Chlef|chlef|DZ|1.33|36.17|178|W|ech cheliff;szalif;asch schalif;ash shalif;al asnam,Cho Lon|ho chi minh city hcmc|VN|106.65|10.75|561|W|,Choa Chu Kang New Town||SG|103.75|1.38|187|W|,Chofu|tokyo|JP|139.55|35.66|242|W|,Choloma|cortes department|HN|-87.95|15.61|139|W|,Cholula|MX21|MX|-98.3|19.06|292|NW|cholula de rivadavia;san pedro cholula,Chom Thong|bangkok|TH|100.48|13.68|158|W|,Chomedey|QC|CA|-73.75|45.53|94|N|,Chon Buri|chon buri|TH|100.98|13.36|219|W|,Chongjin|north hamgyong|KP|129.78|41.8|327|W|ch ongjin;cchongdzin,Chongming||CN|121.7|31.62|637|W|,Chongqing|chongqing|CN|106.56|29.56|7457|W|trung khanh;tsjoengking;congcing;cchung cching,Chongzuo|guangxi|CN|107.37|22.38|384|W|,Christchurch|canterbury|NZ|172.63|-43.53|419|W|,Chula Vista|CA|US|-117.08|32.64|265|NW|,Chuncheon|gangwon do|KR|127.73|37.87|284|W|cunceon;cchuncchon,Chungju|north chungcheong|KR|127.93|36.98|209|W|cungcu;cchungdzu,Chunian|punjab|PK|73.98|30.97|634|W|,Chuo|tokyo|JP|139.78|35.67|169|W|chuo city,Church-Yonge Corridor|ON|CA|-79.38|43.66|31|N|,Chuxiong|yunnan|CN|101.55|25.04|555|W|,Chuzhou|anhui|CN|118.3|32.32|782|W|cchu cou,Ciampea|west java|ID|106.7|-6.55|207|W|,Cianjur|west java|ID|107.14|-6.82|174|W|kabupaten de cianjur,Cibinong|west java|ID|106.85|-6.48|363|W|,Cibolo|TX|US|-98.23|29.56|33|N|,Cicero|IL|US|-87.75|41.85|83|N|,Cicero|NY|US|-76.12|43.18|31|N|,Cidade Ademar|sao paulo|BR|-46.66|-23.67|249|W|,Cidade Dutra|sao paulo|BR|-46.7|-23.73|182|W|,Cidade Lider|sao paulo|BR|-46.49|-23.56|136|W|,Cidade Tiradentes|sao paulo|BR|-46.4|-23.58|192|W|,Ciego de Avila|ciego de avila province|CU|-78.76|21.84|142|W|,Cienfuegos|cienfuegos province|CU|-80.45|22.15|186|W|,Cigli|izmir province|TR|27.07|38.5|214|W|,Cihuatlan|MX14|MX|-104.57|19.24|40|N|,Cikupa|west java|ID|106.51|-6.24|174|W|,Cilacap|central java|ID|109.01|-7.73|256|W|,Cilegon|banten|ID|106.05|-6.01|470|W|,Cileungsir|west java|ID|106.96|-6.39|289|W|,Cimahi|west java|ID|107.54|-6.87|581|W|kota cimahi,Cincinnati|OH|US|-84.51|39.13|311|NW|,Cintalapa de Figueroa|MX05|MX|-93.72|16.68|42|N|,Ciputat|west java|ID|106.7|-6.24|207|W|,Circoiscrizione II|piedmont|IT|7.64|45.05|141|W|,Circoiscrizione III|piedmont|IT|7.63|45.06|130|W|,Circoiscrizione VIII|piedmont|IT|7.67|45.04|134|W|,Cirebon|west java|ID|108.56|-6.71|344|W|kota cirebon,Citeureup|west java|ID|106.88|-6.49|214|W|,Citrus Heights|CA|US|-121.28|38.71|87|N|,City of Milford (balance)|CT|US|-73.06|41.22|51|N|,City of Sammamish|WA|US|-122.04|47.6|45|N|,City of Westminster|england|GB|-0.14|51.5|247|W|,Ciudad Acuna|MX07|MX|-100.95|29.32|216|NW|acuna,Ciudad Altamirano|MX12|MX|-100.67|18.36|25|N|,Ciudad Apodaca|MX19|MX|-100.19|25.78|467|NW|apodaca,Ciudad Benito Juarez|MX19|MX|-100.09|25.65|308|NW|,Ciudad Bolivar|bolivar|VE|-63.55|8.12|412|W|,Ciudad Camilo Cienfuegos|havana|CU|-82.33|23.16|178|W|,Ciudad Constitucion|MX03|MX|-111.66|25.03|40|N|,Ciudad de Allende|MX19|MX|-100.02|25.28|26|N|allende,Ciudad de Huajuapan de Leon|MX20|MX|-97.78|17.81|53|N|huajuapan;huajuapan de leon;huajuapam;huajuapam de leon,Ciudad de Villa de Alvarez|MX08|MX|-103.74|19.27|117|N|,Ciudad del Carmen|MX04|MX|-91.83|18.65|191|NW|cd carmen;cd del carmen;carmen,Ciudad del Este|alto parana department|PY|-54.65|-25.5|301|W|kota del este,Ciudad Delicias|MX06|MX|-105.47|28.19|148|NW|akitakata;delicias,Ciudad Fernandez|MX24|MX|-100.01|21.94|32|N|,Ciudad General Escobedo|MX19|MX|-100.32|25.8|454|NW|gral escobedo;general escobedo,Ciudad Guayana|bolivar|VE|-62.64|8.35|978|W|cidade guaiana;guayana,Ciudad Guzman|MX14|MX|-103.46|19.7|111|N|cd guzman,Ciudad Hidalgo|MX16|MX|-100.56|19.69|60|N|,Ciudad Juarez|MX06|MX|-106.46|31.72|1512|NW|juarez,Ciudad Lazaro Cardenas|MX16|MX|-102.2|17.96|196|NW|lazaro cardenas,Ciudad Lineal|madrid|ES|-3.65|40.45|228|W|,Ciudad Lopez Mateos|MX15|MX|-99.26|19.56|489|NW|adolfo lopez mateos,Ciudad Madero|MX28|MX|-97.84|22.25|197|NW|cd madero,Ciudad Mante|MX28|MX|-98.97|22.74|84|N|,Ciudad Melchor Muzquiz|MX07|MX|-101.52|27.88|35|N|,Ciudad Mendoza|MX30|MX|-97.18|18.81|35|N|,Ciudad Nezahualcoyotl|MX15|MX|-99.01|19.4|1077|NW|cd neza;cd nezahualcoyotl;ciudad neza;neza;nezahualcoyotl,Ciudad Obregon|MX26|MX|-109.94|27.49|329|NW|cd obregon,Ciudad Ojeda|zulia|VE|-71.31|10.2|240|W|,Ciudad Rio Bravo|MX28|MX|-98.09|25.99|95|N|,Ciudad Sabinas Hidalgo|MX19|MX|-100.18|26.5|33|N|,Ciudad Sahagun|MX13|MX|-98.57|19.78|28|N|,Ciudad Valles|MX24|MX|-99.01|22|124|N|,Ciudad Victoria|MX28|MX|-99.14|23.74|332|NW|cd victoria;victoria,Cixi|zhejiang|CN|121.25|30.18|1457|W|,Cizre|sirnak|TR|42.18|37.33|134|W|,Clairlea-Birchmount|ON|CA|-79.28|43.71|26|N|,Claremont|CA|US|-117.72|34.1|36|N|,Clarksville|TN|US|-87.36|36.53|166|NW|,Clay|NY|US|-76.17|43.19|58|N|,Clearfield|UT|US|-112.03|41.11|30|N|,Clearwater|FL|US|-82.8|27.97|117|N|,Cleburne|TX|US|-97.39|32.35|30|N|,Clermont|FL|US|-81.77|28.55|32|N|,Clermont-Ferrand|rhone alpes|FR|3.09|45.78|147|W|,Cleveland|OH|US|-81.7|41.5|365|NW|,Cleveland|TN|US|-84.88|35.16|43|N|,Cleveland Heights|OH|US|-81.56|41.52|44|N|,Clifton|NJ|US|-74.16|40.86|86|N|,Clifton Park|NY|US|-73.77|42.87|36|N|,Clinton|MD|US|-76.9|38.77|35|N|robeystown;surrats;surratsville;surratts;surrattsville,Clinton|IA|US|-90.19|41.84|26|N|,Clinton|MS|US|-90.32|32.34|25|N|,Clinton Township|MI|US|-82.92|42.59|99|N|,Cloverdale|BC|CA|-122.73|49.11|73|N|,Clovis|CA|US|-119.7|36.83|104|N|,Clovis|NM|US|-103.21|34.4|39|N|,Cluj-Napoca|cluj county|RO|23.6|46.77|286|W|klausenburg;clausenburg;kalosvar;kluz napoka;kluz;kolozsvar;clausemburgo,Coacalco|MX15|MX|-99.11|19.63|277|NW|coacalco de berriozaval;san francisco coacalco,Coachella|CA|US|-116.17|33.68|44|N|,Coatepec|MX30|MX|-96.96|19.45|53|N|,Coatzacoalcos|MX30|MX|-94.44|18.15|310|NW|puerto mexico;port of mexico,Coatzintla|MX30|MX|-97.47|20.49|34|N|,Coban|alta verapaz|GT|-90.37|15.47|212|W|,Cobbs Creek|PA|US|-75.24|39.95|33|N|,Cochabamba|cochabamba|BO|-66.16|-17.38|841|W|,Cochrane|AB|CA|-114.47|51.18|32|N|,Coconut Creek|FL|US|-80.18|26.25|59|N|,Cocula|MX14|MX|-103.82|20.37|29|N|,Coeur d'Alene|ID|US|-116.78|47.68|49|N|,Coimbatore|tamil nadu|IN|76.97|11.01|2136|W|koimbatur,Coimbra|coimbra|PT|-8.42|40.21|140|W|,Colchester|england|GB|0.9|51.89|130|W|,Colima|MX08|MX|-103.71|19.24|146|NW|,Colina|santiago metropolitan|CL|-70.67|-33.2|146|W|,College Park|MD|US|-76.94|38.98|32|N|,College Point|NY|US|-73.85|40.79|27|N|,College Station|TX|US|-96.33|30.63|107|N|,Colleyville|TX|US|-97.16|32.88|25|N|,Collierville|TN|US|-89.66|35.04|48|N|,Collinwood|OH|US|-81.57|41.56|34|N|,Colombo|western province|LK|79.85|6.94|648|W|kolombo,Colombo|parana|BR|-49.22|-25.29|232|W|,Colonia del Sol|MX03|MX|-109.93|22.91|48|N|,Colonia del Valle|MX09|MX|-99.16|19.39|250|NW|col del valle;del valle,Colonia Lindavista|MX15|MX|-99.12|19.49|100|N|col lindavista;lindavista,Colonia Nativitas|MX09|MX|-99.14|19.38|60|N|col nativitas;nativitas,Colorado Springs|CO|US|-104.82|38.83|456|NW|colorado spgs,Colton|CA|US|-117.31|34.07|54|N|,Columbia|SC|US|-81.03|34|142|NW|,Columbia|MO|US|-92.33|38.95|129|N|,Columbia|MD|US|-76.84|39.24|99|N|,Columbia|TN|US|-87.04|35.62|36|N|,Columbia Heights|DC|US|-77.03|38.93|38|N|meridian hill;meridian hill heights,Columbus|OH|US|-83|39.96|913|NW|,Columbus|GA|US|-84.99|32.46|206|NW|,Columbus|IN|US|-85.92|39.2|46|N|,Comalcalco|MX27|MX|-93.22|18.26|41|N|,Comilla|chittagong|BD|91.19|23.46|634|W|kumilla,Comitan|MX05|MX|-92.14|16.24|166|NW|comitan de dominguez,Commack|NY|US|-73.29|40.84|36|N|,Commerce City|CO|US|-104.93|39.81|53|N|,Commonwealth|national capital region|PH|121.08|14.7|215|W|,Comodoro Rivadavia|chubut|AR|-67.49|-45.86|140|W|,Compton|CA|US|-118.22|33.9|98|N|,Conakry|conakry|GN|-13.68|9.54|1928|W|conacri;konakry,Concepcion|biobio|CL|-73.05|-36.83|223|W|konsepsi,Concepcion|central luzon|PH|120.66|15.33|178|W|,Conception Bay South|NL|CA|-53|47.5|27|N|,Concord|CA|US|-122.03|37.98|128|N|,Concord|NC|US|-80.58|35.41|87|N|,Concord|NH|US|-71.54|43.21|43|N|,Concordia|entre rios|AR|-58.02|-31.39|145|W|,Coney Island|NY|US|-73.99|40.58|60|N|coney adasi,Confederation|SK|CA|-106.7|52.14|70|N|,Conroe|TX|US|-95.46|30.31|68|N|,Conselheiro Lafaiete|minas gerais|BR|-43.79|-20.66|138|W|,Constanta|constanta county|RO|28.63|44.18|317|W|konstanza;constanza;constanca;costanza;konstanca;kostence;kustence,Constantine|constantine|DZ|6.61|36.37|448|W|constantina,Contagem|minas gerais|BR|-44.05|-19.93|627|W|,Contla|MX29|MX|-98.17|19.33|27|N|,Conway|AR|US|-92.44|35.09|64|N|,Cookeville|TN|US|-85.5|36.16|32|N|,Coon Rapids|MN|US|-93.29|45.12|62|N|,Cooper City|FL|US|-80.27|26.06|35|N|,Copenhagen|capital region|DK|12.57|55.68|1153|W|copenaghen;copenhaga;copenhague;kodan;kopenhag;kopenhaga;kopenhagen;kopenhamn;koopenhamina;kobenhavn,Coppell|TX|US|-97.02|32.95|41|N|,Copperas Cove|TX|US|-97.9|31.12|33|N|,Coquimbo|coquimbo region|CL|-71.34|-29.95|161|W|,Coquitlam|BC|CA|-122.78|49.28|148|NW|,Coquitlam West|BC|CA|-122.88|49.26|25|N|,Coral Gables|FL|US|-80.27|25.72|51|N|,Coral Springs|FL|US|-80.27|26.27|129|N|,Coram|NY|US|-73|40.87|39|N|,Cordoba|cordoba|AR|-64.19|-31.41|2106|W|ciudad de cordoba;cordova,Cordoba|andalusia|ES|-4.77|37.89|325|W|cordoue;cordova;kordoba,Cordoba|MX30|MX|-96.93|18.88|204|NW|,Cordova|TN|US|-89.78|35.16|68|N|,Core Neighbourhoods|SK|CA|-106.67|52.13|36|N|,Cork|munster|IE|-8.47|51.9|224|W|cork city,Corlu|tekirdag|TR|27.8|41.16|202|W|,Cornelius|NC|US|-80.86|35.49|28|N|,Cornwall|ON|CA|-74.73|45.02|48|N|,Coro|falcon|VE|-69.68|11.41|246|W|,Corona|CA|US|-117.57|33.88|164|NW|,Corona|NY|US|-73.86|40.75|109|N|,Corpus Christi|TX|US|-97.4|27.8|316|NW|,Corrientes|corrientes|AR|-58.83|-27.47|346|W|ciudad de corrientes,Cortazar|MX11|MX|-100.96|20.48|61|N|,Corum|corum|TR|34.95|40.55|269|W|,Corvallis|OR|US|-123.26|44.56|55|N|,Cosamaloapan|MX30|MX|-95.8|18.37|30|N|,Costa Mesa|CA|US|-117.92|33.64|113|N|,Cotabato|autonomous region in muslim mindanao|PH|124.25|7.22|383|W|cotabato city,Cote-Saint-Luc|QC|CA|-73.67|45.47|31|N|,Cotia|sao paulo|BR|-46.92|-23.6|253|W|,Cotonou|littoral|BJ|2.42|6.37|679|W|cotonu;kotonu,Cottage Grove|MN|US|-92.94|44.83|35|N|,Cottonwood Heights|UT|US|-111.81|40.62|34|N|,Council Bluffs|IA|US|-95.86|41.26|62|N|co bluffs,Country Club|FL|US|-80.32|25.95|47|N|,Courtenay|BC|CA|-124.99|49.69|28|N|,Coventry|england|GB|-1.51|52.41|345|W|,Coventry|RI|US|-71.68|41.7|35|N|,Covina|CA|US|-117.89|34.09|48|N|,Covington|KY|US|-84.51|39.08|40|N|,Cox's Bazar|chittagong|BD|92.01|21.44|253|W|,Coyoacan|MX09|MX|-99.16|19.35|614|NW|,Coyotepec|MX15|MX|-99.21|19.78|35|N|,Coyula|MX14|MX|-103.23|20.66|29|N|,Cozumel|MX23|MX|-86.94|20.5|77|N|san miguel de cozumel,Craiova|dolj|RO|23.8|44.32|234|W|krajowa,Cranberry Township|PA|US|-80.11|40.68|28|N|,Cranston|RI|US|-71.44|41.78|81|N|,Crato|ceara|BR|-39.41|-7.23|139|W|,Criciuma|santa catarina|BR|-49.37|-28.68|227|W|,Crofton|MD|US|-76.69|39|27|N|,Croix-des-Bouquets|ouest|HT|-72.23|18.58|229|W|,Crown Point|IN|US|-87.37|41.42|28|N|,Croydon|england|GB|-0.1|51.38|173|W|croydon grants,Crystal Lake|IL|US|-88.32|42.24|40|N|,Cua|miranda|VE|-66.88|10.16|182|W|,Cuauhtemoc|MX09|MX|-99.15|19.45|531|NW|,Cuauhtemoc|MX06|MX|-106.87|28.41|168|NW|,Cuautitlan|MX15|MX|-99.18|19.67|178|NW|,Cuautitlan Izcalli|MX15|MX|-99.22|19.64|555|NW|izcalli,Cuautla|MX17|MX|-98.94|18.81|157|NW|,Cuautlancingo|MX21|MX|-98.27|19.09|25|N|san juan b cuautlancingo,Cucuta|norte de santander department|CO|-72.5|7.91|777|W|kukuta,Cuddalore|tamil nadu|IN|79.77|11.76|173|W|gondelour,Cuenca|azuay|EC|-79|-2.9|636|W|,Cuernavaca|MX17|MX|-99.23|18.93|338|NW|,Cuiaba|mato grosso|BR|-56.1|-15.6|618|W|culaba,Cuito|bie|AO|16.93|-12.38|355|W|kuito,Culiacan|MX25|MX|-107.39|24.8|808|NW|,Culver City|CA|US|-118.4|34.02|39|N|,Cumana|sucre|VE|-64.18|10.46|405|W|,Cumberland|RI|US|-71.43|41.97|34|N|,Cupertino|CA|US|-122.03|37.32|60|N|,Curitiba|parana|BR|-49.27|-25.43|1948|W|kurytyba,Curug|banten|ID|106.56|-6.27|191|W|,Cusco|cuzco department|PE|-71.97|-13.53|428|W|ciudad del cuzco;cuzco,Cutler Bay|FL|US|-80.34|25.58|45|N|cutler ridge,Cutler Ridge|FL|US|-80.35|25.58|26|N|,Cuttack|odisha|IN|85.88|20.46|610|W|,Cuyahoga Falls|OH|US|-81.48|41.13|49|N|,Cypress|TX|US|-95.7|29.97|200|NW|,Cypress|CA|US|-118.04|33.82|49|N|,Cypress Hills|NY|US|-73.89|40.68|54|N|,Czestochowa|silesia|PL|19.12|50.8|248|W|czenstochau;censtochova;tschenstochau,Da Lat|lam dong|VN|108.44|11.95|258|W|,Da Nang|da nang city|VN|108.22|16.07|1276|W|danang;thanh thai phien,Dabou|lagunes district|CI|-4.38|5.33|138|W|,Dachang|shanghai|CN|121.42|31.31|371|W|,Dadu|sindh|PK|67.78|26.73|201|W|,Daegu|daegu|KR|128.59|35.87|2365|W|daegu si;taegu;tegu,Daejeon|daejeon|KR|127.38|36.35|1441|W|daejeon si;taejon,Dagupan|ilocos|PH|120.33|16.04|171|W|kota dagupan,Dajal|punjab|PK|70.38|29.56|200|W|,Dakar|dakar|SN|-17.44|14.69|2646|W|dacar,Dakota Ridge|CO|US|-105.14|39.62|33|N|,Dale City|VA|US|-77.31|38.64|65|N|,Dali|yunnan|CN|100.21|25.58|235|W|,Dalian|liaoning|CN|121.6|38.91|4913|W|luta;luda,Daliang|guangdong|CN|113.25|22.84|210|W|shunde,Dallas|TX|US|-96.81|32.78|1326|NW|,Daloa|sassandra marahoue|CI|-6.45|6.88|421|W|,Dalton|GA|US|-84.97|34.77|33|N|,Dalupura|delhi|IN|77.32|28.61|154|W|,Daly City|CA|US|-122.46|37.71|106|N|,Damanhur|beheira|EG|30.47|31.03|318|W|,Damascus|damascus governorate|SY|36.29|33.51|1569|W|damasco;damas;damasc;damaskos;damaskus;damaszek;damasek;sam,Damietta|damietta|EG|31.81|31.42|305|W|damieta;damiette;dimyat;dimyath,Dammam|eastern province|SA|50.1|26.43|1252|W|ad dammam;ed dammam,Damoh|madhya pradesh|IN|79.44|23.83|139|W|,Dana Point|CA|US|-117.7|33.47|34|N|,Danbury|CT|US|-73.45|41.39|84|N|,Dandong|liaoning|CN|124.39|40.13|631|W|dan dong;andong,Dania Beach|FL|US|-80.14|26.05|31|N|,Danli|el paraiso department|HN|-86.58|14.03|233|W|,Danshui|taipei|TW|121.44|25.17|189|W|tamsui,Danvers|MA|US|-70.93|42.58|26|N|,Danville|CA|US|-122|37.82|44|N|,Danville|VA|US|-79.4|36.59|42|N|,Danville|IL|US|-87.63|40.12|32|N|,Daqing|heilongjiang|CN|125|46.58|1604|W|ta cching;taching,Dar Bouazza|casablanca settat|MA|-7.82|33.52|165|W|,Dar es Salaam|dar es salaam region|TZ|39.27|-6.82|5383|W|dar es salam;daressalam;darusselam,Darbhanga|bihar|IN|85.9|26.15|296|W|,Darmstadt|hesse|DE|8.65|49.87|167|W|,Darnytsya|kyiv city|UA|30.7|50.42|343|W|darnytsia;darnytskyi raion;darnytskyi rayon;darnytskyy raion;darnytskyy rayon,Dartmouth|NS|CA|-63.58|44.67|101|N|darmouth,Darwin|northern territory|AU|130.84|-12.46|139|W|port darwin,Dasmarinas|calabarzon|PH|120.94|14.33|441|W|kota dasmarinas,Dasoguz|dasoguz|TM|59.97|41.84|201|W|dashoguz;daszoguz;dashowuz;tasjauz,Datong|shanxi|CN|113.29|40.09|1850|W|ta tchung,Daule|guayas|EC|-79.98|-1.86|173|W|,Davangere|karnataka|IN|75.93|14.47|435|W|,Davao|davao region|PH|125.61|7.07|1848|W|davao city,Davenport|IA|US|-90.58|41.52|102|N|,Davie|FL|US|-80.23|26.06|100|N|,Davis|CA|US|-121.74|38.54|67|N|,Dawei|tanintharyi region|MM|98.19|14.08|136|W|tavoy,Dawukou|ningxia|CN|106.4|39.04|131|W|,Daxing'anling|heilongjiang|CN|124.71|52.33|520|W|,Daye|hubei|CN|114.95|30.08|347|W|,Dayrah|dubai|AE|55.3|25.27|400|W|deira,Dayton|OH|US|-84.19|39.76|135|NW|,Daytona Beach|FL|US|-81.02|29.21|72|N|daytona,Dazhou|sichuan|CN|107.46|31.21|1589|W|ta cou,Dearborn|MI|US|-83.18|42.32|95|N|,Dearborn Heights|MI|US|-83.27|42.34|56|N|,Debre Birhan|amhara|ET|39.53|9.68|146|W|debre berhan;debre byrhan,Debre Mark'os|amhara|ET|37.73|10.35|140|W|,Debrecen|hajdu bihar|HU|21.62|47.53|202|W|debreczyn;debrecin;debretin,Decatur|IL|US|-88.95|39.84|73|N|,Decatur|AL|US|-86.98|34.61|55|N|,Deer Park|TX|US|-95.12|29.71|33|N|,Deer Park|NY|US|-73.33|40.76|27|N|,Deer Valley|AZ|US|-112.13|33.68|165|NW|,Deerfield Beach|FL|US|-80.1|26.32|79|N|,Dehiwala-Mount Lavinia|western province|LK|79.87|6.84|219|W|mount lavinia,Dehradun|uttarakhand|IN|78.03|30.32|522|W|dehra dun,Deir ez-Zor|deir ez zor|SY|40.14|35.34|271|W|dayr az zawr;dajr az zaur;dayr al zawr;deir azzor;deir al zour;deir el zor;deir es sor;der ezzor;deyrez zor;deyrizor,DeKalb|IL|US|-88.75|41.93|43|N|,Del Rio|TX|US|-100.9|29.36|36|N|,DeLand|FL|US|-81.3|29.03|30|N|de land,Delano|CA|US|-119.25|35.77|52|N|,Delaware|OH|US|-83.07|40.3|37|N|,Delegacion Cuajimalpa de Morelos|MX09|MX|-99.29|19.37|160|NW|cuajimalpa de morelos,Delhi|delhi|IN|77.23|28.65|11034|W|dilli;deli;sahdzahanabad,Delmas|ouest|HT|-72.3|18.54|395|W|,Delray Beach|FL|US|-80.07|26.46|66|N|del ray beach,Delta|BC|CA|-123.05|49.09|101|N|,Deltona|FL|US|-81.26|28.9|88|N|,Dengzhou|henan|CN|112.09|32.68|285|W|,Denizli|denizli|TR|29.09|37.77|313|W|,Denpasar|bali|ID|115.22|-8.65|670|W|dempasar;dempassar;denpasar bali;kota denpasar,Denton|TX|US|-97.13|33.21|131|NW|,Denver|CO|US|-104.98|39.74|729|NW|,Deoghar|jharkhand|IN|86.7|24.49|203|W|,Deoli|delhi|IN|77.23|28.5|169|W|,Depok|west java|ID|106.82|-6.4|2163|W|kota depok,Dera Ghazi Khan|punjab|PK|70.64|30.05|494|W|,Dera Ismail Khan|khyber pakhtunkhwa|PK|70.9|31.83|763|W|,Derby|england|GB|-1.48|52.92|270|W|,Derry Village|NH|US|-71.31|42.89|34|N|,Des Moines|IA|US|-93.61|41.6|214|NW|,Des Moines|WA|US|-122.32|47.4|31|N|desmoines,Des Plaines|IL|US|-87.88|42.03|58|N|,Desert Hot Springs|CA|US|-116.5|33.96|28|N|,Desmarchais-Crawford|QC|CA|-73.58|45.45|29|N|,Desna|kyiv city|UA|30.68|50.52|368|W|,Desnyanskyi|chernihiv oblast|UA|31.32|51.51|179|W|desnianskyi;desnianskyi raion;desnyanskyi rayon,DeSoto|TX|US|-96.86|32.59|52|N|,Dessalines|artibonite|HT|-72.52|19.26|181|W|,Dessie|amhara|ET|39.63|11.13|270|W|dese;desje,Detroit|MI|US|-83.05|42.33|645|NW|,Dewas|madhya pradesh|IN|76.06|22.97|289|W|,Deyang|sichuan|CN|104.38|31.13|735|W|te jang,Dezful|khuzestan|IR|48.41|32.38|264|W|dezfoul,Dezhou|shandong|CN|116.37|37.45|679|W|te cou,Dhaka|dhaka division|BD|90.41|23.71|10356|W|daca;dacca;dakka,Dhamar|dhamar|YE|44.41|14.54|160|W|damar,Dhanbad|jharkhand|IN|86.43|23.8|1196|W|,Dhangadhi|sudurpashchim pradesh|NP|80.59|28.7|204|W|,Dharan|koshi|NP|87.28|26.81|173|W|,Dharavi|maharashtra|IN|72.87|19.05|700|W|,Dhaulpur|rajasthan|IN|77.88|26.69|133|W|,Dhirkot|azad kashmir|PK|73.58|34.04|195|W|,Dhule|maharashtra|IN|74.78|20.9|375|W|,Di An|ho chi minh city hcmc|VN|106.77|10.91|463|W|,Diadema|sao paulo|BR|-46.62|-23.69|403|W|,Diamond Bar|CA|US|-117.81|34.03|56|N|,Dibrugarh|assam|IN|94.91|27.48|145|W|,Dieppe|NB|CA|-64.69|46.08|27|N|,Diepsloot|gauteng|ZA|28.01|-25.93|350|W|,Diez de Octubre|havana|CU|-82.36|23.09|227|W|,Digri|sindh|PK|69.11|25.16|234|W|,Dihok|duhok|IQ|42.99|36.87|340|W|dahuk;dohuk;duhok,Dijon|bourgogne|FR|5.01|47.31|159|W|digione,Dila|south ethiopia regional state|ET|38.32|6.42|158|W|,Dili|dili municipality|TL|125.57|-8.56|150|W|,Dimapur|nagaland|IN|93.72|25.91|135|W|,Dimitrovgrad|ulyanovsk|RU|49.62|54.21|132|W|dimitrowgrad,Din Daeng|bangkok|TH|100.57|13.79|130|W|,Dinajpur|rangpur division|BD|88.64|25.63|206|W|,Dinapore|bihar|IN|85.05|25.64|152|W|,Dinapur Nizamat|bihar|IN|85.05|25.64|182|W|,Dindigul|tamil nadu|IN|77.98|10.37|292|W|dindukkal,Dingxi|gansu|CN|104.62|35.57|420|W|,Dingzhou|hebei|CN|114.99|38.51|152|W|,Diourbel|diourbel region|SN|-16.24|14.65|157|W|,Dire Dawa|dire dawa|ET|41.87|9.59|343|W|dire daua,Disuq|kafr el sheikh|EG|30.65|31.13|149|W|,Divinopolis|minas gerais|BR|-44.89|-20.14|231|W|,Divo|goh djiboua|CI|-5.36|5.84|136|W|,Dix Hills|NY|US|-73.34|40.8|26|N|,Dixinn|conakry|GN|-13.67|9.55|137|W|,Diyarbakir|diyarbakir province|TR|40.22|37.91|1833|W|amida,Djelfa|djelfa|DZ|3.26|34.67|265|W|dzilfa,Djibouti|djibouti|DJ|43.15|11.59|626|W|cibuti;dschibuti;dzibuti;gibuti;yibuti,Dnipro|dnipropetrovsk|UA|35.04|48.47|968|W|dniepr;dnjepropetrovsk;dnepropetrovsk;caterinoslavia;catherinoslav;dnipropetrovs k;dnipropetrovsk;dniproslav;katerynoslav;novorosiynsk;novyy kodak;sicheslav,Dniprovskyi|kyiv city|UA|30.6|50.45|357|W|,Dodge City|KS|US|-100.02|37.75|27|N|,Dodoma|dodoma|TZ|35.74|-6.17|765|W|,Doha|baladiyat ad dawhah|QA|51.53|25.29|344|W|ad dauha;dauha,Doilungdeqen|tibet|CN|90.99|29.66|137|W|,Dollard-Des Ormeaux|QC|CA|-73.82|45.49|48|N|,Dolores Hidalgo|MX11|MX|-100.93|21.16|67|N|ciudad de dolores hidalgo,Dombivali|maharashtra|IN|73.08|19.22|1247|W|dombivli,Don Valley Village|ON|CA|-79.35|43.78|27|N|,Donaustadt|state of vienna|AT|16.46|48.23|187|W|,Donetsk|donetsk|UA|37.8|48.02|901|W|donezk;donec k;donetk;donieck;doneck;dinetsk;dinetske;iuziv;iuzivka;iuzove;oleksandrivka;yuziv;yuzove,Dong Ha|quang tri|VN|107.1|16.82|164|W|,Dongguan|guangdong|CN|113.75|23.02|9644|W|,Donghai|guangdong|CN|115.64|22.95|264|W|,Dongling|liaoning|CN|123.58|41.81|171|W|,Dongtai|jiangsu|CN|120.31|32.85|262|W|,Dongyang|zhejiang|CN|120.23|29.27|130|W|,Dongying|shandong|CN|118.49|37.46|998|W|tung jing;dong dinh,Doral|FL|US|-80.36|25.82|75|N|,Dorchester|MA|US|-71.07|42.3|97|N|,Dorset Park|ON|CA|-79.28|43.75|25|N|,Dortmund|north rhine westphalia|DE|7.47|51.51|588|W|,Dosquebradas|risaralda department|CO|-75.67|4.84|206|W|dos quebradas,Dothan|AL|US|-85.39|31.22|68|N|,Douala|littoral|CM|9.7|4.05|1338|W|duala,Douglasville|GA|US|-84.75|33.75|32|N|,Dourados|mato grosso do sul|BR|-54.81|-22.22|264|W|,Dover|DE|US|-75.52|39.16|39|N|,Dover|NH|US|-70.87|43.2|30|N|,Dovercourt-Wallace Emerson-Junction|ON|CA|-79.44|43.67|36|N|,Downers Grove|IL|US|-88.01|41.81|49|N|,Downey|CA|US|-118.13|33.94|114|N|,Downsview-Roding-CFB|ON|CA|-79.49|43.73|35|N|,Downtown DC|DC|US|-77.02|38.89|52|N|,Downtown Halifax|NS|CA|-63.58|44.65|25|N|,Downtown Vancouver|BC|CA|-123.12|49.28|62|N|,Dracut|MA|US|-71.3|42.67|28|N|,Draper|UT|US|-111.86|40.52|46|N|,Dresden|saxony|DE|13.74|51.05|564|W|dresda;dresde;drezno;drazdany,Drexel Heights|AZ|US|-111.03|32.14|27|N|,Drexel Hill|PA|US|-75.29|39.95|28|N|,Drummondville|QC|CA|-72.48|45.88|59|N|,Dubai|dubai|AE|55.31|25.08|3790|W|dubai city;dubaj,Dubai Investments Park|dubai|AE|55.16|25.01|160|W|,Dublin|leinster|IE|-6.25|53.33|1024|W|dublin city;dublino,Dublin|CA|US|-121.94|37.7|57|N|,Dublin|OH|US|-83.11|40.1|45|N|,Dubreka|kindia|GN|-13.52|9.79|182|W|,Dubuque|IA|US|-90.66|42.5|58|N|,Dudley|england|GB|-2.08|52.5|199|W|,Duesseldorf|north rhine westphalia|DE|6.78|51.22|618|W|dusseldorf,Duezce|duzce|TR|31.16|40.84|194|W|duzce,Duisburg|north rhine westphalia|DE|6.77|51.43|504|W|duisbourg;duisburgo,Duluth|MN|US|-92.11|46.78|86|N|,Duluth|GA|US|-84.14|34|29|N|,Dumai|riau|ID|101.44|1.67|349|W|kota dumai,Duncanville|TX|US|-96.91|32.65|39|N|,Dundalk|MD|US|-76.52|39.25|63|N|,Dundee|scotland|GB|-2.97|56.47|148|W|,Dundo|luanda norte|AO|20.82|-7.37|177|W|,Dunedin|otago|NZ|170.5|-45.87|132|W|,Dunedin|FL|US|-82.77|28.02|36|N|,Dunhua|jilin|CN|128.23|43.37|148|W|,Dunhuang|gansu|CN|94.68|40.17|186|W|tun chuang;don hoang,Dunwoody|GA|US|-84.33|33.95|48|N|,Duque de Caxias|rio de janeiro|BR|-43.31|-22.79|866|W|,Durban|kwazulu natal|ZA|31.03|-29.86|3338|W|port natal,Durg|chhattisgarh|IN|81.28|21.19|268|W|,Durgapur|west bengal|IN|87.31|23.52|518|W|,Durham|NC|US|-78.9|35.99|257|NW|,Durres|durres county|AL|19.45|41.32|195|W|drac;durazzo,Dushanbe|dushanbe|TJ|68.78|38.54|679|W|doesjanbe;douchanbe;duschanbe;dusjanbe;duszanbe;dusanbe,Duvernay|QC|CA|-73.67|45.58|37|N|,Duyun|guizhou|CN|107.52|26.27|198|W|,Dyker Heights|NY|US|-74.01|40.62|34|N|,Dzerzhinsk|nizhny novgorod oblast|RU|43.46|56.24|233|W|dserschinsk;dzerjinsk;dzerzjinsk;dzerzinsk;dzierzynsk,E'zhou|hubei|CN|114.89|30.4|668|W|ezhou;wuchang,Eagan|MN|US|-93.17|44.8|66|N|,Eagle Mountain|UT|US|-112.01|40.31|27|N|,Eagle Pass|TX|US|-100.5|28.71|28|N|,East Boston|MA|US|-71.04|42.38|43|N|,East Brunswick|NJ|US|-74.42|40.43|48|N|e brunswick;east brunswick township,East Chattanooga|TN|US|-85.25|35.07|154|NW|,East Chicago|IN|US|-87.45|41.64|28|N|,East Concord|NH|US|-71.54|43.24|42|N|,East Flatbush|NY|US|-73.93|40.65|178|NW|,East Florence|AL|US|-87.65|34.81|35|N|,East Hampton|VA|US|-76.33|37.04|147|NW|,East Harlem|NY|US|-73.94|40.79|115|N|harlem del este,East Hartford|CT|US|-72.61|41.78|51|N|,East Hastings|BC|CA|-123.06|49.27|80|N|,East Haven|CT|US|-72.87|41.28|29|N|,East Helsinki|uusimaa|FI|25.08|60.21|170|W|ita helsinki;ostra helsingfors,East Hill-Meridian|WA|US|-122.17|47.41|29|N|,East Honolulu|HI|US|-157.72|21.29|49|N|,East Independence|MO|US|-94.36|39.1|110|N|,East Jerusalem|west bank|PS|35.23|31.78|428|W|dogu kudus;gerusalemme est;jerusalem oriental;jerusalen este;jerusalem est;oost jeruzalem;ostjerusalem;vychodni jeruzalem;wschodnia jerozolima;yerusalem timur;ostra jerusalem;ost jerusalem;dong jerusalem,East Lake|FL|US|-82.69|28.11|30|N|,East Lansing|MI|US|-84.48|42.74|48|N|,East London|eastern cape|ZA|27.91|-33.02|478|W|buffalo city;kugompo city,East Los Angeles|CA|US|-118.17|34.02|126|N|dogu los angeles;este de los angeles,East Meadow|NY|US|-73.56|40.71|38|N|,East New York|NY|US|-73.88|40.67|173|NW|,East Norwalk|CT|US|-73.4|41.11|84|N|,East Orange|NJ|US|-74.2|40.77|64|N|,East Palo Alto|CA|US|-122.14|37.47|29|N|palo alto timur,East Pensacola Heights|FL|US|-87.18|30.43|54|N|,East Point|GA|US|-84.44|33.68|35|N|,East Providence|RI|US|-71.37|41.81|47|N|dong providence,East Saint Louis|IL|US|-90.15|38.62|27|N|,East Village|NY|US|-73.99|40.73|62|N|,Easton|PA|US|-75.22|40.69|26|N|,Eastpointe|MI|US|-82.96|42.47|32|N|,Eastvale|CA|US|-117.56|33.96|59|N|,Eau Claire|WI|US|-91.5|44.81|67|N|,Ebetsu|hokkaido|JP|141.55|43.11|133|W|,Ebina|kanagawa|JP|139.4|35.38|136|W|,Ebute Ikorodu|lagos|NG|3.49|6.6|535|W|,Ecatepec de Morelos|MX15|MX|-99.06|19.6|1645|NW|ecatepec,Echo Park|CA|US|-118.26|34.08|43|N|,Ede|osun state|NG|4.44|7.74|159|W|,Eden Prairie|MN|US|-93.47|44.85|63|N|,Edgewater|IL|US|-87.66|41.98|54|N|,Edgewood|MD|US|-76.29|39.42|25|N|,Edina|MN|US|-93.35|44.89|50|N|,Edinburg|TX|US|-98.16|26.3|84|N|,Edinburgh|scotland|GB|-3.2|55.95|514|W|edimburgo;edynburg;edimbourg,Edirne|edirne|TR|26.56|41.68|180|W|adrianopol;adrianopoli,Edison|NJ|US|-74.41|40.52|102|N|gmina edison,Edmond|OK|US|-97.48|35.65|90|N|,Edmonds|WA|US|-122.38|47.81|41|N|,Edmonton|AB|CA|-113.47|53.55|1010|NW|,Edogawe|tokyo|JP|139.87|35.69|697|W|edogawa city,Efon-Alaaye|ekiti state|NG|4.92|7.66|279|W|,Egypt Lake-Leto|FL|US|-82.51|28.02|35|N|,Eimsbuettel|hamburg|DE|9.96|53.57|269|W|eimsbuttel;bezirk eimsbuttel;distretto di eimsbuttel;hambourg eimsbuttel;hamburg eimsbuttel,Eindhoven|north brabant|NL|5.48|51.44|235|W|,Eixample|catalonia|ES|2.16|41.39|266|W|distrito del ensanche,Ejigbo|osun state|NG|4.31|7.9|138|W|,El Achir|bordj bou arreridj|DZ|4.63|36.06|158|W|,El Cajon|CA|US|-116.96|32.79|103|N|,El Centro|CA|US|-115.56|32.79|43|N|,El Daein|eastern darfur|SD|26.13|11.46|264|W|ad du ayn;ad duajn;ad du ain;ed daein,El Dibir|bari|SO|51.22|11.77|200|W|,El Dorado Hills|CA|US|-121.08|38.69|42|N|,El Eulma|setif|DZ|5.69|36.15|145|W|,El Fasher|northern darfur|SD|25.35|13.63|252|W|al fashir;al faschir,El Geneina Fort|western darfur|SD|22.46|13.47|134|W|,El Jadida|casablanca settat|MA|-8.51|33.26|212|W|al dzadida;el yadida;mazagao;castilho real;mazaghan,El Limon|aragua|VE|-67.63|10.31|148|W|,El Mirage|AZ|US|-112.32|33.61|33|N|,El Monte|CA|US|-118.03|34.07|116|N|,El Obeid|north kordofan|SD|30.22|13.18|393|W|al ubayyid,El Oued|el oued|DZ|6.86|33.36|186|W|al wadi;oued souf,El Paso|TX|US|-106.49|31.76|678|NW|,El Pueblito|MX22|MX|-100.44|20.54|71|N|corregidora,El Tigre|anzoategui|VE|-64.25|8.89|222|W|,El Vigia|merida|VE|-71.66|8.61|162|W|,Elazig|elazig|TR|39.22|38.67|443|W|,Elche|valencia|ES|-0.7|38.26|234|W|elx,Eldersburg|MD|US|-76.95|39.4|30|N|eldersburgh,Eldoret|uasin gishu county|KE|35.27|0.52|475|W|,Elektrostal'|moscow oblast|RU|38.46|55.79|144|W|,Elgin|IL|US|-88.28|42.04|112|N|,Elizabeth|NJ|US|-74.21|40.66|129|N|,Elizabethtown|KY|US|-85.86|37.69|29|N|,Elk Grove|CA|US|-121.37|38.41|166|NW|,Elk Grove Village|IL|US|-87.97|42|33|N|,Elkhart|IN|US|-85.98|41.68|52|N|,Ellendale|TN|US|-89.83|35.23|25|N|,Ellicott City|MD|US|-76.8|39.27|65|N|,Elmhurst|NY|US|-73.88|40.74|113|N|,Elmhurst|IL|US|-87.94|41.9|45|N|,Elmira|NY|US|-76.81|42.09|28|N|,Elmont|NY|US|-73.71|40.7|33|N|,Eloy Alfaro|guayas|EC|-79.84|-2.17|315|W|duran,Eluru|andhra pradesh|IN|81.1|16.71|218|W|,Elyria|OH|US|-82.11|41.37|53|N|,Emalahleni|mpumalanga|ZA|29.23|-25.87|373|W|,eMbalenhle|mpumalanga|ZA|29.07|-26.53|142|W|,Embu das Artes|sao paulo|BR|-46.85|-23.65|259|W|embu arte,Emiliano Zapata|MX17|MX|-99.18|18.84|49|N|,Emiliano Zapata|MX15|MX|-98.97|19.34|25|N|,Eminabad|punjab|PK|74.26|32.04|150|W|,Empalme|MX26|MX|-110.81|27.96|42|N|,Encanto|AZ|US|-112.08|33.48|54|N|,Encarnacion de Diaz|MX14|MX|-102.24|21.53|25|N|la chona,Enchanted Hills|NM|US|-106.59|35.34|87|N|,Encinitas|CA|US|-117.29|33.04|62|N|,Encino|CA|US|-118.5|34.16|44|N|,Enfield|CT|US|-72.59|41.98|45|N|,Enfield Town|england|GB|-0.08|51.65|156|W|enfield,Engels|saratov oblast|RU|46.11|51.48|196|W|enehl s;engel s;pokrovs ka sloboda,Englewood|CO|US|-104.99|39.65|33|N|new dawn rejuvenation,Englewood|NJ|US|-73.97|40.89|28|N|,Englewood|IL|US|-87.65|41.78|26|N|,Enid|OK|US|-97.88|36.4|51|N|,Enschede|overijssel|NL|6.9|52.22|153|W|,Ensenada|MX02|MX|-116.6|31.87|443|NW|enseada,Enshi|hubei|CN|109.48|30.3|279|W|,Enterprise|NV|US|-115.24|36.03|108|N|,Enterprise|AL|US|-85.86|31.32|27|N|,Enugu|enugu state|NG|7.5|6.44|950|W|,Envigado|antioquia|CO|-75.59|6.18|163|W|,Epworth|harare|ZW|31.15|-17.89|206|W|,Erbil|erbil|IQ|44.01|36.19|1612|W|arbil;hawler;irbil,Eregli|konya|TR|34.05|37.51|156|W|heraclea;heraclea minoa;herakleia,Erfurt|thuringia|DE|11.04|50.98|218|W|,Erie|PA|US|-80.09|42.13|99|N|,Erode|tamil nadu|IN|77.73|11.34|521|W|irodu,Erzincan|erzincan|TR|39.49|39.74|150|W|erzincam;erzinca,Erzurum|erzurum|TR|41.28|39.91|767|W|,Escarcega|MX04|MX|-90.75|18.61|29|N|,Escondido|CA|US|-117.09|33.12|151|NW|,Escuinapa de Hidalgo|MX25|MX|-105.78|22.83|30|N|,Escuintla|escuintla|GT|-90.79|14.3|156|W|,Esenler|istanbul|TR|28.88|41.04|520|W|,Esenyurt|istanbul|TR|28.68|41.03|983|W|,Eskisehir|eskisehir|TR|30.52|39.78|921|W|,Eslamshahr|tehran|IR|51.24|35.55|450|W|eslamchahr;eslamschahr;shadshahr,Esmeraldas|esmeraldas|EC|-79.65|0.96|218|W|,Esna|qena|EG|32.55|25.29|462|W|,Esperanza|MX26|MX|-109.93|27.58|38|N|,Espoo|uusimaa|FI|24.65|60.21|323|W|esbo,Essen|north rhine westphalia|DE|7.01|51.46|593|W|,Essex|MD|US|-76.47|39.31|39|N|,Estero|FL|US|-81.81|26.44|30|N|,Etah|uttar pradesh|IN|78.66|27.56|131|W|,Etawah|uttar pradesh|IN|79.02|26.78|257|W|,Etobicoke|ON|CA|-79.57|43.64|365|NW|,Etwatwa|gauteng|ZA|28.45|-26.13|151|W|,Euclid|OH|US|-81.53|41.59|47|N|,Eugene|OR|US|-123.09|44.05|176|NW|,Euless|TX|US|-97.08|32.84|54|N|,Eureka|CA|US|-124.16|40.8|27|N|,Evans|GA|US|-82.13|33.53|29|N|,Evanston|IL|US|-87.69|42.04|75|N|,Evansville|IN|US|-87.56|37.97|119|N|,Evaton|gauteng|ZA|27.85|-26.53|725|W|,Everett|WA|US|-122.2|47.98|108|N|,Everett|MA|US|-71.05|42.41|46|N|,'Ewa Gentry-West Loch|HI|US|-158.03|21.35|35|N|,Ewing|NJ|US|-74.8|40.27|36|N|,Exeter|england|GB|-3.53|50.72|130|W|,Ezhou|hubei|CN|114.83|30.4|193|W|,Facatativa|cundinamarca|CO|-74.35|4.81|141|W|,Fair Lawn|NJ|US|-74.13|40.94|33|N|,Fair Oaks|CA|US|-121.27|38.64|30|N|,Fairbanks|AK|US|-147.72|64.84|32|N|,Fairborn|OH|US|-84.02|39.82|33|N|,Fairfield|CA|US|-122.04|38.25|112|N|,Fairfield|CT|US|-73.26|41.14|59|N|,Fairfield|OH|US|-84.56|39.35|42|N|,Fairview|BC|CA|-123.13|49.26|33|N|,Faisalabad|punjab|PK|73.09|31.42|3800|W|fajsalabad;lyallpur,Fall River|MA|US|-71.16|41.7|94|N|,Fallbrook|CA|US|-117.25|33.38|30|N|,Fallingbrook|ON|CA|-75.48|45.48|25|N|,Fangchenggang|guangxi|CN|108.36|21.77|276|W|,Fanling|north district|HK|114.14|22.49|263|W|,Far Rockaway|NY|US|-73.76|40.61|39|N|,Fardis|tehran|IR|51|35.76|181|W|,Fargo|ND|US|-96.79|46.88|118|N|,Faridabad|haryana|IN|77.31|28.41|1414|W|,Farmers Branch|TX|US|-96.9|32.93|32|N|,Farmington|NM|US|-108.22|36.73|42|N|,Farmington|CT|US|-72.83|41.72|25|N|,Farmington Hills|MI|US|-83.38|42.49|81|N|,Farrukhabad|uttar pradesh|IN|79.58|27.39|241|W|,Fatehpur|uttar pradesh|IN|80.81|25.93|166|W|,Fatih|istanbul|TR|28.94|41.02|356|W|,Favoriten|state of vienna|AT|16.38|48.16|201|W|,Fayetteville|NC|US|-78.88|35.05|201|NW|,Fayetteville|AR|US|-94.16|36.06|82|N|,Fazenda Rio Grande|parana|BR|-49.31|-25.66|148|W|,Federal Way|WA|US|-122.31|47.32|95|N|,Feira de Santana|bahia|BR|-38.97|-12.27|616|W|,Felipe Carrillo Puerto|MX23|MX|-88.05|19.58|25|N|,Fendou|heilongjiang|CN|124.86|46.64|226|W|,Fengcheng|chongqing|CN|107.06|29.83|175|W|changshohein,Fengcheng|jiangsu|CN|116.59|34.7|161|W|,Fenghuang|hunan|CN|109.6|27.94|370|W|,Fengshan|takao|TW|120.36|22.63|356|W|feng san;fongshan district,Fengxiang|shanghai|CN|121.47|30.86|1140|W|,Fenway/Kenmore|MA|US|-71.1|42.34|37|N|,Fergana|fergana|UZ|71.78|40.38|299|W|ferghana,Ferrara|emilia romagna|IT|11.62|44.84|132|W|ferrare,Ferraz de Vasconcelos|sao paulo|BR|-46.37|-23.54|179|W|,Ferry Pass|FL|US|-87.21|30.51|28|N|,Fes|fes meknes|MA|-5|34.03|1191|W|fez,Fes al Bali|fes meknes|MA|-4.95|34.07|156|W|,Fianarantsoa|upper matsiatra|MG|47.09|-21.45|203|W|,Financial District|NY|US|-74.01|40.71|60|N|,Findlay|OH|US|-83.65|41.04|41|N|,Firozabad|uttar pradesh|IN|78.4|27.15|306|W|,Fishers|IN|US|-86.01|39.96|76|N|,Fitchburg|MA|US|-71.8|42.58|40|N|,Fitchburg|WI|US|-89.47|42.96|27|N|,Flagami|FL|US|-80.32|25.76|50|N|,Flagstaff|AZ|US|-111.65|35.2|70|N|,Flatbush|NY|US|-73.96|40.65|93|N|,Flatlands|NY|US|-73.93|40.62|63|N|,Fleetwood|BC|CA|-122.8|49.17|65|N|,Fleming Island|FL|US|-81.72|30.09|27|N|,Flint|MI|US|-83.69|43.01|98|N|,Florence|tuscany|IT|11.25|43.78|367|W|florencja;firenze;floransa;florencia;florencie;florens;florenz;florenca;florenta,Florence|AL|US|-87.68|34.8|40|N|,Florence|SC|US|-79.76|34.2|38|N|,Florence|KY|US|-84.63|39|32|N|,Florence|AZ|US|-111.39|33.03|31|N|,Florence-Graham|CA|US|-118.24|33.97|63|N|,Florencia|caqueta|CO|-75.6|1.62|168|W|,Florianopolis|santa catarina|BR|-48.55|-27.6|508|W|floripa;nossa senhora do desterro;santa catherina,Floridablanca|santander department|CO|-73.09|7.06|267|W|,Floridsdorf|state of vienna|AT|16.4|48.25|162|W|,Florin|CA|US|-121.41|38.5|47|N|,Florissant|MO|US|-90.32|38.79|52|N|,Flower Mound|TX|US|-97.1|33.01|71|N|,Foggia|apulia|IT|15.55|41.46|137|W|,Folsom|CA|US|-121.18|38.68|76|N|,Fond du Lac|WI|US|-88.44|43.77|42|N|,Fontana|CA|US|-117.44|34.09|212|NW|,Fontanar|havana|CU|-82.41|23.02|178|W|,Foothill Farms|CA|US|-121.35|38.68|33|N|,Fordham|NY|US|-73.9|40.86|94|N|,Forest Hills|NY|US|-73.85|40.72|67|N|,Forest Hills|MI|US|-85.49|42.96|25|N|,Formosa|formosa|AR|-58.17|-26.18|222|W|ciudad de formosa,Fort Bragg|NC|US|-79.01|35.14|29|N|phao dai bragg;fort liberty,Fort Cavazos|TX|US|-97.78|31.13|29|N|,Fort Collins|CO|US|-105.08|40.59|170|NW|ft collins,Fort Erie|ON|CA|-78.93|42.9|30|N|,Fort Garry South|MB|CA|-97.16|49.79|65|N|,Fort Hamilton|NY|US|-74.03|40.62|28|N|,Fort Lauderdale|FL|US|-80.14|26.12|183|NW|,Fort Lee|NJ|US|-73.97|40.85|36|N|,Fort McMurray|AB|CA|-111.38|56.73|66|N|,Fort Myers|FL|US|-81.84|26.62|74|N|,Fort Pierce|FL|US|-80.33|27.45|44|N|ft pierce,Fort Smith|AR|US|-94.4|35.39|88|N|,Fort Wayne|IN|US|-85.13|41.13|260|NW|,Fort Worth|TX|US|-97.32|32.73|1008|NW|ft worth,Fortaleza|ceara|BR|-38.54|-3.72|2400|W|,Fortechnyi|kirovohrad|UA|32.25|48.5|167|W|,Fortuna Foothills|AZ|US|-114.41|32.66|26|N|,Foshan|guangdong|CN|113.13|23.03|9042|W|fo san,Foster City|CA|US|-122.27|37.56|33|N|,Foumban|west|CM|10.9|5.73|130|W|foumbam;fumban,Fountain|CO|US|-104.7|38.68|27|N|,Fountain Valley|CA|US|-117.95|33.71|56|N|,Fountainebleau|FL|US|-80.35|25.77|59|N|fountainbleau,Four Corners|FL|US|-81.65|28.33|26|N|,Foz do Iguacu|parana|BR|-54.59|-25.55|297|W|foz de iguazu,Fraccionamiento Real Palmas|MX19|MX|-100.16|25.9|34|N|,Framingham|MA|US|-71.42|42.28|68|N|,Framingham Center|MA|US|-71.44|42.3|65|N|,Franca|sao paulo|BR|-47.4|-20.54|365|W|,Franceville|haut ogooue|GA|13.58|-1.63|132|W|,Francisco I. Madero|MX07|MX|-103.27|25.77|26|N|,Francisco Morato|sao paulo|BR|-46.75|-23.28|165|W|,Franco da Rocha|sao paulo|BR|-46.73|-23.32|144|W|,Frankfort|KY|US|-84.87|38.2|28|N|,Frankfurt am Main|hesse|DE|8.68|50.12|650|W|francfort sur le main;francoforte sul meno;francfort del meno;francfort;francoforte;frankfurt;frankfurt nad menem;frankfurt nad mohanem;franckfurt,Franklin|TN|US|-86.87|35.93|72|N|,Franklin|WI|US|-88.04|42.89|36|N|,Franklin|MA|US|-71.4|42.08|30|N|,Franklin Square|NY|US|-73.68|40.71|29|N|,Fraser Heights|BC|CA|-122.78|49.2|25|N|,Frederick|MD|US|-77.41|39.41|69|N|,Fredericksburg|VA|US|-77.46|38.3|28|N|,Fredericton|NB|CA|-66.67|45.95|63|N|,Fredericton Northside|NB|CA|-66.64|45.98|28|N|northside fredericton,Freeport|NY|US|-73.58|40.66|43|N|,Freetown|western area|SL|-13.24|8.49|802|W|,Freguesia do O|sao paulo|BR|-46.7|-23.5|137|W|nossa senhora do o,Freiburg|baden wurttemberg|DE|7.85|48|237|W|freiburg im breisgau;fribourg en brisgau;friburgo de brisgovia;friburgo in brisgovia;fryburg bryzgowijski,Fremont|CA|US|-121.99|37.55|232|NW|,Fremont|NE|US|-96.5|41.43|26|N|,Fresh Meadows|NY|US|-73.79|40.73|28|N|,Fresnillo|MX32|MX|-102.87|23.17|143|NW|,Fresno|CA|US|-119.77|36.75|542|NW|,Fridley|MN|US|-93.26|45.09|27|N|,Friendswood|TX|US|-95.2|29.53|38|N|,Frisco|TX|US|-96.82|33.15|154|NW|,Frontera|MX07|MX|-101.45|26.93|69|N|ciudad frontera,Fruit Cove|FL|US|-81.64|30.11|29|N|,Fu'an|fujian|CN|119.64|27.09|154|W|,Fuchu|tokyo|JP|139.48|35.67|262|W|,Fuding|fujian|CN|120.21|27.33|192|W|,Fuencarral|madrid|ES|-3.68|40.5|238|W|,Fuencarral-El Pardo|madrid|ES|-3.73|40.5|220|W|,Fuenlabrada|madrid|ES|-3.79|40.28|190|W|,Fuentes del Valle|MX15|MX|-99.14|19.63|74|N|,Fuerth|bavaria|DE|10.99|49.48|132|W|furth,Fuji|shizuoka|JP|138.68|35.17|245|W|fudzi,Fuji|sichuan|CN|105.37|29.15|131|W|,Fujieda|shizuoka|JP|138.27|34.87|145|W|,Fujinomiya|shizuoka|JP|138.62|35.22|132|W|,Fujisawa|kanagawa|JP|139.48|35.35|439|W|,Fukayacho|saitama|JP|139.28|36.2|141|W|,Fukui-shi|fukui|JP|136.22|36.06|262|W|,Fukuoka|fukuoka|JP|130.42|33.6|1612|W|fukuoka shi;fukuokashi,Fukushima|fukushima|JP|140.47|37.75|294|W|,Fukuyama|hiroshima|JP|133.37|34.48|468|W|,Fuling|chongqing|CN|107.39|29.71|268|W|fuchow,Fullerton|CA|US|-117.93|33.87|140|NW|,Funtua|katsina state|NG|7.31|11.52|136|W|,Fushun|liaoning|CN|123.94|41.89|1400|W|fu sun,Fuxin|liaoning|CN|121.66|42.02|689|W|fu sin,Fuyang|anhui|CN|115.82|32.9|1768|W|fu jang,Fuyu|jilin|CN|124.82|45.18|138|W|,Fuzhou|fujian|CN|119.31|26.06|3740|W|fu cou;fucheu;phuc chau,Fuzhou|jiangxi|CN|116.33|27.96|1089|W|fu cou,Fyzabad|uttar pradesh|IN|82.15|26.78|153|W|faizabad,Gaborone|gaborone|BW|25.91|-24.65|246|W|,Gabriel Leyva Solano|MX25|MX|-108.64|25.66|27|N|benito juarez;leyva solano,Gadag|karnataka|IN|75.63|15.43|172|W|,Gadag-Betageri|karnataka|IN|75.62|15.42|172|W|,Gadsden|AL|US|-86.01|34.01|36|N|,Gage Park|IL|US|-87.7|41.8|41|N|,Gagnoa|goh djiboua|CI|-5.95|6.13|277|W|,Gahanna|OH|US|-82.88|40.02|34|N|,Gainesville|FL|US|-82.32|29.65|145|NW|,Gainesville|GA|US|-83.82|34.3|38|N|,Gaithersburg|MD|US|-77.2|39.14|67|N|,Gajuwaka|andhra pradesh|IN|83.22|17.7|258|W|,Galati|galati county|RO|28.05|45.44|217|W|galatz;galacz,Galesburg|IL|US|-90.37|40.95|31|N|,Gallatin|TN|US|-86.45|36.39|34|N|,Galt|CA|US|-121.3|38.25|25|N|,Galveston|TX|US|-94.8|29.3|50|N|,Gama|federal district|BR|-48.07|-16.03|139|W|,Gandajika|lomami|CD|23.95|-6.75|208|W|,Gandhidham|gujarat|IN|70.13|23.08|247|W|,Gandhinagar|gujarat|IN|72.68|23.22|292|W|,Gangneung|gangwon do|KR|128.87|37.75|208|W|,Ganja|gence|AZ|46.36|40.68|330|W|ganca;gandja;gandza;gence;gandzja,Ganzhou|jiangxi|CN|114.93|25.85|1977|W|cam chau;kan cou,Gao|gao|ML|-0.04|16.27|133|W|,Gaomi|shandong|CN|119.75|36.38|391|W|,Gaoping|sichuan|CN|106.1|30.78|204|W|,Gaozhou|guangdong|CN|110.86|21.92|292|W|,Garanhuns|pernambuco|BR|-36.5|-8.88|151|W|,Garcia|MX19|MX|-100.59|25.8|93|N|,Garden City|KS|US|-100.87|37.97|27|N|,Garden City|MI|US|-83.33|42.33|26|N|,Garden Grove|CA|US|-117.94|33.77|175|NW|,Gardena|CA|US|-118.31|33.89|60|N|,Garfield|NJ|US|-74.11|40.88|31|N|,Garfield Heights|OH|US|-81.61|41.42|28|N|garfield hts,Garhi Khairo|sindh|PK|67.98|28.06|193|W|,Garissa|garissa county|KE|39.65|-0.45|163|W|,Garland|TX|US|-96.64|32.91|236|NW|,Garner|NC|US|-78.61|35.71|28|N|,Garut|west java|ID|107.92|-7.25|131|W|,Gary|IN|US|-87.35|41.59|77|N|,Gasteiz / Vitoria|basque country|ES|-2.67|42.85|257|W|vitoria;vitoria gasteiz,Gastonia|NC|US|-81.19|35.26|74|N|,Gatineau|QC|CA|-75.7|45.48|300|NW|,Gaya|bihar|IN|85|24.8|474|W|,Gaza|gaza strip|PS|34.47|31.5|410|W|gaza city;gazze,Gaziantep|gaziantep|TR|37.38|37.06|2222|W|,Gazipur|dhaka division|BD|90.42|24|2674|W|,Gboko|benue state|NG|9|7.32|365|W|,Gbongan|osun state|NG|4.35|7.48|139|W|,Gdansk|pomerania|PL|18.65|54.35|487|W|danzica;danzig,Gdynia|pomerania|PL|18.53|54.52|257|W|gdingen;gdyne,Gebze|kocaeli|TR|29.43|40.8|281|W|,Geelong|victoria|AU|144.36|-38.15|282|W|,Geita|geita|TZ|32.23|-2.87|318|W|,Gejiu|yunnan|CN|103.15|23.36|136|W|,Gelsenkirchen|north rhine westphalia|DE|7.1|51.51|270|W|,Gemena|sud ubangi|CD|19.77|3.26|197|W|,General Santos|soccsksargen|PH|125.17|6.11|722|W|kota general santos,Geneva|geneva|CH|6.15|46.2|201|W|cenevre;genebra;geneve;genewa;genf;ginebra;ginevra;jenewa;zeneva,Genoa|liguria|IT|8.94|44.4|580|W|genova;cenova;genua;genes;janov,Gent|flanders|BE|3.72|51.05|265|W|gand;gandawa;gante;ghent,Geoje|gyeongsangnam do|KR|128.71|34.81|232|W|,George|western cape|ZA|22.46|-33.96|188|W|,George Town|penang|MY|100.34|5.41|158|W|georgetown;penang,Georgetown|demerara mahaica|GY|-58.16|6.8|235|W|,Georgetown|TX|US|-97.68|30.63|63|N|,Georgetown|ON|CA|-79.92|43.65|44|N|,Georgetown|KY|US|-84.56|38.21|32|N|,Germantown|MD|US|-77.27|39.17|86|N|,Germantown|TN|US|-89.81|35.09|39|N|,Germiston|gauteng|ZA|28.18|-26.23|255|W|germinston,Getafe|madrid|ES|-3.73|40.31|187|W|,Ghardaia|ghardaia|DZ|3.67|32.49|142|W|gardaya;ghardaja,Ghaziabad|uttar pradesh|IN|77.44|28.67|1199|W|gaziabade,Ghazni|ghazni|AF|68.42|33.55|141|W|gazni,Ghulja|xinjiang|CN|81.32|43.92|269|W|yining,Gia Lam|hanoi|VN|105.94|21.02|309|W|,Gia Rai|ca mau|VN|105.46|9.23|145|W|,Gifu|gifu|JP|136.76|35.42|402|W|gifu city,Gijang|busan|KR|129.21|35.24|176|W|,Gijon|asturias|ES|-5.66|43.54|271|W|,Gilbert|AZ|US|-111.79|33.35|247|NW|,Gilgit|gilgit baltistan|PK|74.31|35.92|216|W|,Gillette|WY|US|-105.5|44.29|32|N|,Gilroy|CA|US|-121.57|37.01|53|N|,Gimcheon|gyeongsangbuk do|KR|128.12|36.12|150|W|kimcchon,Gimpo-si|gyeonggi do|KR|126.71|37.62|203|W|gimpo,Gingoog|northern mindanao|PH|125.1|8.83|138|W|,Girga|sohag|EG|31.89|26.34|151|W|jirja,Gisenyi|western province|RW|29.26|-1.7|172|W|gosenyi,Giza|giza|EG|31.21|30.01|4367|W|gizeh;gize;guiza,GJien Ban|da nang city|VN|108.25|15.89|226|W|,GJong GJa|hanoi|VN|105.83|21.01|371|W|,GJong Hoi|quang tri|VN|106.62|17.47|133|W|dong hoi,GJong Xoai|dong nai|VN|106.88|11.53|168|W|dong xoai,GJuc Pho|quang ngai|VN|108.96|14.81|155|W|,GJuc Trong|lam dong|VN|108.37|11.74|161|W|lien nghia,Gladstone|MO|US|-94.55|39.2|26|N|,Glasgow|scotland|GB|-4.26|55.87|626|W|,Glastonbury|CT|US|-72.61|41.71|31|N|,Glen Burnie|MD|US|-76.62|39.16|67|N|,Glen Cove|NY|US|-73.63|40.86|27|N|,Glen Ellyn|IL|US|-88.07|41.88|28|N|,Glendale|AZ|US|-112.19|33.54|240|NW|,Glendale|CA|US|-118.26|34.14|201|NW|,Glendale|NY|US|-73.89|40.7|34|N|,Glendale Heights|IL|US|-88.06|41.91|34|N|,Glendora|CA|US|-117.87|34.14|52|N|,Glenfield-Jane Heights|ON|CA|-79.51|43.75|30|N|,Glenview|IL|US|-87.79|42.07|47|N|,Glenville|NY|US|-74.05|42.93|29|N|,Gliwice|silesia|PL|18.68|50.3|198|W|gleiwitz,Gloucester|ON|CA|-75.63|45.35|150|NW|,Gloucester|england|GB|-2.24|51.87|132|W|,Gloucester|MA|US|-70.66|42.61|29|N|,Godhra|gujarat|IN|73.61|22.78|143|W|,Godome|atlantique|BJ|2.35|6.39|253|W|,Goelbasi|ankara|TR|32.81|39.79|165|W|golbasi,Goiania|goias|BR|-49.25|-16.68|1536|W|,Gojra|punjab|PK|72.68|31.15|214|W|gorja,Gol'yanovo|moscow|RU|37.81|55.82|158|W|,Gold Coast|queensland|AU|153.43|-28|640|W|costa dorada;gold,Golden Glades|FL|US|-80.2|25.91|33|N|,Goldsboro|NC|US|-77.99|35.38|35|N|,Golestan|tehran|IR|51.18|35.52|240|W|,Goleta|CA|US|-119.83|34.44|30|N|goelette;kuunari;schoener;schoner;schooner;skonert;skonnert;szkuner,Golfe|luanda|AO|13.26|-8.87|655|W|,Goma|north kivu|CD|29.23|-1.67|432|W|,Gombe|gombe state|NG|11.17|10.29|560|W|,Gomez Palacio|MX10|MX|-103.5|25.57|257|NW|,Gonbad-e Kavus|golestan|IR|55.17|37.25|151|W|,Gonda City|uttar pradesh|IN|81.95|27.13|133|W|,Gonder|amhara|ET|37.47|12.6|466|W|gondar,Gondia|maharashtra|IN|80.19|21.46|132|W|gondiya,Gongheyong|guangdong|CN|113.79|22.76|204|W|,Gongzhuling|jilin|CN|124.82|43.5|140|W|,Goodyear|AZ|US|-112.36|33.44|79|N|,Goose Creek|SC|US|-80.03|32.98|40|N|,Gorakhpur|haryana|IN|75.67|29.45|1324|W|,Gorakhpur|uttar pradesh|IN|83.37|26.77|674|W|,Gorgan|golestan|IR|54.44|36.84|244|W|,Gorontalo|gorontalo|ID|123.06|0.54|205|W|,Goshen|IN|US|-85.83|41.58|32|N|,Gothenburg|vastra gotaland|SE|11.97|57.71|608|W|goteborg;gotemburgo;gotenburg;gothembourg,Governador Valadares|minas gerais|BR|-41.95|-18.85|266|W|gov valadares;valadares,Goyang-si|gyeonggi do|KR|126.83|37.66|1061|W|goyang,Gqeberha|eastern cape|ZA|25.61|-33.96|1050|W|port elizabeth;porto elizabeth;puerto elizabeth,Grajau|sao paulo|BR|-46.67|-23.77|384|W|,Gramercy Park|NY|US|-73.99|40.74|27|N|,Granada|andalusia|ES|-3.61|37.19|233|W|grenada;grenade;girnata,Granby|QC|CA|-72.73|45.4|66|N|,Grand Forks|ND|US|-97.03|47.93|57|N|,Grand Island|NE|US|-98.34|40.93|51|N|,Grand Junction|CO|US|-108.55|39.06|60|N|,Grand Prairie|TX|US|-97|32.75|187|NW|,Grand Rapids|MI|US|-85.67|42.96|195|NW|,Grande Prairie|AB|CA|-118.8|55.17|70|N|,Grandview|MO|US|-94.53|38.89|25|N|,Grandview-Woodlands|BC|CA|-123.07|49.28|29|N|,Granger|IN|US|-86.11|41.75|30|N|,Granite City|IL|US|-90.15|38.7|29|N|,Grants Pass|OR|US|-123.33|42.44|37|N|,Grapevine|TX|US|-97.08|32.93|51|N|,Gravatai|rio grande do sul|BR|-50.99|-29.94|265|W|,Gravesend|NY|US|-73.97|40.6|112|N|,Graz|styria|AT|15.44|47.07|303|W|styrsky hradec,Great Falls|MT|US|-111.3|47.5|59|N|,Greater Grand Crossing|IL|US|-87.61|41.76|32|N|,Greater Noida|uttar pradesh|IN|77.54|28.5|293|W|,Greater Sudbury|ON|CA|-80.99|46.49|166|NW|sudbury;gran sudbury;grand sudbury,Greeley|CO|US|-104.71|40.42|108|N|,Green|OH|US|-81.48|40.95|25|N|,Green Bay|WI|US|-88.02|44.52|105|N|,Greenacres City|FL|US|-80.13|26.62|32|N|,Greenburgh|NY|US|-73.84|41.03|86|N|,Greenfield|WI|US|-88.01|42.96|37|N|,Greenpoint|NY|US|-73.95|40.72|34|N|,Greensboro|NC|US|-79.79|36.07|285|NW|,Greenville|NC|US|-77.37|35.61|90|N|,Greenville|SC|US|-82.39|34.85|64|N|,Greenville|MS|US|-91.06|33.41|32|N|,Greenville|TX|US|-96.11|33.14|26|N|,Greenwood|IN|US|-86.11|39.61|55|N|,Greer|SC|US|-82.23|34.94|28|N|,Grenoble|rhone alpes|FR|5.71|45.18|158|W|,Gresham|OR|US|-122.43|45.5|110|N|,Grimsby|ON|CA|-79.57|43.2|27|N|,Groningen|groningen|NL|6.57|53.22|244|W|groninga;groningue,Grove City|OH|US|-83.09|39.88|39|N|,Grozny|chechnya|RU|45.69|43.31|297|W|grosnij;grosny;grozni;groznyi;groznyj;groznyy;groznai;groznii,Guacara|carabobo|VE|-67.88|10.23|198|W|,Guadalajara|MX14|MX|-103.35|20.68|1385|NW|,Guadalupe|MX19|MX|-100.26|25.68|673|NW|ciudad guadalupe;villa de guadalupe,Guadalupe|MX32|MX|-102.52|22.75|170|NW|,Guamuchil|MX25|MX|-108.08|25.46|72|N|,Guanajuato|MX11|MX|-101.26|21.02|72|N|guanajuato city,Guang'an|sichuan|CN|106.64|30.47|858|W|,Guangshui|hubei|CN|114|31.62|154|W|,Guangyuan|sichuan|CN|105.82|32.44|516|W|kuang juan,Guangzhou|guangdong|CN|113.25|23.12|16096|W|canton;cantao;kanton;koshu,Guankou|hunan|CN|113.63|28.16|1380|W|,Guantanamo|guantanamo province|CU|-75.21|20.14|272|W|,Guarapari|espirito santo|BR|-40.5|-20.67|136|W|,Guarapuava|parana|BR|-51.47|-25.39|189|W|,Guarenas|miranda|VE|-66.62|10.47|248|W|,Guaruja|sao paulo|BR|-46.26|-23.99|294|W|,Guarulhos|sao paulo|BR|-46.53|-23.46|1345|W|,Guasave|MX25|MX|-108.47|25.57|71|N|,Guatemala City|guatemala|GT|-90.51|14.64|994|W|citta del guatemala;ciudad de guatemala;guatemala;guatemala stadt;guate;cidade da guatemala;ciudad guatemala;guatemala by;guatemala stad;gwatemala;new guatemala;nueva guatemala;santiago de guatimala,Guatire|miranda|VE|-66.54|10.47|227|W|,Guayaquil|guayas|EC|-79.89|-2.2|2723|W|guaiaquil,Gucun|shanghai|CN|121.39|31.35|240|W|,Guediawaye|dakar|SN|-17.4|14.77|329|W|,Guelph|ON|CA|-80.26|43.55|143|NW|,Guigang|guangxi|CN|109.59|23.12|1086|W|kuej kang,Guildford|BC|CA|-122.8|49.19|64|N|,Guilin|guangxi|CN|110.3|25.28|1572|W|kuej lin,Guixi|chongqing|CN|107.35|30.33|188|W|,Guiyang|guizhou|CN|106.72|26.58|3037|W|kuej jang;quy duong,Gujangbagh|xinjiang|CN|79.93|37.11|408|W|chotan;ciudad de jotan;hotan;hoten;khotan,Gujranwala|punjab|PK|74.19|32.16|2511|W|gudzranwala;gudzranvala,Gujrat|punjab|PK|74.08|32.57|574|W|,Gulfport|MS|US|-89.09|30.37|71|N|,Guli|zhejiang|CN|120.03|28.88|536|W|,Gulu|northern region|UG|32.3|2.77|177|W|,Gumi|gyeongsangbuk do|KR|128.34|36.11|404|W|,Guna|madhya pradesh|IN|77.31|24.65|180|W|,Gunan|chongqing|CN|106.65|29.02|208|W|,Gundupalaiyam|puducherry|IN|79.8|11.94|300|W|,Gunpo|gyeonggi do|KR|126.95|37.37|286|W|,Gunsan|jeollabuk do|KR|126.71|35.98|264|W|kunsan;kunsanpo,Guntur|andhra pradesh|IN|80.46|16.3|670|W|gunturu,Gunungsitoli|north sumatra|ID|97.61|1.29|136|W|,Guri-si|gyeonggi do|KR|127.14|37.6|195|W|guri,Gurnee|IL|US|-87.9|42.37|31|N|,Gurue|zambezia province|MZ|36.98|-15.47|168|W|,Gurugram|haryana|IN|77.03|28.46|886|W|gurgaon,Gusau|zamfara state|NG|6.66|12.17|226|W|,Gustavo Adolfo Madero|MX09|MX|-99.11|19.49|1185|NW|gustavo a madero,Guwahati|assam|IN|91.75|26.18|962|W|gauhati,Guyong|central luzon|PH|120.98|14.84|155|W|,Guyuan|ningxia|CN|106.28|36.01|411|W|,Gwalior|madhya pradesh|IN|78.17|26.23|1054|W|,Gwangju|gwangju|KR|126.92|35.15|1401|W|gwangju si;kwangdzu;kwangju,Gwangmyeong|gyeonggi do|KR|126.87|37.48|357|W|,Gwangyang|jeollanam do|KR|127.7|34.94|154|W|,Gweru|midlands province|ZW|29.82|-19.45|158|W|,Gwynn Oak|MD|US|-76.69|39.33|47|N|,Gyanpur|uttar pradesh|IN|82.47|25.33|200|W|,Gyeongju|gyeongsangbuk do|KR|129.21|35.84|245|W|,Gyeongsan-si|gyeongsangbuk do|KR|128.74|35.82|266|W|gyeongsan,Ha'il|ha il region|SA|41.69|27.52|605|W|hail,Ha Long|quang ninh|VN|107.07|20.95|270|W|,Ha Tinh|ha tinh province|VN|105.91|18.34|266|W|ha thin;thanh sen,Haarlem|north holland|NL|4.64|52.38|162|W|,Habra|west bengal|IN|88.66|22.84|139|W|,Hachinohe|aomori|JP|141.5|40.5|239|W|,Hachioji|tokyo|JP|139.32|35.66|579|W|hachiouji,Hacienda Heights|CA|US|-117.97|33.99|54|N|,Hacienda Santa Fe|MX14|MX|-103.38|20.52|86|N|,Hackensack|NJ|US|-74.04|40.89|44|N|,Hada'iq al Qubbah|cairo|EG|31.28|30.09|339|W|,Hadano|kanagawa|JP|139.22|35.37|163|W|,Haeju|south hwanghae|KP|125.71|38.04|222|W|,Hafar Al-Batin|eastern province|SA|45.97|28.43|271|W|,Hafizabad|punjab|PK|73.69|32.07|318|W|,Hagen|north rhine westphalia|DE|7.47|51.36|198|W|,Hagerstown|MD|US|-77.72|39.64|40|N|,Hai Ba Trung|hanoi|VN|105.85|21.01|303|W|hai batrung,Hai Chau|da nang city|VN|108.13|15.92|131|W|,Hai Duong|hai phong|VN|106.33|20.94|241|W|,Haicheng|liaoning|CN|122.75|40.85|191|W|,Haifa|haifa|IL|35|32.81|285|W|hajfa;hayfa,Haikou|hainan|CN|110.35|20.03|2873|W|chaj kchou,Hailar|inner mongolia|CN|119.7|49.2|211|W|,Hailin|heilongjiang|CN|129.39|44.57|144|W|,Haiphong|hai phong|VN|106.68|20.86|2625|W|hai phong;hajfong,Hajipur|bihar|IN|85.21|25.69|147|W|,Hakodate|hokkaido|JP|140.74|41.78|275|W|,Haldia|west bengal|IN|88.11|22.06|170|W|,Haldwani|uttarakhand|IN|79.53|29.22|139|W|haldwani kathgodam;haldwani cum kathgodam,Halifax|NS|CA|-63.58|44.64|471|NW|,Hallandale Beach|FL|US|-80.15|25.98|39|N|hallandale,Halle (Saale)|saxony anhalt|DE|11.98|51.48|237|W|halle;halle an der saale;halle sul saale,Haltom City|TX|US|-97.27|32.8|44|N|,Halton Hills|ON|CA|-79.93|43.64|62|N|,Halwan|cairo|EG|31.3|29.84|230|W|helwan,Hamadan|hamadan province|IR|48.51|34.8|528|W|,Hamah|hama|SY|36.76|35.13|460|W|hama,Hamamatsu|shizuoka|JP|137.73|34.7|791|W|hamamacu;hamamatsu city;hamamatsu shi,Hamburg|hamburg|DE|9.99|53.55|1973|W|hamburgo;amburgo;hamborg;hambourg;hamburk;hampuri,Hamburg-Mitte|hamburg|DE|10.02|53.55|301|W|bezirk hamburg mitte;hamburg centru,Hamburg-Nord|hamburg|DE|9.98|53.59|315|W|bezirk hamburg nord;distretto di hamburg nord,Hamden|CT|US|-72.9|41.4|59|N|,Hamhung|south hamgyong|KP|127.54|39.92|559|W|,Hami|xinjiang|CN|93.51|42.83|246|W|kumul,Hamilton|ON|CA|-79.85|43.25|569|NW|,Hamilton|waikato region|NZ|175.28|-37.78|192|W|,Hamilton|OH|US|-84.56|39.4|62|N|,Hamm|north rhine westphalia|DE|7.82|51.68|178|W|,Hammond|IN|US|-87.5|41.58|77|N|,Hampton|VA|US|-76.35|37.03|137|NW|,Hanam|gyeonggi do|KR|127.21|37.54|254|W|,Handan|hebei|CN|114.49|36.61|1358|W|chan tan;ham dan,Hanfeng|chongqing|CN|108.4|31.17|196|W|,Hanford|CA|US|-119.65|36.33|55|N|,Hangu|tianjin|CN|117.79|39.25|208|W|,Hangzhou|zhejiang|CN|120.16|30.29|9236|W|chang cou;hang chau,Hannover|lower saxony|DE|9.73|52.37|515|W|hanover;hanovra;hanovre;hanower,Hanoi|hanoi|VN|105.84|21.02|8053|W|hanoj;kecho;kescio;thang long,Hanover|MD|US|-76.72|39.19|38|N|,Hanover Park|IL|US|-88.15|42|38|N|,Hanumangarh|rajasthan|IN|74.33|29.58|155|W|,Hanzhong|shaanxi|CN|107.02|33.08|1006|W|chan cung;han trung,Hapur|uttar pradesh|IN|77.78|28.73|242|W|,Harar|harari|ET|42.12|9.31|157|W|harar jugol;harer,Harare|harare|ZW|31.05|-17.83|1542|W|,Harbin|heilongjiang|CN|126.65|45.75|5242|W|charbin;cap nhi tan,Harburg|hamburg|DE|9.98|53.46|169|W|hamburg harburg;bezirk harburg;distretto di harburg;hambourg harburg;hamburgo harburgo,Hargeysa|woqooyi galbeed|SO|44.06|9.56|477|W|hargeisa,Haridwar|uttarakhand|IN|78.16|29.95|186|W|hardwar;haridvar,Harker Heights|TX|US|-97.66|31.08|29|N|,Harlem|NY|US|-73.95|40.81|116|N|,Harlingen|TX|US|-97.7|26.19|65|N|,Harrisburg|PA|US|-76.88|40.27|50|N|,Harrison|NY|US|-73.71|40.97|28|N|,Harrisonburg|VA|US|-78.87|38.45|52|N|,Harrow|england|GB|-0.33|51.58|149|W|,Hartford|CT|US|-72.69|41.76|121|N|,Harunabad|punjab|PK|73.14|29.61|149|W|,Harvey|IL|US|-87.65|41.61|25|N|,Hashtsal|delhi|IN|77.06|28.63|176|W|,Hasilpur|punjab|PK|72.55|29.69|168|W|,Hassan|karnataka|IN|76.1|13.01|155|W|,Hastings-Sunrise|BC|CA|-123.03|49.28|34|N|,Hat Yai|songkhla|TH|100.48|7.01|191|W|,Hathazari|chittagong|BD|91.81|22.51|498|W|,Hattiesburg|MS|US|-89.29|31.33|46|N|,Havana|havana|CU|-82.38|23.13|2163|W|havanna;hawana;l avana;la habana;la havane,Haverhill|MA|US|-71.08|42.78|62|N|,Havertown|PA|US|-75.31|39.98|50|N|,Hawai'i Kai|HI|US|-157.7|21.3|30|N|,Hawalli|hawalli|KW|48.03|29.33|164|W|havalli,Hawthorne|CA|US|-118.35|33.92|88|N|,Hayward|CA|US|-122.08|37.67|158|NW|,Hayy Khilda|amman|JO|35.84|31.99|251|W|,Hazaribagh|jharkhand|IN|85.36|23.99|153|W|hazaribag,Hazelwood|MO|US|-90.37|38.77|25|N|,Hebi|henan|CN|114.29|35.73|634|W|che pi,Hebron|west bank|PS|35.09|31.53|160|W|el halil;hebrom,Hechi|guangxi|CN|108.08|24.69|330|W|,Hechuan|chongqing|CN|106.26|29.99|377|W|,Hefei|anhui|CN|117.28|31.86|5050|W|che fej,Hegang|heilongjiang|CN|130.29|47.35|743|W|che kang,Heidelberg|baden wurttemberg|DE|8.69|49.41|143|W|edelberga;heidelberga,Heihe|heilongjiang|CN|127.49|50.24|223|W|chej che,Hejiang|sichuan|CN|105.83|28.81|137|W|,Helena|MT|US|-112.04|46.59|32|N|,Hell's Kitchen|NY|US|-73.99|40.76|45|N|la cocina del infierno;midtown west,Helsinki|uusimaa|FI|24.94|60.17|658|W|helsingfors;helsinky;helsinquia;khel sinki,Hemet|CA|US|-116.97|33.75|83|N|,Hempstead|NY|US|-73.62|40.71|55|N|,Henderson|NV|US|-114.98|36.04|285|NW|,Henderson|KY|US|-87.59|37.84|28|N|,Hendersonville|TN|US|-86.62|36.3|56|N|,Hengshan|heilongjiang|CN|130.9|45.21|164|W|,Hengshui|hebei|CN|115.68|37.74|522|W|cheng suej,Hengyang|hunan|CN|112.62|26.89|1075|W|cheng jang;hanh duong,Henrietta|NY|US|-77.61|43.06|42|N|,Hepo|guangdong|CN|115.83|23.43|131|W|,Hepu|guangxi|CN|109.2|21.66|192|W|,Herat|herat|AF|62.2|34.35|574|W|,Hercules|CA|US|-122.29|38.02|25|N|,Hermitage|TN|US|-86.62|36.2|37|N|,Hermosillo|MX26|MX|-110.97|29.09|812|NW|,Herne|north rhine westphalia|DE|7.23|51.54|172|W|,Heroica Caborca|MX26|MX|-112.16|30.72|59|N|caborca,Heroica Ciudad de Juchitan de Zaragoza|MX20|MX|-95.02|16.43|88|N|juchitan de zaragoza;juchitan,Heroica Guaymas|MX26|MX|-110.9|27.92|117|N|guaymas,Heroica Matamoros|MX28|MX|-97.5|25.88|510|NW|matamoros,Heroica Zitacuaro|MX16|MX|-100.36|19.44|84|N|,Herriman|UT|US|-112.03|40.51|30|N|,Heshan|hunan|CN|112.35|28.57|1249|W|,Hesperia|CA|US|-117.3|34.43|93|N|,Hetauda|bagmati province|NP|85.03|27.43|195|W|,Heyuan|guangdong|CN|114.68|23.73|463|W|che juan;ha nguyen,Heze|shandong|CN|115.47|35.24|1346|W|che ce,Hezhou|guangxi|CN|111.57|24.4|1005|W|che cou,Hialeah|FL|US|-80.28|25.86|237|NW|,Hickory|NC|US|-81.34|35.73|40|N|,Hicksville|NY|US|-73.53|40.77|41|N|,Hidalgo del Parral|MX06|MX|-105.67|26.93|104|N|parral,Higashihiroshima|hiroshima|JP|132.74|34.41|196|W|,Higashimurayama|tokyo|JP|139.47|35.75|151|W|,Higashiosaka|osaka|JP|135.58|34.67|493|W|,High Point|NC|US|-80.01|35.96|110|N|,High Wycombe|england|GB|-0.75|51.63|133|W|,Highland|CA|US|-117.21|34.13|54|N|,Highland Park|IL|US|-87.8|42.18|29|N|,Highlands Ranch|CO|US|-104.97|39.55|96|N|,Hilliard|OH|US|-83.16|40.03|33|N|,Hillsboro|OR|US|-122.99|45.52|102|N|,Hillsborough|NJ|US|-74.63|40.48|38|N|,Hilo|HI|US|-155.09|19.73|43|N|baie de hilo,Hilton Head|SC|US|-80.75|32.22|37|N|hilton head island,Hilton Head Island|SC|US|-80.74|32.19|40|N|ile de hilton head,Himeji|hyogo|JP|134.7|34.82|530|W|,Hindupur|andhra pradesh|IN|77.49|13.83|151|W|,Hinesville|GA|US|-81.6|31.85|33|N|,Hino|tokyo|JP|139.4|35.67|190|W|,Hinthada|ayeyarwady|MM|95.46|17.65|134|W|henzada,Hirakata|osaka|JP|135.65|34.81|406|W|,Hiratsuka|kanagawa|JP|139.34|35.33|258|W|,Hirosaki|aomori|JP|140.47|40.59|168|W|,Hiroshima|hiroshima|JP|132.45|34.4|1200|W|hiroshima shi;hiroshimashi;hiroszima;hiroxima;hirosima,Hisar|haryana|IN|75.72|29.15|307|W|,Hitachi|ibaraki|JP|140.65|36.6|174|W|,Hitachi-Naka|ibaraki|JP|140.53|36.4|156|W|,Hlaingthaya|yangon|MM|96.07|16.85|687|W|,Ho|volta|GH|0.47|6.6|130|W|,Ho Chi Minh City|ho chi minh city hcmc|VN|106.63|10.82|14002|W|ho chi minh stadt;ho chi minh ville;hcmv;tphcm;cidade de ho chi minh;ciudad ho chi minh;ho chi minh;ho chi minh byen;ho chi minh staden;ho chi minhstad;ho ci minovo mesto;saigon;sai gon,Hoa Thanh|tay ninh|VN|106.13|11.29|147|W|,Hoan Kiem|hanoi|VN|105.85|21.03|135|W|,Hobart|tasmania|AU|147.33|-42.88|254|W|,Hobart|IN|US|-87.26|41.53|28|N|,Hobbs|NM|US|-103.14|32.7|38|N|,Hoboken|NJ|US|-74.03|40.74|53|N|,Hoffman Estates|IL|US|-88.08|42.04|52|N|,Hohhot|inner mongolia|CN|111.65|40.81|2350|W|choch chot;huhhot;kweisui,Hoji ya Henda|luanda|AO|13.29|-8.81|642|W|,Holbrook|NY|US|-73.08|40.81|27|N|,Holguin|holguin province|CU|-76.26|20.89|319|W|,Holladay|UT|US|-111.82|40.67|30|N|,Holland|MI|US|-86.11|42.79|33|N|,Hollister|CA|US|-121.4|36.85|37|N|,Holly Springs|NC|US|-78.83|35.65|31|N|,Hollywood|CA|US|-118.33|34.1|167|NW|,Hollywood|FL|US|-80.15|26.01|149|NW|,Holmesburg|PA|US|-75.03|40.04|28|N|,Holon|tel aviv|IL|34.78|32.01|196|W|cholon;jolon,Holyoke|MA|US|-72.62|42.2|40|N|,Homestead|FL|US|-80.48|25.47|80|N|,Homewood|AL|US|-86.8|33.47|25|N|,Homs|homs|SY|36.73|34.72|775|W|hims;hums;humus,Homyel'|homyel voblasc|BY|30.98|52.43|501|W|homel;homiel;gomel,Honcho|chiba|JP|139.99|35.7|644|W|funabashi,Hong Kong||HK|114.17|22.28|7396|W|hongkong;victoria,Hong Kong Island||HK|114.18|22.26|1195|W|hong kong,Honggang|heilongjiang|CN|124.88|46.4|147|W|,Hongkou|shanghai|CN|121.49|31.25|687|W|,Honolulu|HI|US|-157.86|21.31|350|NW|,Hoofddorp|north holland|NL|4.69|52.3|132|W|,Hoover|AL|US|-86.81|33.41|84|N|,Hopkinsville|KY|US|-87.49|36.87|32|N|,Horlivka|donetsk|UA|38.02|48.3|239|W|gorlowka;gorlovka;horliwka,Horn Lake|MS|US|-90.03|34.96|26|N|,Horta-Guinardo|catalonia|ES|2.17|41.42|168|W|,Hortaleza|madrid|ES|-3.64|40.47|161|W|,Hortolandia|sao paulo|BR|-47.22|-22.86|236|W|,Hosa'ina|central ethiopia regional state|ET|37.85|7.55|188|W|,Hosapete|karnataka|IN|76.39|15.27|206|W|hospet,Hoshiarpur|punjab|IN|75.91|31.54|168|W|,Hosur|tamil nadu|IN|77.83|12.74|229|W|,Hot Springs|AR|US|-93.06|34.5|35|N|,Hougang New Town||SG|103.89|1.36|227|W|hougang,Houma|LA|US|-90.72|29.6|34|N|,Houston|TX|US|-95.36|29.76|2314|NW|,Howard Beach|NY|US|-73.84|40.66|26|N|,Howrah|west bengal|IN|88.32|22.58|1027|W|haora,Hrodna|grodnenskaya|BY|23.83|53.68|363|W|goradnia;grodno,Hsinchu|taiwan|TW|120.97|24.8|453|W|kota hsinchu;sin cu;tan truc;xinzhu,Huadian|jilin|CN|126.74|42.97|139|W|,Huai'an|jiangsu|CN|119.02|33.59|2494|W|chuaj an;huaiyin,Huaibei|anhui|CN|116.79|33.97|1113|W|chuaj pej,Huaihua|hunan|CN|110|27.56|552|W|chuaj chua;hoai hoa,Huainan|anhui|CN|117|32.63|1666|W|,Huamantla|MX29|MX|-97.93|19.31|51|N|,Huambo|huambo|AO|15.74|-12.78|595|W|,Huancayo|junin|PE|-75.21|-12.07|456|W|,Huanggang|hubei|CN|114.87|30.45|366|W|chuang kang;hoang cuong;hwang chau;hwang chow;hwangchow;wangchau;wangchou,Huanggang|guangdong|CN|117|23.68|225|W|,Huangpu|shanghai|CN|121.48|31.24|504|W|,Huangshan|anhui|CN|118.31|29.71|460|W|chuang san;hoang son;huangshan city,Huangshi|hubei|CN|115.05|30.25|688|W|chuang s,Huanuco|huanuco department|PE|-76.24|-9.93|196|W|,Huatabampo|MX26|MX|-109.64|26.83|30|N|,Huatusco|MX30|MX|-96.97|19.15|31|N|,Huauchinango|MX21|MX|-98.05|20.17|56|N|,Huayin|shaanxi|CN|110.07|34.57|242|W|,Hub|balochistan|PK|66.89|25.03|195|W|,Hubballi|karnataka|IN|75.13|15.35|943|W|hubli,Huber Heights|OH|US|-84.12|39.84|38|N|,Huddersfield|england|GB|-1.78|53.65|149|W|,Hue|thua thien hue province|VN|107.6|16.46|1380|W|,Huejotzingo|MX21|MX|-98.41|19.16|25|N|,Huejutla de Reyes|MX13|MX|-98.42|21.14|40|N|,Huelva|andalusia|ES|-6.94|37.27|144|W|,Hugli|west bengal|IN|88.4|22.91|177|W|,Huimanguillo|MX27|MX|-93.39|17.83|27|N|,Huinong|ningxia|CN|106.77|39.23|136|W|,Huixing|chongqing|CN|106.61|29.68|186|W|,Huixquilucan|MX15|MX|-99.35|19.36|124|N|,Huixtla|MX05|MX|-92.46|15.14|32|N|,Huizhou|guangdong|CN|114.42|23.11|2900|W|chuej cou,Hulan Ergi|heilongjiang|CN|123.63|47.2|265|W|,Hull|QC|CA|-75.71|45.43|63|N|,Huludao|liaoning|CN|120.84|40.75|944|W|,Hulunbuir|inner mongolia|CN|119.76|49.21|349|W|,Humen|guangdong|CN|113.67|22.82|191|W|,Hungnam|south hamgyong|KP|127.63|39.84|346|W|,Huntersville|NC|US|-80.84|35.41|52|N|,Huntington|WV|US|-82.45|38.42|48|N|,Huntington Beach|CA|US|-118|33.66|201|NW|,Huntington Park|CA|US|-118.23|33.98|59|N|,Huntington Station|NY|US|-73.41|40.85|33|N|,Huntley|IL|US|-88.43|42.17|26|N|,Hunts Point|NY|US|-73.88|40.81|27|N|,Huntsville|AL|US|-86.59|34.73|215|NW|,Huntsville|TX|US|-95.55|30.72|40|N|,Huocheng|xinjiang|CN|80.87|44.05|360|W|huocheng county,Hurghada|red sea|EG|33.81|27.26|207|W|hurgada,Hurst|TX|US|-97.17|32.82|39|N|,Hutchinson|KS|US|-97.93|38.06|41|N|,Huyen Lam Ha|lam dong|VN|108.21|11.82|144|W|lam ha;lam ha district,Huzhou|zhejiang|CN|120.09|30.87|1015|W|,Hwaseong-si|gyeonggi do|KR|126.82|37.21|640|W|hwaseong,Hyde Park|MA|US|-71.12|42.26|31|N|,Hyde Park|IL|US|-87.59|41.79|26|N|,Hyderabad|telangana|IN|78.46|17.38|6993|W|haiderabad;hajdarabad,Hyderabad|sindh|PK|68.38|25.4|1921|W|hajdarabad;haydarabad,Hyesan|yanggang do|KP|128.18|41.4|192|W|,Iasi|iasi county|RO|27.6|47.17|378|W|jassy;jasy;yas;jassenmarkt,Ibadan|oyo state|NG|3.91|7.38|3649|W|,Ibague|tolima department|CO|-75.2|4.44|529|W|,Ibaraki|osaka|JP|135.57|34.82|287|W|,Ibarra|imbabura|EC|-78.12|0.35|221|W|,Ibb|ibb governorate|YE|44.18|13.97|771|W|,Ibirite|minas gerais|BR|-44.06|-20.02|179|W|,'Ibri|ad dhahirah|OM|56.52|23.23|163|W|,Ica|ica|PE|-75.73|-14.08|282|W|ika,Ichalkaranji|maharashtra|IN|74.46|16.69|287|W|,Icheon-si|gyeonggi do|KR|127.44|37.28|196|W|icheon,Ichihara|chiba|JP|140.08|35.52|283|W|,Ichikawa|chiba|JP|139.91|35.73|496|W|,Ichinomiya|aichi|JP|136.8|35.3|380|W|owari ichinomiya,Idaho Falls|ID|US|-112.03|43.47|59|N|,Idku|beheira|EG|30.3|31.31|177|W|,Ifakara|morogoro|TZ|36.68|-8.13|205|W|,Igboho|oyo state|NG|3.76|8.84|136|W|,Iguala de la Independencia|MX12|MX|-99.54|18.35|118|N|,Iguatemi|sao paulo|BR|-46.43|-23.61|149|W|,Ijebu Ode|ogun state|NG|3.92|6.82|360|W|,Ijero-Ekiti|ekiti state|NG|5.07|7.82|167|W|,Ikare|ondo state|NG|5.75|7.53|465|W|,Ikeja|lagos|NG|3.34|6.6|313|W|,Ikire|osun state|NG|4.19|7.37|222|W|,Ikirun|osun state|NG|4.67|7.91|134|W|,Ikot Ekpene|akwa ibom state|NG|7.71|5.18|254|W|,Iksan|jeollabuk do|KR|126.95|35.94|307|W|,Ila Orangun|osun state|NG|4.9|8.02|179|W|,Ilagan|cagayan valley|PH|121.89|17.15|164|W|,Ilam|ilam province|IR|46.42|33.64|140|W|,Ile-Ife|osun state|NG|4.56|7.48|560|W|,Ilesa|osun state|NG|4.74|7.63|325|W|,Ilford|england|GB|0.07|51.56|168|W|,Ilheus|bahia|BR|-39.03|-14.8|189|W|sao jorge dos ilheos,Iligan|northern mindanao|PH|124.24|8.23|342|W|,Iligan City|soccsksargen|PH|124.4|8.25|312|W|,Iloilo|western visayas|PH|122.56|10.7|473|W|iloilo city,Ilorin|kwara state|NG|4.54|8.5|1080|W|,Imabari|ehime|JP|133|34.07|170|W|,Imperatriz|maranhao|BR|-47.49|-5.53|273|W|,Imperial Beach|CA|US|-117.11|32.58|27|N|,Imphal|manipur|IN|93.94|24.81|277|W|,Imus|calabarzon|PH|120.94|14.43|481|W|,Inazawa|aichi|JP|136.78|35.25|134|W|,Incheon|incheon|KR|126.71|37.46|3015|W|inch on;incheon si;inchon;incchon;nhan xuyen;chemulpo,Indaiatuba|sao paulo|BR|-47.21|-23.09|256|W|,Independence|MO|US|-94.42|39.09|117|N|,Independence|KY|US|-84.54|38.94|26|N|,Indian Trail|NC|US|-80.67|35.08|37|N|,Indianapolis|IN|US|-86.16|39.77|887|NW|indpls,Indio|CA|US|-116.22|33.72|87|N|,Indore|madhya pradesh|IN|75.83|22.72|1994|W|indhur,Inegol|bursa province|TR|29.51|40.08|133|W|,Inezgane|souss massa|MA|-9.54|30.36|142|W|,Inglewood|CA|US|-118.35|33.96|111|N|,Ingombota|luanda|AO|13.23|-8.82|144|W|,Inisa|osun state|NG|4.33|7.85|164|W|,Innisfil|ON|CA|-79.65|44.3|43|N|,Innsbruck|tyrol|AT|11.39|47.26|132|W|,Insein|yangon|MM|96.1|16.89|247|W|,Inver Grove Heights|MN|US|-93.04|44.85|34|N|inver grove,Iowa City|IA|US|-91.53|41.66|74|N|,Ipatinga|minas gerais|BR|-42.54|-19.47|235|W|,Ipoh|perak|MY|101.08|4.58|759|W|,Ipswich|england|GB|1.16|52.06|178|W|,Iquique|tarapaca|CL|-70.15|-20.21|199|W|,Iquitos|loreto|PE|-73.25|-3.75|377|W|,Irakleion|crete|GR|25.14|35.33|137|W|heraklion;candia;heracliao;heraclion;herakleion;iraklio;iraklion;iraclio;kandiye,Iranshahr|sistan and baluchestan|IR|60.68|27.2|131|W|,Irapuato|MX11|MX|-101.36|20.67|380|NW|,Irbid|irbid|JO|35.85|32.56|569|W|,Irewe|lagos|NG|3.14|6.42|139|W|,Iringa|iringa|TZ|35.7|-7.77|202|W|,Irkutsk|irkutsk oblast|RU|104.29|52.3|623|W|irkoetsk;irkoutsk;irkuck;irkutsc;irkutk,Irondequoit|NY|US|-77.58|43.21|51|N|,Iruma|saitama|JP|139.37|35.82|147|W|,Irvine|CA|US|-117.82|33.67|256|NW|,Irving|TX|US|-96.95|32.81|236|NW|,Irving Park|IL|US|-87.74|41.95|56|N|,Irvington|NJ|US|-74.23|40.73|61|N|,Isahaya|nagasaki|JP|130.04|32.84|135|W|,Ise-Ekiti|ekiti state|NG|5.42|7.46|190|W|,Isesaki|gunma|JP|139.2|36.32|211|W|,Iseyin|oyo state|NG|3.6|7.97|365|W|,Isfahan|isfahan|IR|51.67|32.65|1547|W|esfahan;ispahan;kota isfahan,Isfara|sughd|TJ|70.63|40.13|274|W|,Ishinomaki|miyagi|JP|141.3|38.42|140|W|,Isidro Casanova|buenos aires|AR|-58.59|-34.7|131|W|,Isiro|haut uele|CD|27.62|2.77|255|W|,Iskandar Puteri|johor|MY|103.62|1.39|575|W|,Iskenderun|hatay|TR|36.17|36.59|251|W|alejandreta;aleksandretta;alexandretta,Isla|MX30|MX|-95.53|18.03|26|N|,Islamabad|islamabad|PK|73.04|33.72|601|W|islamabade,Islington|england|GB|-0.1|51.54|319|W|,Islington-City Centre West|ON|CA|-79.54|43.63|43|N|,Ismailia|ismailia|EG|32.27|30.6|429|W|el ismalia;ismalia;ismailija;ismailiye,Isparta|isparta|TR|30.55|37.76|172|W|,Issaquah|WA|US|-122.03|47.53|36|N|,Istanbul|istanbul|TR|28.95|41.01|15701|W|estambul;istambul;stambul;byzance;byzantion;byzantium;constantinopla;constantinople;constantinopolen;costantinopoli;konstantinopel;micklagard,Istaravshan|sughd|TJ|69|39.91|273|W|istaravchan;istaravsjan;istaravsan;istarawschan;istarawshan;istarawszan,Itabashi|tokyo|JP|139.71|35.75|584|W|tabashi city,Itaborai|rio de janeiro|BR|-42.86|-22.74|240|W|,Itabuna|bahia|BR|-39.28|-14.79|196|W|,Itaguei|antioquia|CO|-75.6|6.18|281|W|itagui,Itaim Paulista|sao paulo|BR|-46.39|-23.5|205|W|,Itaituba|para|BR|-55.98|-4.28|135|W|,Itajai|santa catarina|BR|-48.66|-26.91|294|W|itajahy,Itami|hyogo|JP|135.4|34.78|198|W|,Itapecerica da Serra|sao paulo|BR|-46.85|-23.72|163|W|,Itapetininga|sao paulo|BR|-48.05|-23.59|164|W|,Itapevi|sao paulo|BR|-46.93|-23.55|240|W|,Itapipoca|ceara|BR|-39.58|-3.49|138|W|,Itaquaquecetuba|sao paulo|BR|-46.35|-23.49|369|W|,Itaquera|sao paulo|BR|-46.44|-23.53|210|W|,Ithaca|NY|US|-76.5|42.44|30|N|,Itu|sao paulo|BR|-47.3|-23.26|175|W|,Ituzaingo|corrientes|AR|-56.69|-27.59|168|W|,Ivano-Frankivsk|ivano frankivsk|UA|24.71|48.92|238|W|ivano frankivs k;iwano frankiwsk;stanislaopoli;stanislau;stanislaw;stanislawow,Ivanovo|ivanovo oblast|RU|40.97|57|406|W|iwanowo,Ivory Park|gauteng|ZA|28.2|-26|184|W|,Iwaki|fukushima|JP|140.88|37.05|357|W|,Iwata|shizuoka|JP|137.85|34.7|166|W|,Iwo|osun state|NG|4.18|7.64|250|W|,Ixmiquilpan|MX13|MX|-99.22|20.48|34|N|,Ixtaczoquitlan|MX30|MX|-97.06|18.85|26|N|,Ixtapa|MX14|MX|-105.21|20.72|29|N|,Ixtapa-Zihuatanejo|MX12|MX|-101.55|17.64|67|N|jose azueta;zihuatanejo,Ixtapaluca|MX15|MX|-98.88|19.32|322|NW|iztapaluca,Ixtepec|MX20|MX|-95.1|16.56|25|N|san geronimo ixtepec;ciudad ixtepec,Izhevsk|udmurtiya republic|RU|53.2|56.85|648|W|izjevsk;ijevsk;ischewsk;izewsk;izevsk,Izmir|izmir province|TR|27.14|38.41|2938|W|esmirna;smirne,Izmit|kocaeli|TR|29.93|40.76|196|W|nicomedia;nicomedie;nikomedia,Iztacalco|MX09|MX|-99.1|19.4|384|NW|,Iztapalapa|MX09|MX|-99.06|19.36|1835|NW|delegacion iztapalapa;delegazione iztapalapa,Izucar de Matamoros|MX21|MX|-98.46|18.6|42|N|izucar,Izumi|osaka|JP|135.43|34.48|184|W|,Izumo|shimane|JP|132.77|35.37|172|W|,Jabalpur|madhya pradesh|IN|79.95|23.17|1081|W|dzabalpur,Jabalya|gaza strip|PS|34.48|31.53|168|W|jabalia,Jabaquara|sao paulo|BR|-46.65|-23.65|214|W|,Jaboatao dos Guararapes|pernambuco|BR|-35.01|-8.11|644|W|,Jacarei|sao paulo|BR|-45.97|-23.31|250|W|,Jackson|MS|US|-90.18|32.3|153|NW|,Jackson|TN|US|-88.81|35.61|66|N|,Jackson|NJ|US|-74.86|39.78|54|N|,Jackson|MI|US|-84.4|42.25|33|N|,Jackson Heights|NY|US|-73.89|40.76|67|N|,Jacksonville|FL|US|-81.66|30.33|1009|NW|,Jacksonville|NC|US|-77.43|34.75|67|N|,Jacksonville|AR|US|-92.11|34.87|28|N|,Jacmel|sud est|HT|-72.54|18.24|137|W|yaquimo,Jacobabad|sindh|PK|68.44|28.28|219|W|khangarh,Jacona de Plancarte|MX16|MX|-102.31|19.96|53|N|,Jaffna|northern province|LK|80.01|9.67|169|W|dzafna,Jahrom|fars|IR|53.56|28.5|141|W|,Jaigaon|west bengal|IN|89.38|26.85|158|W|,Jaipur|rajasthan|IN|75.79|26.92|3046|W|dzajpur,Jajmau|uttar pradesh|IN|80.41|26.43|652|W|,Jakarta|jakarta|ID|106.85|-6.21|8540|W|cakarta;djakarta;dzakarta;giacarta;yakarta;batavia;sunda kelapa;sundapura,Jalalabad|nangarhar|AF|70.45|34.43|271|W|celalabad;dschalalabad;dzalalabad,Jalalpur Jattan|punjab|PK|74.21|32.64|146|W|,Jalalpur Pirwala|punjab|PK|71.22|29.51|500|W|dzalalpur pirwala,Jalandhar|punjab|IN|75.58|31.33|868|W|dzalandhar,Jalapa|jalapa|GT|-89.99|14.64|159|W|,Jalgaon|maharashtra|IN|75.57|21|460|W|,Jalna|maharashtra|IN|75.89|19.84|285|W|,Jaltipan de Morelos|MX30|MX|-94.71|17.97|32|N|,Jamaica|NY|US|-73.81|40.69|216|NW|,Jamaica Plain|MA|US|-71.12|42.31|37|N|,Jamalpur|mymensingh division|BD|89.95|24.92|167|W|,Jambi City|jambi|ID|103.62|-1.6|635|W|jambi,Jamestown|NY|US|-79.24|42.1|30|N|,Jammu|jammu and kashmir|IN|74.86|32.74|576|W|dzammu,Jamnagar|gujarat|IN|70.07|22.47|600|W|dzamnagar,Jampur|punjab|PK|70.6|29.64|155|W|,Jamshedpur|jharkhand|IN|86.19|22.8|1339|W|cemsidpur;dzamsedpur,Jamuria|west bengal|IN|87.08|23.7|160|W|,Janakpur|madhesh|NP|85.93|26.73|195|W|janakpur dham,Janesville|WI|US|-89.02|42.68|64|N|,Janzur|al jafarah|LY|13.02|32.82|154|W|,Jaragua|sao paulo|BR|-46.74|-23.44|211|W|,Jaragua do Sul|santa catarina|BR|-49.07|-26.49|199|W|,Jaranwala|punjab|PK|73.42|31.33|150|W|,Jardim Angela|sao paulo|BR|-46.77|-23.72|311|W|,Jardim Sao Luis|sao paulo|BR|-46.74|-23.68|259|W|,Jardines de la Silla|MX19|MX|-100.19|25.63|53|N|,Jau|sao paulo|BR|-48.56|-22.3|133|W|,Jaunpur|uttar pradesh|IN|82.69|25.75|169|W|jawnpur,Jayapura|papua|ID|140.72|-2.53|410|W|jaya pura;kota jayapura;port numbay;hollandia;noordwijk,Jebel Ali|dubai|AE|55.11|25|210|W|,Jeddah|mecca region|SA|39.19|21.49|4697|W|cidde;djedda;djeddah;dschidda;dzudda;dzidda;jedda;jidda;jida;yida;yidda,Jefferson City|MO|US|-92.17|38.58|42|N|kota jefferson,Jeffersontown|KY|US|-85.56|38.19|26|N|,Jeffersonville|IN|US|-85.74|38.28|46|N|,Jeju City|jeju do|KR|126.52|33.51|488|W|czedzu;jeju;jeju sehri;kota jeju,Jember|east java|ID|113.7|-8.17|298|W|,Jeongeup|jeollabuk do|KR|126.92|35.6|139|W|,Jeonju|jeollabuk do|KR|127.15|35.82|638|W|chonju;condzu,Jepara|central java|ID|110.67|-6.59|1257|W|,Jerez de Garcia Salinas|MX32|MX|-102.99|22.65|43|N|,Jerez de la Frontera|andalusia|ES|-6.14|36.69|212|W|jerez;xeres,Jersey City|NJ|US|-74.08|40.73|264|NW|,Jerusalem|jerusalem|IL|35.22|31.77|971|W|gerusalemme;jerozolima;jerusalen;jeruzalem;al quds;ariel;ierusalim;kudus;yerusalem;zion,Jessore|khulna division|BD|89.21|23.17|243|W|,Jesus Maria|MX01|MX|-102.34|21.96|43|N|,Jhang Sadr|punjab|PK|72.32|31.27|606|W|jhang;jhang sadar,Jhansi|uttar pradesh|IN|78.58|25.46|412|W|,Jhelum|punjab|PK|73.73|32.93|190|W|alessandria bucefala;dzhelam;jhelam,Ji'an|jiangxi|CN|114.98|27.12|538|W|,Ji Parana|rondonia|BR|-61.95|-10.89|140|W|,Jiading|shanghai|CN|121.24|31.39|1886|W|,Jiagedaqi|inner mongolia|CN|124.12|50.42|135|W|jagdaqi,Jiamusi|heilongjiang|CN|130.31|46.8|549|W|tia mu s,Jiangmen|guangdong|CN|113.08|22.58|1795|W|giang mon;kongmoon;tiang men,Jiangyin|jiangsu|CN|120.26|31.91|1779|W|kiang ying,Jianshui|yunnan|CN|101.22|24.28|490|W|,Jiaojiang|zhejiang|CN|121.47|28.7|470|W|,Jiaozhou|shandong|CN|120|36.28|619|W|,Jiaozuo|henan|CN|113.24|35.24|865|W|tieu tac;tiao cuo,Jiashan|zhejiang|CN|120.93|30.85|137|W|,Jiawang|jiangsu|CN|117.44|34.43|133|W|,Jiaxing|zhejiang|CN|120.75|30.75|1180|W|gia hung;tia sing,Jiayuguan|gansu|CN|98.29|39.81|231|W|tia ju kuan,Jiazi|guangdong|CN|116.07|22.88|130|W|,Jieshi|guangdong|CN|115.83|22.81|137|W|,Jieshou|anhui|CN|115.36|33.26|141|W|,Jieyang|guangdong|CN|116.37|23.54|1899|W|tie jang,Jijel|jijel|DZ|5.76|36.82|131|W|dzidzili;yiyel;jijelli,Jijiang|chongqing|CN|106.25|29.29|196|W|,Jijiga|somali|ET|42.8|9.35|483|W|djidjiga;dschidschiga;dzidziga,Jilin|jilin|CN|126.56|43.85|1895|W|jilin city;ciudad de jilin;cat lam;kota jilin;ti lin,Jimeta|adamawa|NG|12.46|9.28|248|W|,Jimma|oromiya|ET|36.83|7.67|250|W|dzimma;gimma;jima,Jinan|shandong|CN|117|36.67|4335|W|ti nan,Jinchang|gansu|CN|102.19|38.5|228|W|kim xuong;tin cchang,Jincheng|shanxi|CN|112.83|35.5|476|W|,Jind|haryana|IN|76.32|29.32|167|W|,Jing'an|shanghai|CN|121.42|31.22|936|W|,Jing'an|guangdong|CN|113.29|22.21|186|W|,Jingdezhen|jiangxi|CN|117.21|29.29|473|W|,Jinghong|yunnan|CN|100.77|22|205|W|,Jingling|hubei|CN|113.1|30.65|224|W|,Jingmen|hubei|CN|112.2|31.03|632|W|kinh mon;ting men,Jingzhou|hubei|CN|112.19|30.35|1052|W|kinh chau;ting cou,Jinhua|zhejiang|CN|119.64|29.11|1463|W|kim hoa;tin chua,Jining|shandong|CN|116.58|35.41|1241|W|ti ning,Jining|inner mongolia|CN|113.11|41.03|258|W|,Jinjiang|fujian|CN|118.57|24.82|1416|W|,Jinshan|shanghai|CN|121.29|30.84|822|W|,Jinshanlu|xinjiang|CN|88.13|47.85|190|W|altay,Jinzhong|shanxi|CN|112.75|37.68|1226|W|,Jinzhou|liaoning|CN|121.14|41.11|604|W|tin cou,Jiroft|kerman|IR|57.74|28.68|130|W|,Jiujiang|jiangxi|CN|116|29.7|1164|W|ciuciang;tiou tiang,Jiuquan|gansu|CN|98.52|39.74|428|W|tiou cchuan,Jiutai|jilin|CN|125.83|44.15|175|W|,Jiutepec|MX17|MX|-99.18|18.88|215|NW|,Jixi|heilongjiang|CN|130.96|45.29|403|W|ke tay;ti si,Jiyuan|henan|CN|112.59|35.09|242|W|,Jizhou|hebei|CN|115.57|37.55|362|W|,Jizzax|jizzakh region|UZ|67.83|40.13|179|W|cizzak;djizak;djizaks;dschizak;dzjizak;dzyzak;jizzak;jizzakh,Joao Pessoa|paraiba|BR|-34.86|-7.12|817|W|,Jodhpur|rajasthan|IN|73.01|26.27|1056|W|dzodhpur;dzodpur,Joetsu|niigata|JP|138.24|37.15|189|W|,Johannesburg|gauteng|ZA|28.04|-26.2|9418|W|johannesbourg;jo anna;joanesburgo;johannesburgo,Johns Creek|GA|US|-84.2|34.03|83|N|,Johnson City|TN|US|-82.35|36.31|66|N|,Johnston|RI|US|-71.51|41.82|29|N|,Johor Bahru|johor|MY|103.76|1.47|858|W|johor baharu,Joint Base Pearl Harbor Hickam|HI|US|-157.95|21.35|42|N|,Joinville|santa catarina|BR|-48.85|-26.3|664|W|,Joliet|IL|US|-88.08|41.53|147|NW|,Joliette|QC|CA|-73.42|46.02|34|N|,Jomvu|mombasa county|KE|39.61|-3.99|163|W|,Jonesboro|AR|US|-90.7|35.84|73|N|,Jonquiere|QC|CA|-71.25|48.42|54|N|,Joplin|MO|US|-94.51|37.08|51|N|,Jos|plateau state|NG|8.89|9.93|1040|W|dzos,Jose C. Paz|buenos aires|AR|-58.77|-34.52|230|W|,Jose Mariano Jimenez|MX06|MX|-104.92|27.13|34|N|,Juazeiro|bahia|BR|-40.5|-9.41|256|W|,Juazeiro do Norte|ceara|BR|-39.32|-7.21|305|W|,Juba|central equatoria|SS|31.58|4.85|450|W|djouba;dschuba,Juiz de Fora|minas gerais|BR|-43.35|-21.76|540|W|,Juja|kiambu county|KE|37.01|-1.1|156|W|,Juliaca|puno|PE|-70.13|-15.5|245|W|,Junagadh|gujarat|IN|70.46|21.52|319|W|,Jundiai|sao paulo|BR|-46.88|-23.19|443|W|,Juneau|AK|US|-134.42|58.3|31|N|,Jupiter|FL|US|-80.09|26.93|62|N|,Jurong Town||SG|103.72|1.33|262|W|,Jurong West||SG|103.72|1.35|253|W|,Jutiapa|jutiapa|GT|-89.89|14.28|145|W|,Juventino Rosas|MX11|MX|-101|20.64|42|N|,Jyvaeskylae|central finland|FI|25.72|62.24|148|W|jyvaskyla,Kabankalan|western visayas|PH|122.81|9.98|210|W|,Kabin Buri|prachin buri|TH|101.72|13.95|140|W|,Kabinda|lomami|CD|24.48|-6.14|219|W|,Kabul|kabul|AF|69.17|34.53|4434|W|cabul;kaboel;kaboul;kabil,Kabwe|central province|ZM|28.45|-14.45|288|W|,Kadapa|andhra pradesh|IN|78.82|14.48|344|W|cuddapah,Kadoma|osaka|JP|135.57|34.74|131|W|,Kaduna|kaduna state|NG|7.44|10.53|1850|W|,Kaech'on|south pyongan|KP|125.89|39.7|319|W|,Kaesong|kaesong|KP|126.55|37.97|338|W|,Kafr ash Shaykh|kafr el sheikh|EG|30.94|31.11|194|W|,Kafrul|dhaka division|BD|90.37|23.79|339|W|,Kagoshima|kagoshima|JP|130.55|31.57|595|W|kagosima,Kahama|shinyanga|TZ|32.6|-3.83|453|W|,Kahramanmaras|kahramanmaras|TR|36.93|37.58|384|W|,Kahului|HI|US|-156.47|20.89|26|N|,Kaifeng|henan|CN|114.31|34.8|1451|W|kai feng;kchaj feng;khai phong,Kaili|guizhou|CN|107.98|26.59|275|W|,Kailua|HI|US|-157.74|21.4|38|N|,Kairouan|kairouan|TN|10.1|35.68|139|W|cairuao;kairuan;kayravan;qairawan;qayrawan,Kaithal|haryana|IN|76.4|29.8|144|W|,Kaiyuan|yunnan|CN|103.3|23.7|198|W|,Kajang|selangor|MY|101.79|2.99|236|W|,Kajansi|central region|UG|32.53|0.22|135|W|,Kakamega|kakamega county|KE|34.75|0.28|1867|W|,Kakamigahara|gifu|JP|136.87|35.42|144|W|,Kakinada|andhra pradesh|IN|82.24|16.96|384|W|,Kakogawacho-honmachi|hyogo|JP|134.83|34.77|271|W|kakogawa,Kalaban Koro|koulikoro|ML|-8.03|12.57|148|W|,Kalaburagi|karnataka|IN|76.84|17.34|543|W|gulbarga;kalaburgi,Kalamazoo|MI|US|-85.59|42.29|76|N|,Kalemie|tanganyika|CD|29.19|-5.95|160|W|,Kalemyo|sagaing region|MM|94.06|23.19|348|W|,Kalihi-Palama|HI|US|-157.88|21.33|43|N|kalihi,Kaliningrad|kaliningrad oblast|RU|20.51|54.71|475|W|krolewiec;caliningrado;kaliningrado;konigsberg;konigsberg in preussen,Kalininskiy|st petersburg|RU|30.39|60|504|W|,Kallakurichi|tamil nadu|IN|78.96|11.73|1682|W|,Kalol|gujarat|IN|72.5|23.25|134|W|,Kaluga|kaluga oblast|RU|36.27|54.53|340|W|kaloega;kalouga,Kalyan|maharashtra|IN|73.14|19.24|1262|W|,Kamakura|kanagawa|JP|139.55|35.31|172|W|,Kamalia|punjab|PK|72.65|30.73|166|W|,Kamalshahr|alborz province|IR|50.87|35.86|141|W|,Kamarhati|west bengal|IN|88.37|22.67|332|W|,Kamensk-Ural'skiy|sverdlovsk oblast|RU|61.93|56.41|182|W|kamensk uralskij;kamensk uralsky;kamensk uralski,Kamina|haut lomami|CD|25|-8.74|200|W|,Kamirenjaku|tokyo|JP|139.55|35.69|195|W|,Kamloops|BC|CA|-120.32|50.67|104|N|,Kamoke|punjab|PK|74.22|31.98|292|W|,Kampala|central region|UG|32.58|0.32|1680|W|campala,Kampong Baharu Cheras Batu Sebelas|selangor|MY|101.77|3.05|232|W|,Kampong Pasir Ris||SG|103.93|1.38|144|W|,Kampung Baru Subang|selangor|MY|101.53|3.15|833|W|,Kampung Kangkar Teberau|johor|MY|103.75|1.53|412|W|,Kampung Larkin Lama|johor|MY|103.74|1.5|500|W|,Kampung Pasir Gudang Baru|johor|MY|103.88|1.47|145|W|,Kampung Sungai Ara|penang|MY|100.27|5.33|140|W|,Kampung Sungai Glugur|penang|MY|100.31|5.37|145|W|,Kamyanske|dnipropetrovsk|UA|34.61|48.52|226|W|dnieprodzierzynsk;dniprodzerzyns k;kam jans ke;kamianske;kamienskie;dniprodzerzhynsk,Kananga|kasai central|CD|22.42|-5.9|1247|W|kanange,Kanasin|MX31|MX|-89.56|20.93|77|N|,Kanata|ON|CA|-75.92|45.3|90|N|,Kanayannur|kerala|IN|76.27|9.97|851|W|,Kanazawa|ishikawa|JP|136.62|36.6|466|W|,Kanchipuram|tamil nadu|IN|79.7|12.84|221|W|kancheepuram;kancipuram;conjevaram,Kanchrapara|west bengal|IN|88.43|22.96|136|W|,Kandahar|kandahar|AF|65.71|31.61|523|W|kandehar,Kaneohe|HI|US|-157.8|21.4|34|N|,Kanggye|chagang|KP|126.59|40.97|209|W|,Kankakee|IL|US|-87.86|41.12|26|N|,Kankan|kankan region|GN|-9.31|10.39|221|W|,Kannapolis|NC|US|-80.62|35.49|46|N|,Kano|kano state|NG|8.52|12|4910|W|,Kanpur|uttar pradesh|IN|80.35|26.47|2823|W|cawnporne,Kansas City|MO|US|-94.58|39.1|475|NW|kota kansas,Kansas City|KS|US|-94.63|39.11|152|NW|,Kaohsiung|takao|TW|120.31|22.62|2737|W|kaohsiung city;cao hung;gaoxiong;takao,Kaolack|kaolack|SN|-16.07|14.15|298|W|,Kapar|selangor|MY|101.38|3.13|269|W|,Karabaglar|izmir province|TR|27.13|38.38|479|W|,Karachi|sindh|PK|67.01|24.86|11624|W|carachi;karaczi;karanchi;karatschi;karaci,Karagandy|karaganda|KZ|73.1|49.8|497|W|karaganda;qaraghandy;qaragandi,Karaikkudi|tamil nadu|IN|78.77|10.07|181|W|karaikudi,Karaj|alborz province|IR|50.99|35.83|1448|W|karadsch;karadz;kerec,Karaman|karaman|TR|33.22|37.18|175|W|,Karamay|xinjiang|CN|84.89|45.58|261|W|kelamayi,Karawalnagar|delhi|IN|77.27|28.73|224|W|,Karawang|west java|ID|107.32|-6.31|307|W|,Karbala|karbala|IQ|44.02|32.62|1218|W|kerbela;kerbala,Kariega|eastern cape|ZA|25.4|-33.76|291|W|uitenhage,Karimnagar|telangana|IN|79.13|18.44|289|W|,Kariya|aichi|JP|136.98|34.98|153|W|,Karlsruhe|baden wurttemberg|DE|8.4|49.01|283|W|,Karnal|haryana|IN|76.98|29.69|302|W|,Karnaphuli|chittagong|BD|92.23|22.69|203|W|,Karol Bagh|delhi|IN|77.19|28.65|505|W|,Karsiyaka|izmir province|TR|27.11|38.46|339|W|cordaleo;cordelio,Karur|tamil nadu|IN|78.08|10.96|234|W|,Karuri|kiambu county|KE|36.76|-1.18|194|W|,Karuri|murang a|KE|37.18|-0.7|194|W|,Kasama|northern province|ZM|31.18|-10.21|179|W|arcidiocesi di kasama,Kasangati|central region|UG|32.6|0.44|207|W|,Kashan|isfahan|IR|51.43|33.98|304|W|,Kashgar|xinjiang|CN|75.99|39.47|506|W|kachgar;kaschgar;kasgar;kaszgar,Kashiwa|chiba|JP|139.98|35.86|433|W|,Kashmar|razavi khorasan|IR|58.47|35.24|131|W|,Kassala|kassala|SD|36.4|15.45|401|W|statul kassala,Kassel|hesse|DE|9.5|51.32|197|W|cassel,Kasugai|aichi|JP|136.97|35.25|308|W|,Kasukabe|saitama|JP|139.75|35.98|229|W|,Kasulu|kigoma|TZ|30.1|-4.58|238|W|,Kasur|punjab|PK|74.45|31.12|510|W|,Katabi|central region|UG|32.47|0.08|154|W|,Kathmandu|bagmati province|NP|85.32|27.7|1442|W|katmandou;catmandu;kathmandou;katmandu,Kati|koulikoro|ML|-8.07|12.74|130|W|,Katihar|bihar|IN|87.57|25.54|240|W|,Katowice|silesia|PL|19.02|50.26|286|W|katovice;kattowitz,Katsina|katsina state|NG|7.6|12.99|670|W|,Katsushika|tokyo|JP|139.85|35.73|453|W|katsushika ku;katsushika city,Katsuta|ibaraki|JP|140.53|36.38|155|W|,Kaunas|kaunas|LT|23.91|54.9|289|W|kowno;kauen,Kawagoe|saitama|JP|139.49|35.91|354|W|,Kawaguchi|saitama|JP|139.71|35.81|607|W|,Kawanishi|hyogo|JP|135.42|34.82|155|W|,Kawasaki|kanagawa|JP|139.72|35.52|1538|W|kawasaki city,Kayes|kayes|ML|-11.44|14.45|194|W|,Kayseri|kayseri|TR|35.49|38.73|1452|W|cesarea in cappadocia,Kaysville|UT|US|-111.94|41.04|30|N|,Kazan|tatarstan republic|RU|49.12|55.79|1243|W|caza;kasan,Kearney|NE|US|-99.08|40.7|33|N|,Kearns|UT|US|-112|40.66|35|N|,Kearny|NJ|US|-74.15|40.77|42|N|,Kediri|east java|ID|112.02|-7.82|301|W|kota kediri,Keelung|taiwan|TW|121.74|25.13|362|W|chilung;co long;kota keelung;ti lung,Keizer|OR|US|-123.03|44.99|37|N|,Kelar|sulaymaniyah|IQ|45.32|34.63|250|W|,Keller|TX|US|-97.25|32.93|45|N|,Kelowna|BC|CA|-119.49|49.88|144|NW|,Kembangan||SG|103.91|1.32|130|W|,Kemerovo|kuzbass|RU|86.1|55.35|558|W|kemerowo,Ken Caryl|CO|US|-105.11|39.58|32|N|,Kendale Lakes|FL|US|-80.41|25.71|56|N|,Kendall|FL|US|-80.32|25.68|80|N|,Kendall West|FL|US|-80.44|25.71|36|N|,Kendari|southeast sulawesi|ID|122.52|-3.98|351|W|kota kendari,Kenema|eastern province|SL|-11.19|7.88|255|W|,Keng Tung|shan state|MM|99.93|21.63|171|W|,Kenitra|rabat sale kenitra|MA|-6.58|34.26|470|W|al kunajtira;kenitre,Kennedy|bogota d c|CO|-74.15|4.62|979|W|,Kenner|LA|US|-90.24|29.99|67|N|,Kennesaw|GA|US|-84.62|34.02|33|N|,Kennewick|WA|US|-119.14|46.21|78|N|,Kenosha|WI|US|-87.82|42.58|99|N|,Kensington|NY|US|-73.97|40.65|39|N|,Kensington-Cedar Cottage|BC|CA|-123.07|49.25|49|N|,Kent|WA|US|-122.23|47.38|126|N|,Kent|OH|US|-81.36|41.15|29|N|,Kentron|yerevan|AM|44.51|40.18|133|W|kentron district,Kentwood|MI|US|-85.64|42.87|51|N|,Kerch|crimea|UA|36.48|45.36|148|W|kerci;kercz;kertch;kertj;kertsch;kertsj;kerts;kerc,Kerman|kerman|IR|57.08|30.28|577|W|,Kermanshah|kermanshah province|IR|47.06|34.31|621|W|kermanschah;kirmansah;province de kermanshah;provincia de kermanshah,Kettering|OH|US|-84.17|39.69|55|N|,Kew Gardens Hills|NY|US|-73.82|40.73|37|N|,Key West|FL|US|-81.78|24.56|25|N|cayo hueso,Khabarovsk|khabarovsk|RU|135.1|48.46|618|W|chabarovsk;chabarowsk;habarovsk;jabarovsk,Khairpur Mir's|sindh|PK|68.76|27.53|191|W|khairpur,Khamis Mushait|asir region|SA|42.73|18.3|387|W|chamis muschait;chamis muszajt;hamis musayt;khamis mushayt,Khammam|telangana|IN|80.14|17.25|196|W|,Khan Yunis|gaza strip|PS|34.31|31.34|173|W|jan yunis;khan younis,Khanaqin|diyala|IQ|45.39|34.35|175|W|,Khandwa|madhya pradesh|IN|76.35|21.82|200|W|,Khanpur|punjab|PK|70.66|28.65|142|W|,Kharagpur|west bengal|IN|87.33|22.34|219|W|,Kharkiv|kharkiv|UA|36.25|49.98|1421|W|charkiv;carcovia;charkiw;charkov;charkow;harkov;harkova;jarkov;kharkov,Khartoum|khartoum|SD|32.53|15.55|1974|W|cartum;chartum;hartum;jartum;khartoem;khartum,Khartoum North|khartoum|SD|32.53|15.65|1012|W|bahri;jartum norte;khartoum nord;khartum nord,Khasnahzan|erbil|IQ|44.14|36.2|146|W|,Khemisset|rabat sale kenitra|MA|-6.07|33.82|143|W|,Khimki|moscow oblast|RU|37.43|55.9|239|W|chimki;himki;jimki,Khirdalan|abseron|AZ|49.76|40.45|196|W|hirdalan;xirdalan,Khlong Sam Wa|bangkok|TH|100.74|13.87|169|W|,Khmelnytskyi|khmelnytskyi|UA|26.98|49.42|274|W|chmel nyc kyj;chmelnyzkyj;chmielnicki;khmel nyts kyy;proscurovia;ploskurow,Khobar|eastern province|SA|50.21|26.28|165|W|al chubar;al khobar;el huber,Khomeyni Shahr|isfahan|IR|51.54|32.69|277|W|three castles,Khoroshevo-Mnevniki|moscow|RU|37.47|55.78|159|W|,Khorramabad|lorestan province|IR|48.36|33.49|329|W|,Khorramshahr|khuzestan|IR|48.18|30.44|330|W|chorramschahr;chorramszahr;chorramsahr;hurremsehr;jorramchar;koramsjar,Khouribga|beni mellal khenifra|MA|-6.91|32.88|214|W|,Khujand|sughd|TJ|69.62|40.28|191|W|choedzjand;chudschand;chudzjand;hucand;hudzand;khodjent,Khulna|khulna division|BD|89.56|22.81|1500|W|,Khuraybat as Suq|amman|JO|35.92|31.88|186|W|,Khuy|west azerbaijan|IR|44.95|38.55|198|W|,Khuzdar|balochistan|PK|66.61|27.81|218|W|,Kiambu|kiambu county|KE|36.84|-1.17|147|W|,Kibaha|pwani|TZ|38.92|-6.77|265|W|,Kiel|schleswig holstein|DE|10.13|54.32|252|W|kilonia,Kielce|swietokrzyskie|PL|20.63|50.87|192|W|,Kigali|kigali|RW|30.06|-1.95|1132|W|,Kigoma|kigoma|TZ|29.63|-4.88|232|W|,Kikolo|luanda|AO|13.33|-8.78|728|W|quicolo,Kikuyu|kiambu county|KE|36.66|-1.25|323|W|,Kikwit|kwilu|CD|18.82|-5.04|509|W|,Kilamba|luanda|AO|13.28|-8.85|237|W|kilamba kiaxi,Killarney|BC|CA|-123.04|49.23|29|N|,Killeen|TX|US|-97.73|31.12|140|NW|,Kima Kieza|luanda|AO|13.3|-8.83|428|W|quima quieza,Kimberley|northern cape|ZA|24.76|-28.73|142|W|,Kimhae|gyeongsangnam do|KR|128.88|35.23|531|W|gimhae,Kindia|kindia|GN|-12.87|10.06|161|W|,Kindu|maniema|CD|25.92|-2.94|234|W|,Kingman|AZ|US|-114.05|35.19|28|N|,Kings Bridge|NY|US|-73.91|40.88|75|N|,Kingsport|TN|US|-82.56|36.55|53|N|,Kingston|kingston|JM|-76.79|18|937|W|,Kingston|ON|CA|-76.48|44.23|132|NW|cataraqui,Kingston upon Hull|england|GB|-0.34|53.74|314|W|hull,Kingsville|TX|US|-97.86|27.52|26|N|,Kinshasa|kinshasa|CD|15.31|-4.33|16000|W|kinsasa;kinszasa;quinxassa,Kipushi|haut katanga|CD|27.25|-11.76|169|W|,Kira|central region|UG|32.63|0.4|462|W|,Kirari Sulemannagar|delhi|IN|77.06|28.7|283|W|,Kirdasah|giza|EG|31.11|30.03|137|W|kerdasa,Kirikkale|kirikkale|TR|33.51|39.85|186|W|,Kirkland|WA|US|-122.21|47.68|87|N|,Kirkuk|kirkuk|IQ|44.39|35.47|1031|W|kerkuk;kirkoek;kirkouk,Kirkwood|MO|US|-90.41|38.58|27|N|,Kirov|kirov oblast|RU|49.66|58.6|507|W|kirow,Kirsehir|kirsehir|TR|34.16|39.15|150|W|,Kiryas Joel|NY|US|-74.17|41.34|32|N|,Kisangani|tshopo|CD|25.19|0.52|1181|W|stanleystad;stanleyville,Kisaran|north sumatra|ID|99.62|2.98|141|W|,Kisarazu|chiba|JP|139.93|35.38|136|W|,Kishangarh|rajasthan|IN|74.85|26.59|154|W|,Kishiwada|osaka|JP|135.37|34.47|205|W|,Kisi|oyo state|NG|3.85|9.08|155|W|,Kislovodsk|stavropol kray|RU|42.72|43.91|132|W|kislowodsk;kislowodzk,Kismayo|lower juba|SO|42.55|-0.36|234|W|chisimayu;kismaayo,Kissimmee|FL|US|-81.42|28.3|69|N|,Kisumu|kisumu county|KE|34.76|-0.1|397|W|,Kita|tokyo|JP|139.73|35.75|332|W|kita ku,Kitakyushu|fukuoka|JP|130.85|33.85|940|W|kitakjusu,Kitale|trans nzoia|KE|35.01|1.02|162|W|,Kitchener|ON|CA|-80.51|43.43|256|NW|,Kitengela|kajiado county|KE|36.96|-1.48|154|W|,Kitsilano|BC|CA|-123.17|49.27|43|N|,Kitwe|copperbelt|ZM|28.21|-12.8|665|W|,Kiziltepe|mardin|TR|40.58|37.19|150|W|,Klaipeda|klaipeda county|LT|21.14|55.71|172|W|klajpeda;memel,Klang|selangor|MY|101.44|3.04|240|W|kelang,Klerksdorp|north west|ZA|26.67|-26.85|227|W|,Kluang|johor|MY|103.32|2.03|323|W|,Klungkung|bali|ID|115.4|-8.53|223|W|,Knoxville|TN|US|-83.92|35.96|190|NW|,Kobe|hyogo|JP|135.18|34.69|1525|W|,Kochi|kerala|IN|76.26|9.94|633|W|cochim;cochin;ernakulam;koczin,Kochi|kochi|JP|133.53|33.55|332|W|kochi shi;kochishi,Kodaira|tokyo|JP|139.49|35.73|198|W|,Koeln|north rhine westphalia|DE|6.95|50.93|1024|W|koln;cologne;colonia;keulen;kolonia;kolin nad rynem,Koforidua|eastern|GH|-0.26|6.09|151|W|,Kofu|yamanashi|JP|138.57|35.67|189|W|,Koga|ibaraki|JP|139.72|36.18|139|W|,Kohat|khyber pakhtunkhwa|PK|71.45|33.58|151|W|,Kokomo|IN|US|-86.13|40.49|57|N|,Kokshetau|aqmola|KZ|69.39|53.28|150|W|kokchetaou;kokczetaw;koksetau;kokcetau;kokschetau;koksjetau;koksetaw,Kolar|karnataka|IN|78.13|13.14|138|W|,Kolhapur|maharashtra|IN|74.23|16.7|549|W|,Kolkata|west bengal|IN|88.36|22.56|4631|W|calcutta;calcuta;kalkata;kalkuta;kalkutta,Kollam|kerala|IN|76.58|8.88|367|W|quilon;coulao,Kolomna|moscow oblast|RU|38.78|55.07|147|W|,Kolpino|st petersburg|RU|30.59|59.75|138|W|kolppina,Kolwezi|lualaba|CD|25.47|-10.71|790|W|,Kom Ombo|aswan|EG|32.95|24.48|409|W|,Komaki|aichi|JP|136.92|35.28|148|W|,Kombolcha|amhara|ET|39.74|11.08|132|W|kembolcza,Komsomolsk-on-Amur|khabarovsk|RU|137.01|50.55|275|W|komsomolsk am amur;komsomolsk del amur;komsomolsk na amure;komsomolsk sur l amour,Kon Tum|quang ngai|VN|108.01|14.35|205|W|,Konak|izmir province|TR|27.1|38.4|332|W|,Konibodom|sughd|TJ|70.43|40.29|211|W|,Konya|konya|TR|32.48|37.87|1433|W|iconio,Korba|chhattisgarh|IN|82.7|22.35|419|W|,Koreatown|CA|US|-118.3|34.06|124|N|,Korhogo|savanes district|CI|-5.63|9.46|440|W|,Koriyama|fukushima|JP|140.38|37.4|327|W|,Korla|xinjiang|CN|86.15|41.76|549|W|,Korolev|moscow oblast|RU|37.83|55.91|139|W|korolyov;koroliov;koroljov;korolow,Koronadal|soccsksargen|PH|124.85|6.5|201|W|koronadal city;kota koronadal,Koshigaya|saitama|JP|139.79|35.89|345|W|,Kosice|kosice region|SK|21.26|48.71|225|W|koszyce;kaschau,Kostanay|kostanay|KZ|63.62|53.21|210|W|kostanai;kostanaj;kustanaj;qostanai;qostanaj;qostanay;kustanay;nikolayevsk,Kosti|white nile|SD|32.66|13.16|345|W|kusti,Kostroma|kostroma oblast|RU|40.93|57.77|277|W|,Kota|rajasthan|IN|75.84|25.18|1001|W|,Kota Bharu|kelantan|MY|102.24|6.12|568|W|kota bahru,Kota Damansara|selangor|MY|101.58|3.15|500|W|,Kota Kinabalu|sabah|MY|116.07|5.97|500|W|,Kota Kuala Muda|kedah|MY|100.37|5.59|544|W|,Koto|kumamoto|JP|130.75|32.78|543|W|koto city,Koudougou|centre ouest|BF|-2.37|12.25|160|W|,Koumassi|abidjan autonomous district|CI|-3.97|5.3|412|W|,Kousseri|far north|CM|15.03|12.08|139|W|,Koutiala|sikasso|ML|-5.47|12.39|218|W|,Kovpakivskyi|sumy|UA|34.79|50.93|142|W|kovpakivskyi rayon,Kovrov|vladimir oblast|RU|41.32|56.36|154|W|kowrow,Kowloon||HK|114.18|22.32|2232|W|koulun,Kowloon City|kowloon city|HK|114.19|22.33|418|W|,Kowloon City Centre|kowloon city|HK|114.19|22.33|194|W|,Kozhikode|kerala|IN|75.78|11.25|550|W|kozikkot;calecute;calicut,Kragujevac|central serbia|RS|20.92|44.02|147|W|,Krakow|lesser poland|PL|19.94|50.06|816|W|cracovia;cracovie;krakau;krakov;krakova;cracow,Kramatorsk|donetsk|UA|37.57|48.73|147|W|kramators k,Krasnodar|krasnodar krai|RU|38.98|45.05|899|W|,Krasnogvargeisky|st petersburg|RU|30.48|59.97|337|W|,Krasnoyarsk|krasnoyarsk krai|RU|92.93|56.04|1090|W|krasnojarsk;krasnoiarsk,Krefeld|north rhine westphalia|DE|6.55|51.34|237|W|,Kremenchuk|poltava|UA|33.4|49.06|224|W|kremencuk;kremenciuk;krementchouk;krementjuk;krementschuk;krementsjoek;krementsjuk;krementsuk;kremencug;krzemienczuk;kremenchug;kreminchuk,Kreuzberg|state of berlin|DE|13.4|52.5|153|W|berlin kreuzberg,Krishnanagar|west bengal|IN|88.49|23.41|145|W|,Kropyvnytskyi|kirovohrad|UA|32.27|48.51|219|W|kropywnycki;kropywnyzkyj;elisavetgrad;elizabethgrad;jelisawetgrad;jelizawietgrad;kirovo;kirovograd;kirovogrado;kirovohrad;kirowograd;kirowohrad;yelisavetgrad;zinovievsk;zinovyevsk;zinowjewsk,Krugersdorp|gauteng|ZA|27.78|-26.09|378|W|,Kryvyy Rih|dnipropetrovsk|UA|33.39|47.91|603|W|krivoj rog;kryvy rig;kryvy rih;kryvyi rih;kryvyj rih;krywyj rih;krzywy rog;krivii rih,Ksar El Kebir|tanger tetouan al hoceima|MA|-5.9|35|138|W|,Kuala Kubu Baharu|selangor|MY|101.66|3.56|194|W|kuala kubu;kuala kubu baru;kuala kubu bharu,Kuala Lumpur|kuala lumpur|MY|101.69|3.14|1453|W|,Kuala Terengganu|terengganu|MY|103.14|5.33|426|W|,Kuantan|pahang|MY|103.33|3.81|548|W|,Kuching|sarawak|MY|110.33|1.55|402|W|,Kuecuekcekmece|istanbul|TR|28.77|40.99|792|W|kucukcekmece,Kuetahya|kutahya|TR|29.98|39.42|185|W|kutahya,Kukatpally|telangana|IN|78.41|17.48|341|W|kukatpalle;kukatpalli,Kukichuo|saitama|JP|139.67|36.07|150|W|,Kulim|kedah|MY|100.56|5.36|170|W|,Kulob|khatlon province|TJ|69.78|37.91|214|W|,Kulti|west bengal|IN|86.84|23.73|305|W|,Kumagaya|saitama|JP|139.39|36.13|195|W|,Kumamoto|kumamoto|JP|130.69|32.81|738|W|kumamoto shi,Kumarapalayam|tamil nadu|IN|77.71|11.44|195|W|komarapalayam,Kumasi|ashanti|GH|-1.62|6.69|2544|W|,Kumba|south west|CM|9.45|4.64|225|W|,Kumbakonam|tamil nadu|IN|79.39|10.96|167|W|,Kunduz|kunduz|AF|68.86|36.73|161|W|konduz;kondoz;kundus;qunduz,Kunming|yunnan|CN|102.72|25.04|3855|W|con minh;kchun ming,Kunri|sindh|PK|69.57|25.18|237|W|,Kunshan|jiangsu|CN|120.95|31.38|2092|W|con son;kchun san,Kuntsevo|moscow|RU|37.4|55.74|147|W|kuncevo;kuncewo;kuntsevo district,Kupang|east nusa tenggara|ID|123.61|-10.17|474|W|kota kupang,Kurashiki|okayama|JP|133.77|34.58|483|W|,Kure|hiroshima|JP|132.57|34.23|214|W|,Kurgan|kurgan oblast|RU|65.34|55.45|309|W|curgan;koergan;kourgan,Kurnool|andhra pradesh|IN|78.04|15.83|460|W|karnulu,Kursk|kursk oblast|RU|36.18|51.73|448|W|koersk;koursk,Kurume|fukuoka|JP|130.52|33.32|303|W|,Kusatsu|shiga|JP|135.97|35.02|143|W|,Kushinagar|uttar pradesh|IN|83.89|26.74|274|W|,Kushiro|hokkaido|JP|144.37|42.98|167|W|kushiro shi;kusiro,Kushtia|khulna division|BD|89.12|23.9|135|W|,Kutaisi|imereti|GE|42.69|42.27|135|W|koutaissi;kutaissi;koetaisi;kutayis,Kuwana|mie|JP|136.67|35.05|140|W|,Kuz'minki|moscow|RU|37.8|55.7|143|W|,KwaDukuza|kwazulu natal|ZA|31.29|-29.33|161|W|,Kwai Chung|kwai tsing district|HK|114.14|22.37|331|W|,Ky Anh|ha tinh province|VN|106.3|18.06|150|W|,Kyaukpyu|rakhine|MM|93.55|19.43|180|W|,Kyauktan|yangon|MM|96.33|16.64|132|W|,Kyengera|central region|UG|32.5|0.3|285|W|,Kyiv|kyiv city|UA|30.52|50.45|2952|W|kiev;kyjiw;ki ep;kiew;kijow;kiova;kyiw;kyjev;chiovia,Kyivskyi|donetsk|UA|37.78|48.05|139|W|kyivskyi rayon,Kyle|TX|US|-97.88|29.99|35|N|,Kyoto|kyoto|JP|135.75|35.02|1463|W|kioto;kjoto;kyoto shi;quioto,Kyzylorda|kyzylorda|KZ|65.51|44.85|354|W|kizilorda;qysylorda;qyzylorda;qizilorda;ak mechet;fort perovsky;kzyl orda;perovsk,L'Amoreaux|ON|CA|-79.31|43.8|43|N|,L'Hospitalet de Llobregat|catalonia|ES|2.1|41.36|257|W|hospitalet de llobregat,La Barca|MX14|MX|-102.54|20.29|35|N|,La Ceiba|atlantida department|HN|-86.78|15.76|222|W|,La Cite-Limoilou|QC|CA|-71.23|46.83|108|N|,La Crosse|WI|US|-91.24|43.8|52|N|,La Gi|lam dong|VN|107.77|10.66|160|W|,La Habra|CA|US|-117.95|33.93|62|N|,La Haute-Saint-Charles|QC|CA|-71.37|46.89|88|N|,La Jolla|CA|US|-117.27|32.85|42|N|,La Joya|MX02|MX|-117|32.44|26|N|,La Laguna|canary islands|ES|-16.32|28.49|150|W|,La Mesa|CA|US|-117.02|32.77|60|N|,La Mirada|CA|US|-118.01|33.92|49|N|,La Paz|la paz department|BO|-68.15|-16.5|2004|W|ciudad la paz,La Paz|MX03|MX|-110.31|24.14|250|NW|,La Piedad de Cabadas|MX16|MX|-102.02|20.34|83|N|la piedad;municipio la piedad,La Pintana|santiago metropolitan|CL|-70.63|-33.58|201|W|,La Plata|buenos aires|AR|-57.95|-34.92|195|W|,La Porte|TX|US|-95.02|29.67|35|N|,La Presa|CA|US|-117|32.71|34|N|,La Puente|CA|US|-117.95|34.02|40|N|,La Quinta|CA|US|-116.31|33.66|40|N|,La Rioja|la rioja|AR|-66.86|-29.41|178|W|ciudad de la rioja;rioja,La Romana|la romana|DO|-68.97|18.42|208|W|,La Serena|coquimbo region|CL|-71.25|-29.91|154|W|,La Trinidad|cordillera|PH|120.59|16.45|142|W|,La Vergne|TN|US|-86.58|36.02|34|N|,La Verne|CA|US|-117.77|34.1|32|N|,Laayoune||EH|-13.19|27.14|196|W|el aaiun;aaiun;al ajoen;al ayun;al ujun;el ayun,Labuan Bajo|east nusa tenggara|ID|119.89|-8.5|188|W|labuanbajo,Lacey|WA|US|-122.82|47.03|46|N|,Ladysmith|kwazulu natal|ZA|29.78|-28.56|143|W|,Lafayette|LA|US|-92.02|30.22|121|N|,Lafayette|IN|US|-86.88|40.42|71|N|,Lafayette|CO|US|-105.09|39.99|27|N|,Lafayette|CA|US|-122.12|37.89|25|N|,Lages|santa catarina|BR|-50.33|-27.82|172|W|,Laghouat|laghouat|DZ|2.87|33.8|134|W|al aghwat;lagouat,Lagos|lagos|NG|3.39|6.45|15388|W|,Lagos de Moreno|MX14|MX|-101.93|21.36|98|N|,LaGrange|GA|US|-85.03|33.04|29|N|la grange,Laguna|CA|US|-121.42|38.42|46|N|,Laguna Hills|CA|US|-117.71|33.61|31|N|,Laguna Niguel|CA|US|-117.71|33.52|65|N|,Lahore|punjab|PK|74.35|31.56|13004|W|lahaur;lahor,Laibin|guangxi|CN|109.22|23.75|910|W|lai tan;laj pin,Laiwu|shandong|CN|117.66|36.19|989|W|lai vu;laj wu,Laixi|shandong|CN|120.53|36.86|341|W|,Laiyang|shandong|CN|120.71|36.98|169|W|,Laizhou|shandong|CN|119.94|37.18|188|W|laichow,Lajeado|sao paulo|BR|-46.41|-23.53|164|W|,Lake Charles|LA|US|-93.2|30.21|76|N|,Lake Elsinore|CA|US|-117.33|33.67|61|N|,Lake Forest|CA|US|-117.69|33.65|82|N|,Lake Havasu City|AZ|US|-114.32|34.48|53|N|,Lake in the Hills|IL|US|-88.33|42.18|29|N|,Lake Jackson|TX|US|-95.43|29.03|27|N|,Lake Magdalene|FL|US|-82.47|28.07|28|N|,Lake Oswego|OR|US|-122.67|45.42|38|N|,Lake Ridge|VA|US|-77.3|38.69|41|N|,Lake Stevens|WA|US|-122.06|48.02|30|N|,Lake Worth Beach|FL|US|-80.07|26.62|37|N|lake worth,Lakeland|FL|US|-81.95|28.04|104|N|,Lakeside|FL|US|-81.77|30.13|30|N|,Lakeville|MN|US|-93.24|44.65|60|N|,Lakewood|CO|US|-105.08|39.7|152|NW|,Lakewood|CA|US|-118.13|33.85|81|N|,Lakewood|WA|US|-122.52|47.17|59|N|,Lakewood|NJ|US|-74.22|40.1|53|N|lakewood township;municipio de lakewood,Lakewood|SK|CA|-106.59|52.11|51|N|,Lakewood|OH|US|-81.8|41.48|50|N|,Lakhimpur|uttar pradesh|IN|80.78|27.95|140|W|,Lal Bahadur Nagar|telangana|IN|78.56|17.35|261|W|,Lampang|lampang|TH|99.49|18.29|156|W|,Lancaster|CA|US|-118.14|34.7|161|NW|,Lancaster|PA|US|-76.31|40.04|59|N|,Lancaster|OH|US|-82.6|39.71|39|N|,Lancaster|TX|US|-96.76|32.59|38|N|,Land O' Lakes|FL|US|-82.46|28.22|31|N|,Lander|miranda|VE|-66.7|10.18|176|W|,Lang'ata|nairobi county|KE|36.73|-1.37|172|W|,Lang Son|lang son province|VN|106.76|21.85|200|W|,Langfang|hebei|CN|116.71|39.52|868|W|,Langford|BC|CA|-123.5|48.45|46|N|,Langley|BC|CA|-122.66|49.1|132|NW|ciudad de langley,Langsa|aceh|ID|97.97|4.47|184|W|,Lansing|MI|US|-84.56|42.73|112|N|,Lansing|IL|US|-87.54|41.56|28|N|,Lanus|buenos aires|AR|-58.39|-34.71|212|W|,Lanzhou|gansu|CN|103.84|36.06|3000|W|lan chau;lan cou,Lao Cai|lao cai|VN|103.97|22.49|130|W|laos,Laohekou|hubei|CN|111.67|32.39|253|W|,Laplace|LA|US|-90.48|30.07|29|N|,Lapu-Lapu City|central visayas|PH|123.95|10.31|497|W|lapu lapu,Larache|tanger tetouan al hoceima|MA|-6.16|35.19|136|W|al araisz;laraxe,Laramie|WY|US|-105.59|41.31|32|N|,Laredo|TX|US|-99.51|27.51|256|NW|,Largo|FL|US|-82.79|27.91|81|N|,Larisa|thessaly|GR|22.42|39.63|146|W|larissa;yenisehir,Larkana|sindh|PK|68.21|27.56|364|W|,Las Choapas|MX30|MX|-94.1|17.91|42|N|,Las Cruces|NM|US|-106.78|32.31|101|N|,Las Guacamayas|MX16|MX|-102.21|18.02|37|N|,Las Palmas de Gran Canaria|canary islands|ES|-15.42|28.1|383|W|las palmas;las palmas de g c;palmas de gran canaria,Las Pinas|national capital region|PH|120.98|14.45|615|W|,Las Pintitas|MX14|MX|-103.3|20.56|26|N|,Las Tunas|las tunas province|CU|-76.95|20.96|203|W|victoria de las tunas,Las Vegas|NV|US|-115.14|36.17|641|NW|,LaSalle|ON|CA|-83.06|42.24|32|N|,Lashio|shan state|MM|97.75|22.94|131|W|lasho;lasio,Lat Krabang|bangkok|TH|100.78|13.72|163|W|,Latacunga|cotopaxi|EC|-78.62|-0.93|205|W|,Latakia|latakia|SY|35.79|35.53|709|W|laodicea;lataquia;lattakia;lattaquie;lazkiye;lazikija,Latina|madrid|ES|-3.75|40.39|256|W|,Latkrabang|bangkok|TH|100.75|13.73|173|W|,Latur|maharashtra|IN|76.57|18.4|382|W|,Lauderdale Lakes|FL|US|-80.21|26.17|34|N|,Lauderhill|FL|US|-80.21|26.14|71|N|,Laurel|MD|US|-76.85|39.1|26|N|,Lauro de Freitas|bahia|BR|-38.33|-12.89|203|W|,Lausanne|vaud|CH|6.63|46.52|139|W|lausana;losanna;lozan;lozanna,Laval|QC|CA|-73.69|45.57|438|NW|,Laval-des-Rapides|QC|CA|-73.7|45.56|36|N|,Lawndale|CA|US|-118.35|33.89|33|N|,Lawrence|KS|US|-95.24|38.97|93|N|,Lawrence|MA|US|-71.16|42.71|80|N|,Lawrence|IN|US|-86.03|39.84|47|N|,Lawrenceville|GA|US|-83.99|33.96|30|N|,Lawson|SK|CA|-106.64|52.16|34|N|,Lawton|OK|US|-98.39|34.61|96|N|,Layton|UT|US|-111.97|41.06|74|N|,Layyah|punjab|PK|70.94|30.96|151|W|,Le Havre|normandy|FR|0.11|49.49|185|W|el havre;hawr;le port de grace,Le Mans|pays de la loire|FR|0.2|48|144|W|,Le Plateau-Mont-Royal|QC|CA|-73.58|45.53|105|N|,Le Sud-Ouest|QC|CA|-73.59|45.47|86|N|,Le Vieux-Longueuil|QC|CA|-73.51|45.54|135|NW|,League City|TX|US|-95.09|29.51|98|N|,Leamington|ON|CA|-82.6|42.05|35|N|,Leander|TX|US|-97.85|30.58|59|N|,Leavenworth|KS|US|-94.92|39.31|35|N|,Leawood|KS|US|-94.62|38.97|34|N|,Lebanon|TN|US|-86.29|36.21|30|N|,Lebanon|PA|US|-76.41|40.34|25|N|,Lee's Summit|MO|US|-94.38|38.91|95|N|,Leeds|england|GB|-1.55|53.8|536|W|,Leesburg|VA|US|-77.56|39.12|51|N|,Leganes|madrid|ES|-3.76|40.33|188|W|,Legaspi|bicol region|PH|123.74|13.14|179|W|legazpi;legaspi city;legazpi city,Lehi|UT|US|-111.85|40.39|58|N|,Lehigh Acres|FL|US|-81.62|26.63|86|N|,Leicester|england|GB|-1.13|52.64|368|W|,Leipzig|saxony|DE|12.37|51.34|504|W|lipsca;lipsia;lipsk;lipsko,Leisure City|FL|US|-80.43|25.5|26|N|,Lekki|lagos|NG|3.48|6.45|401|W|,Lembang|west java|ID|107.62|-6.81|183|W|,Lemon Grove|CA|US|-117.03|32.74|26|N|,Lemoore|CA|US|-119.78|36.3|25|N|,Lenexa|KS|US|-94.73|38.95|52|N|,Leogane|ouest|HT|-72.63|18.51|134|W|,Leominster|MA|US|-71.76|42.53|41|N|,Leon|leon department|NI|-86.88|12.44|144|W|,Leon de los Aldama|MX11|MX|-101.68|21.12|1579|NW|leon;leon guanajuato;leon de los aldamas,Lerdo|MX10|MX|-103.52|25.54|79|N|,Les Rivieres|QC|CA|-71.27|46.82|77|N|,Leshan|sichuan|CN|103.76|29.56|662|W|le san,Lethbridge|AB|CA|-112.82|49.7|103|N|,Leverkusen|north rhine westphalia|DE|6.98|51.03|162|W|,Levis|QC|CA|-71.18|46.8|143|NW|,Levittown|PA|US|-74.83|40.16|52|N|,Levittown|NY|US|-73.51|40.73|51|N|lewittown,Lewiston|ME|US|-70.21|44.1|36|N|,Lewiston|ID|US|-117.02|46.42|32|N|,Lewiston Orchards|ID|US|-116.98|46.38|31|N|,Lewisville|TX|US|-96.99|33.05|104|N|,Lexington|KY|US|-84.48|37.99|320|NW|,Lexington|MA|US|-71.22|42.45|31|N|lexington village;cambridge farms;lexington centre,Lexington-Fayette|KY|US|-84.46|38.05|314|NW|,Lhoka|tibet|CN|91.77|29.24|353|W|,Lhokseumawe|aceh|ID|97.15|5.18|200|W|kota lhokseumawe,Lianghu|zhejiang|CN|120.9|29.99|155|W|,Liangping|chongqing|CN|107.77|30.66|137|W|,Lianshan|liaoning|CN|120.85|40.76|313|W|,Lianyungang|jiangsu|CN|119.22|34.6|2001|W|,Liaocheng|shandong|CN|116|36.45|1229|W|liao ccheng;lieu thanh,Liaoyang|liaoning|CN|123.17|41.27|687|W|liao jang;lieu duong,Libertad|caraga|PH|125.5|8.94|250|W|,Liberty|MO|US|-94.42|39.25|30|N|,Libreville|estuaire|GA|9.45|0.39|846|W|,Licheng|guangdong|CN|113.82|23.3|172|W|,Lichinga|niassa province|MZ|35.24|-13.31|281|W|,Liege|wallonia|BE|5.57|50.63|195|W|luttich;liegi;lieja;luik;lutych,Lijiang|yunnan|CN|100.22|26.87|211|W|cidade antiga de lijiang;li tiang,Likasi|haut katanga|CD|26.74|-10.98|635|W|jadotstad;jadotsville,Lille|hauts de france|FR|3.06|50.63|238|W|rijsel;lila;lilla,Lilongwe|central region|MW|33.79|-13.97|1115|W|lilongue,Lima|lima province|PE|-77.03|-12.04|7737|W|,Lima|OH|US|-84.11|40.74|37|N|,Limassol|limassol|CY|33.04|34.68|154|W|lemesos;limasol;limisso,Limbe|south west|CM|9.21|4.02|131|W|,Limeira|sao paulo|BR|-47.4|-22.56|291|W|,Limoges|new aquitaine|FR|1.25|45.83|141|W|,Limuru|kiambu county|KE|36.64|-1.11|159|W|,Linares|MX19|MX|-99.57|24.86|70|N|,Lincang|yunnan|CN|100.09|23.88|323|W|,Lincoln|NE|US|-96.67|40.8|294|NW|,Lincoln|CA|US|-121.29|38.89|49|N|,Lincoln Park|IL|US|-87.65|41.92|66|N|,Lincoln Park|MI|US|-83.18|42.25|37|N|,Lincoln Square|IL|US|-87.69|41.98|40|N|,Linden|NJ|US|-74.24|40.62|42|N|,Lindenhurst|NY|US|-73.37|40.69|27|N|,Linfen|shanxi|CN|111.52|36.09|959|W|lin fen,Linhares|espirito santo|BR|-40.07|-19.39|183|W|,Linkoeping|ostergotland|SE|15.62|58.41|166|W|linkoping,Linqu|shandong|CN|118.54|36.52|299|W|,Linton Hall|VA|US|-77.57|38.76|35|N|,Linxia Chengguanzhen|gansu|CN|103.21|35.6|274|W|linxia,Linyi|shandong|CN|118.34|35.06|2743|W|lam nghi,Linz|upper austria|AT|14.29|48.31|204|W|linec,Lipa City|calabarzon|PH|121.16|13.94|212|W|,Lipetsk|lipetsk oblast|RU|39.55|52.59|509|W|lipezk;lipeck;lipetk;lipieck,Lisbon|lisbon|PT|-9.15|38.73|517|W|lisboa;lisabon;lisabona;lisbona;lisbonne;lissabon;lizbon;lizbona,Lishui|zhejiang|CN|119.91|28.46|451|W|li suej,Little Elm|TX|US|-96.94|33.16|38|N|,Little Havana|FL|US|-80.23|25.77|53|N|la pequena habana,Little Rock|AR|US|-92.29|34.75|202|NW|,Littleton|CO|US|-105.02|39.61|46|N|,Liupanshui|guizhou|CN|104.83|26.59|1320|W|liou pchan suej,Liuzhi|guizhou|CN|105.43|26.23|138|W|,Liuzhou|guangxi|CN|109.41|24.32|1436|W|liou cou;liuchow,Livermore|CA|US|-121.77|37.68|88|N|,Liverpool|england|GB|-2.98|53.41|496|W|,Livingston|NJ|US|-74.31|40.8|27|N|,Livingstone|southern province|ZM|25.85|-17.84|178|W|,Livonia|MI|US|-83.35|42.37|94|N|,Livorno|tuscany|IT|10.33|43.54|157|W|livourne,Lizhi|chongqing|CN|107.4|29.7|156|W|,Ljubljana|ljubljana|SI|14.51|46.05|272|W|liubliana;lubiana;lublana;lublan;laibach,Lleida|catalonia|ES|0.62|41.62|140|W|lerida,Lloydminster|AB|CA|-110.02|53.27|31|N|,Loa Janan|east kalimantan|ID|117.1|-0.58|212|W|,Lobito|benguela|AO|13.54|-12.36|393|W|,Lochearn|MD|US|-76.72|39.34|25|N|,Lockport|IL|US|-88.06|41.59|25|N|,Lodhran|punjab|PK|71.63|29.53|144|W|,Lodi|CA|US|-121.27|38.13|64|N|,Lodz|lodz voivodeship|PL|19.47|51.77|639|W|litzmannstadt,Logan|UT|US|-111.83|41.74|50|N|,Logan City|queensland|AU|153.11|-27.64|345|W|citta di logan;logan,Logan Square|IL|US|-87.7|41.92|73|N|,Logrono|la rioja|ES|-2.45|42.47|151|W|,Loja|loja|EC|-79.2|-3.99|274|W|,Loma Bonita|MX20|MX|-95.88|18.11|40|N|,Lombard|IL|US|-88.01|41.88|43|N|,Lome|maritime|TG|1.22|6.13|2188|W|,Lompoc|CA|US|-120.46|34.64|44|N|,London|england|GB|-0.13|51.51|8961|W|londres;londen;londra;londyn;lontoo;luan don,London|ON|CA|-81.23|42.98|422|NW|,Londrina|parana|BR|-51.16|-23.31|581|W|,Long Beach|CA|US|-118.19|33.77|474|NW|,Long Beach|NY|US|-73.66|40.59|33|N|,Long Bien|hanoi|VN|105.9|21.03|347|W|,Long Branch|NJ|US|-73.99|40.3|30|N|,Long Island City|NY|US|-73.95|40.74|25|N|lic,Long Khanh|dong nai|VN|107.25|10.93|171|W|,Long Xuyen|an giang|VN|105.44|10.39|286|W|,Longfellow Community|MN|US|-93.23|44.94|29|N|,Longfeng|heilongjiang|CN|125.1|46.53|152|W|,Longgang|guangdong|CN|114.26|22.72|215|W|district de longgang;long cuong;longgang district,Longling County|yunnan|CN|98.69|24.59|270|W|,Longmont|CO|US|-105.1|40.17|92|N|,Longshan|jilin|CN|125.14|42.89|465|W|liao juan;liaoyuan;lieu nguyen,Longueuil|QC|CA|-73.47|45.52|229|NW|,Longview|TX|US|-94.74|32.5|82|N|,Longview|WA|US|-122.94|46.14|36|N|,Longyan|fujian|CN|117.02|25.07|1025|W|long nham;lung jen,Loni|uttar pradesh|IN|77.29|28.75|516|W|,Lorain|OH|US|-82.18|41.45|63|N|,Los Altos|CA|US|-122.11|37.39|30|N|,Los Angeles|CA|US|-118.24|34.05|3820|NW|l a,Los Banos|CA|US|-120.85|37.06|37|N|,Los Gatos|CA|US|-121.97|37.23|30|N|,Los Mochis|MX25|MX|-109|25.79|256|NW|,Los Reyes Acaquilpan|MX15|MX|-98.98|19.36|85|N|los reyes la paz;reyes la paz,Los Reyes de Salgado|MX16|MX|-102.47|19.59|39|N|,Los Teques|miranda|VE|-67.04|10.35|252|W|,Loudi|hunan|CN|111.99|27.73|497|W|,Louisville|KY|US|-85.76|38.25|624|NW|,Loveland|CO|US|-105.07|40.4|75|N|,Lowell|MA|US|-71.32|42.63|110|N|,Lower Sackville|NS|CA|-63.68|44.78|51|N|,Lower West Side|IL|US|-87.67|41.85|34|N|,Lu'an|anhui|CN|116.52|31.74|1644|W|,Luancheng|hebei|CN|114.65|37.88|597|W|,Luanda|luanda|AO|13.23|-8.84|2776|W|loanda,Luanshya|copperbelt|ZM|28.42|-13.14|193|W|,Lubango|huila|AO|13.49|-14.92|600|W|sa da bandeira,Lubbock|TX|US|-101.86|33.58|249|NW|,Lublin|lublin|PL|22.57|51.25|336|W|lublino,Lubuklinggau|south sumatra|ID|102.86|-3.29|234|W|kota lubuklinggau,Lubumbashi|haut katanga|CD|27.48|-11.66|2221|W|elizabethstad;elisabethville,Lucena|calabarzon|PH|121.62|13.93|228|W|kota lucena;lucena city,Lucknow|uttar pradesh|IN|80.92|26.84|2472|W|lakhnau;laknau,Ludhiana|punjab|IN|75.85|30.91|1618|W|ludhijana,Ludwigshafen am Rhein|rheinland pfalz|DE|8.45|49.48|163|W|ludwigshafen;ludwigshafen sul reno,Luebeck|schleswig holstein|DE|10.69|53.87|212|W|lubeck;lubeca;lubecca;lubeka;lyypekki,Lueliang|shanxi|CN|111.14|37.52|3346|W|luliang,Luena|moxico|AO|19.92|-11.78|273|W|,Lufkin|TX|US|-94.73|31.34|36|N|,Luhansk|luhansk|UA|39.31|48.57|397|W|loehansk;louhansk;lugansk;luhans k;voroshilovgrad;woroschilowgrad,Luohe|henan|CN|114.03|33.57|1294|W|luo che;thap ha,Luohu District|guangdong|CN|114.13|22.55|1143|W|,Luojiang|sichuan|CN|104.5|31.3|212|W|,Luoyang|henan|CN|112.44|34.67|1390|W|luo jang,Lusail|al daayen|QA|51.51|25.42|198|W|,Lusaka|lusaka province|ZM|28.29|-15.41|2212|W|,Lushui|yunnan|CN|98.86|25.82|197|W|,Luton|england|GB|-0.42|51.88|225|W|,Lutsk|volyn|UA|25.35|50.76|215|W|loetsk;loutsk;luc k;luzk;luck;lucioria,Luxor|luxor|EG|32.64|25.7|422|W|el uksur;louxor;luksor,Luzhou|sichuan|CN|105.43|28.89|998|W|lu cou;lo chau,Luziania|goias|BR|-47.95|-16.25|221|W|,Lviv|lviv|UA|24.02|49.84|717|W|leopoli;lwow;leopolo;leopolis;liov;lvov;lwiw;lemberg,Lynchburg|VA|US|-79.14|37.41|79|N|,Lynn|MA|US|-70.95|42.47|92|N|,Lynnwood|WA|US|-122.32|47.82|36|N|,Lynwood|CA|US|-118.21|33.93|71|N|,Lyon|rhone alpes|FR|4.85|45.75|520|W|lione,Lyubertsy|moscow oblast|RU|37.89|55.68|154|W|lioubertsy;liubertsi;liuberti;liubertsy;ljoebertsy;ljubercy;ljubertsy;ljuberzy;lubiercy,Lyublino|moscow|RU|37.76|55.68|172|W|,M'Sila|m sila|DZ|4.54|35.71|132|W|,Ma'anshan|anhui|CN|118.51|31.69|741|W|,Ma On Shan|sha tin|HK|114.24|22.41|215|W|,Mabalacat City|central luzon|PH|120.57|15.22|188|W|mabalacat,Mableton|GA|US|-84.58|33.82|37|N|,Macae|rio de janeiro|BR|-41.78|-22.38|264|W|,Macapa|amapa|BR|-51.07|0.04|512|W|,Macau||MO|113.55|22.2|649|W|ma cao;macao;makao;makau,Maceio|alagoas|BR|-35.74|-9.67|1031|W|macelo,Machala|el oro|EC|-79.96|-3.26|289|W|,Machida|tokyo|JP|139.45|35.54|431|W|,Machilipatnam|andhra pradesh|IN|81.14|16.19|192|W|masulipatao,Machiques|zulia|VE|-72.55|10.06|132|W|,Macon|GA|US|-83.63|32.84|91|N|,Macuspana|MX27|MX|-92.6|17.76|32|N|,Madanapalle|andhra pradesh|IN|78.5|13.55|180|W|,Madera|CA|US|-120.06|36.96|64|N|,Madhurampur Dehri|bihar|IN|84.2|24.97|137|W|,Madhyamgram|west bengal|IN|88.45|22.69|161|W|,Madinah|medina region|SA|39.61|24.47|1300|W|medina;al madinah al munawwarah;medine;medyna,Madinat an Nasr|cairo|EG|31.3|30.07|668|W|,Madinat Hamad|northern|BH|50.51|26.12|133|W|hamad town,Madison|WI|US|-89.4|43.07|280|NW|,Madison|AL|US|-86.75|34.7|46|N|,Madison|MS|US|-90.12|32.46|25|N|,Madison Heights|MI|US|-83.11|42.49|30|N|madison hts,Madiun|east java|ID|111.52|-7.63|202|W|kota madiun,Madrid|madrid|ES|-3.7|40.42|3255|W|madryt,Madrid|cundinamarca|CO|-74.26|4.73|135|W|,Madrid Centro|madrid|ES|-3.7|40.42|149|W|madrid city center,Madurai|tamil nadu|IN|78.12|9.92|1465|W|maduraj,Maebashi|gunma|JP|139.08|36.4|332|W|maebasi,Magdalena Atlicpac|MX15|MX|-98.95|19.37|26|N|,Magdalena Contreras|MX09|MX|-99.21|19.33|238|NW|,Magdalena de Kino|MX26|MX|-110.96|30.63|26|N|,Magdeburg|saxony anhalt|DE|11.63|52.13|244|W|maagdenburg;magdebourg;magdeburgo;magdeburk,Mage|rio de janeiro|BR|-43.04|-22.65|244|W|,Magna|UT|US|-112.1|40.71|26|N|,Magnitogorsk|chelyabinsk|RU|59.01|53.4|413|W|,Magugpo Poblacion|davao region|PH|125.8|7.45|233|W|tagum;tagum city,Mahabad|west azerbaijan|IR|45.72|36.76|168|W|mehabad,Mahajanga|boeny|MG|46.32|-15.72|260|W|,Maharagama|western province|LK|79.93|6.85|195|W|,Mahbubnagar|telangana|IN|77.99|16.74|190|W|,Mahesana|gujarat|IN|72.38|23.6|190|W|,Maheshtala|west bengal|IN|88.25|22.51|448|W|,Mahilyow|mogilev|BY|30.34|53.91|352|W|mahiljou;mogilev;maguilov;mahiliou;mahiljow;mahileu;mogiljow;moguilev;mohylew,Maianga|luanda|AO|13.24|-8.85|727|W|,Maicao|la guajira department|CO|-72.24|11.38|166|W|,Maiduguri|borno state|NG|13.16|11.85|1110|W|,Maijdi|chittagong|BD|91.1|22.87|132|W|,Mainz|rheinland pfalz|DE|8.28|49.98|222|W|magonza;maguncia;mayence;moguncja;moguncia;mohuc;maienta;ments,Maipu|santiago metropolitan|CL|-70.77|-33.51|503|W|,Majie|yunnan|CN|102.64|25.03|131|W|,Makakilo / Kapolei / Honokai Hale|HI|US|-158.1|21.34|46|N|,Makassar|south sulawesi|ID|119.43|-5.15|1474|W|kota makassar;macassar;makasar,Makati City|national capital region|PH|121.03|14.55|510|W|makati,Makhachkala|dagestan|RU|47.5|42.98|596|W|machaczkala;machatjkala;machatschkala;machatsjkala;machackala;mahackala;mahatskala;mahckale;majachkala;makhatchkala;makhatsjkala,Makiki / Lower Punchbowl / Tantalus|HI|US|-157.83|21.32|31|N|,Makiyivka|donetsk|UA|37.93|48.05|338|W|makiejewka;makiivka,Makkah|mecca region|SA|39.83|21.43|1578|W|mecca;la meca;la mecca;la mecque;makkah al mukarramah;meca;mecka;mekka;mekkah;mekke,Makurdi|benue state|NG|8.52|7.73|390|W|,Malabo|bioko norte|GQ|8.78|3.76|155|W|ciudad de malabo;santa isabel,Malabon|national capital region|PH|120.94|14.67|365|W|,Malacca|melaka|MY|102.24|2.2|579|W|malakka;malaca;malaka;melaka,Malaga|andalusia|ES|-4.42|36.72|592|W|,Malakal|upper nile|SS|31.66|9.53|160|W|,Malang|east java|ID|112.63|-7.98|889|W|kabupaten malang;kota malang,Malanje|malanje|AO|16.34|-9.54|455|W|,Malatia-Sebastia|yerevan|AM|44.45|40.17|150|W|,Malatya|malatya|TR|38.32|38.35|750|W|,Malayer|hamadan province|IR|48.82|34.3|170|W|,Malda|west bengal|IN|88.15|25|170|W|english bazar,Malden|MA|US|-71.07|42.43|61|N|,Malegaon|maharashtra|IN|74.53|20.55|481|W|,Maler Kotla|punjab|IN|75.88|30.53|135|W|,Malingao|soccsksargen|PH|124.47|7.16|1121|W|,Malir Cantonment|sindh|PK|67.21|24.94|300|W|,Malkajgiri|telangana|IN|78.53|17.45|150|W|,Mallawi|minya|EG|30.84|27.73|212|W|,Malmoe|skane|SE|13|55.61|362|W|malmo,Malolos|central luzon|PH|120.81|14.84|269|W|malolos city,Maltepe|istanbul|TR|29.16|40.94|427|W|,Malvern|ON|CA|-79.22|43.81|43|N|,Man|montagnes|CI|-7.55|7.41|241|W|,Man'gyongdae-ri|pyongyang|KP|125.66|38.99|321|W|,Manado|north sulawesi|ID|124.85|1.48|458|W|kota manado,Managua|managua department|NI|-86.25|12.13|973|W|,Manama|manama|BH|50.59|26.23|147|W|al manamah;manamah,Manassas|VA|US|-77.48|38.75|41|N|,Manaus|amazonas|BR|-60.02|-3.1|2219|W|manaos,Manchester|england|GB|-2.24|53.48|568|W|,Manchester|NH|US|-71.45|43|110|N|,Manchester|CT|US|-72.52|41.78|30|N|,Mandalay|mandalay region|MM|96.08|21.97|1208|W|mandalaj,Mandaluyong|national capital region|PH|121.04|14.58|425|W|,Mandaluyong City|national capital region|PH|121.04|14.58|465|W|mandaluyong,Mandaue City|central visayas|PH|123.92|10.32|331|W|,Mandsaur|madhya pradesh|IN|75.07|24.07|141|W|,Mandya|karnataka|IN|76.9|12.52|137|W|mandja,Maneah|kindia|GN|-13.42|9.73|194|W|,Mangaluru|karnataka|IN|74.86|12.92|499|W|mangalore,Mango|jharkhand|IN|86.22|22.83|223|W|,Manhattan|NY|US|-73.97|40.78|1487|NW|,Manhattan|KS|US|-96.57|39.18|56|N|,Manhattan Beach|CA|US|-118.41|33.88|35|N|,Manhattan Valley|NY|US|-73.97|40.79|38|N|,Manila|national capital region|PH|120.98|14.6|1600|W|city of manila;manila city;manilla;manille,Manisa|manisa|TR|27.43|38.61|243|W|magnesia ad sipylum;magnesia am sipylos,Manitowoc|WI|US|-87.66|44.09|33|N|,Manizales|caldas department|CO|-75.51|5.07|434|W|,Manjhand|sindh|PK|68.24|25.91|140|W|,Mankato|MN|US|-94.01|44.16|41|N|,Mannheim|baden wurttemberg|DE|8.47|49.49|307|W|,Manokwari|west papua|ID|134.06|-0.86|132|W|,Mansa|luapula province|ZM|28.89|-11.2|170|W|,Mansfield|england|GB|-1.2|53.13|171|W|,Mansfield|TX|US|-97.14|32.56|64|N|,Mansfield|OH|US|-82.52|40.76|46|N|,Mansfield City|CT|US|-72.23|41.77|26|N|,Mansilingan|western visayas|PH|122.98|10.63|454|W|,Manta|manabi|EC|-80.73|-0.95|264|W|manta ecuador,Mantampay|northern mindanao|PH|124.22|8.17|265|W|,Manteca|CA|US|-121.22|37.8|75|N|,Mantilla|havana|CU|-82.34|23.07|206|W|,Manukau City|auckland|NZ|174.88|-36.99|362|W|manukau,Manzanillo|MX08|MX|-104.34|19.12|159|NW|,Maoming|guangdong|CN|110.91|21.67|1307|W|chaozhou;mao ming,Maple Grove|MN|US|-93.46|45.07|68|N|,Maple Ridge|BC|CA|-122.6|49.22|82|N|,Maple Valley|WA|US|-122.05|47.39|25|N|,Maplewood|MN|US|-93|44.95|40|N|,Maplewood|NJ|US|-74.27|40.73|25|N|,Maputo|maputo city|MZ|32.58|-25.97|1254|W|lourenco marques,Mar del Plata|buenos aires|AR|-57.56|-38|593|W|,Mar'ino|moscow|RU|37.72|55.65|243|W|,Maraba|para|BR|-49.13|-5.38|283|W|,Maracaibo|zulia|VE|-71.61|10.64|1752|W|,Maracanau|ceara|BR|-38.63|-3.88|251|W|,Maracay|aragua|VE|-67.59|10.25|464|W|,Maradi|maradi region|NE|7.1|13.5|361|W|,Maragheh|east azerbaijan|IR|46.24|37.39|262|W|,Maragheh|razavi khorasan|IR|59.63|35.83|262|W|,Marana|AZ|US|-111.23|32.44|41|N|,Maravatio de Ocampo|MX16|MX|-100.44|19.89|34|N|,Marawi City|autonomous region in muslim mindanao|PH|124.28|8|259|W|,Marbella|andalusia|ES|-4.89|36.52|156|W|,Marcory|abidjan autonomous district|CI|-3.99|5.31|214|W|,Mardan|khyber pakhtunkhwa|PK|72.05|34.2|300|W|,Marfil|MX11|MX|-101.29|21|29|N|,Marg'ilon|fergana|UZ|71.72|40.47|253|W|margilan,Margate|FL|US|-80.21|26.24|57|N|,Marianao|havana|CU|-82.43|23.07|134|W|,Marica|rio de janeiro|BR|-42.82|-22.92|211|W|,Maricopa|AZ|US|-112.05|33.06|48|N|,Marienthal|hamburg|DE|10.08|53.57|287|W|hamburg marienthal,Marietta|GA|US|-84.55|33.95|59|N|,Marikina City|national capital region|PH|121.11|14.65|471|W|,Marilia|sao paulo|BR|-49.95|-22.21|237|W|,Maringa|parana|BR|-51.94|-23.43|409|W|,Marion|IA|US|-91.6|42.03|37|N|,Marion|OH|US|-83.13|40.59|36|N|,Marion|IN|US|-85.66|40.56|29|N|,Mariupol|donetsk|UA|37.54|47.1|230|W|marioepol;marioupol,Marivan|kurdistan province|IR|46.18|35.52|136|W|,Mariveles|central luzon|PH|120.49|14.43|156|W|,Marka|lower shabeelle|SO|44.77|1.72|230|W|merca,Markham|ON|CA|-79.27|43.87|338|NW|,Marlboro|NJ|US|-74.25|40.32|40|N|,Marlborough|MA|US|-71.55|42.35|39|N|,Marne La Vallee|ile de france|FR|2.64|48.84|318|W|,Maroua|far north|CM|14.32|10.59|314|W|,Marpole|BC|CA|-123.13|49.21|27|N|,Marrakesh|marrakesh safi|MA|-8|31.63|995|W|marrakech;marakes;marrakesch;marrakesz;marraquexe;marrakes,Marrero|LA|US|-90.1|29.9|33|N|,Marsa Matruh|matruh|EG|27.24|31.35|176|W|mersa matruh,Marseille|provence alpes cote d azur|FR|5.38|43.3|877|W|marselha;marsella;marsiglia;marsilia;marsilya;marsylia,Marshalltown|IA|US|-92.91|42.05|27|N|,Martapura|south kalimantan|ID|114.86|-3.41|131|W|,Martinez|CA|US|-122.13|38.02|38|N|,Martinez|GA|US|-82.08|33.52|35|N|,Martinez de la Torre|MX30|MX|-97.06|20.07|60|N|,Marvdasht|fars|IR|52.8|29.87|148|W|,Mary|mary|TM|61.83|37.59|167|W|,Maryland Heights|MO|US|-90.43|38.71|27|N|,Marysville|WA|US|-122.18|48.05|66|N|,Maryvale|AZ|US|-112.18|33.5|208|NW|,Maryville|TN|US|-83.97|35.76|28|N|,Masai|johor|MY|103.88|1.49|141|W|,Masan|gwangju|KR|126.83|35.13|434|W|,Masaya|masaya department|NI|-86.1|11.97|130|W|,Mascouche|QC|CA|-73.6|45.75|34|N|,Maseru|maseru district|LS|27.48|-29.32|359|W|,Mashhad|razavi khorasan|IR|59.61|36.3|2307|W|maschhad;mashad;masyhad;meszhed;mexed;meshed;alexandria;sanaabad,Masina|kinshasa|CD|15.39|-4.38|485|W|,Mason|OH|US|-84.31|39.36|32|N|,Mason City|IA|US|-93.2|43.15|27|N|,Maspeth|NY|US|-73.91|40.72|48|N|,Massillon|OH|US|-81.52|40.8|32|N|,Matadi|bas congo|CD|13.46|-5.84|425|W|,Matamoros|MX07|MX|-103.23|25.53|52|N|,Matanzas|matanzas province|CU|-81.58|23.04|146|W|,Mataram|west nusa tenggara|ID|116.12|-8.58|441|W|kota mataram,Matehuala|MX24|MX|-100.64|23.65|77|N|,Mathura|uttar pradesh|IN|77.67|27.5|330|W|matura,Matola|maputo province|MZ|32.46|-25.96|1198|W|,Matsubara|osaka|JP|135.55|34.57|130|W|,Matsudo|chiba|JP|139.9|35.78|498|W|,Matsue|shimane|JP|133.05|35.48|203|W|macue,Matsumoto|nagano|JP|137.97|36.23|241|W|macumoto,Matsusaka|mie|JP|136.54|34.58|159|W|,Matsuyama|ehime|JP|132.77|33.84|511|W|macujama;matsuyama shi,Mattapan|MA|US|-71.09|42.27|36|N|,Matthews|NC|US|-80.72|35.12|30|N|,Matuga|kwale county|KE|39.57|-4.17|194|W|,Maturin|monagas|VE|-63.18|9.75|647|W|,Mau|uttar pradesh|IN|83.56|25.94|246|W|,Maua|sao paulo|BR|-46.46|-23.67|418|W|,Mauldin|SC|US|-82.31|34.78|25|N|,Mawlamyine|mon|MM|97.63|16.49|438|W|mawlamyaing;moulmein;mulmejn,Maykop|adygeya republic|RU|40.1|44.61|141|W|maikop;majkop,Maywood|CA|US|-118.19|33.99|27|N|,Mazar-e Sharif|balkh|AF|67.11|36.71|523|W|masar e scharif;mazar e charif;mazar i szarif;mazari sharif;mazar e sarif;mezirek i serif,Mazatlan|MX25|MX|-106.42|23.22|381|NW|ciudad mazatlan,Mbandaka|equateur|CD|18.26|0.05|455|W|,Mbanza Kongo|zaire|AO|14.24|-6.27|148|W|mbanza congo,Mbanza-Ngungu|bas congo|CD|14.86|-5.26|142|W|,Mbarara|western region|UG|30.65|-0.6|221|W|,Mbeya|mbeya|TZ|33.45|-8.9|541|W|,Mbour|thies|SN|-16.96|14.42|284|W|,Mbuji-Mayi|east kasai|CD|23.59|-6.14|2101|W|,McAllen|TX|US|-98.23|26.2|140|NW|,McCully - Moiliili|HI|US|-157.83|21.29|28|N|,McHenry|IL|US|-88.27|42.33|26|N|,McKinney|TX|US|-96.62|33.2|162|NW|,McLean|VA|US|-77.18|38.93|48|N|,McMinnville|OR|US|-123.2|45.21|33|N|,Mdantsane|eastern cape|ZA|27.78|-32.93|205|W|,Meadow Woods|FL|US|-81.37|28.39|25|N|,Meads|KY|US|-82.71|38.41|288|NW|,Mechanicsville|VA|US|-77.37|37.61|36|N|,Medan|north sumatra|ID|98.67|3.58|2486|W|kota medan,Medea|medea|DZ|2.75|36.26|145|W|al madijja,Medellin|antioquia|CO|-75.57|6.25|1999|W|medelim,Medford|OR|US|-122.88|42.33|79|N|,Medford|MA|US|-71.11|42.42|57|N|,Medicine Hat|AB|CA|-110.68|50.04|63|N|,Medina|OH|US|-81.86|41.14|26|N|,Medinipur|west bengal|IN|87.32|22.42|153|W|,Meerut|uttar pradesh|IN|77.71|28.98|1223|W|merath,Meguro|tokyo|JP|139.7|35.63|288|W|meguro city,Mehlville|MO|US|-90.32|38.51|28|N|,Meiktila|mandalay region|MM|95.86|20.88|177|W|miktila,Meishan|sichuan|CN|103.84|30.04|1107|W|mej san;mi son,Meizhou|guangdong|CN|116.12|24.29|992|W|mai chau;mej cou,Mejicanos|san salvador department|SV|-89.19|13.72|160|W|,Mek'ele|tigray|ET|39.48|13.5|457|W|macalle;mekelie,Meknes|fes meknes|MA|-5.55|33.89|568|W|,Melbourne|victoria|AU|144.96|-37.81|5435|W|greater melbourne;melbourne city,Melbourne|FL|US|-80.61|28.08|84|N|,Melchor Ocampo|MX15|MX|-99.14|19.7|38|N|,Melitopol|zaporizhzhia|UA|35.38|46.85|148|W|kyzyl yar;melitopoli;novoalexandrovka,Melrose|MA|US|-71.07|42.46|27|N|,Melrose Park|IL|US|-87.86|41.9|25|N|,Memphis|TN|US|-90.05|35.15|633|NW|menfis,Mengzi|yunnan|CN|103.38|23.37|595|W|,Menifee|CA|US|-117.15|33.73|87|N|,Menlo Park|CA|US|-122.18|37.45|33|N|,Menomonee Falls|WI|US|-88.12|43.18|36|N|,Menongue|cubango|AO|17.69|-14.66|251|W|,Mentor|OH|US|-81.34|41.67|46|N|,Mentougou|beijing|CN|116.09|39.94|197|W|,Merced|CA|US|-120.48|37.3|82|N|,Mercer Island|WA|US|-122.22|47.57|25|N|,Mercerville-Hamilton Square|NJ|US|-74.67|40.23|26|N|hamilton square,Mercier-Hochelaga-Maisonneuve|QC|CA|-73.55|45.57|142|NW|,Merida|MX31|MX|-89.62|20.97|1201|NW|,Merida|merida|VE|-71.17|8.58|300|W|,Meriden|CT|US|-72.81|41.54|59|N|,Meridian|ID|US|-116.39|43.61|90|N|,Meridian|MS|US|-88.7|32.36|39|N|,Merkezefendi|denizli|TR|29.04|37.81|280|W|,Merlo|buenos aires|AR|-58.73|-34.67|268|W|,Merrillville|IN|US|-87.33|41.48|35|N|,Merrimack|NH|US|-71.49|42.87|26|N|east merrimack,Merritt Island|FL|US|-80.69|28.36|34|N|,Mersin|mersin|TR|34.64|36.81|537|W|myrte;icel,Mesa|AZ|US|-111.82|33.42|471|NW|,Mesquite|TX|US|-96.6|32.77|144|NW|,Messina|sicily|IT|15.55|38.19|219|W|mesina;messine;mesyna,Mestre|veneto|IT|12.25|45.49|147|W|mestre bei venedig,Metairie|LA|US|-90.15|29.98|138|NW|,Metairie Terrace|LA|US|-90.16|29.98|142|NW|,Metepec|MX15|MX|-99.6|19.26|28|N|municipio metepec;municipio de metepec,Methuen|MA|US|-71.19|42.73|52|N|,Metro|lampung|ID|105.31|-5.11|182|W|kota metro,Metrotown|BC|CA|-123|49.23|52|N|,Mexicali|MX02|MX|-115.45|32.63|1032|NW|,Mexico City|MX09|MX|-99.13|19.43|12294|NW|ciudad de mexico;mexico by;cidade do mexico;citta del messico;ciudad de mejico;meksyk;mexico;mexico d f;mexico stad;mexiko stadt;mexico distrito federal;valle de mexico,Meycauayan|central luzon|PH|120.96|14.74|228|W|kota meycauayan;meycauayan city,Miami|FL|US|-80.19|25.77|487|NW|,Miami Beach|FL|US|-80.13|25.79|92|N|,Miami Gardens|FL|US|-80.25|25.94|113|N|,Miami Lakes|FL|US|-80.31|25.91|30|N|,Mian Channun|punjab|PK|72.36|30.44|140|W|mian channu,Miandoab|west azerbaijan|IR|46.11|36.97|134|W|,Mianyang|sichuan|CN|104.68|31.47|1550|W|mien jang;mien duong,Mianzhu Deyang Sichuan|sichuan|CN|104.22|31.34|510|W|,Miass|chelyabinsk|RU|60.11|55.05|167|W|,Michigan City|IN|US|-86.9|41.71|31|N|,Mid-City|CA|US|-118.36|34.04|83|N|,Middelburg|mpumalanga|ZA|29.46|-25.78|196|W|,Middle River|MD|US|-76.44|39.33|25|N|,Middle Village|NY|US|-73.88|40.72|29|N|,Middlesbrough|england|GB|-1.23|54.58|142|W|,Middletown|NJ|US|-74.12|40.39|65|N|middletown township;municipio de middletown,Middletown|OH|US|-84.4|39.52|48|N|,Middletown|CT|US|-72.65|41.56|46|N|,Middletown|NY|US|-74.42|41.45|27|N|,Midland|TX|US|-102.08|32|132|NW|,Midland|MI|US|-84.25|43.62|42|N|,Midvale|UT|US|-111.9|40.61|32|N|,Midwest City|OK|US|-97.4|35.45|57|N|,Miguel Aleman (La Doce)|MX26|MX|-111.48|28.84|30|N|,Miguel Hidalgo|MX09|MX|-99.2|19.43|372|NW|delegacion miguel hidalgo,Milagro|guayas|EC|-79.59|-2.13|133|W|,Milan|lombardy|IT|9.19|45.46|1371|W|milano;mailand;mediolan;milaan;milao,Milford|CT|US|-73.06|41.22|52|N|,Milford|MA|US|-71.52|42.14|25|N|,Milford Mill|MD|US|-76.77|39.35|29|N|,Mililani Town|HI|US|-158.02|21.45|27|N|,Millcreek|UT|US|-111.88|40.69|62|N|,Milliken|ON|CA|-79.3|43.82|26|N|,Millville|NJ|US|-75.04|39.4|28|N|,Milpitas|CA|US|-121.91|37.43|77|N|,Milton|ON|CA|-79.88|43.52|132|NW|,Milton|GA|US|-84.3|34.13|37|N|,Milton|MA|US|-71.07|42.25|27|N|,Milton Keynes|england|GB|-0.76|52.04|256|W|,Milwaukee|WI|US|-87.91|43.04|563|NW|,Mimico|ON|CA|-79.51|43.62|33|N|,Minamirinkan|kanagawa|JP|139.44|35.5|224|W|,Minatitlan|MX30|MX|-94.56|18|112|N|,Minato|wakayama|JP|135.15|34.22|375|W|,Minato City|tokyo|JP|139.75|35.66|260|W|minato,Mingala Tangnyunt|yangon|MM|96.17|16.79|132|W|,Mingaladon|yangon|MM|96.1|16.92|136|W|,Mingora|khyber pakhtunkhwa|PK|72.36|34.78|361|W|mingaora,Minhang|shanghai|CN|121.37|31.11|2716|W|,Minna|niger state|NG|6.55|9.62|425|W|,Minneapolis|MN|US|-93.26|44.98|410|NW|mineapolis,Minnetonka|MN|US|-93.5|44.91|51|N|,Minnetonka Mills|MN|US|-93.44|44.94|50|N|,Minoh|osaka|JP|135.47|34.83|136|W|,Minot|ND|US|-101.3|48.23|49|N|,Minsk|minsk city|BY|27.57|53.9|1742|W|,Mint Hill|NC|US|-80.65|35.18|25|N|,Minya|minya|EG|30.76|28.09|283|W|,Mira Mesa|CA|US|-117.14|32.92|70|N|,Mirabel|QC|CA|-74.08|45.65|34|N|,Miraflores|lima region|PE|-77.03|-12.11|187|W|san borja,Miramar|FL|US|-80.23|25.99|137|NW|,Miramar|MX28|MX|-97.9|22.36|118|N|,Miri|sarawak|MY|113.99|4.4|300|W|marabu,Mirpur Khas|sindh|PK|69.01|25.53|267|W|,Mirpur Model Thana|dhaka division|BD|90.36|23.81|546|W|,Mirzapur|uttar pradesh|IN|82.57|25.14|220|W|,Misantla|MX30|MX|-96.85|19.93|26|N|,Misato Saitama|saitama|JP|139.88|35.84|142|W|,Mishawaka|IN|US|-86.16|41.66|48|N|,Miskolc|borsod abauj zemplen|HU|20.78|48.1|154|W|miszkolc,Misratah|misratah|LY|15.09|32.38|355|W|al misratah;misrata,Mission|TX|US|-98.33|26.22|83|N|,Mission|BC|CA|-122.3|49.13|41|N|,Mission Bend|TX|US|-95.66|29.69|36|N|,Mission District|CA|US|-122.42|37.76|47|N|,Mission Viejo|CA|US|-117.67|33.6|97|N|,Mississauga|ON|CA|-79.66|43.58|717|NW|,Missoula|MT|US|-113.99|46.87|71|N|,Missouri City|TX|US|-95.54|29.62|74|N|,Mit Ghamr|dakahlia|EG|31.26|30.72|153|W|,Mito|ibaraki|JP|140.45|36.35|270|W|,Mixco|guatemala|GT|-90.61|14.63|465|W|,Mixquiahuala de Juarez|MX13|MX|-99.21|20.23|25|N|,Miyakonojo|miyazaki|JP|131.07|31.73|161|W|,Miyazaki|miyazaki|JP|131.42|31.92|401|W|miyazaki shi;miyazakishi,Mlolongo|machakos county|KE|36.94|-1.4|136|W|,Mobile|AL|US|-88.04|30.69|183|NW|,Mocuba|zambezia province|MZ|36.99|-16.84|196|W|,Modena|emilia romagna|IT|10.93|44.65|184|W|modene,Modesto|CA|US|-121|37.64|211|NW|,Modinagar|uttar pradesh|IN|77.57|28.83|475|W|,Moenchengladbach|north rhine westphalia|DE|6.44|51.19|261|W|monchengladbach,Moga|punjab|IN|75.17|30.81|163|W|,Mogadishu|banaadir|SO|45.34|2.04|2587|W|mogadischu;mogadiscio;mogadiszu;mogadisu;mogadiso,Mogi das Cruzes|sao paulo|BR|-46.19|-23.52|325|W|,Mogi Guacu|sao paulo|BR|-46.95|-22.37|160|W|,Mohali|punjab|IN|76.72|30.68|166|W|,Mohammadpur|rajshahi division|BD|88.53|24.9|527|W|,Mohammedia|casablanca settat|MA|-7.38|33.69|227|W|al muhammadijja;muhammediye;fedala,Mojokerto|east java|ID|112.43|-7.47|141|W|kota mojokerto,Mokotow|mazovia|PL|21.03|52.19|217|W|,Mokpo|jeollanam do|KR|126.39|34.81|268|W|mogpo,Moline|IL|US|-90.52|41.51|42|N|,Mombasa|mombasa county|KE|39.66|-4.05|1208|W|mombassa;mombaca,Monclova|MX07|MX|-101.42|26.91|215|NW|,Moncton|NB|CA|-64.8|46.09|86|N|,Monroe|LA|US|-92.12|32.51|49|N|,Monroe|NC|US|-80.55|34.99|34|N|,Monroeville|PA|US|-79.79|40.42|28|N|,Monrovia|montserrado county|LR|-10.8|6.3|1542|W|monrowia,Monrovia|CA|US|-118|34.15|37|N|,Montclair|NJ|US|-74.21|40.83|39|N|,Montclair|CA|US|-117.69|34.08|38|N|,Montebello|CA|US|-118.11|34.01|63|N|,Montemorelos|MX19|MX|-99.83|25.19|67|N|,Monterey|CA|US|-121.89|36.6|28|N|monterrey,Monterey Park|CA|US|-118.12|34.06|61|N|,Monteria|cordoba|CO|-75.88|8.75|490|W|,Monterrey|MX19|MX|-100.32|25.68|1135|NW|monterrei;monterrey city,Montes Claros|minas gerais|BR|-43.86|-16.73|437|W|,Montevideo|montevideo department|UY|-56.19|-34.9|1270|W|montevideu,Montgomery|AL|US|-86.3|32.37|195|NW|,Montgomery Village|MD|US|-77.2|39.18|32|N|,Montpellier|occitanie|FR|3.88|43.61|248|W|,Montreal|QC|CA|-73.59|45.51|1762|NW|montreal city,Montreal-Nord|QC|CA|-73.63|45.6|86|N|,Monywa|sagaing region|MM|95.14|22.11|182|W|munywa,Moore|OK|US|-97.49|35.34|60|N|,Mooresville|NC|US|-80.81|35.58|36|N|,Moorhead|MN|US|-96.77|46.87|42|N|,Moorpark|CA|US|-118.88|34.29|36|N|,Moose Jaw|SK|CA|-105.53|50.4|33|N|,Mopti|mopti|ML|-4.18|14.48|186|W|,Moradabad|uttar pradesh|IN|78.78|28.84|721|W|,Moratuwa|western province|LK|79.88|6.77|168|W|,Morelia|MX16|MX|-101.18|19.7|743|NW|,Morena|madhya pradesh|IN|78|26.5|200|W|,Moreno|buenos aires|AR|-58.79|-34.63|148|W|,Moreno Valley|CA|US|-117.23|33.94|204|NW|,Morgan Hill|CA|US|-121.65|37.13|42|N|,Morgantown|WV|US|-79.96|39.63|30|N|,Moriguchi|osaka|JP|135.57|34.73|143|W|,Morioka|iwate|JP|141.15|39.7|290|W|,Morningside Heights|NY|US|-73.96|40.81|55|N|,Moro|sindh|PK|68|26.66|142|W|,Morogoro|morogoro|TZ|37.66|-6.82|471|W|,Moroleon|MX11|MX|-101.19|20.13|43|N|,Morris Heights|NY|US|-73.92|40.85|40|N|,Morristown|TN|US|-83.29|36.21|29|N|,Morvi|gujarat|IN|70.84|22.82|210|W|,Moscow|moscow|RU|37.62|55.75|10381|W|moscou;moscova;moscovo;moscu;matxcova;mosca;moskau;moskou;moskova;moskva;moskwa;mat xco va,Moscow|ID|US|-117|46.73|25|N|,Moshi|kilimanjaro|TZ|37.33|-3.35|221|W|,Mossamedes|namibe|AO|12.15|-15.2|255|W|mocamedes;namibe,Mossoro|rio grande do norte|BR|-37.34|-5.19|264|W|,Mostaganem|mostaganem|DZ|0.09|35.93|162|W|mustaghanam,Mostoles|madrid|ES|-3.86|40.32|207|W|,Mosul|nineveh|IQ|43.12|36.34|1683|W|mosoel;mossoul;mossul;musul,Motijheel|dhaka division|BD|90.42|23.73|202|W|,Mott Haven|NY|US|-73.92|40.81|51|N|,Moundou|logone occidental|TD|16.08|8.57|196|W|,Mount Juliet|TN|US|-86.52|36.2|31|N|,Mount Laurel|NJ|US|-74.89|39.93|41|N|,Mount Lebanon|PA|US|-80.05|40.36|32|N|,Mount Olive-Silverstone-Jamestown|ON|CA|-79.59|43.75|32|N|,Mount Pleasant|SC|US|-79.86|32.79|81|N|mt pleasant,Mount Pleasant|DC|US|-77.04|38.93|35|N|ingleside;mount pleasant village;rosemont park;walbridge,Mount Pleasant|BC|CA|-123.1|49.27|33|N|,Mount Pleasant|WI|US|-87.86|42.7|26|N|,Mount Pleasant|MI|US|-84.77|43.6|26|N|mt pleasant,Mount Pleasant West|ON|CA|-79.39|43.7|29|N|,Mount Prospect|IL|US|-87.94|42.07|54|N|,Mount Vernon|NY|US|-73.84|40.91|68|N|,Mount Vernon|WA|US|-122.33|48.42|34|N|,Mountain View|CA|US|-122.08|37.39|80|N|,Moyotzingo|MX21|MX|-98.4|19.25|27|N|,Mpanda|katavi|TZ|31.07|-6.34|204|W|,Mpumalanga|kwazulu natal|ZA|30.64|-29.81|140|W|epumalanga;hammarsdale,Mt Pleasant|BC|CA|-123.1|49.26|32|N|,Mthatha|eastern cape|ZA|28.78|-31.59|164|W|umtata,Mtwara|mtwara|TZ|40.18|-10.27|140|W|,Mu-se|shan state|MM|97.9|24|165|W|,Muar|johor|MY|102.57|2.04|314|W|muar town,Mubi|adamawa|NG|13.27|10.27|225|W|,Mudanjiang|heilongjiang|CN|129.63|44.55|665|W|mu tan tiang,Mueang Nonthaburi|nonthaburi|TH|100.51|13.86|254|W|nonthaburi,Muelheim|north rhine westphalia|DE|6.88|51.43|173|W|mulheim;muelheim an der ruhr;mulheim an der ruhr,Muenster|north rhine westphalia|DE|7.63|51.96|308|W|munster,Mufulira|copperbelt|ZM|28.24|-12.55|169|W|,Mukalla|muhafazat hadramaout|YE|49.12|14.54|594|W|al mukalla;mukala,Mukim Pulai|johor|MY|103.67|1.53|505|W|,Mukono|central region|UG|32.76|0.35|191|W|,Mulenvos|luanda|AO|13.33|-8.87|882|W|,Multan|punjab|PK|71.48|30.2|2169|W|,Mulugu|telangana|IN|79.94|18.19|297|W|,Mumbai|maharashtra|IN|72.88|19.07|12691|W|mumbaj;mumbay;bombay;bombaim;bombaj,Muncie|IN|US|-85.39|40.19|70|N|,Mundelein|IL|US|-88|42.26|31|N|,Munger|bihar|IN|86.47|25.37|213|W|,Munich|bavaria|DE|11.58|48.14|1505|W|munchen;mnichov;monachium;monaco di baviera;muenchen;munique;munih,Muntinlupa|calabarzon|PH|121.05|14.39|552|W|city of muntinlupa,Muratpasa|antalya|TR|30.76|36.89|450|W|,Murcia|murcia|ES|-1.13|37.99|471|W|murcie;murcja,Murfreesboro|TN|US|-86.39|35.85|165|NW|,Muricay|zamboanga peninsula|PH|123.48|7.83|132|W|,Muridke|punjab|PK|74.26|31.8|254|W|muridike,Murmansk|murmansk|RU|33.1|68.97|295|W|moermansk;mourmansk;muurmanski;romanov;romanov on murman;semenova,Murray|UT|US|-111.89|40.67|49|N|,Murrieta|CA|US|-117.21|33.55|109|N|,Murwara|madhya pradesh|IN|80.39|23.84|221|W|,Musaffah|abu dhabi|AE|54.48|24.36|243|W|musaffah city,Musanze|northern province|RW|29.63|-1.5|153|W|ruhengeri,Musashino|tokyo|JP|139.56|35.71|150|W|,Muscat|muscat|OM|58.41|23.58|797|W|mascate;maskat;masqat;muskat,Mushin|lagos|NG|3.35|6.53|199|W|,Muskegon|MI|US|-86.25|43.23|38|N|,Muskogee|OK|US|-95.37|35.75|38|N|,Musoma|mara|TZ|33.8|-1.5|164|W|,Mutare|manicaland|ZW|32.67|-18.97|224|W|,Muzaffarabad|azad kashmir|PK|73.47|34.37|725|W|,Muzaffargarh|punjab|PK|71.19|30.07|235|W|,Muzaffarnagar|uttar pradesh|IN|77.7|29.47|349|W|,Muzaffarpur|bihar|IN|85.39|26.12|354|W|,Mwala|machakos county|KE|37.45|-1.35|181|W|,Mwanza|mwanza|TZ|32.9|-2.52|1104|W|,Mwene|lualaba|CD|22.87|-9.82|295|W|,Mwene-Ditu|lomami|CD|23.45|-7.01|189|W|,My Tho|dong thap|VN|106.36|10.36|270|W|,Myeik|tanintharyi region|MM|98.6|12.44|173|W|mergui,Myingyan|mandalay region|MM|95.39|21.46|141|W|,Mykolayiv|mykolaiv|UA|31.99|46.98|470|W|mikolajow;mykolaiv;nicolopoli;vernoleninsk,Mymensingh|mymensingh division|BD|90.41|24.76|225|W|,Myrtle Beach|SC|US|-78.89|33.69|31|N|,Mysuru|karnataka|IN|76.64|12.3|920|W|maisur;mysore,Mytishchi|moscow oblast|RU|37.73|55.91|160|W|mitischi;mytichtchi;mytischtschi;mytisjtji;mytisjtsji;mytiszczi;mytistsi;mytisci;mitisci;miytisci,Mzuzu|northern region|MW|34.02|-11.47|249|W|,N'dalatando|cuanza norte|AO|14.91|-9.3|161|W|ndalatando,N'Djamena|n djamena|TD|15.04|12.11|1359|W|yamena;indschamina;ndjamena;ndzamena,Naberezhnyye Chelny|tatarstan republic|RU|52.42|55.74|509|W|naberezhnye chelny;naberejnye chelny;nabereschnyje tschelny;naberezjnye tsjelny;nabereznyje tselny;nabereznyje celny;brezhnev,Nablus|west bank|PS|35.25|32.22|130|W|naplouse;shechem;sichem;siquem;sychem,Nacala|nampula|MZ|40.69|-14.56|239|W|cidade de nacala;nacala porto,Nacogdoches|TX|US|-94.66|31.6|33|N|,Nada|hainan|CN|109.58|19.52|256|W|danzhou,Nadiad|gujarat|IN|72.86|22.69|225|W|,Nador|oriental|MA|-2.93|35.17|176|W|,Naga|bicol region|PH|123.18|13.62|174|W|kota naga,Naga|central visayas|PH|123.76|10.21|138|W|city of naga;kota naga;naga city,Nagano|nagano|JP|138.18|36.65|372|W|,Nagaoka|niigata|JP|138.85|37.45|266|W|,Nagar Naluakot|dhaka division|BD|90.77|24.16|273|W|nogor noluakot,Nagareyama|chiba|JP|139.9|35.86|200|W|,Nagarpur|dhaka division|BD|89.88|24.06|238|W|,Nagasaki|nagasaki|JP|129.88|32.75|409|W|nagasaki shi;nagasakishi;nangasaque,Nagercoil|tamil nadu|IN|77.43|8.18|224|W|nagarkoil;nagarkovil,Nagoya|aichi|JP|136.91|35.18|2332|W|nagoia;nagoja;nagoya city;nagoya shi,Nagpur|maharashtra|IN|79.08|21.15|2405|W|,Naha|okinawa|JP|127.68|26.21|317|W|,Naihati|west bengal|IN|88.42|22.89|253|W|,Nairobi|nairobi county|KE|36.82|-1.28|4397|W|,Naivasha|nakuru county|KE|36.43|-0.71|198|W|,Najaf|najaf|IQ|44.35|32.03|482|W|an nadzaf;an najaf;nadjaf;nadschaf;nadzaf;nayaf;necef,Najafabad|isfahan|IR|51.37|32.63|235|W|,Najafgarh|delhi|IN|76.98|28.61|1365|W|,Najran|najran region|SA|44.13|17.49|505|W|necran,Nakano|tokyo|JP|139.67|35.7|344|W|nakano city,Nakhodka|primorye|RU|132.92|42.84|146|W|nachodka;nahodka;najodka;langouwai,Nakuru|nakuru county|KE|36.07|-0.31|570|W|,Nalchik|kabardino balkariya republic|RU|43.62|43.5|239|W|nal chik;naltschik;naltsik;nalcik,Nalgonda|telangana|IN|79.27|17.05|154|W|,Nam GJinh|ninh binh|VN|106.18|20.43|448|W|nam dinh,Namangan|namangan|UZ|71.67|41|713|W|namanga;nemengan,Namp'o|nampo|KP|125.41|38.74|455|W|nampo,Nampa|ID|US|-116.56|43.54|89|N|,Nampula|nampula|MZ|39.27|-15.12|770|W|,Nanaimo|BC|CA|-123.94|49.17|90|N|,Nanchang|jiangxi|CN|115.85|28.68|2357|W|nam xuong;nan cchang,Nanchital de Lazaro Cardenas del Rio|MX30|MX|-94.41|18.07|25|N|villa nanchital,Nanchong|sichuan|CN|106.08|30.8|1858|W|nam sung;nan cchung,Nanchuan|chongqing|CN|107.1|29.15|204|W|,Nanded|maharashtra|IN|77.31|19.16|550|W|,Nandyal|andhra pradesh|IN|78.48|15.48|211|W|,Nangloi Jat|delhi|IN|77.07|28.68|205|W|,Nanjin|chongqing|CN|106.27|29.98|143|W|,Nanjing|jiangsu|CN|118.78|32.06|9314|W|nankin;nam kinh;nanchino;nanquim;nankijn,Nankana Sahib|punjab|PK|73.71|31.45|130|W|,Nanning|guangxi|CN|108.32|22.82|3839|W|nam ninh;nan ning,Nanpiao|liaoning|CN|120.75|41.1|157|W|,Nanping|fujian|CN|118.17|26.64|467|W|nam binh;nan pching,Nanqiao|shanghai|CN|121.45|30.92|361|W|,Nansana|central region|UG|32.53|0.36|532|W|,Nantes|pays de la loire|FR|-1.55|47.22|325|W|,Nantong|jiangsu|CN|120.87|32.03|2273|W|nam thong;nan tchung,Nantou|guangdong|CN|113.29|22.72|130|W|,Nanyang|henan|CN|112.55|33.01|1811|W|nam duong;nan jang,Napa|CA|US|-122.29|38.3|80|N|,Naperville|IL|US|-88.15|41.79|147|NW|,Naples|campania|IT|14.27|40.85|909|W|neapel;napels;napoli;neapol;neapole;napoles,Nara-shi|nara|JP|135.8|34.69|367|W|nara,Narashino|chiba|JP|140.04|35.68|176|W|,Narayanganj|dhaka division|BD|90.5|23.61|223|W|,Narela|delhi|IN|77.09|28.85|800|W|,Narita|chiba|JP|140.32|35.78|132|W|,Narowal|punjab|PK|74.87|32.1|130|W|,Narsingdi|dhaka division|BD|90.72|23.92|281|W|,Nashik|maharashtra|IN|73.79|20|1486|W|,Nashua|NH|US|-71.47|42.77|87|N|,Nashville|TN|US|-86.78|36.17|689|NW|,Nasim Shahr|tehran|IR|51.16|35.57|200|W|,Nasimshahr|tehran|IR|51.16|35.57|200|W|,Nasiriyah|dhi qar|IQ|46.26|31.06|558|W|an nasiriya;nasirijja;nasiriya,Nassau|new providence|BS|-77.34|25.06|227|W|nasau,Natal|rio grande do norte|BR|-35.21|-5.79|896|W|,Natick|MA|US|-71.35|42.28|32|N|,National City|CA|US|-117.1|32.68|61|N|,Natore|rajshahi division|BD|88.99|24.41|369|W|,Naucalpan de Juarez|MX15|MX|-99.24|19.48|834|NW|naucalpan,Naugatuck|CT|US|-73.05|41.49|31|N|,Navarre|FL|US|-86.86|30.4|31|N|,Navegantes|benguela|AO|13.39|-12.59|240|W|,Navi Mumbai|maharashtra|IN|73.02|19.04|2600|W|nova bombaim;new bombay,Navoiy|navoiy region|UZ|65.38|40.08|144|W|navoi;nawoi;nevai,Navojoa|MX26|MX|-109.44|27.07|113|N|,Navolato|MX25|MX|-107.7|24.77|29|N|,Navotas|national capital region|PH|120.95|14.67|249|W|,Navsari|gujarat|IN|72.92|20.94|171|W|,Nawabganj|rajshahi division|BD|88.27|24.59|142|W|,Nawabshah|sindh|PK|68.4|26.24|363|W|,Nay Pyi Taw|nay pyi taw|MM|96.13|19.75|925|W|naipidau;naypyidaw;naypyitaw,Nazarabad|alborz province|IR|50.61|35.95|213|W|,Nazran|ingushetiya republic|RU|44.77|43.23|164|W|nasran,Nazret|oromiya|ET|39.27|8.55|456|W|,Ndola|copperbelt|ZM|28.64|-12.96|627|W|,Near North Side|IL|US|-87.63|41.9|85|N|,Needham|MA|US|-71.23|42.28|28|N|,Neenah|WI|US|-88.46|44.19|25|N|,Negombo|western province|LK|79.84|7.21|137|W|negumbo,Neihu|taiwan|TW|121.59|25.08|274|W|distretto di neihu;district de neihu;distrik neihu;neihu district,Neijiang|sichuan|CN|105.06|29.58|1251|W|nej tiang,Neiva|huila department|CO|-75.28|2.93|357|W|,Nek'emte|oromiya|ET|36.55|9.08|156|W|,Nellore|andhra pradesh|IN|79.99|14.45|547|W|nellur,Nepalgunj|lumbini province|NP|81.62|28.05|166|W|,Nepean|ON|CA|-75.72|45.34|180|NW|,Netanya|central district|IL|34.86|32.33|228|W|netania;netanja,Neue Neustadt|saxony anhalt|DE|11.63|52.15|226|W|,Neufchatel-Est-Lebourgneuf|QC|CA|-71.34|46.85|37|N|,Neukoelln|state of berlin|DE|13.43|52.48|164|W|neukolln;berlin neukolln,Neuquen|neuquen|AR|-68.06|-38.95|231|W|ciudad de neuquen,Neuss|north rhine westphalia|DE|6.69|51.2|152|W|,Nevinnomyssk|stavropol kray|RU|41.94|44.63|134|W|nevinnomissk;newinnomyssk;niewinnomyssk,New Albany|IN|US|-85.82|38.29|36|N|,New Bedford|MA|US|-70.93|41.64|101|N|,New Berlin|WI|US|-88.11|42.98|39|N|,New Bern|NC|US|-77.04|35.11|30|N|,New Braunfels|TX|US|-98.12|29.7|70|N|,New Britain|CT|US|-72.78|41.66|72|N|,New Brunswick|NJ|US|-74.45|40.49|57|N|nuevo brunswick,New Cairo|cairo|EG|31.47|30.03|313|W|,New City|IL|US|-87.66|41.81|40|N|,New City|NY|US|-73.99|41.15|33|N|,New Delhi|delhi|IN|77.21|28.62|317|W|neu delhi;nova deli;nove dilli;nueva delhi;nuova delhi;yeni delhi,New Haven|CT|US|-72.93|41.31|130|NW|,New Iberia|LA|US|-91.82|30|30|N|la nouvelle iberie;nueva iberia,New Kingston|saint andrew parish|JM|-76.78|18.01|583|W|,New Lenox|IL|US|-87.97|41.51|25|N|,New London|CT|US|-72.1|41.36|27|N|,New Orleans|LA|US|-90.08|29.95|362|NW|nova orleaes;nowy orlean;nueva orleans;new orleans louisiana;la nouvelle orleans,New Rochelle|NY|US|-73.78|40.91|79|N|nouvelle rochelle;nueva rochelle,New South Memphis|TN|US|-90.06|35.09|641|NW|,New Taipei City|taipei|TW|121.46|25.06|4004|W|new taipei;neu taipeh;nieuw taipei;nouveau taipei;nova taipe;nova tchaj pej;nowe tajpej;nueva taipei;nuova taipei;xinbei city;yeni taipei,New Territories||HK|114.11|22.42|3984|W|new territory hong kong,New Westminster|BC|CA|-122.91|49.21|78|N|new westminister,New York City|NY|US|-74.01|40.71|8804|NW|new york;nueva york;kota new york;new york kenti;nova iorque;nowy jork;nuova york,Newark|NJ|US|-74.17|40.74|281|NW|,Newark|OH|US|-82.4|40.06|47|N|,Newark|CA|US|-122.04|37.53|45|N|,Newark|DE|US|-75.75|39.68|33|N|,Newburgh|NY|US|-74.01|41.5|28|N|,Newcastle|new south wales|AU|151.78|-32.93|508|W|,Newcastle|kwazulu natal|ZA|29.93|-27.76|404|W|,Newcastle upon Tyne|england|GB|-1.61|54.97|300|W|newcastle;newcastle tren song tyne;newcastle on tyne,Newington|CT|US|-72.72|41.7|30|N|,Newmarket|ON|CA|-79.47|44.05|91|N|,Newnan|GA|US|-84.8|33.38|37|N|,Newport|wales|GB|-3|51.59|161|W|,Newport Beach|CA|US|-117.93|33.62|87|N|,Newport News|VA|US|-76.43|36.98|186|NW|,Newton|BC|CA|-122.85|49.13|159|NW|surrey newton,Newton|MA|US|-71.21|42.34|88|N|,Neyagawa|osaka|JP|135.63|34.77|238|W|,Neyshabur|razavi khorasan|IR|58.8|36.21|220|W|nichapur;nischapur;nishapur,Neyveli|tamil nadu|IN|79.5|11.61|179|W|,Ngaoundere|adamaoua|CM|13.58|7.33|238|W|ngaundere,Nghi Son|thanh hoa province|VN|105.82|19.33|302|W|,Nha Trang|khanh hoa|VN|109.19|12.25|579|W|,NIA Valencia|northern mindanao|PH|125.09|7.91|223|W|kota valencia;valencia city,Niagara|ON|CA|-79.41|43.64|31|N|,Niagara Falls|ON|CA|-79.07|43.1|99|N|cataratas del niagara;chutes niagara,Niagara Falls|NY|US|-79.06|43.09|48|N|,Niamey|niamey|NE|2.11|13.51|1323|W|,Nianbo|qinghai|CN|102.42|36.48|260|W|haidong,Nice|provence alpes cote d azur|FR|7.27|43.7|342|W|niza;nicea;nisa;nizza,Nicholasville|KY|US|-84.57|37.88|29|N|,Nicolas Romero|MX15|MX|-99.31|19.64|281|NW|ciudad nicolas romero,Nicosia|nicosia|CY|33.35|35.17|200|W|lefkosa;nikosia;lefkosia;nicosie;nikozja;nikosie,Nigel|gauteng|ZA|28.48|-26.43|140|W|,Niigata|niigata|JP|139.04|37.92|797|W|,Niiza|saitama|JP|139.56|35.82|166|W|,Nijmegen|gelderland|NL|5.85|51.84|177|W|nimwegen;nimega;nimegue,Niles|IL|US|-87.8|42.02|29|N|,Nilopolis|rio de janeiro|BR|-43.41|-22.81|155|W|,Niluefer|bursa province|TR|28.92|40.21|536|W|nilufer,Nimes|occitanie|FR|4.36|43.84|148|W|,Ning'er|yunnan|CN|101.04|23.04|162|W|,Ningbo|zhejiang|CN|121.55|29.88|3731|W|ninh ba,Ningde|fujian|CN|119.52|26.66|429|W|ningteh,Ninh Hoa|khanh hoa|VN|109.12|12.49|230|W|,Nis|central serbia|RS|21.9|43.32|250|W|nisz,Nishi-Tokyo-shi|tokyo|JP|139.54|35.73|207|W|,Nishinomiya|hyogo|JP|135.33|34.72|485|W|,Nishio|aichi|JP|137.05|34.87|169|W|,Niteroi|rio de janeiro|BR|-43.1|-22.88|515|W|,Nizamabad|telangana|IN|78.1|18.67|311|W|,Nizhnekamsk|tatarstan republic|RU|51.82|55.64|234|W|nijnekamsk;nischnekamsk;nizjnekamsk;nizniekamsk;niznekamsk;tubenkama;tuban kama,Nizhnevartovsk|khanty mansia|RU|76.55|60.93|244|W|nijnevartovsk;nischnewartowsk;nizjnevartovsk;nizniewartowsk;niznevartovsk,Nizhniy Novgorod|nizhny novgorod oblast|RU|44|56.33|1259|W|nijni novgorod;nischni nowgorod;nizhny novgorod;nizhni novgorod;nizjnij novgorod;nizni novgorod;gorkij,Nizhny Tagil|sverdlovsk oblast|RU|59.97|57.92|381|W|nizjnij tagil,Njeru|central region|UG|33.18|0.44|178|W|,Nkongsamba|littoral|CM|9.94|4.95|162|W|,Nnewi|anambra|NG|6.92|6.02|193|W|,Noblesville|IN|US|-86.01|40.05|59|N|,Noda|chiba|JP|139.87|35.95|154|W|noda shi,Nogales|MX26|MX|-110.94|31.31|264|NW|heroica nogales;los nogales,Noida|uttar pradesh|IN|77.33|28.58|293|W|,Nong Chok|bangkok|TH|100.86|13.86|157|W|,Nong Khaem|bangkok|TH|100.35|13.71|150|W|,Nor Nork|yerevan|AM|44.57|40.2|137|W|,Norco|CA|US|-117.55|33.93|26|N|,Norfolk|VA|US|-76.29|36.85|238|NW|,Norfolk County|ON|CA|-80.38|42.83|60|N|,Norilsk|krasnoyarsk krai|RU|88.2|69.35|140|W|noril sk;norylsk,Normal|IL|US|-88.99|40.51|54|N|,Norman|OK|US|-97.44|35.22|128|N|,Norristown|PA|US|-75.34|40.12|34|N|,North Andover|MA|US|-71.14|42.7|28|N|,North Bay|ON|CA|-79.47|46.32|50|N|,North Bel Air|MD|US|-76.35|39.54|33|N|,North Bergen|NJ|US|-74.01|40.8|63|N|,North Bethesda|MD|US|-77.12|39.04|43|N|,North Brunswick|NJ|US|-74.48|40.45|43|N|,North Center|IL|US|-87.68|41.95|34|N|,North Charleston|SC|US|-79.97|32.85|108|N|,North Chicago|IL|US|-87.84|42.33|29|N|,North Chicopee|MA|US|-72.6|42.18|55|N|,North Cowichan|BC|CA|-123.69|48.84|29|N|,North Creek|WA|US|-122.18|47.82|26|N|,North Delta|BC|CA|-122.92|49.17|60|N|nord delta,North Fort Myers|FL|US|-81.88|26.67|39|N|n ft myers,North Highlands|CA|US|-121.37|38.69|42|N|,North Hills|CA|US|-118.48|34.24|56|N|,North Hollywood|CA|US|-118.38|34.17|64|N|lankershim;toluca,North Kingstown|RI|US|-71.47|41.55|28|N|n kingstown,North La Crosse|WI|US|-91.25|43.85|50|N|,North Las Vegas|NV|US|-115.12|36.2|234|NW|,North Lauderdale|FL|US|-80.23|26.22|43|N|n lauderdale,North Lawndale|IL|US|-87.72|41.86|35|N|,North Little Rock|AR|US|-92.27|34.77|66|N|,North Miami|FL|US|-80.19|25.89|62|N|,North Miami Beach|FL|US|-80.16|25.93|43|N|,North Olmsted|OH|US|-81.92|41.42|32|N|,North Peoria|IL|US|-89.58|40.72|113|N|,North Port|FL|US|-82.24|27.04|62|N|,North Providence|RI|US|-71.47|41.85|33|N|,North Richland Hills|TX|US|-97.23|32.83|69|N|,North Ridgeville|OH|US|-82.02|41.39|32|N|,North Royalton|OH|US|-81.72|41.31|30|N|n royalton,North Shore|auckland|NZ|174.75|-36.8|258|W|,North Stamford|CT|US|-73.54|41.14|121|N|,North Tonawanda|NY|US|-78.86|43.04|30|N|,North Vancouver|BC|CA|-123.07|49.32|88|N|vancouver utara,Northampton|england|GB|-0.88|52.25|245|W|,Northampton|MA|US|-72.64|42.33|28|N|,Northbrook|IL|US|-87.83|42.13|33|N|,Northglenn|CO|US|-104.99|39.89|39|N|,Northridge|CA|US|-118.54|34.23|68|N|,Norwalk|CA|US|-118.08|33.9|107|N|,Norwalk|CT|US|-73.41|41.12|88|N|,Norwich|england|GB|1.3|52.63|143|W|,Norwich|CT|US|-72.08|41.52|39|N|,Norwood|MA|US|-71.2|42.19|28|N|,Norzagaray|central luzon|PH|121.05|14.91|140|W|,Nossa Senhora do Socorro|sergipe|BR|-37.13|-10.86|204|W|,Notre-Dame-de-Grace|QC|CA|-73.61|45.48|68|N|,Nottingham|england|GB|-1.15|52.95|323|W|,Nou Barris|catalonia|ES|2.18|41.44|166|W|distrito nou barris;distrito de nou barris,Nouadhibou|dakhlet nouadhibou|MR|-17.04|20.94|146|W|nawazibu;nouadibou;nuadibu;port etienne,Nouakchott||MR|-15.98|18.09|1184|W|nawakszut;nuakchot;nuaksot;nuaksott,Nova Friburgo|rio de janeiro|BR|-42.53|-22.28|189|W|nueva friburgo,Nova Iguacu|rio de janeiro|BR|-43.45|-22.76|843|W|,Nova Vida|luanda|AO|13.22|-8.91|464|W|,Novato|CA|US|-122.57|38.11|55|N|,Novi|MI|US|-83.48|42.48|58|N|,Novi Sad|vojvodina|RS|19.84|45.25|215|W|nowy sad;neusatz,Novo Hamburgo|rio grande do sul|BR|-51.13|-29.68|253|W|,Novocherkassk|rostov|RU|40.09|47.42|166|W|novotcherkassk;novotjerkassk;novotsjerkassk;novotserkassk;novocerkassk;nowoczerkask;nowotscherkassk,Novokuznetsk|kuzbass|RU|87.14|53.76|539|W|novokoeznetsk;novokouznetsk;novokusnetsk;novokuzneck;novokuznetk;nowokusnezk;nowokuznieck,Novomoskovsk|tula oblast|RU|38.29|54.01|130|W|nowomoskowsk,Novorossiysk|krasnodar krai|RU|37.76|44.73|241|W|novorossijsk;novorossiejsk;noworossijsk;noworosyjsk,Novosibirsk|novosibirsk oblast|RU|82.93|55.02|1612|W|novossibirsk;nowosibirsk;nowosybirsk;novo nikolaevsk;novonikolayevsk,Novozavodskyi|chernihiv oblast|UA|31.26|51.49|179|W|novozavodskyi raion;novozavodskyi rayon,Novyye Kuz'minki|moscow|RU|37.75|55.7|143|W|,Nowrangapur|odisha|IN|82.55|19.23|1220|W|,Nueva Italia de Ruiz|MX16|MX|-102.09|19.02|32|N|,Nueva Rosita|MX07|MX|-101.22|27.94|38|N|,Nuevo Casas Grandes|MX06|MX|-107.91|30.42|55|N|,Nuevo Laredo|MX28|MX|-99.52|27.48|416|NW|novo laredo,Nuevo Mexico|MX14|MX|-103.44|20.76|28|N|,Nukus|karakalpakstan|UZ|59.61|42.46|332|W|noukous,Numazu|shizuoka|JP|138.87|35.1|189|W|,Nunoa|santiago metropolitan|CL|-70.58|-33.45|255|W|,Nuremberg|bavaria|DE|11.08|49.45|515|W|nurnberg;neurenberg;norimberga;norimberk;norymberga;nuremberga,Nusantara|east kalimantan|ID|116.71|-0.97|147|W|ikn nusantara;ibu kota negara nusantara;nusantara capital city,Nutana Sector|SK|CA|-106.64|52.1|72|N|,Nutley|NJ|US|-74.16|40.82|27|N|,Nyala|southern darfur|SD|24.88|12.05|565|W|niala;nijala,Nyingchi|tibet|CN|94.36|29.65|200|W|,Nyzhnodniprovsk|dnipropetrovsk|UA|35.12|48.48|160|W|nyzhnodniprovsk vuzol,Nzerekore|nzerekore region|GN|-8.82|7.76|226|W|,O'Fallon|MO|US|-90.7|38.81|85|N|,O'Fallon|IL|US|-89.91|38.59|29|N|,Oak Creek|WI|US|-87.86|42.89|35|N|,Oak Forest|IL|US|-87.74|41.6|28|N|,Oak Hill|VA|US|-77.4|38.93|33|N|,Oak Lawn|IL|US|-87.76|41.71|56|N|oaklawn,Oak Park|IL|US|-87.78|41.89|52|N|,Oak Park|MI|US|-83.18|42.46|29|N|,Oak Ridge|TN|US|-84.27|36.01|29|N|,Oakdale|MN|US|-92.96|44.96|28|N|,Oakland|CA|US|-122.27|37.8|419|NW|,Oakland Park|FL|US|-80.13|26.17|44|N|,Oakley|CA|US|-121.71|38|39|N|,Oakton|VA|US|-77.3|38.88|34|N|,Oakville|ON|CA|-79.68|43.45|213|NW|,Oakville|MO|US|-90.3|38.47|36|N|,Oaxaca|MX20|MX|-96.73|17.06|255|NW|oaxaca city;oaxaca by;oaxaca de juarez,Obalende|lagos|NG|3.42|6.45|342|W|,Oberhausen|north rhine westphalia|DE|6.86|51.48|219|W|,Obihiro|hokkaido|JP|143.2|42.92|166|W|,Obolon|kyiv city|UA|30.51|50.51|239|W|obolonskyi raion;obolonskyi rayon;obolonskyy raion;obolonskyy rayon,Obuase|ashanti|GH|-1.67|6.2|179|W|obuasi,Ocala|FL|US|-82.14|29.19|58|N|,Oceanside|CA|US|-117.38|33.2|175|NW|,Oceanside|NY|US|-73.64|40.64|32|N|,Ocoee|FL|US|-81.54|28.57|43|N|,Ocosingo|MX05|MX|-92.09|16.91|41|N|,Ocotlan|MX14|MX|-102.77|20.35|83|N|,Ocoyoacac|MX15|MX|-99.46|19.27|26|N|,Ocozocoautla de Espinosa|MX05|MX|-93.37|16.76|39|N|la ventosa,Ocumare del Tuy|miranda|VE|-66.78|10.12|166|W|ocumare,Odawara|kanagawa|JP|139.16|35.26|188|W|,Odense|south denmark|DK|10.39|55.4|180|W|ottensee,Odenton|MD|US|-76.7|39.08|37|N|,Odesa|odesa|UA|30.74|46.49|1010|W|odessa;khadjibey,Odessa|TX|US|-102.37|31.85|114|N|,Odintsovo|moscow oblast|RU|37.28|55.67|137|W|odincovo;odincowo;odinzowo;odintovo,OErebro|orebro|SE|15.21|59.27|155|W|orebro,Ogaki|gifu|JP|136.62|35.35|161|W|,Ogbomoso|oyo state|NG|4.24|8.13|433|W|,Ogden|UT|US|-111.97|41.22|85|N|,Oildale|CA|US|-119.02|35.42|32|N|,Oita|oita|JP|131.6|33.23|477|W|oita shi;oitashi,Ojinaga|MX06|MX|-104.54|29.57|28|N|,Ojo de Agua|MX15|MX|-99.01|19.68|386|NW|,Okanagan Mission|BC|CA|-119.48|49.82|38|N|,Okara|punjab|PK|73.45|30.81|533|W|,Okayama|okayama|JP|133.93|34.65|724|W|okajama,Okazaki|aichi|JP|137.17|34.95|384|W|,Okene|kogi state|NG|6.24|7.55|479|W|,Okinawa|okinawa|JP|127.8|26.34|142|W|,Oklahoma City|OK|US|-97.52|35.47|681|NW|kota oklahoma;okla city,Okotoks|AB|CA|-113.98|50.73|30|N|,Okrika|rivers state|NG|7.08|4.74|133|W|,Olathe|KS|US|-94.82|38.88|134|NW|,Oldenburg|lower saxony|DE|8.21|53.14|159|W|oldemburgo;oldenbourg;oldenburgo,Oldham|england|GB|-2.12|53.54|237|W|,Olinda|pernambuco|BR|-34.86|-8.01|364|W|,Olive Branch|MS|US|-89.83|34.96|36|N|,Olmaliq|tashkent region|UZ|69.6|40.84|133|W|almalyk;almalik,Olney|PA|US|-75.12|40.04|39|N|mccartersville,Olney|MD|US|-77.07|39.15|33|N|,Olongapo|central luzon|PH|120.28|14.83|221|W|kota olongapo;olongapo city,Olsztyn|warmia masuria|PL|20.49|53.78|169|W|olstyn;allenstein,Olympia|WA|US|-122.9|47.04|55|N|,Omaha|NE|US|-95.94|41.26|486|NW|,Omdurman|khartoum|SD|32.48|15.64|1849|W|omdourman;umm durman,Ome|tokyo|JP|139.24|35.78|133|W|oume,Omsk|omsk oblast|RU|73.37|54.99|1172|W|omsc,Omuta|fukuoka|JP|130.45|33.03|131|W|,Ondo|ondo state|NG|4.84|7.09|375|W|,Ongata Rongai|kajiado county|KE|36.76|-1.4|172|W|,Ongole|andhra pradesh|IN|80.04|15.5|208|W|,Onitsha|anambra|NG|6.79|6.15|1553|W|,Onomichi|hiroshima|JP|133.2|34.42|131|W|onomici,Ontario|CA|US|-117.65|34.06|171|NW|,Ooty|tamil nadu|IN|76.7|11.41|233|W|ootacamund;udagamandalam;udhagamandalam;utakamand,Opelika|AL|US|-85.38|32.65|29|N|,Opportunity|WA|US|-117.24|47.65|25|N|,Oradea|bihor county|RO|21.92|47.05|183|W|grosswardein;gran varadino;oradea mare;oradia;velky varadin,Orai|uttar pradesh|IN|79.45|25.99|158|W|,Oral|west kazakhstan|KZ|51.43|51.25|330|W|oural;uralsk;ural sk,Oran|oran|DZ|-0.64|35.7|803|W|orano;ora,Orange|CA|US|-117.85|33.79|140|NW|,Orange|NJ|US|-74.23|40.77|34|N|,Orangevale|CA|US|-121.23|38.68|33|N|,Orangeville|ON|CA|-80.1|43.92|30|N|,Orcutt|CA|US|-120.44|34.87|28|N|,Ordos|inner mongolia|CN|109.78|39.61|1940|W|,Ordu|ordu|TR|37.89|40.98|229|W|cotyora,Oregon City|OR|US|-122.61|45.36|35|N|,Orekhovo-Borisovo|moscow|RU|37.73|55.61|144|W|,Orel|oryol oblast|RU|36.08|52.97|303|W|orjol;oryol;orzel,Orem|UT|US|-111.69|40.3|94|N|,Orenburg|orenburg oblast|RU|55.1|51.77|564|W|orenbourg;oremburgo,Orillia|ON|CA|-79.42|44.61|31|N|,Orizaba|MX30|MX|-97.1|18.85|123|N|,Orland Park|IL|US|-87.85|41.63|58|N|,Orlando|FL|US|-81.38|28.54|334|NW|,Orleans|ON|CA|-75.5|45.46|125|N|,Ormoc|eastern visayas|PH|124.61|11.01|238|W|kota ormoc;ormoc city,Ormond Beach|FL|US|-81.06|29.29|40|N|,Oro Valley|AZ|US|-110.97|32.39|45|N|,Orsk|orenburg oblast|RU|58.49|51.23|246|W|,Orumiyeh|west azerbaijan|IR|45.08|37.55|577|W|ourmia;urmia;urmiye,Oruro|oruro|BO|-67.09|-17.97|208|W|,Osaka|osaka|JP|135.5|34.69|2753|W|osaka shi;osaacke,Osan|gyeonggi do|KR|127.07|37.15|238|W|,Osasco|sao paulo|BR|-46.79|-23.53|728|W|,Osh|osh region|KG|72.8|40.53|322|W|och;osch;osj;osz,Oshawa|ON|CA|-78.85|43.9|175|NW|,Oshkosh|WI|US|-88.54|44.02|66|N|,Oshodi|lagos|NG|3.34|6.56|170|W|,Oslo|oslo|NO|10.75|59.91|1082|W|,Osmaniye|osmaniye|TR|36.25|37.07|202|W|,Osnabrueck|lower saxony|DE|8.05|52.27|166|W|osnabruck,Osogbo|osun state|NG|4.56|7.77|645|W|oshogbo,Osorno|los lagos region|CL|-73.13|-40.57|135|W|,Ossining|NY|US|-73.86|41.16|25|N|,Ostrava|moravian silesian region|CZ|18.28|49.83|279|W|mahrisch ostrau;ostrawa,Oswego|IL|US|-88.35|41.68|33|N|,Ota|tokyo|JP|139.72|35.56|748|W|ota ku,Ota|ogun state|NG|3.23|6.69|251|W|,Ota|gunma|JP|139.37|36.3|224|W|,Otsu|shiga|JP|135.87|35|345|W|ocu,Ottawa|ON|CA|-75.7|45.41|1017|NW|otava;aa,Ottawa South|ON|CA|-75.69|45.39|125|N|,Ouagadougou|centre|BF|-1.53|12.37|2415|W|uagadugu;wagadugu,Ouargla|ouargla|DZ|5.33|31.95|169|W|uargla;warkala,Oujda|oriental|MA|-1.91|34.68|539|W|ucda;ujda;wadzda,Oulu|north ostrobothnia|FI|25.47|65.01|216|W|uleaborg,Overbrook|PA|US|-75.24|39.99|32|N|,Overland Park|KS|US|-94.67|38.98|186|NW|,Oviedo|asturias|ES|-5.84|43.36|220|W|,Oviedo|FL|US|-81.21|28.67|38|N|,Owasso|OK|US|-95.85|36.27|34|N|,Owatonna|MN|US|-93.23|44.08|25|N|,Owensboro|KY|US|-87.11|37.77|59|N|,Owerri|imo state|NG|7.03|5.48|545|W|,Owings Mills|MD|US|-76.78|39.42|30|N|,Owo|ondo state|NG|5.59|7.2|276|W|,Oxford|england|GB|-1.26|51.75|162|W|oksford;oxonia;oxnaford,Oxford Circle|PA|US|-75.07|40.05|48|N|,Oxnard|CA|US|-119.18|34.2|207|NW|,Oxon Hill-Glassmanor|MD|US|-76.97|38.8|35|N|,Oyama|tochigi|JP|139.8|36.3|167|W|,Oyo|oyo state|NG|3.93|7.85|736|W|oio,Ozone Park|NY|US|-73.84|40.68|53|N|,Paarl|western cape|ZA|18.98|-33.73|236|W|,Pabellon de Arteaga|MX01|MX|-102.28|22.15|28|N|,Pabna|rajshahi division|BD|89.24|24.01|186|W|,Pachuca de Soto|MX13|MX|-98.73|20.12|256|NW|pachuca,Pacifica|CA|US|-122.49|37.61|39|N|,Paco do Lumiar|maranhao|BR|-44.11|-2.53|155|W|,Padalarang|west java|ID|107.47|-6.84|193|W|,Padang|west sumatra|ID|100.35|-0.95|942|W|kota padang,Padangsidempuan|north sumatra|ID|99.27|1.38|243|W|,Paderborn|north rhine westphalia|DE|8.75|51.72|142|W|,Padua|veneto|IT|11.89|45.41|203|W|padova;padoa;padoue;padwa,Paech'on-up|south hwanghae|KP|126.3|37.99|159|W|,Pagadian|zamboanga peninsula|PH|123.44|7.83|206|W|,Pahrump|NV|US|-115.98|36.21|36|N|,Pak Kret|nonthaburi|TH|100.5|13.91|190|W|,Pakdasht|tehran|IR|51.68|35.48|236|W|,Palakkad|kerala|IN|76.65|10.77|132|W|palakkat,Palangkaraya|central kalimantan|ID|113.92|-2.21|318|W|kota palangka raya;palangka raya,Palanpur|gujarat|IN|72.44|24.17|141|W|,Palatine|IL|US|-88.03|42.11|69|N|,Palembang|south sumatra|ID|104.75|-2.92|1801|W|kota palembang;palimbao,Palenque|MX05|MX|-91.98|17.51|42|N|ruinas de palenque,Palermo|sicily|IT|13.36|38.12|648|W|palerme;palermu,Palhoca|santa catarina|BR|-48.67|-27.65|222|W|,Pali|rajasthan|IN|73.32|25.77|230|W|,Pallabi|dhaka division|BD|90.37|23.82|597|W|,Pallavaram|tamil nadu|IN|80.15|12.97|233|W|,Palm Bay|FL|US|-80.59|28.03|119|N|,Palm Beach Gardens|FL|US|-80.14|26.82|52|N|,Palm Coast|FL|US|-81.21|29.58|82|N|,Palm Desert|CA|US|-116.38|33.72|51|N|,Palm Harbor|FL|US|-82.76|28.08|57|N|,Palm Springs|CA|US|-116.55|33.83|47|N|,Palma|balearic islands|ES|2.65|39.57|438|W|palma de mallorca;palma de maiorca;palma di maiorca,Palmas|tocantins|BR|-48.33|-10.17|306|W|,Palmdale|CA|US|-118.12|34.58|158|NW|,Palmira|valle del cauca department|CO|-76.3|3.54|312|W|,Palo Alto|CA|US|-122.14|37.44|66|N|,Palopo|south sulawesi|ID|120.2|-2.99|184|W|,Paltan|dhaka division|BD|90.41|23.74|184|W|,Palu|central sulawesi|ID|119.87|-0.91|389|W|kabupaten poso;kota palu,Palwal|haryana|IN|77.33|28.14|131|W|,Pamplona|navarre|ES|-1.64|42.82|208|W|pampeluna;pampelune,Pamulang|west java|ID|106.74|-6.34|174|W|,Panabo|davao region|PH|125.68|7.31|211|W|panabo city,Panalanoy|eastern visayas|PH|125.01|11.25|189|W|,Panama City|panama|PA|-79.52|8.99|408|W|panama;ciudad de panama;panama by;panama stadt;panama stad,Panama City|FL|US|-85.66|30.16|38|N|,Panchkula|haryana|IN|76.85|30.69|211|W|panchkula urban estate,Pandi|central luzon|PH|120.96|14.87|162|W|,Pangkalpinang|bangka belitung islands|ID|106.11|-2.13|226|W|,Panguila|bengo|AO|13.45|-8.69|158|W|,Panihati|west bengal|IN|88.37|22.69|378|W|,Panipat|haryana|IN|76.97|29.39|295|W|,Panjin|liaoning|CN|122.07|41.12|1166|W|,Panorama Hills|AB|CA|-114.08|51.15|25|N|,Panshan|liaoning|CN|122.05|41.19|625|W|,Panuco|MX30|MX|-98.18|22.05|40|N|,Panvel|maharashtra|IN|73.11|18.99|195|W|,Panzhihua|sichuan|CN|101.71|26.59|787|W|,Papantla de Olarte|MX30|MX|-97.32|20.45|53|N|,Par Naogaon|rajshahi division|BD|88.95|24.8|192|W|naogaon,Paracho de Verduzco|MX16|MX|-102.05|19.65|37|N|,Paradise|NV|US|-115.15|36.1|223|NW|,Paradise|CA|US|-121.62|39.76|26|N|,Paragould|AR|US|-90.5|36.06|27|N|,Paraiso|MX27|MX|-93.21|18.4|86|N|,Parakou|borgou|BJ|2.63|9.34|255|W|,Paramaribo|paramaribo district|SR|-55.17|5.87|223|W|,Paramount|CA|US|-118.16|33.89|55|N|,Paramus|NJ|US|-74.08|40.94|26|N|,Parana|entre rios|AR|-60.53|-31.73|247|W|,Paranagua|parana|BR|-48.53|-25.52|150|W|,Paranaque City|national capital region|PH|121.02|14.48|703|W|,Parauapebas|para|BR|-49.9|-6.07|305|W|,Parbhani|maharashtra|IN|76.77|19.27|307|W|,Parc-Extension|QC|CA|-73.63|45.53|33|N|,Parelheiros|sao paulo|BR|-46.73|-23.83|153|W|,Parepare|south sulawesi|ID|119.63|-4.01|160|W|,Paris|ile de france|FR|2.35|48.85|2138|W|parijs;pa ri;parigi;pariisi;paryz;pariz,Paris 11 Popincourt|ile de france|FR|2.38|48.86|138|W|,Paris 11e Arrondissement|ile de france|FR|2.38|48.86|144|W|,Paris 12 Reuilly|ile de france|FR|2.39|48.84|138|W|,Paris 12e Arrondissement|ile de france|FR|2.44|48.84|140|W|,Paris 13 Gobelins|ile de france|FR|2.36|48.83|181|W|,Paris 13e Arrondissement|ile de france|FR|2.36|48.83|177|W|,Paris 14 Observatoire|ile de france|FR|2.33|48.83|136|W|,Paris 15 Vaugirard|ile de france|FR|2.3|48.84|229|W|,Paris 16 Passy|ile de france|FR|2.28|48.86|159|W|,Paris 17 Batignolles-Monceau|ile de france|FR|2.32|48.88|159|W|,Paris 18 Buttes-Montmartre|ile de france|FR|2.34|48.89|183|W|,Paris 19 Buttes-Chaumont|ile de france|FR|2.38|48.88|178|W|,Paris 20 Menilmontant|ile de france|FR|2.4|48.86|185|W|,Park Ridge|IL|US|-87.84|42.01|37|N|,Park Slope|NY|US|-73.99|40.67|65|N|,Parkchester|NY|US|-73.86|40.84|65|N|,Parker|CO|US|-104.76|39.52|49|N|,Parkersburg|WV|US|-81.56|39.27|30|N|,Parkland|WA|US|-122.43|47.16|35|N|,Parkland|FL|US|-80.24|26.31|30|N|,Parkville|MD|US|-76.54|39.38|30|N|,Parkwoods-Donalda|ON|CA|-79.33|43.76|34|N|,Parma|emilia romagna|IT|10.33|44.8|198|W|parme,Parma|OH|US|-81.72|41.4|79|N|,Parnaiba|piaui|BR|-41.78|-2.9|170|W|,Parnamirim|rio grande do norte|BR|-35.26|-5.92|271|W|,Parras de la Fuente|MX07|MX|-102.18|25.44|33|N|,Parsippany|NJ|US|-74.43|40.86|51|N|,Pasadena|TX|US|-95.21|29.69|153|NW|,Pasadena|CA|US|-118.14|34.15|142|NW|,Pasarkemis|west java|ID|106.53|-6.17|263|W|,Pasay|national capital region|PH|121|14.54|416|W|,Pasco|WA|US|-119.1|46.24|69|N|,Pasig City|national capital region|PH|121.06|14.59|853|W|pasig,Pasir Gudang|johor|MY|103.91|1.46|534|W|,Pasir Mas|kelantan|MY|102.14|6.05|230|W|,Pasir Puteh|kelantan|MY|102.4|5.83|137|W|,Paso Robles|CA|US|-120.69|35.63|27|N|el paso de robles,Passaic|NJ|US|-74.13|40.86|71|N|,Passo Fundo|rio grande do sul|BR|-52.41|-28.26|214|W|,Pasto|narino|CO|-77.28|1.21|392|W|,Pasuruan|east java|ID|112.91|-7.65|213|W|kota pasuruan;pasoeroean,Patan|bagmati province|NP|85.31|27.68|299|W|lalitpur,Patan|gujarat|IN|72.13|23.85|133|W|,Paterson|NJ|US|-74.17|40.92|147|NW|,Pathankot|punjab|IN|75.65|32.27|174|W|,Pathein|ayeyarwady|MM|94.73|16.78|237|W|basejn,Patiala|punjab|IN|76.39|30.34|446|W|,Patna|bihar|IN|85.14|25.59|1684|W|,Patos de Minas|minas gerais|BR|-46.52|-18.58|159|W|,Patra|west greece|GR|21.74|38.25|168|W|patrai;patras;patrasso,Patzcuaro|MX16|MX|-101.61|19.51|55|N|,Paulista|pernambuco|BR|-34.87|-7.94|342|W|,Pavlodar|pavlodar region|KZ|76.97|52.28|329|W|pawlodar,Pawtucket|RI|US|-71.38|41.88|71|N|,Paya Terubong|penang|MY|100.28|5.37|226|W|,Payakumbuh|west sumatra|ID|100.63|-0.22|139|W|kota payakumbuh,Peabody|MA|US|-70.93|42.53|52|N|,Peachtree City|GA|US|-84.6|33.4|35|N|,Peachtree Corners|GA|US|-84.22|33.97|40|N|,Pearl|MS|US|-90.13|32.27|26|N|,Pearl City|HI|US|-157.98|21.4|47|N|,Pearland|TX|US|-95.29|29.56|108|N|,Pecs|baranya|HU|18.23|46.08|145|W|cinquechiese;funfkirchen;pecz,Pedreira|sao paulo|BR|-46.65|-23.71|163|W|,Peicheng|jiangsu|CN|116.92|34.74|195|W|,Pekalongan|central java|ID|109.68|-6.89|324|W|kota pekalongan,Pekanbaru|riau|ID|101.44|0.52|1167|W|kota pekanbaru;pakanbaru,Pekin|IL|US|-89.64|40.57|33|N|,Pelentong|johor|MY|103.82|1.52|583|W|,Pelotas|rio grande do sul|BR|-52.34|-31.77|336|W|,Pemalang|central java|ID|109.38|-6.89|184|W|,Pematangsiantar|north sumatra|ID|99.07|2.96|279|W|,Pemba|cabo delgado province|MZ|40.52|-12.97|232|W|,Pembroke Pines|FL|US|-80.22|26|166|NW|,Penalolen|santiago metropolitan|CL|-70.53|-33.47|241|W|,Pengpu|shanghai|CN|121.44|31.29|152|W|,Pengze|jiangxi|CN|116.55|29.9|350|W|,Penjamo|MX11|MX|-101.72|20.43|40|N|,Penn Hills|PA|US|-79.84|40.5|44|N|,Pennsauken|NJ|US|-75.06|39.96|36|N|,Pennsport|PA|US|-75.15|39.93|26|N|,Pensacola|FL|US|-87.22|30.42|53|N|pensacola i florida,Penticton|BC|CA|-119.59|49.48|33|N|,Penza|penza oblast|RU|45.01|53.2|523|W|pensa,Peoria|AZ|US|-112.24|33.58|190|NW|,Peoria|IL|US|-89.59|40.69|115|N|,Perbaungan|north sumatra|ID|98.96|3.57|157|W|,Percut|north sumatra|ID|98.86|3.63|311|W|,Pereira|risaralda department|CO|-75.69|4.81|467|W|,Peristeri|attica|GR|23.69|38.02|139|W|peristerion,Perm|perm krai|RU|56.25|58.01|982|W|molotov,Perote|MX30|MX|-97.24|19.56|37|N|,Perris|CA|US|-117.23|33.78|74|N|,Perry Hall|MD|US|-76.46|39.41|28|N|,Perth|western australia|AU|115.86|-31.95|2384|W|,Perth Amboy|NJ|US|-74.27|40.51|52|N|,Pervouralsk|sverdlovsk oblast|RU|59.94|56.91|133|W|perwouralsk,Peshawar|khyber pakhtunkhwa|PK|71.58|34.01|4758|W|peschawar;pesjawar;peszawar;pexauar;pesaver;pesavar,Pest|budapest|HU|19.08|47.5|1001|W|pesta;peste;peszt,Petah Tiqva|central district|IL|34.89|32.09|253|W|petah tikva;mulebbis;petach tikva;petach tikwa;petah tikwah;petah tiqwa;petaj tikva;pethah tiqva,Petaling Jaya|selangor|MY|101.61|3.11|807|W|,Petaluma|CA|US|-122.64|38.23|60|N|,Petapa|guatemala|GT|-90.56|14.5|135|W|,Petare|miranda|VE|-66.81|10.48|364|W|,Peterborough|england|GB|-0.25|52.57|163|W|,Peterborough|ON|CA|-78.32|44.3|85|N|,Petersburg|VA|US|-77.4|37.23|32|N|,Petionville|ouest|HT|-72.29|18.51|376|W|,Petrogradka|st petersburg|RU|30.31|59.97|130|W|,Petrolina|pernambuco|BR|-40.5|-9.4|418|W|,Petropavl|north kazakhstan|KZ|69.15|54.87|200|W|kizilyar;petropawl;pietropawlowsk,Petropavlovsk-Kamchatsky|kamchatka|RU|158.63|53.06|181|W|petropavlovsk kamchatskiy;petropavlovsk kamciatki;petropavlovsk kamchatski;petropavlovsk kamtchatski;petropavlovsk kamtjatskij;petropavlovsk kamtsjatski;petropavlovsk kamtsatski;petropavlovsk kamcatski;petropavlovsk kamcatskij;pietropawlowsk kamczacki,Petropolis|rio de janeiro|BR|-43.18|-22.5|294|W|,Petrozavodsk|karelia|RU|34.35|61.78|279|W|petroskoi;petrosavodsk;petrosawodsk;petroskoj;petrozawodzk;pietrozawodsk;aanislinna,Pflugerville|TX|US|-97.62|30.44|57|N|,Phan Rang-Thap Cham|khanh hoa|VN|108.99|11.56|207|W|phan rang,Phan Thiet|lam dong|VN|108.1|10.93|228|W|,Pharr|TX|US|-98.18|26.19|76|N|,Phenix City|AL|US|-85|32.47|37|N|,Philadelphia|PA|US|-75.16|39.95|1573|NW|filadelfia;filadelfie;philadelphie,Phnom Penh|phnom penh|KH|104.92|11.56|1573|W|nom pen;phnompenh;phon phen;pnom pene;pnom penh,Pho Yen|thai nguyen|VN|105.89|21.42|231|W|,Phoenix|AZ|US|-112.07|33.45|1650|NW|,Phra Pradaeng|samut prakan|TH|100.53|13.66|196|W|amphoe phra pradaeng,Phu Ly|ninh binh|VN|105.91|20.55|136|W|,Phu My|ho chi minh city hcmc|VN|107.07|10.63|287|W|,Phu Quoc|an giang|VN|103.97|10.22|294|W|koh trol,Phuc Yen|phu tho|VN|105.7|21.24|180|W|,Phusro|jharkhand|IN|86.01|23.76|185|W|,Pickering|ON|CA|-79.13|43.9|91|N|,Pico Rivera|CA|US|-118.1|33.98|64|N|,Piedecuesta|santander department|CO|-73.05|6.99|163|W|,Piedras Negras|MX07|MX|-100.52|28.7|150|NW|piedrasnegras,Pierrefonds|QC|CA|-73.89|45.46|59|N|,Pierrefonds-Roxboro|QC|CA|-73.84|45.5|73|N|,Pietermaritzburg|kwazulu natal|ZA|30.39|-29.62|839|W|,Pijijiapan|MX05|MX|-93.21|15.69|50|N|,Pikesville|MD|US|-76.72|39.37|30|N|,Pikine|dakar|SN|-17.39|14.76|1170|W|,Pilibhit|uttar pradesh|IN|79.8|28.63|131|W|,Pilsen|plzen region|CZ|13.38|49.75|168|W|plzen;pilzno,Pimpri|maharashtra|IN|73.81|18.62|1284|W|,Pimpri-Chinchwad|maharashtra|IN|73.8|18.62|1727|W|pimpri cincvad,Pinar del Rio|pinar del rio|CU|-83.7|22.42|186|W|,Pindamonhangaba|sao paulo|BR|-45.46|-22.92|172|W|,Pindi Bhattian|punjab|PK|73.27|31.9|493|W|,Pine Bluff|AR|US|-92|34.23|44|N|,Pine Hills|FL|US|-81.45|28.56|60|N|,Pinellas Park|FL|US|-82.7|27.84|51|N|,Pinetown|kwazulu natal|ZA|30.89|-29.82|144|W|,Pingdingshan|henan|CN|113.32|33.73|979|W|pching ting san,Pingdu|shandong|CN|119.95|36.78|542|W|,Pingliang|gansu|CN|106.69|35.54|504|W|binh luong;pching liang,Pingwu County|sichuan|CN|104.53|32.41|180|W|,Pingxiang|jiangxi|CN|113.85|27.62|893|W|binh huong;pching siang,Pinotepa Nacional|MX20|MX|-98.05|16.34|29|N|pinotepa,Piracicaba|sao paulo|BR|-47.65|-22.73|440|W|,Piraeus|attica|GR|23.65|37.94|163|W|el pireo;il pireo;le piree;peiraias;peiraiefs;pire;pireo;pireu;pireus;piraus,Piranshahr|west azerbaijan|IR|45.14|36.7|168|W|khaneh;piranschahr;piranszahr;piransehr,Pirituba|sao paulo|BR|-46.73|-23.49|179|W|,Piscataway|NJ|US|-74.4|40.5|56|N|,Pitalito|huila department|CO|-76.05|1.85|135|W|,Pitesti|arges|RO|24.87|44.85|141|W|piteszt;pitest;pitesk,Pittsburg|CA|US|-121.88|38.03|69|N|,Pittsburgh|PA|US|-80|40.44|304|NW|pitsburgo,Pittsfield|MA|US|-73.25|42.45|43|N|,Piura|piura|PE|-80.66|-5.18|630|W|,Pizhou|jiangsu|CN|117.95|34.31|343|W|,Placentia|CA|US|-117.87|33.87|52|N|,Plainfield|NJ|US|-74.41|40.63|51|N|,Plainfield|IL|US|-88.2|41.63|42|N|,Plainfield|IN|US|-86.4|39.7|30|N|,Plainview|NY|US|-73.47|40.78|26|N|,Planaltina|federal district|BR|-47.65|-15.62|189|W|,Plano|TX|US|-96.7|33.02|283|NW|,Plano Piloto|federal district|BR|-47.88|-15.79|198|W|,Plant City|FL|US|-82.11|28.02|37|N|,Plantation|FL|US|-80.23|26.13|92|N|,Playa del Carmen|MX23|MX|-87.08|20.63|149|NW|,Plaza de la Revolucion|havana|CU|-82.39|23.12|139|W|,Pleasant Grove|UT|US|-111.74|40.36|38|N|pleasant grv,Pleasant Hill|CA|US|-122.06|37.95|34|N|,Pleasanton|CA|US|-121.87|37.66|79|N|,Pleasure Ridge Park|KY|US|-85.86|38.15|25|N|,Ploiesti|prahova|RO|26.02|44.95|180|W|ploeszti,Plovdiv|plovdiv|BG|24.75|42.15|329|W|filibe;filippopoli;plowdiw,Plum|PA|US|-79.75|40.5|27|N|,Plumbon|west java|ID|108.47|-6.71|167|W|,Plymouth|england|GB|-4.14|50.37|260|W|,Plymouth|MN|US|-93.46|45.01|75|N|,Pocatello|ID|US|-112.45|42.87|54|N|,Pocos de Caldas|minas gerais|BR|-46.56|-21.79|172|W|,Podgorica|podgorica|ME|19.26|42.44|236|W|,Podolsk|moscow oblast|RU|37.55|55.42|179|W|,Pohang|gyeongsangbuk do|KR|129.36|36.03|492|W|,Poinciana|FL|US|-81.46|28.14|53|N|,Pointe-Claire|QC|CA|-73.82|45.45|30|N|,Pointe-Noire|pointe noire|CG|11.86|-4.78|1032|W|,Pokhara|gandaki pradesh|NP|83.97|28.27|600|W|,Polanco|MX09|MX|-99.2|19.43|50|N|col polanco;colonia polanco,Polokwane|limpopo|ZA|29.47|-23.9|272|W|pietersburg,Poltava|poltava|UA|34.55|49.59|279|W|poltawa;pultava;baltavar;ltava,Pomona|CA|US|-117.75|34.06|153|NW|,Pompano Beach|FL|US|-80.12|26.24|107|N|,Ponce|ponce|PR|-66.62|18.01|137|W|,Ponta Grossa|parana|BR|-50.16|-25.09|292|W|,Ponte Vedra Beach|FL|US|-81.39|30.24|35|N|,Pontiac|MI|US|-83.29|42.64|59|N|,Pontianak|west kalimantan|ID|109.33|-0.03|686|W|kota pontianak,Poole|england|GB|-1.98|50.71|151|W|,Popayan|cauca department|CO|-76.61|2.44|318|W|,Porbandar|gujarat|IN|69.61|21.64|152|W|,Porlamar|nueva esparta|VE|-63.87|10.96|216|W|,Port Arthur|TX|US|-93.94|29.89|55|N|,Port-au-Prince|ouest|HT|-72.34|18.54|1234|W|porto principe;puerto principe,Port Charlotte|FL|US|-82.09|26.98|54|N|,Port Chester|NY|US|-73.67|41|29|N|,Port Coquitlam|BC|CA|-122.77|49.27|58|N|,Port-de-Paix|nord ouest|HT|-72.83|19.94|306|W|porto da paz,Port-Gentil|ogooue maritime|GA|8.78|-0.72|164|W|mandji,Port Harcourt|rivers state|NG|7.01|4.78|2120|W|,Port Huron|MI|US|-82.42|42.97|29|N|,Port Louis|port louis|MU|57.5|-20.16|155|W|puerto louis,Port Moody|BC|CA|-122.82|49.28|27|N|,Port Moresby|national capital|PG|147.15|-9.48|283|W|puerto moresby,Port Orange|FL|US|-81|29.14|59|N|,Port Richmond|PA|US|-75.1|39.99|27|N|richmond,Port Said|port said|EG|32.3|31.27|780|W|bursaid;porto said;puerto said,Port Saint Lucie|FL|US|-80.35|27.29|164|NW|,Port Sudan|red sea|SD|37.22|19.62|489|W|bur sudan;port soudan;porto sudan;porto sudao;puerto sudan,Portage|MI|US|-85.58|42.2|48|N|,Portage|IN|US|-87.18|41.58|36|N|,Portage Park|IL|US|-87.77|41.96|64|N|,Porterville|CA|US|-119.02|36.07|56|N|,Porticos de San Antonio|MX02|MX|-117.03|32.44|34|N|,Portland|OR|US|-122.68|45.52|652|NW|,Portland|ME|US|-70.26|43.66|66|N|,Porto|porto|PT|-8.61|41.15|252|W|oporto,Porto Alegre|rio grande do sul|BR|-51.23|-30.03|1488|W|puerto alegre,Porto-Novo|oueme|BJ|2.6|6.5|264|W|,Porto Seguro|bahia|BR|-39.06|-16.45|182|W|,Porto Velho|rondonia|BR|-63.9|-8.76|548|W|,Portoviejo|manabi|EC|-80.45|-1.06|321|W|,Portsmouth|england|GB|-1.09|50.8|208|W|,Portsmouth|VA|US|-76.3|36.84|96|N|,Portsmouth Heights|VA|US|-76.37|36.82|99|N|,Posadas|misiones|AR|-55.92|-27.39|305|W|,Post Falls|ID|US|-116.95|47.72|30|N|,Potchefstroom|north west|ZA|27.1|-26.72|178|W|,Potomac|MD|US|-77.21|39.02|44|N|,Potosi|potosi department|BO|-65.75|-19.58|141|W|,Potsdam|brandenburg|DE|13.07|52.4|184|W|poczdam;postupim,Poughkeepsie|NY|US|-73.92|41.7|30|N|,Pouso Alegre|minas gerais|BR|-45.94|-22.23|162|W|,Poway|CA|US|-117.04|32.96|50|N|,Poza Rica de Hidalgo|MX30|MX|-97.46|20.53|185|NW|poza rica,Poznan|greater poland|PL|16.93|52.41|536|W|posen;posnania;possen,Praga Poludnie|mazovia|PL|21.09|52.24|179|W|,Prague|prague|CZ|14.42|50.09|1165|W|praag;prag;praga;praha,Praia|praia|CV|-23.51|14.93|137|W|cidade da praia;municipio da praia,Praia Grande|sao paulo|BR|-46.4|-24.01|367|W|,Prairieville|LA|US|-90.97|30.3|26|N|,Prato|tuscany|IT|11.1|43.88|195|W|,Prattville|AL|US|-86.46|32.46|35|N|,Pravyi Bereh|donetsk|UA|37.59|47.11|352|W|pravyy bereh,Prayagraj|uttar pradesh|IN|81.84|25.44|1073|W|allahabad,Prenzlauer Berg Bezirk|state of berlin|DE|13.42|52.54|148|W|prenzlauer berg,Prescott|AZ|US|-112.47|34.54|41|N|,Prescott Valley|AZ|US|-112.32|34.61|42|N|,Presidente Prudente|sao paulo|BR|-51.39|-22.13|234|W|,Preston|england|GB|-2.7|53.76|313|W|,Pretoria|gauteng|ZA|28.19|-25.74|2112|W|pretorie,Prince Albert|SK|CA|-105.77|53.2|35|N|,Prince Edward|ON|CA|-77.25|44|25|N|prince edward county,Prince George|BC|CA|-122.75|53.92|78|N|,Princeton|FL|US|-80.41|25.54|39|N|,Princeton|NJ|US|-74.66|40.35|29|N|stony brook,Prior Lake|MN|US|-93.42|44.71|25|N|,Probolinggo|east java|ID|113.22|-7.75|243|W|kota probolinggo,Proddatur|andhra pradesh|IN|78.55|14.75|177|W|,Progreso|MX31|MX|-89.66|21.28|37|N|progreso de castro,Prokop'yevsk|kuzbass|RU|86.72|53.92|219|W|prokopjevsk;prokopyevsk;prokopjewsk,Providence|RI|US|-71.41|41.82|190|NW|,Provo|UT|US|-111.66|40.23|115|N|,Pskov|pskov oblast|RU|28.33|57.82|210|W|pihkova;pleskau;pskow,Pu'er|yunnan|CN|100.97|22.79|296|W|,Pucallpa|ucayali|PE|-74.55|-8.38|326|W|,Puchong|selangor|MY|101.62|3|375|W|,Pudong|shanghai|CN|121.5|31.24|5681|W|,Puducherry|puducherry|IN|79.83|11.93|657|W|pondichery;pondicherry;territoire de pondichery;pondicherri,Puebla|MX21|MX|-98.21|19.05|1692|NW|puebla city;puebla de zaragoza;puebla de los angeles,Pueblo|CO|US|-104.61|38.25|109|N|,Pueblo West|CO|US|-104.72|38.35|29|N|,Puente Alto|santiago metropolitan|CL|-70.58|-33.61|568|W|,Puente de Vallecas|madrid|ES|-3.66|40.39|244|W|,Puerto Cabello|carabobo|VE|-68.01|10.47|174|W|,Puerto Cortez|cortes department|HN|-87.93|15.83|142|W|puerto cortes,Puerto Escondido|MX20|MX|-97.07|15.86|29|N|,Puerto La Cruz|anzoategui|VE|-64.63|10.21|370|W|puerto cruz;puerto de la cruz,Puerto Montt|los lagos region|CL|-72.94|-41.47|245|W|port montt,Puerto Penasco|MX26|MX|-113.54|31.32|62|N|,Puerto Plata|puerto plata|DO|-70.69|19.79|146|W|,Puerto Princesa|mimaropa|PH|118.74|9.74|222|W|kota puerto princesa;puerto princesa city,Puerto Vallarta|MX14|MX|-105.23|20.62|224|NW|pto vallarta,Pullman|WA|US|-117.18|46.73|32|N|,Punasa|madhya pradesh|IN|76.39|22.24|350|W|,Pune|maharashtra|IN|73.86|18.52|3124|W|poona,Punggol||SG|103.91|1.41|204|W|,Puning|guangdong|CN|116.17|23.31|874|W|,Punto Fijo|falcon|VE|-70.2|11.69|141|W|,Puqi|hubei|CN|113.88|29.72|132|W|,Puri|odisha|IN|85.82|19.8|200|W|,Purisima de Bustos|MX11|MX|-101.88|21.03|43|N|,Purnia|bihar|IN|87.47|25.78|282|W|,Puruandiro|MX16|MX|-101.52|20.09|30|N|,Purwakarta|west java|ID|107.44|-6.56|179|W|kota purwakarta,Purwodadi|central java|ID|110.92|-7.09|139|W|purwodadi grobogan,Purwokerto|central java|ID|109.23|-7.42|230|W|kota purwokerto,Puthia|rajshahi division|BD|88.83|24.37|159|W|,Putian|fujian|CN|119.01|25.44|1539|W|pchu tchien,Putuo|shanghai|CN|121.39|31.25|1239|W|,Puxi|shanghai|CN|121.47|31.24|6683|W|,Puyallup|WA|US|-122.29|47.19|39|N|,Puyang|zhejiang|CN|119.89|29.46|3590|W|pujiang,Puyang|henan|CN|115.04|35.76|655|W|pchu jang,Pyatigorsk|stavropol kray|RU|43.05|44.05|142|W|piatigorsk;pjatigorsk,Pyay|bago region|MM|95.22|18.82|135|W|prome;pyain,Pyeongtaek|gyeonggi do|KR|127.09|36.99|364|W|pyeongtaek si,Pyongyang|pyongyang|KP|125.75|39.03|3222|W|p yongyang;p yongyang si;pchjongjang;phenian;pionguiangue;pionyang;pjongjang;pyongyang si,Qa'em Shahr|mazandaran|IR|52.87|36.47|204|W|,Qadirpur Ran|punjab|PK|71.67|30.29|200|W|,Qalyub|qalyubia|EG|31.21|30.18|156|W|,Qarchak|tehran|IR|51.58|35.43|251|W|,Qarshi|qashqadaryo|UZ|65.79|38.86|278|W|karchi;karsji;karszy;karsi;qarsi,Qazvin|qazvin province|IR|50|36.27|333|W|kazvin;kazwin,Qeladize|sulaymaniyah|IQ|45.13|36.18|140|W|,Qianjiang|hubei|CN|112.89|30.42|179|W|,Qianjiang|chongqing|CN|108.77|29.53|143|W|,Qibao|shanghai|CN|121.36|31.15|283|W|,Qina|qena|EG|32.73|26.16|252|W|,Qingdao|shandong|CN|120.38|36.06|7172|W|cching tao;tsingtau,Qingpu|shanghai|CN|121.11|31.15|1271|W|,Qingyang|gansu|CN|107.64|35.71|2125|W|,Qingyuan|guangdong|CN|113.03|23.7|1738|W|cching juan,Qingzhou|shandong|CN|118.48|36.7|236|W|,Qinhuangdao|hebei|CN|119.59|39.94|759|W|cchin chuang tao,Qinzhou|guangxi|CN|108.65|21.98|1296|W|kham chau;cchin cou,Qionghai|hainan|CN|110.46|19.24|528|W|,Qiqihar|heilongjiang|CN|123.96|47.34|882|W|cicikar,Qitaihe|heilongjiang|CN|131|45.77|345|W|,Qo'qon|fergana|UZ|70.94|40.53|259|W|kokand,Qods|tehran|IR|51.11|35.72|309|W|,Qom|qom province|IR|50.88|34.64|900|W|kom;kum,Quan Ba|ho chi minh city hcmc|VN|106.69|10.77|220|W|,Quan Bon|ho chi minh city hcmc|VN|106.71|10.77|199|W|,Quan GJuc Thinh||VN|105.74|10.31|132|W|,Quan Muoi|ho chi minh city hcmc|VN|106.67|10.77|399|W|,Quan Muoi Mot|ho chi minh city hcmc|VN|106.64|10.76|332|W|,Quan Nam|ho chi minh city hcmc|VN|106.67|10.76|187|W|,Quan Sau|ho chi minh city hcmc|VN|106.65|10.75|271|W|,Quang Ngai|quang ngai|VN|108.79|15.12|278|W|,Quanzhou|fujian|CN|118.59|24.91|1469|W|cchuan cou;chinchew;chinchu;zayton,Quarto Oggiaro|lombardy|IT|9.14|45.51|182|W|,Quebec|QC|CA|-71.21|46.81|531|NW|kota quebec;quebec city,Queen Creek|AZ|US|-111.63|33.25|34|N|,Queens|NY|US|-73.84|40.68|2316|NW|borough of queens;comte de queens;condado de queens;queens county,Queens Village|NY|US|-73.74|40.73|51|N|,Queensbury|NY|US|-73.61|43.38|27|N|,Queimados|rio de janeiro|BR|-43.56|-22.72|149|W|,Quelimane|zambezia province|MZ|36.89|-17.88|349|W|,Quetta|balochistan|PK|67|30.18|1565|W|ketta;kveta;kweta,Quetzaltenango|quetzaltenango|GT|-91.52|14.84|180|W|,Quevedo|los rios|EC|-79.46|-1.03|213|W|,Quezon City|national capital region|PH|121.05|14.65|3084|W|ciudad quezon;quezon stadt,Qui Nhon|gia lai|VN|109.22|13.78|519|W|quy nhon,Quilicura|santiago metropolitan|CL|-70.71|-33.37|210|W|,Quillacollo|cochabamba|BO|-66.28|-17.39|172|W|,Quilmes|buenos aires|AR|-58.25|-34.72|262|W|,Quilpue|valparaiso|CL|-71.44|-33.05|130|W|,Quincy|MA|US|-71|42.25|93|N|,Quincy|IL|US|-91.41|39.94|40|N|,Quinte West|ON|CA|-77.57|44.18|43|N|,Quito|pichincha|EC|-78.52|-0.23|2781|W|san francisco de quito,Qujing|yunnan|CN|103.78|25.48|1408|W|khuc tinh;cchu ting,Quthbullapur|telangana|IN|78.46|17.5|225|W|,Quzhou|zhejiang|CN|118.87|28.96|902|W|cu chau;cchu cou,Ra's Bayrut|beirut|LB|35.48|33.9|1251|W|,Rabak|white nile|SD|32.74|13.18|135|W|,Rabat|rabat sale kenitra|MA|-6.83|34.01|1655|W|,Rach Gia|an giang|VN|105.08|10.01|459|W|,Racine|WI|US|-87.78|42.73|77|N|,Radnor|PA|US|-75.36|40.05|30|N|,Radom|mazovia|PL|21.15|51.4|226|W|,Raebareli|uttar pradesh|IN|81.23|26.23|186|W|rae bareli,Rafsanjan|kerman|IR|55.99|30.41|147|W|,Rahim Yar Khan|punjab|PK|70.3|28.42|517|W|rahimjar khan;rahimyar khan,Rahway|NJ|US|-74.28|40.61|29|N|,Raichur|karnataka|IN|77.36|16.21|234|W|,Raiganj|west bengal|IN|88.12|25.61|170|W|,Raigarh|chhattisgarh|IN|83.4|21.9|150|W|rajgarh,Raipur|chhattisgarh|IN|81.63|21.23|1027|W|,Raj-Nandgaon|chhattisgarh|IN|81.03|21.1|163|W|,Rajamahendravaram|andhra pradesh|IN|81.78|17.01|376|W|rajahmundry,Rajapalayam|tamil nadu|IN|77.55|9.45|130|W|,Rajkot|gujarat|IN|70.79|22.29|1390|W|radzkot,Rajpur Sonarpur|west bengal|IN|88.43|22.44|424|W|rajpur;sonarpur;sonarpur rajpur,Rajshahi|rajshahi division|BD|88.6|24.37|763|W|,Raleigh|NC|US|-78.64|35.77|482|NW|,Ramadi|anbar|IQ|43.31|33.42|223|W|al ramadi;al rumadi;ar ramadi,Ramagundam|telangana|IN|79.47|18.75|242|W|,Ramat Gan|tel aviv|IL|34.81|32.08|170|W|,Ramenki|moscow|RU|37.5|55.7|130|W|,Ramgundam|telangana|IN|79.45|18.8|452|W|,Ramiros|luanda|AO|13.05|-9.06|323|W|,Ramna Maidan|dhaka division|BD|90.4|23.73|143|W|,Ramos Arizpe|MX07|MX|-100.95|25.54|66|N|,Rampur|uttar pradesh|IN|79.03|28.81|296|W|,Ramsey|MN|US|-93.45|45.26|25|N|,Rancagua|o higgins region|CL|-70.74|-34.17|212|W|,Ranchi|jharkhand|IN|85.31|23.34|1120|W|ranci,Rancho Cordova|CA|US|-121.3|38.59|71|N|,Rancho Cucamonga|CA|US|-117.59|34.11|175|NW|,Rancho Palos Verdes|CA|US|-118.39|33.74|42|N|,Rancho Penasquitos|CA|US|-117.12|32.96|60|N|,Rancho Santa Margarita|CA|US|-117.6|33.64|49|N|,Randallstown|MD|US|-76.8|39.37|32|N|,Randburg|gauteng|ZA|28|-26.09|337|W|rendburg,Randfontein|gauteng|ZA|27.7|-26.18|133|W|,Randolph|MA|US|-71.04|42.16|32|N|,Randolph|NJ|US|-74.58|40.85|25|N|randolph township,Rangel|luanda|AO|13.26|-8.83|190|W|,Rangkasbitung|banten|ID|106.25|-6.36|137|W|,Rangpur|rangpur division|BD|89.25|25.75|1031|W|rangpur city;rongpur,Raniganj|telangana|IN|78.49|17.43|217|W|,Raniganj|west bengal|IN|87.13|23.62|131|W|,Ranipet|tamil nadu|IN|79.33|12.92|264|W|,Rapid City|SD|US|-103.23|44.08|73|N|,Ras Al Khaimah|ras al khaimah|AE|55.94|25.79|351|W|ras el khaimah;ra s al chaima;ras al khaimah city;ras al chajma;ras el kheima;resu l hayme,Rasapudipalem|andhra pradesh|IN|83.32|17.73|1728|W|,Rasht|gilan province|IR|49.59|37.28|594|W|rascht;rasjt;raszt;rast;rest,Ratlam|madhya pradesh|IN|75.04|23.33|264|W|,Raurkela Industrial Township|odisha|IN|84.86|22.2|216|W|,Rawalpindi|punjab|PK|73.05|33.6|3357|W|ravalpindi,Rawang|selangor|MY|101.58|3.32|199|W|,Rawson|san juan|AR|-68.54|-31.58|130|W|,Rayon KTZ|kharkiv|UA|36.37|49.94|200|W|khtz district;khtz settlement;novyy kharkiv;rayon khtz;new kharkiv;novyi kharkiv,Raytown|MO|US|-94.46|39.01|29|N|,Reading|england|GB|-0.97|51.46|318|W|,Reading|PA|US|-75.93|40.34|87|N|,Recife|pernambuco|BR|-34.88|-8.05|1653|W|,Red Deer|AB|CA|-113.8|52.27|100|N|,Redan|GA|US|-84.13|33.75|33|N|,Redding|CA|US|-122.39|40.59|91|N|,Redford|MI|US|-83.3|42.38|49|N|,Redlands|CA|US|-117.18|34.06|71|N|,Redmond|WA|US|-122.12|47.67|60|N|,Redmond|OR|US|-121.17|44.27|28|N|,Redondo Beach|CA|US|-118.39|33.85|68|N|,Redwood City|CA|US|-122.24|37.49|85|N|,Reedley|CA|US|-119.45|36.6|25|N|,Reforma|MX05|MX|-93.15|17.86|26|N|,Regensburg|bavaria|DE|12.1|49.02|151|W|ratisbona;ratisbonne;ratyzbona;regensburgo;rezno,Reggio Calabria|calabria|IT|15.66|38.11|182|W|reggio de calabre;reggio di calabria;regio de calabria,Reggio nell'Emilia|emilia romagna|IT|10.63|44.7|171|W|reggio emilia;reggio d emilie,Regina|SK|CA|-104.62|50.45|226|NW|,Rego Park|NY|US|-73.85|40.73|43|N|,Rehovot|central district|IL|34.81|31.89|149|W|rechovot;rechowot;rejovot,Reims|grand est|FR|4.03|49.27|196|W|remes,Reisterstown|MD|US|-76.83|39.47|25|N|,Renca|santiago metropolitan|CL|-70.71|-33.4|147|W|,Renfrew-Collingwood|BC|CA|-123.04|49.24|51|N|,Rengasdengklok|west java|ID|107.3|-6.16|201|W|,Rennes|brittany|FR|-1.67|48.11|227|W|,Reno|NV|US|-119.81|39.53|264|NW|,Renton|WA|US|-122.22|47.48|100|N|,Repentigny|QC|CA|-73.45|45.74|84|N|,Reseda|CA|US|-118.54|34.2|65|N|,Resende|rio de janeiro|BR|-44.45|-22.47|137|W|,Resistencia|chaco|AR|-58.99|-27.46|290|W|ciudad de resistencia,Reston|VA|US|-77.34|38.97|58|N|,Revere|MA|US|-71.01|42.41|53|N|,Rewa|madhya pradesh|IN|81.29|24.53|235|W|,Rewari|haryana|IN|76.62|28.2|143|W|,Rexburg|ID|US|-111.79|43.83|27|N|,Reynoldsburg|OH|US|-82.81|39.95|37|N|,Reynosa|MX28|MX|-98.28|26.08|589|NW|,Rhawnhurst|PA|US|-75.06|40.06|25|N|,Rialto|CA|US|-117.37|34.11|103|N|,Ribeirao das Neves|minas gerais|BR|-44.09|-19.77|346|W|,Ribeirao Preto|sao paulo|BR|-47.81|-21.18|698|W|ribeirao,Richards Bay|kwazulu natal|ZA|32.04|-28.78|252|W|,Richardson|TX|US|-96.73|32.95|110|N|,Richfield|MN|US|-93.28|44.88|36|N|,Richland|WA|US|-119.28|46.29|54|N|,Richmond|VA|US|-77.46|37.55|226|NW|,Richmond|BC|CA|-123.14|49.17|209|NW|,Richmond|CA|US|-122.35|37.94|109|N|,Richmond|IN|US|-84.89|39.83|35|N|,Richmond|KY|US|-84.29|37.75|33|N|,Richmond Hill|ON|CA|-79.44|43.87|202|NW|,Richmond Hill|NY|US|-73.83|40.7|98|N|,Richmond West|FL|US|-80.43|25.61|35|N|,Ridgecrest|CA|US|-117.67|35.62|28|N|,Ridgewood|NY|US|-73.91|40.7|69|N|,Ridgewood|NJ|US|-74.12|40.98|25|N|,Riga|riga|LV|24.11|56.95|742|W|riika;ryga,Rimini|emilia romagna|IT|12.57|44.06|148|W|,Rimouski|QC|CA|-68.52|48.45|42|N|,Rincon de Romos|MX01|MX|-102.32|22.23|27|N|,Rio Blanco|MX30|MX|-97.16|18.83|40|N|,Rio Branco|acre|BR|-67.81|-9.97|419|W|,Rio Claro|sao paulo|BR|-47.56|-22.41|201|W|,Rio Cuarto|cordoba|AR|-64.35|-33.13|157|W|ciudad de rio cuarto,Rio das Ostras|rio de janeiro|BR|-41.95|-22.53|168|W|,Rio de Janeiro|rio de janeiro|BR|-43.18|-22.91|6747|W|,Rio de Teapa|MX27|MX|-92.9|17.77|26|N|,Rio Grande|rio grande do sul|BR|-52.1|-32.03|198|W|,Rio Grande|MX32|MX|-103.03|23.83|32|N|,Rio Pequeno|sao paulo|BR|-46.76|-23.57|131|W|,Rio Rancho|NM|US|-106.66|35.23|87|N|,Rio Verde|goias|BR|-50.93|-17.8|241|W|,Riobamba|chimborazo province|EC|-78.66|-1.67|264|W|,Riohacha|la guajira department|CO|-72.91|11.54|188|W|rio de la hacha,Rioverde|MX24|MX|-99.99|21.93|53|N|,Rishon LeTsiyyon|central district|IL|34.79|31.97|258|W|rishon leziyyon;rischon lezion;rishon le zion;rishon lezion;rishon letsiyon;rishon lsiyon;rishon le siyon;rishon le ziyon;risjon letsion;riszon le cijjon,Riverside|CA|US|-117.4|33.95|317|NW|,Riverton|UT|US|-111.94|40.52|41|N|,Riverview|FL|US|-82.33|27.87|71|N|,Riviera Beach|FL|US|-80.06|26.78|34|N|,Riviere-des-Prairies-Pointe-aux-Trembles|QC|CA|-73.58|45.64|113|N|,Rivne|rivne oblast|UA|26.24|50.62|243|W|riwne;rowne,Riyadh|riyadh region|SA|46.72|24.69|4205|W|riad;riade;rijad;riyad,Rizhao|shandong|CN|119.53|35.41|661|W|z cao,Roanoke|VA|US|-79.94|37.27|100|N|,Robertsonpet|karnataka|IN|78.28|12.96|162|W|robertson pet,Rochester|NY|US|-77.62|43.15|209|NW|,Rochester|MN|US|-92.47|44.02|112|N|,Rochester|NH|US|-70.98|43.3|30|N|,Rochester Hills|MI|US|-83.15|42.66|73|N|,Rock Forest|QC|CA|-72|45.36|35|N|,Rock Hill|SC|US|-81.03|34.92|71|N|,Rock Island|IL|US|-90.58|41.51|38|N|,Rockford|IL|US|-89.09|42.27|148|NW|,Rocklin|CA|US|-121.24|38.79|61|N|,Rockville|MD|US|-77.15|39.08|66|N|hungerford s tavern;hungerfords;hungerfords tavern;montgomery court house;montgomery courthouse;owen s ordinary;williamsburg;williamsburgh,Rockwall|TX|US|-96.46|32.93|42|N|,Rocky Mount|NC|US|-77.79|35.94|55|N|,Rodriguez|calabarzon|PH|121.2|14.76|134|W|,Rogers|AR|US|-94.12|36.33|63|N|,Rogers Park|IL|US|-87.67|42.01|54|N|,Rohini|delhi|IN|77.07|28.74|860|W|,Rohnert Park|CA|US|-122.7|38.34|42|N|,Rohtak|haryana|IN|76.59|28.89|374|W|,Rome|lazio|IT|12.51|41.89|2318|W|rom;roma;rooma;rzym;rim,Rome|GA|US|-85.16|34.26|36|N|,Rome|NY|US|-75.46|43.21|32|N|roma,Romeoville|IL|US|-88.09|41.65|39|N|,Rondonopolis|mato grosso|BR|-54.64|-16.47|263|W|,Roodepoort|gauteng|ZA|27.87|-26.16|326|W|,Rosario|santa fe|AR|-60.64|-32.95|948|W|,Rosarito|MX02|MX|-117.05|32.36|100|N|rosario;rosarito beach baja,Rosedale|NY|US|-73.74|40.66|25|N|,Rosemead|CA|US|-118.07|34.08|54|N|,Rosemont-La Petite-Patrie|QC|CA|-73.61|45.54|146|NW|,Rosenberg|TX|US|-95.81|29.56|35|N|,Rosetta|beheira|EG|30.42|31.4|301|W|rasyid;resid;roseta;rosette,Roseville|CA|US|-121.29|38.75|130|NW|,Roseville|MI|US|-82.94|42.5|47|N|,Roseville|MN|US|-93.16|45.01|35|N|,Roslindale|MA|US|-71.12|42.29|27|N|,Rostock|mecklenburg vorpommern|DE|12.14|54.09|198|W|,Rostov-on-Don|rostov|RU|39.71|47.22|1130|W|rostov na donu;rostow am don;rostov aan de don;rostov del don;rostov do don;rostov sul don;rostov tren song dong;rostov ved don;rostov pe don;rostov sur le don;rostow nad donem,Roswell|GA|US|-84.36|34.02|94|N|,Roswell|NM|US|-104.52|33.39|48|N|,Rotterdam|south holland|NL|4.48|51.92|868|W|roterdao;roterdam,Rouge|ON|CA|-79.17|43.8|46|N|,Round Lake Beach|IL|US|-88.09|42.37|27|N|,Round Rock|TX|US|-97.68|30.51|115|N|,Rourkela|odisha|IN|84.86|22.22|273|W|,Rowland Heights|CA|US|-117.91|33.98|48|N|,Rowlett|TX|US|-96.56|32.9|60|N|,Roxas City|western visayas|PH|122.75|11.59|185|W|,Roy|UT|US|-112.03|41.16|37|N|,Royal Oak|MI|US|-83.14|42.49|59|N|,Royal Palm Beach|FL|US|-80.23|26.71|37|N|,Rubidoux|CA|US|-117.41|34|34|N|,Rubtsovsk|altai krai|RU|81.21|51.51|161|W|roebtsovsk;roubtsovsk;rubcovsk;rubcowsk;rubzowsk;rubtovsk,Ruda Slaska|silesia|PL|18.86|50.26|146|W|ruda o s,Rudrapur|uttarakhand|IN|79.4|28.98|154|W|,Rufisque|dakar|SN|-17.27|14.72|295|W|,Rufisque est|dakar|SN|-17.27|14.72|221|W|,Rugao|jiangsu|CN|120.58|32.37|257|W|,Rui'an|zhejiang|CN|120.66|27.78|927|W|,Ruiru|kiambu county|KE|36.96|-1.15|490|W|,Ruqi|awdal|SO|43.43|9.97|148|W|,Russeifa|zarqa|JO|36.05|32.02|268|W|ar rusajfa;rusajfa;ruseyfa,Russellville|AR|US|-93.13|35.28|29|N|,Rustenburg|north west|ZA|27.24|-25.67|373|W|rustemburgo,Rutchenkivskyi|donetsk|UA|37.7|47.98|168|W|rutchenkivskyi district;rutchenkivskyi rayon;rutchenkove;kirovskyi;kirovskyi rayon,Rutland|BC|CA|-119.39|49.9|34|N|,Ryazan'|ryazan oblast|RU|39.7|54.63|538|W|rjazan;riazan;rjasan,Rybinsk|yaroslavl oblast|RU|38.84|58.05|216|W|ribinsk,Rybnik|silesia|PL|18.54|50.1|142|W|,Rzeszow|subcarpathia|PL|22|50.04|198|W|resov,'s-Hertogenbosch|north brabant|NL|5.3|51.7|160|W|den bosch;bois le duc;bolduque;boscoducale;hertogenbosch;herzogenbusch,Sa Dec|dong thap|VN|105.76|10.29|214|W|,Saaba|centre|BF|-1.41|12.37|136|W|,Saanich|BC|CA|-123.37|48.55|117|N|,Saarbruecken|saarland|DE|7.01|49.23|182|W|saarbrucken;sarrebruck,Sabadell|catalonia|ES|2.11|41.54|211|W|,Sabah as Salim|mubarak al kabir|KW|48.06|29.26|139|W|sabah al salem,Sabha|sabha district|LY|14.43|27.04|149|W|sebha,Sabinas|MX07|MX|-101.12|27.86|54|N|ciudad sabinas,Sabya|jazan region|SA|42.63|17.15|228|W|,Sabzevar|razavi khorasan|IR|57.68|36.21|243|W|sabzawar;sabzewar;sebzevar,Sacaba|cochabamba|BO|-66.04|-17.4|180|W|,Sacoma|sao paulo|BR|-46.6|-23.63|261|W|,Sacramento|CA|US|-121.49|38.58|524|NW|,Saddiqabad|punjab|PK|70.13|28.31|274|W|,Sadr City|baghdad|IQ|44.46|33.39|1211|W|,Safi|marrakesh safi|MA|-9.24|32.3|336|W|asfi;safim;asafi,Saga|saga|JP|130.3|33.23|233|W|saga shi,Sagamihara|kanagawa|JP|139.24|35.57|720|W|,Saginaw|MI|US|-83.95|43.42|49|N|,Saguenay|QC|CA|-71.07|48.42|148|NW|,Saham|al batinah north|OM|56.89|24.17|140|W|,Saharanpur|uttar pradesh|IN|77.55|29.97|484|W|,Saharsa|bihar|IN|86.6|25.87|156|W|,Sahiwal|punjab|PK|72.33|31.97|538|W|,Sahuarita|AZ|US|-110.96|31.96|25|N|,Sahuayo de Morelos|MX16|MX|-102.72|20.06|64|N|,Sai Mai|bangkok|TH|100.65|13.92|188|W|,Saida|saida|DZ|0.15|34.83|142|W|sa ida,Saidpur|rangpur division|BD|88.89|25.78|199|W|,Saint Charles|MO|US|-90.48|38.78|65|N|st charles,Saint Charles|MD|US|-76.94|38.6|36|N|st charles,Saint Clair Shores|MI|US|-82.89|42.5|59|N|st clair shores;saint clr shores,Saint Cloud|MN|US|-94.16|45.56|65|N|st cloud,Saint Cloud|FL|US|-81.28|28.25|35|N|st cloud,Saint-Constant|QC|CA|-73.57|45.37|27|N|,Saint-Denis|reunion|RE|55.45|-20.88|154|W|saint denis de la reunion;st denis,Saint-Etienne|rhone alpes|FR|4.39|45.43|176|W|st etienne,Saint-Eustache|QC|CA|-73.91|45.56|42|N|,Saint George|UT|US|-113.58|37.1|72|N|st george,Saint-Georges|QC|CA|-70.67|46.11|31|N|,Saint-Hubert|QC|CA|-73.42|45.5|82|N|,Saint-Hyacinthe|QC|CA|-72.96|45.63|50|N|st hyacinthe,Saint-Jean-sur-Richelieu|QC|CA|-73.26|45.31|98|N|,Saint-Jerome|QC|CA|-74|45.78|54|N|,Saint John|NB|CA|-66.06|45.27|71|N|saint jean,Saint Joseph|MO|US|-94.85|39.77|76|N|st joseph,Saint-Laurent|QC|CA|-73.67|45.5|98|N|st laurent,Saint-Leonard|QC|CA|-73.6|45.59|79|N|,Saint-Louis|saint louis|SN|-16.49|16.02|254|W|,Saint-Louis-de-Terrebonne|QC|CA|-73.79|45.7|119|N|,Saint Louis Park|MN|US|-93.35|44.95|45|N|st louis park,Saint-Marc|artibonite|HT|-72.7|19.11|266|W|,Saint-Michel|QC|CA|-73.62|45.57|56|N|,Saint Paul|MN|US|-93.09|44.94|303|NW|st paul,Saint Peters|MO|US|-90.63|38.8|52|N|city of saint peters,Saint Petersburg|st petersburg|RU|30.31|59.94|5351|W|pietari;san petersburgo;st petersburg;petrohrad;saint petersbourg;san pietroburgo;sankt peterburg;sankt petersborg;sankt petersburg;sint petersburg;sao petersburgo;leningrad;leningrado;petrograd;petrogrado,Saint-Quentin-en-Yvelines|ile de france|FR|2.02|48.77|146|W|,Sainte-Foy|QC|CA|-71.29|46.78|111|N|,Sainte-Julie|QC|CA|-73.33|45.58|29|N|,Sainte-Therese|QC|CA|-73.83|45.64|25|N|,Saitama|saitama|JP|139.66|35.91|1324|W|,Sakai|osaka|JP|135.47|34.58|826|W|,Saki|oyo state|NG|3.39|8.67|178|W|,Sakura|chiba|JP|140.23|35.72|173|W|,Salaberry-de-Valleyfield|QC|CA|-74.13|45.25|42|N|,Salalah|dhofar|OM|54.09|17.02|163|W|salala,Salamanca|MX11|MX|-101.2|20.57|160|NW|,Salamanca|madrid|ES|-3.68|40.43|147|W|,Salamanca|castille and leon|ES|-5.66|40.97|144|W|salamanka;salamanque,Salatiga|central java|ID|110.49|-7.33|198|W|,Salavat|bashkortostan republic|RU|55.91|53.38|159|W|salauat;salawat,Sale|rabat sale kenitra|MA|-6.8|34.05|972|W|sala,Sale Al Jadida|rabat sale kenitra|MA|-6.74|34|200|W|,Salem|tamil nadu|IN|78.16|11.65|917|W|selam,Salem|OR|US|-123.04|44.94|175|NW|,Salem|MA|US|-70.9|42.52|42|N|,Salem|NH|US|-71.2|42.79|29|N|,Salem|VA|US|-80.05|37.29|25|N|,Salina|KS|US|-97.61|38.84|47|N|,Salina Cruz|MX20|MX|-95.19|16.18|84|N|,Salinas|CA|US|-121.66|36.68|157|NW|,Salisbury|NC|US|-80.47|35.67|34|N|,Salisbury|MD|US|-75.6|38.36|32|N|,Salt Lake City|UT|US|-111.89|40.76|215|NW|kota salt lake,Salta|salta|AR|-65.42|-24.81|520|W|ciudad de salta,Saltillo|MX07|MX|-100.98|25.43|709|NW|,Saltivka|kharkiv|UA|36.35|50.02|409|W|saltivskyi masyv,Salto|sao paulo|BR|-47.29|-23.2|141|W|,Salvador|bahia|BR|-38.49|-12.98|2711|W|salvador de bahia,Salvatierra|MX11|MX|-100.88|20.22|37|N|,Salzburg|state of salzburg|AT|13.04|47.8|157|W|salcburk;salisburgo;salzbourg;salzburgo,Samalut|minya|EG|30.71|28.31|142|W|,Samambaia|federal district|BR|-48.1|-15.88|218|W|,Samara|samara oblast|RU|50.14|53.21|1163|W|kuibyschew;kuibyshev;kuybyshev,Samarinda|east kalimantan|ID|117.15|-0.49|865|W|kota samarinda,Samarkand|samarqand region|UZ|66.96|39.65|595|W|samarcanda;samarcande;samarkanda;samarqand;semerkant,Samarra'|salah ad din|IQ|43.89|34.2|158|W|,Samba|luanda|AO|13.2|-8.88|364|W|,Sambalpur|odisha|IN|83.98|21.47|189|W|,Sambhal|uttar pradesh|IN|78.57|28.58|196|W|,Sambizanga|luanda|AO|13.28|-8.79|177|W|sambizanha,Sammamish|WA|US|-122.08|47.64|52|N|,Sampit|central kalimantan|ID|112.95|-2.53|166|W|,Samsun|samsun|TR|36.34|41.28|394|W|,Samut Prakan|samut prakan|TH|100.6|13.6|388|W|mueang samut prakan;paknam,San Agustin|MX14|MX|-103.47|20.55|30|N|colonia san agustin,San Andres Cholula|MX21|MX|-98.3|19.05|39|N|,San Andres Tuxtla|MX30|MX|-95.21|18.45|61|N|,San Angelo|TX|US|-100.44|31.46|99|N|,San Antonio|TX|US|-98.49|29.42|1526|NW|,San Bernardino|CA|US|-117.29|34.11|216|NW|,San Bernardino Tlaxcalancingo|MX21|MX|-98.28|19.03|54|N|,San Bernardo|santiago metropolitan|CL|-70.7|-33.59|249|W|,San Blas-Canillejas|madrid|ES|-3.62|40.44|157|W|,San Bruno|CA|US|-122.41|37.63|43|N|,San Buenaventura|MX15|MX|-98.86|19.3|44|N|,San Carlos|CA|US|-122.26|37.51|29|N|,San Clemente|CA|US|-117.61|33.43|65|N|,San Cristobal|tachira|VE|-72.24|7.77|289|W|,San Cristobal|san cristobal|DO|-70.11|18.42|154|W|,San Cristobal de las Casas|MX05|MX|-92.64|16.73|215|NW|san cristobal,San Diego|CA|US|-117.16|32.72|1404|NW|,San Dimas|CA|US|-117.81|34.11|34|N|,San Felipe|yaracuy|VE|-68.74|10.34|206|W|,San Felipe|MX11|MX|-101.22|21.48|28|N|,San Fernando|central luzon|PH|120.68|15.03|251|W|kota san fernando;san fernando city,San Fernando|MX28|MX|-98.15|24.85|29|N|,San Fernando de Apure|apure|VE|-67.47|7.89|229|W|san fernando,San Francisco|CA|US|-122.42|37.77|827|NW|sao francisco,San Francisco Acuautla|MX15|MX|-98.86|19.35|27|N|acuautla,San Francisco del Rincon|MX11|MX|-101.86|21.02|71|N|,San Francisco Tesistan|MX14|MX|-103.48|20.8|62|N|,San Gabriel|CA|US|-118.11|34.1|40|N|sao gabriel,San Isidro|MX15|MX|-98.95|19.34|33|N|,San Jacinto|CA|US|-116.96|33.78|46|N|,San Jeronimo|MX15|MX|-99.59|19.28|26|N|,San Jeronimo Cuatro Vientos|MX15|MX|-98.84|19.29|36|N|,San Jose|CA|US|-121.89|37.34|997|NW|,San Jose|san jose|CR|-84.08|9.93|335|W|,San Jose|mimaropa|PH|121.07|12.35|143|W|,San Jose del Cabo|MX03|MX|-109.7|23.05|136|NW|,San Jose del Castillo|MX14|MX|-103.24|20.51|39|N|,San Jose del Monte|central luzon|PH|121.05|14.81|357|W|kota san jose del monte;san jose del monte city,San Jose Guadalupe Otzacatipan|MX15|MX|-99.59|19.34|31|N|,San Juan|san juan|PR|-66.11|18.47|418|W|,San Juan|national capital region|PH|121.03|14.6|134|W|san juan city,San Juan|TX|US|-98.16|26.19|36|N|,San Juan Capistrano|CA|US|-117.66|33.5|36|N|,San Juan de los Lagos|MX14|MX|-102.33|21.25|48|N|,San Juan de los Morros|guarico|VE|-67.35|9.91|160|W|,San Juan del Rio|MX22|MX|-100|20.39|138|NW|,San Juan Sacatepequez|guatemala|GT|-90.64|14.72|136|W|,San Leandro|CA|US|-122.16|37.72|90|N|,San Lorenzo|central department|PY|-57.51|-25.34|227|W|,San Luis|san luis|AR|-66.32|-33.29|169|W|ciudad de san luis,San Luis|AZ|US|-114.78|32.49|31|N|,San Luis de la Paz|MX11|MX|-100.51|21.3|49|N|,San Luis Obispo|CA|US|-120.66|35.28|47|N|,San Luis Potosi|MX24|MX|-100.97|22.15|722|NW|san luis potosi city,San Luis Rio Colorado|MX26|MX|-114.77|32.46|176|NW|,San Marcos|CA|US|-117.17|33.14|92|N|,San Marcos|TX|US|-97.94|29.88|60|N|,San Martin|piura|PE|-80.67|-5.19|130|W|,San Martin Azcatepec|MX15|MX|-98.97|19.69|35|N|,San Martin Texmelucan de Labastida|MX21|MX|-98.44|19.28|155|NW|san martin texmelucan,San Mateo|calabarzon|PH|121.12|14.7|134|W|,San Mateo|CA|US|-122.33|37.56|103|N|,San Mateo Atenco|MX15|MX|-99.53|19.27|67|N|,San Miguel|san miguel department|SV|-88.18|13.48|247|W|,San Miguel|buenos aires|AR|-58.71|-34.54|168|W|,San Miguel Ajusco|MX09|MX|-99.2|19.22|29|N|,San Miguel de Allende|MX11|MX|-100.74|20.92|174|NW|,San Miguel de Tucuman|tucuman|AR|-65.21|-26.82|548|W|tucuman,San Miguel del Padron|havana|CU|-82.33|23.1|159|W|,San Miguel Topilejo|MX09|MX|-99.14|19.2|34|N|,San Miguelito|panama|PA|-79.47|9.05|321|W|,San Nicolas de los Arroyos|buenos aires|AR|-60.21|-33.33|134|W|san nicolas,San Nicolas de los Garza|MX19|MX|-100.3|25.74|412|NW|san nicolas de los garzas,San Pablo|calabarzon|PH|121.33|14.07|300|W|san pablo city,San Pablo|CA|US|-122.35|37.96|30|N|,San Pablo Autopan|MX15|MX|-99.66|19.36|35|N|,San Pablo de las Salinas|MX15|MX|-99.09|19.67|156|NW|san pablo,San-Pedro|bas sassandra district|CI|-6.64|4.75|390|W|,San Pedro|calabarzon|PH|121.05|14.36|348|W|,San Pedro|CA|US|-118.29|33.74|83|N|san pedro y san pablo,San Pedro|MX07|MX|-102.98|25.76|48|N|san pedro de las colonias,San Pedro de Macoris|san pedro de macoris|DO|-69.31|18.45|217|W|,San Pedro Garza Garcia|MX19|MX|-100.4|25.66|132|NW|garza garcia;san pedro,San Pedro Sula|cortes department|HN|-88.03|15.51|801|W|,San Rafael|CA|US|-122.53|37.97|59|N|sao rafael,San Ramon|CA|US|-121.98|37.78|76|N|,San Salvador|san salvador department|SV|-89.19|13.69|525|W|salvador;san salwador,San Salvador de Jujuy|jujuy|AR|-65.29|-24.19|257|W|,San Salvador Tizatlalli|MX15|MX|-99.59|19.26|61|N|,San Sebastian|basque country|ES|-1.97|43.31|185|W|donostia;la bella easo;saint sebastien;sanse;sao sebastiao,San Sebastian el Grande|MX14|MX|-103.43|20.53|28|N|,San Tan Valley|AZ|US|-111.53|33.19|81|N|,Sanaa|amanat alasimah|YE|44.21|15.35|1937|W|san a;sana;sana a,Sanandaj|kurdistan province|IR|47|35.31|349|W|sanandadsch;sanandadz;sanandij;senendec,Sancaktepe|istanbul|TR|29.23|41|489|W|,Sanctorum|MX21|MX|-98.25|19.1|27|N|,Sandacho|hyogo|JP|135.23|34.88|132|W|,Sandakan|sabah|MY|118.12|5.84|439|W|,Sandusky|OH|US|-82.71|41.45|25|N|,Sandy|UT|US|-111.88|40.59|87|N|sandy city,Sandy Hills|UT|US|-111.85|40.58|89|N|,Sandy Springs|GA|US|-84.38|33.92|105|N|,Sanford|FL|US|-81.27|28.8|58|N|,Sanford|NC|US|-79.18|35.48|29|N|,Sangli|maharashtra|IN|74.56|16.85|601|W|turmeric city,Sanhe|hebei|CN|117.07|39.98|965|W|,Sanhe|chongqing|CN|107.73|29.87|140|W|fengdu xian;fengtuhein,Sanliurfa|sanliurfa|TR|38.79|37.17|449|W|sanli urfa;edesse;edesa;edessa,Sanmenxia|henan|CN|111.19|34.78|669|W|san men sia,Sanming|fujian|CN|117.62|26.25|602|W|san ming;tam minh,Sanshui|guangdong|CN|112.89|23.15|153|W|,Sant Andreu|catalonia|ES|2.19|41.44|142|W|distrito sant andreu,Sant Marti|catalonia|ES|2.2|41.42|235|W|distrito de sant marti,Santa Ana|CA|US|-117.87|33.75|310|NW|,Santa Ana|santa ana department|SV|-89.56|13.99|176|W|,Santa Ana Chiautempan|MX29|MX|-98.19|19.31|48|N|,Santa Anita - Los Ficus|lima region|PE|-76.97|-12.05|184|W|,Santa Barbara|CA|US|-119.7|34.42|91|N|,Santa Barbara d'Oeste|sao paulo|BR|-47.41|-22.75|189|W|,Santa Catarina|MX19|MX|-100.46|25.67|304|NW|ciudad santa catarina,Santa Clara|villa clara province|CU|-79.97|22.41|250|W|,Santa Clara|CA|US|-121.96|37.35|126|N|,Santa Clarita|CA|US|-118.54|34.39|182|NW|,Santa Cruz|CA|US|-122.03|36.97|64|N|,Santa Cruz de la Sierra|santa cruz department|BO|-63.18|-17.79|1831|W|santa cruz;santa cruz da serra,Santa Cruz de Tenerife|canary islands|ES|-16.25|28.47|211|W|tenerife;teneriffa,Santa Cruz do Sul|rio grande do sul|BR|-52.43|-29.72|138|W|,Santa Cruz Xoxocotlan|MX20|MX|-96.74|17.03|67|N|santa cruz;xoxocotlan,Santa Fe|santa fe|AR|-60.71|-31.65|391|W|ciudad de santa fe,Santa Fe|NM|US|-105.94|35.69|87|N|,Santa Isabel|MX02|MX|-115.57|32.63|29|N|,Santa Luzia|minas gerais|BR|-43.85|-19.77|219|W|,Santa Maria|rio grande do sul|BR|-53.81|-29.68|271|W|,Santa Maria|CA|US|-120.44|34.95|105|N|,Santa Maria Chimalhuacan|MX15|MX|-98.95|19.42|70|N|,Santa Marta|magdalena department|CO|-74.19|11.24|499|W|,Santa Monica|CA|US|-118.49|34.02|93|N|,Santa Paula|CA|US|-119.06|34.35|30|N|,Santa Rita|paraiba|BR|-34.98|-7.11|149|W|,Santa Rosa|calabarzon|PH|121.11|14.31|216|W|kota santa rosa;santa rosa city,Santa Rosa|CA|US|-122.71|38.44|178|NW|,Santa Rosa Beach|FL|US|-86.23|30.4|32|N|,Santa Rosalia de Camargo|MX06|MX|-105.17|27.68|40|N|,Santa Teresa|MX15|MX|-99.23|19.84|36|N|,Santa Teresa del Tuy|miranda|VE|-66.66|10.23|278|W|,Santana de Parnaiba|sao paulo|BR|-46.92|-23.44|163|W|,Santander|cantabria|ES|-3.8|43.47|173|W|,Santarem|para|BR|-54.71|-2.44|360|W|,Santee|CA|US|-116.97|32.84|57|N|,Santiago|santiago metropolitan|CL|-70.65|-33.46|4837|W|santiago de chile;santiago del cile;santiago do chile;santiago du chili,Santiago|MX19|MX|-100.15|25.43|36|N|villa de santiago,Santiago de Cuba|santiago de cuba province|CU|-75.82|20.02|555|W|santiago di cuba,Santiago de los Caballeros|santiago province|DO|-70.69|19.45|1200|W|santiago,Santiago de Queretaro|MX22|MX|-100.39|20.59|1594|NW|queretaro city,Santiago de Surco|lima region|PE|-77.01|-12.14|251|W|,Santiago del Estero|santiago del estero|AR|-64.26|-27.8|252|W|,Santiago Papasquiaro|MX10|MX|-105.42|25.04|26|N|,Santiago Teyahualco|MX15|MX|-99.12|19.66|53|N|teyahualco,Santo Andre|sao paulo|BR|-46.54|-23.66|662|W|,Santo Domingo|nacional|DO|-69.89|18.47|2201|W|saint domingue;santo domingo city;ciudad trujillo,Santo Domingo de los Colorados|santo domingo de los tsachilas|EC|-79.18|-0.25|458|W|santo domingo,Santo Domingo Este|santo domingo province|DO|-69.85|18.49|700|W|,Santo Domingo Oeste|santo domingo province|DO|-70|18.5|701|W|,Santo Domingo Tehuantepec|MX20|MX|-95.24|16.32|67|N|,Santol|central luzon|PH|120.57|15.16|298|W|,Santos|sao paulo|BR|-46.33|-23.96|418|W|baixada santista,Sants-Montjuic|catalonia|ES|2.15|41.37|183|W|,Sanya|hainan|CN|109.51|18.25|1031|W|san ja;tam a,Sao Bernardo do Campo|sao paulo|BR|-46.56|-23.69|840|W|,Sao Caetano do Sul|sao paulo|BR|-46.55|-23.62|172|W|,Sao Carlos|sao paulo|BR|-47.89|-22.02|266|W|,Sao Felix do Xingu|para|BR|-51.99|-6.64|132|W|,Sao Joao de Meriti|rio de janeiro|BR|-43.37|-22.8|466|W|,Sao Jose|santa catarina|BR|-48.63|-27.62|295|W|,Sao Jose de Ribamar|maranhao|BR|-44.06|-2.56|259|W|,Sao Jose do Rio Preto|sao paulo|BR|-49.38|-20.82|480|W|rio preto,Sao Jose dos Campos|sao paulo|BR|-45.89|-23.18|727|W|sjcampos;vale paraiba;vale do paraiba,Sao Jose dos Pinhais|parana|BR|-49.21|-25.53|349|W|,Sao Leopoldo|rio grande do sul|BR|-51.15|-29.76|209|W|,Sao Lucas|sao paulo|BR|-46.54|-23.59|138|W|,Sao Luis|maranhao|BR|-44.3|-2.53|917|W|maranham,Sao Mateus|sao paulo|BR|-46.48|-23.61|155|W|,Sao Mateus|espirito santo|BR|-39.86|-18.72|134|W|,Sao Paulo|sao paulo|BR|-46.64|-23.55|12400|W|san paolo;sao paulo capital,Sao Rafael|sao paulo|BR|-46.45|-23.63|148|W|,Sao Vicente|sao paulo|BR|-46.39|-23.96|338|W|,Sapele|delta|NG|5.68|5.89|305|W|,Sapopemba|sao paulo|BR|-46.52|-23.6|266|W|,Sapporo|hokkaido|JP|141.35|43.07|1973|W|sapporo shi;sapporoshi,Sapucaia do Sul|rio grande do sul|BR|-51.15|-29.82|132|W|,Saqqez|kurdistan province|IR|46.27|36.25|165|W|saggiz;saghghez,Sarajevo|federation of b h|BA|18.36|43.85|696|W|sarajewo;saraybosna,Saransk|mordoviya republic|RU|45.17|54.18|318|W|,Sarasota|FL|US|-82.53|27.34|55|N|,Saratoga|CA|US|-122.02|37.26|30|N|,Saratoga Springs|NY|US|-73.78|43.08|27|N|saratoga spgs,Saratoga Springs|UT|US|-111.9|40.35|25|N|,Saratov|saratov oblast|RU|45.99|51.54|844|W|saratow,Sargodha|punjab|PK|72.67|32.09|975|W|,Sarh|moyen chari|TD|18.38|9.15|138|W|,Sari|mazandaran|IR|53.06|36.56|255|W|,Sariwon-si|north hwanghae|KP|125.76|38.51|310|W|sariwon,Sarnia|ON|CA|-82.4|42.98|72|N|,Sarria-Sant Gervasi|catalonia|ES|2.14|41.4|147|W|,Sasaram|bihar|IN|84.02|24.95|147|W|,Sasebo|nagasaki|JP|129.73|33.17|243|W|,Saskatoon|SK|CA|-106.67|52.13|266|NW|,Sasolburg|free state|ZA|27.82|-26.81|135|W|,Satna|madhya pradesh|IN|80.83|24.58|282|W|,Saugor|madhya pradesh|IN|78.74|23.84|274|W|,Saugus|MA|US|-71.01|42.46|26|N|,Sault Ste. Marie|ON|CA|-84.33|46.52|72|N|sault sainte marie,Saurimo|lunda sul|AO|20.39|-9.66|393|W|,Savage|MN|US|-93.34|44.78|30|N|,Savannah|GA|US|-81.1|32.08|147|NW|,Savar|dhaka division|BD|90.25|23.85|286|W|sabhar;savar upazila,Saveh|markazi|IR|50.36|35.02|220|W|,Sawangan|west java|ID|106.77|-6.4|197|W|,Sawtelle|CA|US|-118.45|34.04|39|N|,Sayama|saitama|JP|139.41|35.85|160|W|,Sayreville|NJ|US|-74.36|40.46|44|N|,Sayreville Junction|NJ|US|-74.33|40.47|42|N|,Sayula|MX14|MX|-103.6|19.88|26|N|,Schaerbeek|brussels capital|BE|4.38|50.87|132|W|schaarbeek;schaerbeek schaarbeek,Schaumburg|IL|US|-88.08|42.03|74|N|,Schenectady|NY|US|-73.94|42.81|65|N|,Schererville|IN|US|-87.45|41.48|28|N|,Schertz|TX|US|-98.27|29.55|43|N|,Scottsdale|AZ|US|-111.9|33.51|236|NW|,Scranton|PA|US|-75.66|41.41|77|N|,Seaside|CA|US|-121.85|36.61|33|N|,SeaTac|WA|US|-122.29|47.45|28|N|,Seattle|WA|US|-122.33|47.61|780|NW|,Sector 1|bucharest|RO|26.05|44.49|225|W|,Sector 2|bucharest|RO|26.13|44.45|290|W|,Sector 3|bucharest|RO|26.17|44.42|385|W|,Sector 4|bucharest|RO|26.12|44.38|287|W|,Sector 5|bucharest|RO|26.07|44.39|271|W|,Sector 6|bucharest|RO|26.02|44.44|367|W|,Secunderabad|telangana|IN|78.54|17.5|204|W|,Security-Widefield|CO|US|-104.71|38.75|32|N|,Seeb|muscat|OM|58.19|23.67|470|W|as sib;sib,Segou|segou|ML|-6.26|13.44|205|W|segu,Seguin|TX|US|-97.96|29.57|27|N|,Sejong|sejong si|KR|127.29|36.59|394|W|sedzong;yeongi,Sekondi|western|GH|-1.71|4.93|285|W|,Sekondi-Takoradi|western|GH|-1.76|4.93|138|W|sekondi,Selayang Baru Utara|selangor|MY|101.67|3.25|542|W|,Semarang|central java|ID|110.42|-6.99|1694|W|kota semarang,Semey|abai region|KZ|80.25|50.42|292|W|semei;semej;alash kala;semipalatinsk,Senador Canedo|goias|BR|-49.09|-16.71|175|W|,Sendai|miyagi|JP|140.87|38.27|1096|W|,Sengkang New Town||SG|103.89|1.39|267|W|sengkang,Sennar|sennar|SD|33.57|13.57|130|W|sannar;sinnar,Seogwipo|jeju do|KR|126.56|33.25|178|W|,Seongnam-si|gyeonggi do|KR|127.14|37.44|914|W|seongnam,Seoul|seoul|KR|126.98|37.57|10349|W|seoel;seoul si;seul;soul;hanyang,Sepang|selangor|MY|101.75|2.69|212|W|,Sept-Iles|QC|CA|-66.38|50.2|28|N|,Serang|banten|ID|106.15|-6.12|735|W|kabupaten serang,Serekunda|banjul|GM|-16.68|13.44|340|W|serrekunda,Seremban|negeri sembilan|MY|101.94|2.73|372|W|,Seri Kembangan|selangor|MY|101.72|3.03|130|W|,Serilingampalle|telangana|IN|78.3|17.49|150|W|,Serra|espirito santo|BR|-40.31|-20.13|520|W|,Setagaya|tokyo|JP|139.65|35.64|940|W|setagaya city,Setapak|selangor|MY|101.73|3.21|353|W|,Sete Lagoas|minas gerais|BR|-44.25|-19.47|238|W|,Setia Alam|selangor|MY|101.46|3.1|150|W|,Setif|setif|DZ|5.41|36.19|252|W|sathif;satif,Settat|casablanca settat|MA|-7.62|33|155|W|sattat,Sevastopol|sevastopol city|UA|33.52|44.61|547|W|akyar;sebastopol;sebastopoli;sewastopol;sivastopol,Severn|MD|US|-76.7|39.14|44|N|,Severna Park|MD|US|-76.55|39.07|37|N|,Severnyy|moscow|RU|37.55|55.94|200|W|,Severodvinsk|arkhangelskaya|RU|39.83|64.56|194|W|sewerodwinsk;siewierodwinsk,Sevilla|andalusia|ES|-5.97|37.38|686|W|seville;sevilha;sevilia;sewilla;siviglia,Sewell|NJ|US|-75.14|39.77|37|N|,Sfax|sfax governorate|TN|10.76|34.74|280|W|safakes;safakis,Sha Tin|sha tin|HK|114.18|22.38|495|W|shatin,Shagamu|ogun state|NG|3.65|6.85|214|W|sagamu,Shah Alam|selangor|MY|101.53|3.09|740|W|,Shahin Shahr|isfahan|IR|51.55|32.86|173|W|,Shahjanpur|uttar pradesh|IN|79.91|27.88|320|W|shahjahanpur,Shahkot|punjab|PK|73.49|31.57|244|W|,Shahreza|isfahan|IR|51.86|32.01|134|W|,Shahriar|tehran|IR|51.06|35.66|309|W|,Shahrisabz|qashqadaryo|UZ|66.83|39.06|142|W|chakhrisabz;sachrisabz;sjachrisabz;sehr i sebz;sachrizabz,Shahrud|semnan|IR|54.98|36.42|165|W|emamshahr,Shahuwadi|maharashtra|IN|73.95|16.91|180|W|,Shaker Heights|OH|US|-81.54|41.47|27|N|,Shakhty|rostov|RU|40.22|47.72|221|W|chakhty;schachty;shajty;sjachty;sjakhty;szachty;sahti;sachty;sahty,Shakopee|MN|US|-93.53|44.8|39|N|,Sham Shui Po|sham shui po district|HK|114.16|22.33|431|W|,Shanghai|shanghai|CN|121.46|31.22|24874|W|schanghai;shangai;sjanghai;szanghaj;xangai;sangay;sanghay;sanghaj,Shangluo|shaanxi|CN|109.93|33.87|531|W|,Shangqiu|henan|CN|115.66|34.41|1859|W|,Shangrao|jiangxi|CN|117.94|28.45|1116|W|sang zao,Shangri-La|yunnan|CN|99.71|27.83|186|W|,Shangyu|zhejiang|CN|120.87|30.02|770|W|,Shangzhi|heilongjiang|CN|128|45.21|131|W|,Shanhaiguan|hebei|CN|119.75|40|140|W|,Shantipur|west bengal|IN|88.43|23.25|149|W|,Shantou|guangdong|CN|116.68|23.35|3838|W|san tchou,Shanwei|guangdong|CN|115.35|22.78|491|W|san vi;san wej,Shaoguan|guangdong|CN|113.58|24.8|1028|W|sao kuan,Shaoxing|zhejiang|CN|120.58|30|2300|W|sao sing,Shaoyang|hunan|CN|111.46|27.24|753|W|sao jang,Sharjah|sharjah|AE|55.41|25.33|1800|W|sharjah city;charjah;sarja;schardscha;sharja;szardza;sarika;sardza,Shashamane|oromiya|ET|38.6|7.2|208|W|shashemene,Shawinigan|QC|CA|-72.75|46.57|38|N|,Shawnee|KS|US|-94.72|39.04|65|N|,Shawnee|OK|US|-96.93|35.33|31|N|,Sheboygan|WI|US|-87.71|43.75|48|N|,Sheepshead Bay|NY|US|-73.94|40.59|122|N|,Sheffield|england|GB|-1.47|53.38|556|W|,Shekhupura|punjab|PK|73.99|31.71|591|W|sekhupura,Shelby|MI|US|-83.03|42.67|74|N|,Shelton|CT|US|-73.09|41.32|41|N|,Shengavit|yerevan|AM|44.48|40.16|140|W|,Shenglilu|chongqing|CN|105.88|29.35|134|W|,Shenyang|liaoning|CN|123.43|41.79|7050|W|sen jang,Shenzhen|guangdong|CN|114.07|22.55|17494|W|sen cen,Sherbrooke|QC|CA|-71.9|45.4|129|N|,Sherman|TX|US|-96.61|33.64|40|N|,Sherman Oaks|CA|US|-118.45|34.15|52|N|,Sherwood|AR|US|-92.22|34.82|30|N|,Sherwood Park|AB|CA|-113.32|53.52|70|N|,Shevchenkivskyi|kyiv city|UA|30.47|50.46|220|W|,Shevchenko|poltava|UA|34.54|49.56|147|W|shevchenkivskyi rayon,Shibganj|rajshahi division|BD|89.32|25|378|W|,Shibin al Kawm|monufia|EG|31.01|30.55|267|W|,Shibuya|tokyo|JP|139.71|35.66|230|W|shibuya city,Shihezi|xinjiang|CN|86.04|44.3|572|W|,Shijiazhuang|hebei|CN|114.48|38.04|3938|W|s tia cuang,Shijie|guangdong|CN|113.79|23.1|246|W|,Shikarpur|sindh|PK|68.64|27.96|204|W|,Shillong|meghalaya|IN|91.88|25.57|143|W|,Shimla|himachal pradesh|IN|77.17|31.1|173|W|simla,Shimonoseki|yamaguchi|JP|130.94|33.96|265|W|simonoseki,Shimotoda|saitama|JP|139.69|35.81|140|W|,Shinagawa|ehime|JP|133.01|33.64|422|W|shinagawa city,Shinjuku|tokyo|JP|139.71|35.69|349|W|,Shinyanga|shinyanga|TZ|33.42|-3.66|139|W|,Shiqi|guangdong|CN|113.39|22.52|342|W|,Shiqiao|guangdong|CN|113.36|22.95|135|W|,Shiraz|fars|IR|52.53|29.61|1249|W|schiras;chiraz;sziraz;xiraz;siraz,Shirley|NY|US|-72.87|40.8|27|N|,Shivaji Nagar|maharashtra|IN|73.85|18.53|1000|W|,Shivamogga|karnataka|IN|75.57|13.93|322|W|shimoga,Shivpuri|madhya pradesh|IN|77.66|25.42|179|W|,Shiyan|hubei|CN|110.78|32.65|3460|W|s jen,Shizuishan|ningxia|CN|106.39|38.98|739|W|,Shizuoka|shizuoka|JP|138.38|34.98|693|W|sizuoka,Sholapur|maharashtra|IN|75.91|17.67|997|W|solapur,Shomolu|lagos|NG|3.37|6.54|154|W|,Shoreline|WA|US|-122.34|47.76|55|N|,Shoreview|MN|US|-93.15|45.08|26|N|,Shouguang|shandong|CN|118.74|36.88|473|W|,Shreveport|LA|US|-93.75|32.53|187|NW|,Shrewsbury|MA|US|-71.71|42.3|33|N|,Shrirampur|west bengal|IN|88.34|22.75|226|W|serampore,Shuangcheng|heilongjiang|CN|126.31|45.38|130|W|,Shuangyashan|heilongjiang|CN|131.13|46.68|600|W|song ap son;suang ja san,Shubra al Khaymah|qalyubia|EG|31.25|30.13|1240|W|,Shuizhai|guangdong|CN|115.76|23.93|140|W|,Shujaabad|punjab|PK|71.29|29.88|151|W|,Shulin|taipei|TW|121.42|24.99|180|W|shulin district;sulin,Shunan|yamaguchi|JP|131.83|34.08|149|W|,Shuozhou|shanxi|CN|112.42|39.32|433|W|,Shyamnagar|west bengal|IN|88.37|22.83|441|W|,Shymkent|shymkent|KZ|69.6|42.31|1200|W|chymkent;schymkent;sjymkent;szymkent;tsjimkent;cimkent;simkent;symkent,Si Racha|chon buri|TH|100.93|13.17|178|W|,Sialkot|punjab|PK|74.53|32.49|911|W|sijalkot,Sibiu|sibiu county|RO|24.15|45.8|134|W|hermannstadt;sybin;sibin,Sibu|sarawak|MY|111.82|2.3|198|W|,Sicklerville|NJ|US|-74.97|39.72|42|N|,Sidi Bel Abbes|sidi bel abbes|DZ|-0.63|35.19|210|W|sidi belabbas;sidi bilabbas;sidi bu l abbas,Sidoarjo|east java|ID|112.72|-7.45|139|W|,Sidon|south governorate|LB|35.37|33.56|163|W|saida;sayda;sidone;sydon,Siem Reap|siem reap|KH|103.86|13.36|139|W|ciudad de siem riep;khett siem reab;siem reab,Sierra Vista|AZ|US|-110.3|31.55|43|N|,Siguiri|kankan region|GN|-9.17|11.42|148|W|,Sikar|rajasthan|IN|75.14|27.61|244|W|,Sikasso|sikasso|ML|-5.67|11.32|349|W|,Silao de la Victoria|MX11|MX|-101.43|20.94|74|N|silao,Silchar|assam|IN|92.8|24.83|178|W|,Silifke|mersin|TR|33.93|36.38|132|W|,Siliguri|west bengal|IN|88.43|26.71|515|W|shiliguri,Silver Lake|CA|US|-118.27|34.09|32|N|,Silver Spring|MD|US|-77.03|38.99|71|N|,Simele|duhok|IQ|42.85|36.86|152|W|,Simferopol|crimea|UA|34.11|44.96|336|W|simferopoli;akmescit;sinferopoli;symferopol,Simi Valley|CA|US|-118.78|34.27|126|N|,Sincelejo|sucre department|CO|-75.39|9.3|277|W|,Sinch'on-up|south hwanghae|KP|125.48|38.35|141|W|,Sinfra|zanzan district|CI|-5.91|6.62|245|W|,Singa|sennar|SD|33.93|13.15|250|W|sindscha;sindza,Singapore||SG|103.85|1.29|5638|W|singapour;singapur;singapura;danmaxi;temasek,Singaraja|bali|ID|115.09|-8.11|133|W|,Singida|singida|TZ|34.74|-4.82|232|W|,Singkawang|west kalimantan|ID|108.98|0.91|253|W|,Singosari|east java|ID|112.67|-7.89|182|W|,Singrauli|madhya pradesh|IN|82.68|24.2|220|W|,Sinjhoro|sindh|PK|68.81|26.03|354|W|,Sinnuris|faiyum|EG|30.87|29.41|133|W|,Sinop|mato grosso|BR|-55.5|-11.86|223|W|,Sinp'o|south hamgyong|KP|128.19|40.04|152|W|,Sinuiju|p yongan bukto|KP|124.4|40.1|288|W|,Sioux City|IA|US|-96.4|42.5|82|N|kota sioux,Sioux Falls|SD|US|-96.73|43.54|171|NW|,Siping|jilin|CN|124.38|43.16|555|W|s pching;ssupingkai,Sirjan|kerman|IR|55.68|29.45|199|W|sircan;sirdschan;sirdzan,Sirsa|haryana|IN|75.03|29.53|182|W|,Sisli|istanbul|TR|28.99|41.06|314|W|,Sitapur|uttar pradesh|IN|80.68|27.56|164|W|,Sitiawan|perak|MY|100.7|4.22|156|W|,Sittwe|rakhine|MM|92.9|20.15|177|W|akyab,Situbondo|east java|ID|114.01|-7.71|685|W|,Sivakasi|tamil nadu|IN|77.8|9.45|234|W|,Sivas|sivas|TR|37.02|39.75|264|W|,Siverek|sanliurfa|TR|39.32|37.76|175|W|,Siwan|bihar|IN|84.36|26.22|135|W|,Skardu|gilgit baltistan|PK|75.63|35.3|260|W|,Skikda|skikda|DZ|6.91|36.88|182|W|sukaikida;sukajkida,Skokie|IL|US|-87.73|42.03|64|N|,Skopje|grad skopje|MK|21.43|42|474|W|escopia;uskup,Skudai|johor|MY|103.66|1.54|159|W|,Slidell|LA|US|-89.78|30.28|27|N|,Slough|england|GB|-0.6|51.51|164|W|,Smithtown|NY|US|-73.2|40.86|26|N|,Smolensk|smolensk oblast|RU|32.05|54.78|330|W|,Smyrna|GA|US|-84.51|33.88|56|N|,Smyrna|TN|US|-86.52|35.98|46|N|,Snowdon|QC|CA|-73.63|45.49|32|N|,Soacha|cundinamarca|CO|-74.22|4.58|655|W|,Sobral|ceara|BR|-40.35|-3.69|216|W|,Soc Trang|can tho city|VN|105.97|9.6|221|W|,Sochi|krasnodar krai|RU|39.72|43.6|327|W|sotsji;soci;soczi;sotchi;sotji;sotschi;sotsi,Socorro|TX|US|-106.3|31.65|33|N|,Socorro Mission Number 1 Colonia|TX|US|-106.29|31.64|28|N|,Sodo|south ethiopia regional state|ET|37.76|6.86|204|W|,Sofia|sofia capital|BG|23.32|42.7|1152|W|sofie;sofya,Sohag|sohag|EG|31.69|26.56|266|W|sauhadz;sevhac,Soka|saitama|JP|139.8|35.84|249|W|,Sokoto|sokoto|NG|5.24|13.06|1040|W|,Soledad|atlantico|CO|-74.76|10.92|342|W|,Soledad|CA|US|-121.33|36.42|25|N|solebad,Soledad de Graciano Sanchez|MX24|MX|-100.94|22.19|332|NW|,Solingen|north rhine westphalia|DE|7.08|51.17|164|W|,Sollentuna|stockholm|SE|17.95|59.43|139|W|,Solwezi|north western|ZM|26.39|-12.17|301|W|solwesi,Somerset West|western cape|ZA|18.82|-34.08|225|W|somerset wes,Somerton|PA|US|-75.01|40.12|33|N|,Somerville|MA|US|-71.1|42.39|80|N|,Son Tay|hanoi|VN|105.51|21.14|230|W|,Sonargaon|dhaka division|BD|90.62|23.65|130|W|,Songcheng|fujian|CN|120|26.88|165|W|,Songea|ruvuma|TZ|35.65|-10.68|286|W|,Songjiang|shanghai|CN|121.22|31.03|1973|W|,Songnim-ni|north hwanghae|KP|125.64|38.76|152|W|,Sonipat|haryana|IN|77.02|28.99|289|W|,Sorel-Tracy|QC|CA|-73.11|46.04|41|N|sorel,Sorocaba|sao paulo|BR|-47.46|-23.5|762|W|,Sorong|southwest papua|ID|131.26|-0.88|219|W|kota sorong,Sorsogon|bicol region|PH|123.99|12.97|187|W|,Soshanguve|gauteng|ZA|28.1|-25.47|872|W|,Sosnowiec|silesia|PL|19.1|50.29|227|W|sosnovec,Soubre|bas sassandra district|CI|-6.59|5.78|131|W|,Souk Ahras|souk ahras|DZ|7.95|36.29|153|W|souq ahras;suk aharas;suk ahras,Sousse|sousse governorate|TN|10.64|35.83|221|W|susa,South Bel Air|MD|US|-76.34|39.53|48|N|,South Bend|IN|US|-86.25|41.68|101|N|,South Boston|MA|US|-71.05|42.33|571|NW|,South Chicago|IL|US|-87.55|41.74|28|N|guney chicago,South Dublin|leinster|IE|-6.34|53.29|301|W|comte de dublin sud;condado de dublin sur;condado de south dublin;contea di south dublin;dublin poludniowy;dublin south;jizni dublin,South Fulton|GA|US|-84.67|33.59|107|N|,South Gate|CA|US|-118.21|33.95|96|N|,South Gate|MD|US|-76.63|39.13|29|N|,South Hill|WA|US|-122.27|47.14|52|N|,South Jordan|UT|US|-111.93|40.56|66|N|,South Jordan Heights|UT|US|-111.95|40.56|37|N|,South Kingstown|RI|US|-71.52|41.45|30|N|,South Laurel|MD|US|-76.85|39.07|26|N|,South Lawndale|IL|US|-87.71|41.84|73|N|,South Miami Heights|FL|US|-80.38|25.6|36|N|,South Ozone Park|NY|US|-73.82|40.67|75|N|,South Pasadena|CA|US|-118.15|34.12|26|N|,South Peabody|MA|US|-70.95|42.51|50|N|,South Portland|ME|US|-70.24|43.64|25|N|,South Riverdale|ON|CA|-79.34|43.65|27|N|,South San Francisco|CA|US|-122.41|37.65|67|N|,South Shore|IL|US|-87.58|41.76|51|N|,South Suffolk|VA|US|-76.59|36.72|80|N|,South Surrey|BC|CA|-122.79|49.05|77|N|,South Tangerang|banten|ID|106.72|-6.29|1429|W|tangerang selatan,South Valley|NM|US|-106.68|35.01|40|N|,South Vineland|NJ|US|-75.03|39.45|58|N|,South Whittier|CA|US|-118.04|33.95|57|N|,Southampton|england|GB|-1.4|50.9|269|W|,Southaven|MS|US|-90.01|34.99|52|N|southhaven,Southend-on-Sea|england|GB|0.71|51.54|295|W|,Southfield|MI|US|-83.22|42.47|73|N|,Southgate|MI|US|-83.19|42.21|29|N|,Southglenn|CO|US|-104.95|39.59|42|N|,Southington|CT|US|-72.88|41.6|43|N|,Southlake|TX|US|-97.13|32.94|29|N|,Soweto|gauteng|ZA|27.86|-26.27|1695|W|,Soyapango|san salvador department|SV|-89.14|13.71|329|W|,Soyo|zaire|AO|12.37|-6.13|221|W|,Spanaway|WA|US|-122.43|47.1|27|N|,Spanish Fork|UT|US|-111.65|40.11|37|N|,Spanish Town|saint catherine parish|JM|-76.96|17.99|145|W|,Sparks|NV|US|-119.75|39.53|96|N|,Spartanburg|SC|US|-81.93|34.95|37|N|,Split|split dalmatia|HR|16.44|43.51|149|W|spalato,Spokane|WA|US|-117.43|47.66|229|NW|,Spokane Valley|WA|US|-117.24|47.67|94|N|,Spring|TX|US|-95.42|30.08|54|N|,Spring Hill|FL|US|-82.53|28.48|98|N|,Spring Hill|TN|US|-86.93|35.75|36|N|,Spring Valley|NV|US|-115.25|36.11|178|NW|,Spring Valley|NY|US|-74.04|41.11|32|N|,Spring Valley|CA|US|-117|32.74|28|N|,Springdale|AR|US|-94.13|36.19|77|N|,Springfield|MO|US|-93.3|37.22|170|NW|,Springfield|MA|US|-72.59|42.1|154|NW|,Springfield|IL|US|-89.64|39.8|114|N|,Springfield|OR|US|-123.02|44.05|60|N|,Springfield|OH|US|-83.81|39.92|59|N|,Springfield|VA|US|-77.19|38.79|30|N|,Springfield Gardens|NY|US|-73.76|40.66|30|N|,Springs|gauteng|ZA|28.4|-26.25|186|W|,Springville|UT|US|-111.61|40.17|32|N|,Spruce Grove|AB|CA|-113.92|53.53|38|N|,Sri Ganganagar|rajasthan|IN|73.87|29.92|237|W|,Srikakulam|andhra pradesh|IN|83.9|18.3|137|W|,Srinagar|jammu and kashmir|IN|74.81|34.09|1206|W|,St. Albert|AB|CA|-113.64|53.63|57|N|saint albert,St. Catharines|ON|CA|-79.24|43.17|136|NW|sainte catharine,St. Charles|MD|US|-76.92|38.61|33|N|,St. Charles|IL|US|-88.31|41.91|32|N|,St Helens|england|GB|-2.73|53.45|183|W|,St. James-Assiniboia East|MB|CA|-97.23|49.89|27|N|,St. John's|NL|CA|-52.71|47.56|110|N|saint john s;saint jean de terre neuve;saint jean;san juan de terranova;st johns,St. Johns|FL|US|-81.55|30.08|40|N|,St. Louis|MO|US|-90.2|38.63|279|NW|saint louis;san luis,St. Petersburg|FL|US|-82.68|27.77|257|NW|saint pete;saint petersburg,St. Thomas|ON|CA|-81.18|42.77|38|N|saint thomas,Stamford|CT|US|-73.54|41.05|128|N|,Stanton|CA|US|-117.99|33.8|38|N|,Starkville|MS|US|-88.82|33.45|25|N|,Staryy Oskol|belgorod oblast|RU|37.85|51.3|226|W|stary oskol;staryi oskol,State College|PA|US|-77.86|40.79|42|N|,Staten Island|NY|US|-74.14|40.56|468|NW|borough of staten island,Statesboro|GA|US|-81.78|32.45|30|N|,Statesville|NC|US|-80.89|35.78|26|N|,Stavanger|rogaland|NO|5.73|58.97|151|W|,Stavropol|stavropol kray|RU|41.96|45.03|433|W|stawropol;stauropoli,Sterling|VA|US|-77.43|39.01|27|N|,Sterling Heights|MI|US|-83.03|42.58|132|NW|,Sterlitamak|bashkortostan republic|RU|55.95|53.64|267|W|starletamaq,Stevens Point|WI|US|-89.57|44.52|26|N|,Steveston|BC|CA|-123.18|49.13|25|N|,Stillwater|OK|US|-97.06|36.12|48|N|,Stittsville|ON|CA|-75.92|45.25|40|N|,Stockbridge|GA|US|-84.23|33.54|28|N|,Stockholm|stockholm|SE|18.07|59.33|1515|W|estocolmo;stoccolma;stokolm;sztokholm;tukholma,Stockport|england|GB|-2.16|53.41|139|W|,Stockton|CA|US|-121.29|37.96|305|NW|,Stoke-on-Trent|england|GB|-2.19|53|258|W|,Stonecrest|GA|US|-84.13|33.71|50|N|,Stonegate-Queensway|ON|CA|-79.5|43.64|25|N|,Stoney Creek|ON|CA|-79.77|43.22|76|N|,Stouffville|ON|CA|-79.25|43.97|36|N|,Stoughton|MA|US|-71.1|42.13|26|N|,Stow|OH|US|-81.44|41.16|34|N|,Strasbourg|grand est|FR|7.75|48.58|274|W|estrasburgo;straatsburg;strasburg;strasburgo;strazburg;strassburg;strasburk,Stratford|CT|US|-73.13|41.18|51|N|,Stratford|ON|CA|-80.95|43.37|31|N|,Strawberry Hill|BC|CA|-122.88|49.13|41|N|,Streamwood|IL|US|-88.18|42.03|40|N|,Strogino|moscow|RU|37.41|55.82|152|W|,Strongsville|OH|US|-81.84|41.31|44|N|,Studio City|CA|US|-118.4|34.15|34|N|,Stuttgart|baden wurttemberg|DE|9.18|48.78|612|W|estugarda;stoccarda,Subang|west java|ID|107.76|-6.57|137|W|,Subang Jaya|selangor|MY|101.58|3.04|708|W|,Sucre|chuquisaca department|BO|-65.26|-19.03|224|W|,Suez|suez|EG|32.53|29.97|699|W|sues;suveys,Suffolk|VA|US|-76.58|36.73|88|N|,Sugar Land|TX|US|-95.63|29.62|88|N|,Suginami|ibaraki|JP|140.28|36.2|588|W|suginami city,Suicheng|jiangsu|CN|117.93|33.9|256|W|,Suihua|heilongjiang|CN|126.97|46.65|252|W|suej chua;tuy hoa,Suining|sichuan|CN|105.57|30.51|656|W|suej ning,Suisun|CA|US|-122.04|38.24|28|N|,Suita|osaka|JP|135.52|34.76|385|W|,Suitland|MD|US|-76.92|38.85|25|N|,Suitland-Silver Hill|MD|US|-76.93|38.85|33|N|silver hill,Suizhou|hubei|CN|113.36|31.71|618|W|suej cou;tuy chau,Sujangarh|rajasthan|IN|74.47|27.7|183|W|,Sujiatun|liaoning|CN|123.34|41.66|148|W|,Sukabumi|west java|ID|106.93|-6.92|365|W|kota sukabumi,Sukkur|sindh|PK|68.86|27.7|563|W|,Sukrah|ariana governorate|TN|10.25|36.88|159|W|,Sulaymaniyah|sulaymaniyah|IQ|45.43|35.56|878|W|as sulajmanijja;slemani;solimania;souleimaniye;sulaimaniyya;sulaymaniyya;suleimania;suleimaniya;sulejmanie;suleymaniye,Suleja|niger state|NG|7.18|9.18|162|W|,Sullana|piura|PE|-80.69|-4.9|160|W|,Sultan Pur Majra|delhi|IN|77.08|28.69|181|W|,Sultanah|medina region|SA|39.59|24.49|946|W|,Sultanbeyli|istanbul|TR|29.27|40.96|358|W|,Sultangazi|istanbul|TR|28.87|41.11|436|W|,Sumare|sao paulo|BR|-47.27|-22.82|279|W|,Sumayl|duhok|IQ|42.85|36.86|152|W|,Sumbawanga|rukwa|TZ|31.62|-7.97|303|W|,Sumbe|kwanza sul|AO|13.84|-11.21|205|W|,Sumedang|west java|ID|107.92|-6.86|200|W|,Sumgayit|sumqayit|AZ|49.67|40.59|427|W|sumgait;sumgjajet;sumqayit,Sumida|tokyo|JP|139.82|35.73|287|W|sumida city,Summerville|SC|US|-80.18|33.02|48|N|,Sumter|SC|US|-80.34|33.92|40|N|,Sumy|sumy|UA|34.8|50.92|256|W|soemy;soumy;sumi,Sun City|AZ|US|-112.27|33.6|37|N|,Sun Prairie|WI|US|-89.21|43.18|32|N|,Sunch'on|south pyongan|KP|125.93|39.43|437|W|,Suncheon|jeollanam do|KR|127.49|34.95|276|W|sunch on,Sunderland|england|GB|-1.38|54.9|170|W|,Sungai Buloh|selangor|MY|101.56|3.21|222|W|,Sungai Petani|kedah|MY|100.49|5.65|544|W|,Sunggal|north sumatra|ID|98.62|3.58|157|W|,Sunnyside|NY|US|-73.94|40.74|49|N|,Sunnyvale|CA|US|-122.04|37.37|155|NW|,Sunrise|FL|US|-80.11|26.13|84|N|,Sunrise Manor|NV|US|-115.07|36.21|189|NW|,Sunset|BC|CA|-123.1|49.22|36|N|,Sunset Park|NY|US|-74.01|40.65|126|N|,Sunshine Coast|queensland|AU|153.08|-26.66|398|W|costa de sunshine;costa do sunshine;cote du soleil,Superior|WI|US|-92.1|46.72|26|N|,Suqian|jiangsu|CN|118.3|33.95|1437|W|,Surabaya|east java|ID|112.75|-7.25|3018|W|kota surabaya;soerabaja;surabaia;surabaja,Surakarta|central java|ID|110.83|-7.56|526|W|kota surakarta,Surat|gujarat|IN|72.83|21.2|4591|W|surate,Surat Thani|surat thani|TH|99.33|9.14|132|W|,Surendranagar|gujarat|IN|71.65|22.73|179|W|,Surgut|khanty mansia|RU|73.42|61.26|300|W|soergoet;sourgout,Surprise|AZ|US|-112.33|33.63|143|NW|,Surrey|BC|CA|-122.83|49.11|568|NW|,Surrey City Centre|BC|CA|-122.85|49.19|33|N|,Surulere|lagos|NG|3.36|6.5|191|W|,Sutton|england|GB|-0.2|51.35|187|W|london borough of sutton,Suwaylih|balqa|JO|35.84|32.02|151|W|,Suwon|gyeonggi do|KR|127.01|37.29|1234|W|suwon si,Suzano|sao paulo|BR|-46.31|-23.54|320|W|,Suzhou|jiangsu|CN|120.6|31.3|6715|W|su cou;to chau,Suzhou|anhui|CN|116.98|33.64|1647|W|,Suzuka|mie|JP|136.58|34.88|195|W|,Swansea|wales|GB|-3.94|51.62|300|W|,Swindon|england|GB|-1.78|51.56|201|W|,Sydney|new south wales|AU|151.21|-33.87|5638|W|sidney;syd;sydney city,Sydney|NS|CA|-60.18|46.14|105|N|,Sykhiv|lviv|UA|24.06|49.79|151|W|,Syktyvkar|komi|RU|50.82|61.66|245|W|syktywkar;siktivkar,Sylhet|sylhet division|BD|91.87|24.9|237|W|srihotto,Sylmar|CA|US|-118.45|34.31|79|N|,Syracuse|NY|US|-76.15|43.05|144|NW|siracusa,Syracuse|UT|US|-112.06|41.09|27|N|,Syzran|samara oblast|RU|48.47|53.16|189|W|sysran,Szczecin|west pomerania|PL|14.55|53.43|395|W|stettin;estetino;stettino;stetin,Szeged|csongrad|HU|20.15|46.25|160|W|seghedin;seghedino;szegedin;szeghed,Ta'if|mecca region|SA|40.42|21.27|688|W|at ta if;taif;taef,Taboao da Serra|sao paulo|BR|-46.79|-23.63|273|W|,Tabora|tabora|TZ|32.83|-5.02|308|W|,Tabriz|east azerbaijan|IR|46.29|38.08|1424|W|tebriz;tabris,Tabuk|tabuk region|SA|36.57|28.4|667|W|tebuk,Tacambaro de Codallos|MX16|MX|-101.46|19.24|25|N|,Tacheng|xinjiang|CN|82.96|46.75|161|W|,Tachikawa|tokyo|JP|139.42|35.71|183|W|,Tacloban|eastern visayas|PH|125|11.24|259|W|kota tacloban;tacloban city,Tacna|tacna|PE|-70.25|-18.01|286|W|,Tacoma|WA|US|-122.44|47.25|222|NW|,Taganrog|rostov|RU|38.91|47.24|279|W|,Taguatinga|federal district|BR|-48.06|-15.83|193|W|,Taguig|national capital region|PH|121.08|14.52|1308|W|city of taguig,Tahoua|tahoua region|NE|5.27|14.89|159|W|,Tahta|sohag|EG|31.5|26.77|134|W|,Tai'an|shandong|CN|117.12|36.19|1735|W|,Tai Po|tai po|HK|114.17|22.45|274|W|,Taicang|jiangsu|CN|121.09|31.45|831|W|,Taichung|taiwan|TW|120.68|24.15|2850|W|kota taichung;taizhong;tchaj cung;dai trung,Tainan|taiwan|TW|120.21|22.99|1856|W|kota tainan;tainan city;tchaj nan;dai nam,Taipei|taiwan|TW|121.53|25.05|7871|W|kota taipei;taipeh;taipe;tajpej;tchaj pej,Taiping|perak|MY|100.73|4.85|217|W|,Taishan|guangdong|CN|112.78|22.25|145|W|dai son,Taito|tokyo|JP|139.78|35.71|211|W|taito city,Taiyuan|shanxi|CN|112.56|37.87|4303|W|tchaj juan;thai nguyen,Taiz|ta izz|YE|44.02|13.58|940|W|taez,Taizhou|jiangsu|CN|119.91|32.49|1607|W|tchaj cou;thai chau,Taizhou|zhejiang|CN|121.43|28.66|1485|W|tchaj cou;thai chau,Takamatsu|kagawa|JP|134.05|34.33|418|W|takamacu;takamatsu shi;takamatsushi,Takaoka|toyama|JP|137.02|36.75|170|W|,Takarazuka|hyogo|JP|135.36|34.8|226|W|,Takasaki|gunma|JP|139.02|36.33|372|W|,Takatsuki|osaka|JP|135.62|34.85|354|W|,Takeo|takeo|KH|104.78|10.99|843|W|,Takoradi|western|GH|-1.76|4.9|389|W|takoradze,Tala|MX14|MX|-103.7|20.65|35|N|,Talatona|luanda|AO|13.19|-8.92|500|W|,Talca|maule region|CL|-71.65|-35.42|197|W|,Talcahuano|biobio|CL|-73.12|-36.72|150|W|,Talhar|sindh|PK|68.81|24.88|200|W|,Talisay|central visayas|PH|123.85|10.24|133|W|talisay city,Tallahassee|FL|US|-84.28|30.44|201|NW|,Tallinn|harjumaa|EE|24.75|59.44|394|W|tallinna;talin;tallin;lindanas;reval;revel;raaveli,Tam Ky|da nang city|VN|108.47|15.57|165|W|,Tam O'Shanter-Sullivan|ON|CA|-79.3|43.78|27|N|,Tama|tokyo|JP|139.47|35.64|148|W|,Tamale|northern|GH|-0.84|9.4|464|W|,Taman Petaling|kuala lumpur|MY|101.65|3.2|423|W|,Tamarac|FL|US|-80.25|26.21|64|N|,Tambacounda|tambacounda|SN|-13.67|13.77|149|W|,Tambaram|tamil nadu|IN|80.13|12.92|174|W|,Tambov|tambov oblast|RU|41.44|52.74|293|W|tambow,Tamiami|FL|US|-80.4|25.76|55|N|,Tampa|FL|US|-82.46|27.95|414|NW|,Tampere|pirkanmaa|FI|23.79|61.5|260|W|tammerfors,Tampico|MX28|MX|-97.88|22.29|309|NW|,Tampines Estate||SG|103.94|1.36|265|W|tampines,Tampines New Town||SG|103.95|1.35|259|W|,Tan An|tay ninh|VN|106.41|10.54|215|W|,Tan Chau|an giang|VN|105.24|10.8|175|W|,Tando Adam|sindh|PK|68.66|25.77|174|W|,Tando Allahyar|sindh|PK|68.72|25.46|421|W|,Tando Bago|sindh|PK|68.97|24.79|426|W|,Tanga|tanga|TZ|39.1|-5.07|393|W|,Tangail|dhaka division|BD|89.92|24.25|180|W|,Tangerang|banten|ID|106.63|-6.18|1927|W|kota tangerang,Tanggu|tianjin|CN|117.65|39.02|535|W|taku,Tanghe|henan|CN|112.83|32.69|278|W|,Tangier|tanger tetouan al hoceima|MA|-5.8|35.77|1035|W|tanger;tanca;tangeri,Tangshan|hebei|CN|118.18|39.64|3372|W|tchang san,Tanjung Pinang|riau islands|ID|104.46|0.92|227|W|kota tanjungpinang,Tanjungbalai|north sumatra|ID|99.8|2.97|190|W|,Tanta|gharbia|EG|31|30.79|576|W|,Tantou|guangdong|CN|113.83|22.75|320|W|,Tantoyuca|MX30|MX|-98.23|21.35|30|N|,Tanzhou|guangdong|CN|113.47|22.26|382|W|,Taoyuan|taiwan|TW|121.3|24.99|475|W|taoyuan district;dao vien;taoyuan city,Taozhou|anhui|CN|119.41|30.91|146|W|,Tapachula|MX05|MX|-92.26|14.91|353|NW|,Tarakan|north kalimantan|ID|117.59|3.31|255|W|kota tarakan,Taranto|apulia|IT|17.25|40.46|198|W|tarde;tarent;tarente;tarento,Taraz|zhambyl|KZ|71.37|42.9|358|W|taras,Targu Mures|mures county|RO|24.56|46.54|212|W|neumarkt am mieresch;neumarkt;tirgu mures,Tariba|tachira|VE|-72.22|7.82|138|W|,Tarija|tarija department|BO|-64.73|-21.54|159|W|,Tarime|mara|TZ|34.37|-1.35|133|W|,Tarlac City|central luzon|PH|120.6|15.48|401|W|,Tarragona|catalonia|ES|1.25|41.12|141|W|tarragone,Tarsus|mersin|TR|34.89|36.92|350|W|tars;tarse;tarso,Tartus|tartus|SY|35.89|34.89|458|W|tartous,Tasek Glugor|penang|MY|100.5|5.48|135|W|tasek gelugor,Tashkent|tashkent|UZ|69.22|41.26|1978|W|tachkent;taschkent;tasjkent;taskent;taszkent,Tasikmalaya|west java|ID|108.22|-7.33|770|W|kota tasikmalaya,Taubate|sao paulo|BR|-45.56|-23.03|322|W|,Taunggyi|shan state|MM|97.04|20.79|160|W|,Taunton|MA|US|-71.09|41.9|56|N|,Tauranga|bay of plenty|NZ|176.17|-37.69|161|W|,Tawau|sabah|MY|117.89|4.24|372|W|tawao,Taxco de Alarcon|MX12|MX|-99.61|18.55|50|N|taxco,Tay Ho|hanoi|VN|105.81|21.07|168|W|,Tay Ninh|tay ninh|VN|106.1|11.31|135|W|,Taylor|MI|US|-83.27|42.24|61|N|,Taylorsville|UT|US|-111.94|40.67|60|N|,Taytay|calabarzon|PH|121.13|14.56|231|W|,Taza|fes meknes|MA|-4.01|34.21|162|W|,Tbilisi|tbilisi|GE|44.83|41.69|1049|W|tbilissi;tiblissi;tiflis,Teaneck|NJ|US|-74.02|40.9|40|N|,Teapa|MX27|MX|-92.95|17.56|26|N|,Tebessa|tebessa|DZ|8.12|35.4|194|W|tibissa,Tecamachalco|MX21|MX|-97.73|18.88|28|N|,Tecate|MX02|MX|-116.63|32.57|64|N|,Tecax|MX31|MX|-89.29|20.21|25|N|tekax,Tecoman|MX08|MX|-103.88|18.92|85|N|,Tegal|central java|ID|109.14|-6.87|297|W|kota tegal,Tegucigalpa|francisco morazan department|HN|-87.21|14.08|850|W|,Tehran|tehran|IR|51.42|35.69|7153|W|tahran;teera;teerao;teheran,Tehuacan|MX21|MX|-97.4|18.46|248|NW|,Teixeira de Freitas|bahia|BR|-39.74|-17.54|145|W|,Tejupilco de Hidalgo|MX15|MX|-100.15|18.9|25|N|,Tel Aviv|tel aviv|IL|34.78|32.08|432|W|tel aviv yaffo;tel aviv yafo;tel awiw,Telford|england|GB|-2.45|52.68|155|W|,Teluk Intan|perak|MY|101.02|4.02|232|W|teluk anson,Teluknaga|west java|ID|106.64|-6.1|175|W|,Tema|greater accra|GH|-0.02|5.67|155|W|,Temara|rabat sale kenitra|MA|-6.91|33.93|342|W|,Temecula|CA|US|-117.15|33.49|110|N|,Temirtau|karaganda|KZ|72.95|50.05|170|W|temirtaou;temirtaw;temyrtau,Temixco|MX17|MX|-99.23|18.85|97|N|,Tempe|AZ|US|-111.91|33.41|175|NW|,Tempe Junction|AZ|US|-111.94|33.41|158|NW|,Temple|TX|US|-97.34|31.1|72|N|,Temple City|CA|US|-118.06|34.11|36|N|,Temple Terrace|FL|US|-82.39|28.04|25|N|,Temuco|araucania|CL|-72.6|-38.74|238|W|,Teni|tamil nadu|IN|77.48|10.01|1034|W|theni,Tenosique|MX27|MX|-91.42|17.47|32|N|,Teofilo Otoni|minas gerais|BR|-41.51|-17.86|142|W|,Teoloyucan|MX15|MX|-99.18|19.74|51|N|,Tepatitlan de Morelos|MX14|MX|-102.76|20.82|91|N|,Tepeaca|MX21|MX|-97.9|18.97|27|N|tepeaca de negrete,Tepeji del Rio de Ocampo|MX13|MX|-99.34|19.9|80|N|,Tepexpan|MX15|MX|-98.94|19.61|102|N|,Tepic|MX18|MX|-104.89|21.51|332|NW|,Tepotzotlan|MX15|MX|-99.22|19.72|38|N|,Tequila|MX14|MX|-103.84|20.88|29|N|municipio tequila,Tequisquiapan|MX22|MX|-99.89|20.52|29|N|,Teresina|piaui|BR|-42.8|-5.09|871|W|,Teresopolis|rio de janeiro|BR|-42.98|-22.42|176|W|,Ternate|north maluku|ID|127.38|0.79|210|W|kota ternate,Ternopil|ternopil|UA|25.59|49.55|225|W|tarnopol;tarnopoli,Terrassa|catalonia|ES|2.02|41.57|218|W|,Terre Haute|IN|US|-87.41|39.47|60|N|,Terrebonne|QC|CA|-73.65|45.7|111|N|,Teshi Old Town|greater accra|GH|-0.11|5.58|144|W|teshie,Tete|tete|MZ|33.59|-16.16|357|W|vila de santiago maior,Tetouan|tanger tetouan al hoceima|MA|-5.37|35.58|415|W|tetuan;tetuao,Tetuan de las Victorias|madrid|ES|-3.7|40.46|155|W|tetuan,Tewksbury|MA|US|-71.23|42.61|29|N|,Texarkana|TX|US|-94.05|33.43|37|N|,Texarkana|AR|US|-94.04|33.44|30|N|,Texas City|TX|US|-94.9|29.38|47|N|,Texcoco de Mora|MX15|MX|-98.88|19.51|105|N|texcoco,Teziutlan|MX21|MX|-97.36|19.82|103|N|,Thai Nguyen|thai nguyen|VN|105.85|21.59|420|W|,Thane|maharashtra|IN|72.96|19.2|1841|W|thana,Thanesar|haryana|IN|76.83|29.97|155|W|,Thanh Hoa|thanh hoa province|VN|105.77|19.8|850|W|,Thanh Khe|da nang city|VN|108.19|16.07|201|W|,Thanh Pho Ba Ria|ho chi minh city hcmc|VN|107.17|10.5|235|W|,Thanh Xuan|hanoi|VN|105.8|20.99|293|W|,Thanjavur|tamil nadu|IN|79.14|10.79|291|W|tanjavur;tandzawur;tancavur,The Acreage|FL|US|-80.27|26.79|38|N|,The Bronx|NY|US|-73.87|40.85|1385|NW|bronx;borough of bronx,The Colony|TX|US|-96.89|33.09|41|N|,The Hague|south holland|NL|4.3|52.08|474|W|den haag;a haia;haag;haga;l aia;la haya;la haye;lahey;s gravenhage,The Hammocks|FL|US|-80.44|25.67|51|N|,The Trails of Frisco|TX|US|-96.87|33.16|51|N|,The Villages|FL|US|-81.96|28.93|51|N|,The Woodlands|TX|US|-95.49|30.16|93|N|woodlands,Thembisa|gauteng|ZA|28.23|-26|511|W|,Thenali|andhra pradesh|IN|80.64|16.24|164|W|,Thessaloniki|central macedonia|GR|22.93|40.64|317|W|salonica;ftohomana;salonic;salonicco;saloniki;selanik;solun;tesalonica;thessalonique,Thetford-Mines|QC|CA|-71.31|46.09|25|N|,Thi Tran GJai Tu|thai nguyen|VN|105.64|21.63|179|W|,Thi Tran GJong Trieu|quang ninh|VN|106.51|21.08|248|W|,Thi Tran Thuan Chau|son la province|VN|103.69|21.44|153|W|,Thies|thies|SN|-16.93|14.79|317|W|,Thies Nones|thies|SN|-16.97|14.78|252|W|,Thika|nairobi county|KE|37.07|-1.03|251|W|,Thiruvananthapuram|kerala|IN|76.95|8.49|788|W|tiruvanantapuram;trivandrum,Thomasville|NC|US|-80.08|35.88|27|N|,Thoothukudi|tamil nadu|IN|78.13|8.77|410|W|thoothukkudi;tuticorin,Thornton|CO|US|-104.97|39.87|133|NW|,Thot Not|can tho city|VN|105.53|10.27|158|W|,Thousand Oaks|CA|US|-118.84|34.17|129|N|,Thrissur|kerala|IN|76.22|10.52|315|W|trichur,Throgs Neck|NY|US|-73.82|40.82|33|N|,Thu Dau Mot|ho chi minh city hcmc|VN|106.65|10.98|373|W|,Thu GJuc|ho chi minh city hcmc|VN|106.77|10.85|524|W|,Thuan An|ho chi minh city hcmc|VN|106.71|10.92|588|W|,Thuan Thanh|bac ninh|VN|106.08|21.05|199|W|,Thunder Bay|ON|CA|-89.25|48.38|108|N|,Thuqbah|eastern province|SA|50.2|26.26|248|W|,Tianjin|tianjin|CN|117.18|39.14|11090|W|tchien tin;thien tan;tiencin;tientsin,Tianshui|gansu|CN|105.74|34.58|1212|W|,Tiaret|tiaret|DZ|1.32|35.37|178|W|tijarat,Ticul|MX31|MX|-89.53|20.4|32|N|,Tieling|liaoning|CN|123.84|42.29|333|W|,Tierra Blanca|MX30|MX|-96.36|18.45|47|N|,Tigard|OR|US|-122.77|45.43|51|N|,Tijuana|MX02|MX|-117|32.5|1922|NW|,Tilburg|north brabant|NL|5.09|51.56|221|W|tilburgo,Timika|central papua|ID|136.68|-4.61|142|W|,Timisoara|timis county|RO|21.23|45.75|250|W|temeswar;freidorf;josephs stadt;temeschburg;temeschwar;temesvar,Timmins|ON|CA|-81.33|48.47|41|N|,Timon|maranhao|BR|-42.84|-5.09|174|W|,Tin Shui Wai|yuen long|HK|114|22.46|286|W|,Tinh Bien|an giang|VN|104.94|10.6|143|W|,Tinley Park|IL|US|-87.78|41.57|57|N|,Tirana|tirana|AL|19.82|41.33|418|W|tiran,Tiraspol|transnistria|MD|29.63|46.84|157|W|tiraspoli;tyraspol,Tirmiz|surxondaryo region|UZ|67.28|37.22|182|W|termez;termiz,Tiruchirappalli|tamil nadu|IN|78.7|10.82|1022|W|tiruchchirappalli;tiruchirapalli;tiruccirappalli;tiruchi;trichinopoly;trichy,Tirunelveli|tamil nadu|IN|77.68|8.73|1435|W|tirunelweli,Tirupati|andhra pradesh|IN|79.42|13.64|295|W|tirumala tirupati,Tiruppur|tamil nadu|IN|77.35|11.12|963|W|tirupur,Tiruvannamalai|tamil nadu|IN|79.07|12.23|145|W|,Tiruvottiyur|tamil nadu|IN|80.3|13.16|249|W|,Titusville|FL|US|-80.81|28.61|45|N|,Tizayuca|MX13|MX|-98.98|19.84|43|N|,Tizimin|MX31|MX|-88.15|21.14|46|N|,Tlahuac|MX09|MX|-99.01|19.29|305|NW|delegacion tlahuac,Tlajomulco de Zuniga|MX14|MX|-103.45|20.47|30|N|,Tlalnepantla|MX15|MX|-99.2|19.54|653|NW|tlalnepantla de baz;tlanepantla de baz,Tlalpan|MX09|MX|-99.16|19.3|574|NW|delegacion tlalpan,Tlapa de Comonfort|MX12|MX|-98.58|17.55|46|N|,Tlapacoyan|MX30|MX|-97.21|19.96|35|N|,Tlaquepaque|MX14|MX|-103.29|20.64|650|NW|san pedro tlaquepaque,Tlaxcala|MX29|MX|-98.24|19.32|84|N|tlaxcala city;tlaxcala de xicotencatl,Tlemcen|tlemcen|DZ|-1.31|34.88|173|W|tilimsan;tremecen,Toamasina|atsinanana|MG|49.4|-18.15|345|W|tamatave,Tobruk|al butnan|LY|23.95|32.09|141|W|thubruq;tobroek;tobrouk;tobruch,Tochigi|tochigi|JP|139.73|36.38|159|W|,Tokch'on|south pyongan|KP|126.26|39.75|237|W|,Tokorozawa|saitama|JP|139.47|35.8|344|W|,Tokushima|tokushima|JP|134.57|34.07|267|W|tokusima,Tokyo|tokyo|JP|139.69|35.69|9733|W|tokio;toquio;edo,Toledo|OH|US|-83.56|41.66|265|NW|,Toledo|central visayas|PH|123.64|10.38|206|W|toledo city,Toledo|parana|BR|-53.74|-24.71|160|W|,Toli-Toli|central sulawesi|ID|120.82|1.04|242|W|tolitoli,Toliara|atsimo andrefana|MG|43.67|-23.35|178|W|tulear,Toluca|MX15|MX|-99.65|19.29|489|NW|toluca de lerdo,Tolyatti|samara oblast|RU|49.35|53.53|702|W|togliatti;togliattigrad;tol yatti;toliatti;toljatti;stavropol,Tomakomai|hokkaido|JP|141.6|42.64|174|W|,Toms River|NJ|US|-74.2|39.95|88|N|,Tomsk|tomsk oblast|RU|84.98|56.5|574|W|,Tonala|MX14|MX|-103.24|20.62|408|NW|,Tonala|MX05|MX|-93.75|16.09|35|N|,Tondabayashicho|osaka|JP|135.6|34.5|132|W|tondabayashi,Tongchuan|shaanxi|CN|108.95|34.9|417|W|,Tongchuanshi|shaanxi|CN|109.08|35.07|223|W|tchung cchuan,Tonghua|jilin|CN|125.93|41.72|510|W|tchung chua;thong hoa,Tongliao|inner mongolia|CN|122.27|43.61|261|W|thong lieu,Tongling|anhui|CN|117.78|30.95|402|W|,Tongshan|jiangsu|CN|117.16|34.18|329|W|xuzhou,Tongzhou|beijing|CN|116.66|39.9|163|W|,Tonk|rajasthan|IN|75.79|26.17|165|W|,Tooele|UT|US|-112.3|40.53|33|N|,Toowoomba|queensland|AU|151.95|-27.56|142|W|,Topeka|KS|US|-95.68|39.05|125|N|,Torbat-e Heydariyeh|razavi khorasan|IR|59.22|35.27|140|W|,Tordher|khyber pakhtunkhwa|PK|72.29|33.99|150|W|,Toronto|ON|CA|-79.4|43.71|2794|NW|,Torrance|CA|US|-118.34|33.84|143|NW|,Torreon|MX07|MX|-103.42|25.54|735|NW|,Torrington|CT|US|-73.12|41.8|34|N|,Torun|kujawsko pomorskie|PL|18.6|53.01|196|W|thorn,Toshima|tokyo|JP|139.74|35.76|301|W|toshima city,Tottenham|england|GB|-0.07|51.6|130|W|,Tottori-shi|tottori|JP|134.23|35.5|188|W|,Touba|diourbel region|SN|-15.88|14.86|1120|W|,Touggourt|touggourt|DZ|6.07|33.11|143|W|tukkurt,Toulon|provence alpes cote d azur|FR|5.93|43.12|168|W|tolone;tolon;tulon,Toulouse|occitanie|FR|1.44|43.6|511|W|tolosa;tolosa de francia;tuluza,Tours|centre val de loire|FR|0.7|47.39|141|W|,Town 'n' Country|FL|US|-82.58|28.01|78|N|,Townsville|queensland|AU|146.81|-19.27|201|W|,Towson|MD|US|-76.6|39.4|55|N|,Toyama|toyama|JP|137.22|36.7|415|W|toyama shi;toyamashi,Toyohashi|aichi|JP|137.38|34.77|377|W|toyohashi shi,Toyokawa|aichi|JP|137.4|34.82|184|W|,Toyonaka|osaka|JP|135.47|34.78|401|W|,Toyota|aichi|JP|137.15|35.08|426|W|tojota,Tra Vinh|vinh long|VN|106.34|9.95|160|W|thanh pho tra vinh,Trabzon|trabzon|TR|39.73|41.01|244|W|trapisonda;trebisonda;trebizonda,Tracy|CA|US|-121.43|37.74|87|N|,Trang Bang|tay ninh|VN|106.36|11.03|161|W|,Trenton|NJ|US|-74.74|40.22|89|N|,Tres Lagoas|mato grosso do sul|BR|-51.7|-20.79|143|W|,Tri-Cities|WA|US|-119.2|46.25|244|NW|,Trieste|friuli venezia giulia|IT|13.78|45.65|204|W|terst;triest,Trindade|goias|BR|-49.49|-16.65|142|W|,Tripoli|tripoli|LY|13.19|32.89|1302|W|trablus;tripolis;trypolis,Tripoli|north lebanon|LB|35.84|34.43|229|W|trablussam;tripolis;trypolis,Trois-Rivieres|QC|CA|-72.55|46.35|144|NW|,Trondheim|trondelag|NO|10.4|63.43|216|W|,Troy|MI|US|-83.15|42.61|83|N|,Troy|NY|US|-73.69|42.73|49|N|,Troy|OH|US|-84.2|40.04|25|N|,Trujillo|la libertad|PE|-79.03|-8.12|1067|W|,Trumbull|CT|US|-73.2|41.24|36|N|,Tsentralnyi|donetsk|UA|37.55|47.1|179|W|tsentralnyi rayon;molotovskyi;molotovskyi rayon;zhovtnevyi;zhovtnevyi rayon,Tseung Kwan O|sai kung district|HK|114.25|22.33|412|W|,Tshikapa|kasai|CD|20.8|-6.42|634|W|,Tsing Yi Town|kwai tsing district|HK|114.1|22.35|182|W|tsing yi,Tsu|mie|JP|136.52|34.73|274|W|,Tsuchiura|ibaraki|JP|140.21|36.09|144|W|,Tsuen Wan|tsuen wan|HK|114.11|22.37|318|W|,Tsukuba|ibaraki|JP|140.12|36.08|241|W|cukuba,Tualatin|OR|US|-122.76|45.38|27|N|,Tuckahoe|VA|US|-77.56|37.59|44|N|,Tucker|GA|US|-84.22|33.85|27|N|,Tucson|AZ|US|-110.93|32.22|542|NW|,Tuen Mun|tuen mun|HK|113.97|22.39|507|W|tuenmen,Tuerkmenabat|lebap|TM|63.58|39.07|230|W|turkmenabat;charjou,Tuguegarao|cagayan valley|PH|121.72|17.62|167|W|tuguegarao city;tuguegaro,Tujunga|CA|US|-118.29|34.25|26|N|,Tula|tula oblast|RU|37.62|54.2|482|W|toela;toula,Tula de Allende|MX13|MX|-99.34|20.05|28|N|,Tulancingo|MX13|MX|-98.36|20.08|102|N|tulancingo de bravo,Tulare|CA|US|-119.35|36.21|62|N|,Tulsa|OK|US|-95.99|36.15|413|NW|,Tultepec|MX15|MX|-99.13|19.68|65|N|,Tultitlan de Mariano Escobedo|MX15|MX|-99.17|19.65|28|N|,Tulua|valle del cauca department|CO|-76.2|4.08|221|W|,Tumkur|karnataka|IN|77.1|13.34|307|W|tumakuru,Tumxuk|xinjiang|CN|79.06|39.87|135|W|tumushuke,Tunduma|songwe|TZ|32.77|-9.3|219|W|,Tungi|dhaka division|BD|90.4|23.89|337|W|tongi,Tunis|tunis governorate|TN|10.17|36.82|693|W|tunez;tunes;tunisi;tunus,Tunja|boyaca|CO|-73.36|5.54|172|W|,Tuong Mai|hanoi|VN|105.86|20.99|136|W|,Tupelo|MS|US|-88.7|34.26|35|N|,Turin|piedmont|IT|7.69|45.07|847|W|torino;turijn;turim;turyn,Turkistan|turkistan|KZ|68.26|43.29|227|W|turkestan;turquistao,Turku|southwest finland|FI|22.27|60.45|206|W|abo,Turlock|CA|US|-120.85|37.49|72|N|,Turmero|aragua|VE|-67.47|10.23|344|W|,Turpan|xinjiang|CN|89.18|42.95|273|W|tourfan;turfan,Tuscaloosa|AL|US|-87.57|33.21|111|N|,Tustin|CA|US|-117.83|33.75|80|N|,Tuxpam de Rodriguez Cano|MX30|MX|-97.41|20.96|84|N|tuxpam,Tuxpan|MX14|MX|-103.38|19.56|27|N|,Tuxtepec|MX20|MX|-96.13|18.09|159|NW|san juan bautista;san juan bautista tuxtla,Tuxtla|MX05|MX|-93.12|16.75|604|NW|tuxtla gtz;tuxtla gutierrez,Tuy Hoa|dak lak|VN|109.32|13.1|155|W|,Tuzla|federation of b h|BA|18.67|44.54|142|W|,Tver|tver oblast|RU|35.9|56.86|420|W|twer;kalinin,Twentynine Palms|CA|US|-116.05|34.14|26|N|,Twin Falls|ID|US|-114.46|42.56|47|N|,Tychy|silesia|PL|18.97|50.14|130|W|tichau,Tyler|TX|US|-95.3|32.35|103|N|,Tyre|south governorate|LB|35.19|33.27|135|W|sur;tiro;tyr;tyros;tyrus,Tyumen|tyumen oblast|RU|65.53|57.15|768|W|tioumen;tjumen;tiumen;tjoemen;tumen,Ube|yamaguchi|JP|131.25|33.94|173|W|,Uberaba|minas gerais|BR|-47.93|-19.75|356|W|,Uberlandia|minas gerais|BR|-48.28|-18.92|754|W|,Udaipur|rajasthan|IN|73.71|24.59|451|W|udajpur,Udon Thani|udon thani|TH|102.79|17.42|130|W|,Udupi|karnataka|IN|74.75|13.33|165|W|,Ueda|nagano|JP|138.28|36.4|157|W|,UEruemqi|xinjiang|CN|87.6|43.8|3029|W|urumqi;urumchi;urumczi;urumtschi;urumci;dihua,UEskuedar|istanbul|TR|29.01|41.02|524|W|uskudar;scutari;skutari,Ufa|bashkortostan republic|RU|55.97|54.74|1120|W|oefa;oufa,Ugep|cross river state|NG|8.08|5.81|200|W|,Uige|uige|AO|15.06|-7.61|322|W|,Uijeongbu-si|gyeonggi do|KR|127.05|37.74|479|W|uijeongbu,Uji|kyoto|JP|135.8|34.89|192|W|udzi,Ujjain|madhya pradesh|IN|75.78|23.18|515|W|udzdzain,Ulan Bator|ulaanbaatar|MN|106.88|47.91|844|W|ulaanbaatar;oulan bator;ulaan baatar;ulan batur;ulanbatar;ula bator,Ulan-Ude|buryatiya republic|RU|107.6|51.83|360|W|oelan oede;oulan oude,Ulanhot|inner mongolia|CN|122.08|46.08|165|W|,Ulanqab|inner mongolia|CN|113.13|40.99|550|W|,Ulhasnagar|maharashtra|IN|73.15|19.22|516|W|,Ulsan|ulsan|KR|129.32|35.54|1098|W|ulsan si,Ulu Bedok||SG|103.93|1.33|276|W|,Uluberiya|west bengal|IN|88.1|22.48|235|W|,Ulyanovsk|ulyanovsk|RU|48.39|54.33|626|W|oulianovsk;uljanowsk;oeljanovsk;ul janovsk;ulianovsk;uljanovsk,Uman|MX31|MX|-89.75|20.88|39|N|,Umarkot|sindh|PK|69.74|25.36|144|W|,Umea|vasterbotten|SE|20.26|63.83|130|W|uumaja,Umraniye|istanbul|TR|29.12|41.02|573|W|,Umuahia|abia state|NG|7.49|5.52|370|W|,Unaizah|al qassim region|SA|44|26.1|183|W|,Ungaran|central java|ID|110.41|-7.14|171|W|,Union|NJ|US|-74.26|40.7|56|N|,Union City|CA|US|-122.02|37.6|74|N|,Union City|NJ|US|-74.02|40.78|69|N|east cost cities,Universal City|CA|US|-118.35|34.14|105|N|,University|FL|US|-82.44|28.07|41|N|,University City|MO|US|-90.31|38.66|35|N|,University Heights|SK|CA|-106.58|52.14|51|N|,University Heights|NY|US|-73.91|40.86|27|N|,University of Texas|TX|US|-97.74|30.29|53|N|,University Park|FL|US|-80.37|25.75|26|N|,University Place|WA|US|-122.55|47.24|32|N|,Unnao|uttar pradesh|IN|80.49|26.55|161|W|,Upland|CA|US|-117.65|34.1|76|N|,Upper Alton|IL|US|-90.15|38.91|29|N|,Upper Arlington|OH|US|-83.06|39.99|34|N|,Upper West Side|NY|US|-73.98|40.79|226|NW|,Uppsala|uppsala|SE|17.64|59.86|177|W|upsala,Uptown|IL|US|-87.65|41.97|55|N|,Urayasu|chiba|JP|139.9|35.66|171|W|,Urbana|IL|US|-88.21|40.11|42|N|,Urbandale|IA|US|-93.71|41.63|44|N|,Urdaneta|ilocos|PH|120.57|15.98|145|W|kota urdaneta;urdaneta de pangasinan,Urganch|xorazm region|UZ|60.63|41.55|145|W|ourguentch;urgench;urgentj;urgenc,Uriangato|MX11|MX|-101.18|20.14|51|N|,Ursynow|mazovia|PL|21.05|52.15|149|W|,Uruapan|MX16|MX|-102.06|19.42|299|NW|uruapan del progreso,Usak|usak|TR|29.41|38.67|369|W|,Usera|madrid|ES|-3.7|40.39|141|W|,Ussuriysk|primorye|RU|131.96|43.8|157|W|oessoeriejsk;ussurijsk;ussuryjsk,Ust-Kamenogorsk|east kazakhstan|KZ|82.61|49.97|319|W|ust kamienogorsk;oskemen,Utica|NY|US|-75.23|43.1|61|N|,Utrecht|utrecht|NL|5.12|52.09|376|W|utreque,Utsunomiya|tochigi|JP|139.88|36.57|518|W|ucunomija,Uvira|south kivu|CD|29.14|-3.4|407|W|,Uyo|akwa ibom state|NG|7.93|5.05|436|W|,Vacaville|CA|US|-121.99|38.36|96|N|,Vadodara|gujarat|IN|73.21|22.3|1822|W|,Val-d'Or|QC|CA|-77.8|48.1|25|N|,Val-des-Arbres|QC|CA|-73.68|45.6|40|N|,Valdivia|los rios region|CL|-73.25|-39.81|133|W|,Valdosta|GA|US|-83.28|30.83|55|N|,Valencia|carabobo|VE|-68|10.16|1619|W|,Valencia|valencia|ES|-0.38|39.47|824|W|valence;valencie;valensiya;valenza;walencja,Valencia|CA|US|-118.61|34.44|148|NW|,Valente Diaz|MX30|MX|-96.22|19.16|25|N|,Valenzuela|national capital region|PH|120.97|14.7|725|W|,Valera|trujillo|VE|-70.6|9.32|244|W|,Valinhos|sao paulo|BR|-47|-22.97|132|W|,Valladolid|castille and leon|ES|-4.72|41.66|300|W|pincia;pucela,Valladolid|MX31|MX|-88.2|20.69|48|N|,Valle de Bravo|MX15|MX|-100.13|19.2|25|N|,Valle de La Pascua|guarico|VE|-66.01|9.22|153|W|,Valle de Santiago|MX11|MX|-101.19|20.39|68|N|,Valle Hermoso|MX28|MX|-97.81|25.67|48|N|,Valledupar|cesar department|CO|-73.25|10.47|490|W|,Vallejo|CA|US|-122.26|38.1|121|N|,Valley Glen|CA|US|-118.42|34.19|60|N|,Valley Stream|NY|US|-73.71|40.66|37|N|,Valparaiso|valparaiso|CL|-71.63|-33.04|282|W|,Valparaiso|IN|US|-87.06|41.47|32|N|,Valparaiso de Goias|goias|BR|-47.98|-16.07|218|W|,Valrico|FL|US|-82.24|27.94|35|N|,Valsad|gujarat|IN|72.93|20.61|139|W|,Van|van|TR|43.38|38.49|525|W|,Van Nuys|CA|US|-118.45|34.19|136|NW|,Vancouver|BC|CA|-123.12|49.25|662|NW|vancover,Vancouver|WA|US|-122.66|45.64|196|NW|,Vanderbijlpark|gauteng|ZA|27.84|-26.71|246|W|,Vantaa|uusimaa|FI|25.04|60.29|252|W|vanda,Vapi|gujarat|IN|72.9|20.37|163|W|,Varamin|tehran|IR|51.65|35.32|225|W|,Varanasi|uttar pradesh|IN|83.01|25.32|1164|W|benares;kashi;waranasi,Varginha|minas gerais|BR|-45.43|-21.55|136|W|,Varna|varna|BG|27.91|43.22|318|W|warna,Varzea Grande|mato grosso|BR|-56.13|-15.65|300|W|,Vasyl'evsky Ostrov|st petersburg|RU|30.25|59.94|203|W|vasilinsaari,Vaudreuil-Dorion|QC|CA|-74.03|45.4|25|N|,Vaughan|ON|CA|-79.5|43.84|323|NW|,Velikiy Novgorod|novgorod oblast|RU|31.27|58.52|222|W|velikij novgorod;novgorod;nowogrod wielki;veliki novgorod;veliky novgorod;weliki nowgorod,Vellore|tamil nadu|IN|79.13|12.92|484|W|velur,Venice|CA|US|-118.46|33.99|40|N|venice beach,Ventura|CA|US|-119.29|34.28|96|N|,Venustiano Carranza|MX09|MX|-99.1|19.44|430|NW|,Veracruz|MX30|MX|-96.14|19.18|428|NW|veracruz llave,Veraval|gujarat|IN|70.37|20.91|171|W|,Verdun|QC|CA|-73.57|45.46|69|N|,Vereeniging|gauteng|ZA|27.93|-26.67|474|W|,Verhunskyi|luhansk|UA|39.37|48.59|185|W|verhunskyi rayon;zhovtnevyi;zhovtnevyi rayon,Vermont Square|CA|US|-118.3|34|47|N|,Vernon|BC|CA|-119.27|50.27|40|N|,Vernon Hills|IL|US|-87.98|42.22|26|N|,Verona|veneto|IT|10.99|45.44|258|W|verone;werona,Vespasiano|minas gerais|BR|-43.92|-19.69|138|W|,Vestal|NY|US|-76.05|42.09|28|N|,Vestavia Hills|AL|US|-86.79|33.45|34|N|,Viamao|rio grande do sul|BR|-51.02|-30.08|231|W|,Viana|luanda|AO|13.37|-8.91|865|W|,Victor Rosales|MX32|MX|-102.7|22.95|32|N|,Victoria|central and western|HK|114.14|22.29|956|W|,Victoria|BC|CA|-123.35|48.44|289|NW|,Victoria|TX|US|-97|28.81|67|N|,Victoria de Durango|MX10|MX|-104.66|24.02|518|NW|durango,Victoria-Downtown|BC|CA|-123.36|48.43|46|N|downtown victoria,Victoria-Fraserview|BC|CA|-123.07|49.22|31|N|,Victoriaville|QC|CA|-71.97|46.05|34|N|,Victorville|CA|US|-117.29|34.54|122|N|,Vidisha|madhya pradesh|IN|77.81|23.53|155|W|vidisa,Vienna|state of vienna|AT|16.37|48.21|1691|W|viena;viyana;wien;vienne;vien;viden;wenen;wieden;bec,Vientiane|vientiane prefecture|LA|102.6|17.97|840|W|vienciana;vientian;wientian,Viet Tri|phu tho|VN|105.4|21.32|415|W|,Viet Yen|bac ninh|VN|106.13|21.27|205|W|distretto di viet yen,Vigo|galicia|ES|-8.72|42.23|293|W|,Vijayapura|karnataka|IN|75.72|16.82|327|W|bidzapur;bijapur;vijapura,Vijayawada|andhra pradesh|IN|80.65|16.51|1143|W|vidzajavada;widzajawada;bejawada,Vila Andrade|sao paulo|BR|-46.73|-23.63|168|W|,Vila Curuca|sao paulo|BR|-46.42|-23.51|140|W|,Vila Flor|luanda|AO|13.31|-8.98|256|W|,Vila Jacui|sao paulo|BR|-46.46|-23.5|134|W|,Vila Velha|espirito santo|BR|-40.29|-20.33|394|W|,Villa Canales|guatemala|GT|-90.53|14.48|155|W|,Villa Mercedes|biobio|CL|-71.98|-37.4|131|W|,Villa Nueva|guatemala|GT|-90.59|14.53|618|W|,Villa Vicente Guerrero|MX29|MX|-98.17|19.12|60|N|,Villaflores|MX05|MX|-93.27|16.23|37|N|,Villagran|MX11|MX|-101|20.51|27|N|,Villahermosa|MX27|MX|-92.94|17.99|353|NW|villa hermosa,Villavicencio|meta department|CO|-73.63|4.13|321|W|,Ville-Emard|QC|CA|-73.6|45.45|30|N|,Ville-Marie|QC|CA|-73.57|45.5|104|N|,Villeray-Saint-Michel-Parc-Extension|QC|CA|-73.61|45.56|144|NW|,Villeurbanne|rhone alpes|FR|4.88|45.77|131|W|,Vilnius|vilnius|LT|25.28|54.69|542|W|vilna;vilnus;wilno;wilna,Vina del Mar|valparaiso|CL|-71.55|-33.02|334|W|,Vineland|NJ|US|-75.03|39.49|60|N|,Vinh|nghe an province|VN|105.69|18.67|790|W|,Vinh Chau|can tho city|VN|105.98|9.32|183|W|,Vinh Long|vinh long|VN|105.97|10.25|137|W|,Vinnytsya|vinnytsia|UA|28.47|49.23|430|W|vinnycja;vinniza;vinnytsia;winnica;winnyzja,Viransehir|sanliurfa|TR|39.76|37.22|154|W|,Virar|maharashtra|IN|72.81|19.46|1222|W|,Virginia Beach|VA|US|-75.98|36.85|454|NW|virginian bch,Visakhapatnam|andhra pradesh|IN|83.2|17.68|1063|W|vishakhapatnam;vizag,Visalia|CA|US|-119.29|36.33|130|NW|,Vista|CA|US|-117.24|33.2|100|N|,Vitebsk|vitebsk|BY|30.2|55.19|358|W|wizebsk;vicebsk;vitsebsk;vitsyebsk;witebsk,Vitoria|espirito santo|BR|-40.34|-20.32|312|W|,Vitoria da Conquista|bahia|BR|-40.84|-14.87|396|W|,Vitoria de Santo Antao|pernambuco|BR|-35.29|-8.12|134|W|,Vizianagaram|andhra pradesh|IN|83.41|18.12|228|W|,Vladikavkaz|north ossetia alania|RU|44.67|43.04|306|W|vladicaucaso;wladikawkas;wladykaukaz,Vladimir|vladimir oblast|RU|40.4|56.14|357|W|wladimir;wladymir;wlodzimierz,Vladivostok|primorye|RU|131.87|43.11|604|W|vladyvostok;wladiwostok;wladywostok,Volgodonsk|rostov|RU|42.15|47.51|167|W|wolgodonsk,Volgograd|volgograd oblast|RU|44.5|48.71|1013|W|volgogrado;wolgograd;estalingrado;stalingrad;stalingrado;tsaritsyn;zarizyn,Vologda|vologda oblast|RU|39.88|59.22|312|W|wologda,Volta Redonda|rio de janeiro|BR|-44.1|-22.52|279|W|v redonda,Volzhsky|volgograd oblast|RU|44.78|48.79|323|W|volzjskij;volzski;wolschski,Voronezh|voronezh oblast|RU|39.19|51.67|1047|W|voronej;voronezj;voronez;woronesch;woronez,Votorantim|sao paulo|BR|-47.44|-23.55|133|W|,Vryheid|kwazulu natal|ZA|30.79|-27.77|150|W|,Vung Tau|ho chi minh city hcmc|VN|107.08|10.35|464|W|cap saint jacques;cape saint james;saint james;st james;ville du cap,Vyhurivshchyna-Troyeshchyna|kyiv city|UA|30.6|50.51|240|W|,Vykhino-Zhulebino|moscow|RU|37.81|55.7|216|W|,Waco|TX|US|-97.15|31.55|132|NW|,Wad Medani|al jazirah|SD|33.52|14.4|332|W|vad medeni;wad madani,Wadi as Sir|amman|JO|35.82|31.95|181|W|wadi al seer,Wafangdian|liaoning|CN|122.01|39.62|454|W|,Wah Cantt|punjab|PK|72.75|33.77|400|W|,Waiau-Pacific Palisades|HI|US|-157.95|21.4|47|N|,Waipahu|HI|US|-158.01|21.39|38|N|,Wakayama|wakayama|JP|135.17|34.23|356|W|,Wake Forest|NC|US|-78.51|35.98|38|N|,Wakefield|NY|US|-73.85|40.9|52|N|,Waldorf|MD|US|-76.94|38.62|67|N|,Walla Walla|WA|US|-118.34|46.06|32|N|,Walnut|CA|US|-117.87|34.02|30|N|,Walnut Creek|CA|US|-122.06|37.91|68|N|,Walnut Grove|BC|CA|-122.64|49.16|25|N|,Walsall|england|GB|-1.98|52.59|172|W|,Waltham|MA|US|-71.24|42.38|63|N|,Wan Chai|wan chai|HK|114.17|22.28|166|W|wanchai,Wandsbek|hamburg|DE|10.08|53.58|411|W|,Wangsa Maju|kuala lumpur|MY|101.74|3.2|215|W|,Wanning|hainan|CN|110.38|18.8|545|W|,Wanxian|chongqing|CN|108.37|30.82|859|W|wan hsien;wanshien,Wanzhou|chongqing|CN|108.4|30.76|1545|W|,Warangal|telangana|IN|79.58|18|704|W|,Warder|somali|ET|45.34|6.97|450|W|,Warner Robins|GA|US|-83.63|32.62|73|N|,Warren|MI|US|-83.01|42.49|134|NW|,Warren|OH|US|-80.82|41.24|40|N|,Warri|delta|NG|5.75|5.52|910|W|,Warrington|england|GB|-2.58|53.39|172|W|,Warsaw|mazovia|PL|21.01|52.23|1702|W|warszawa;varsavia;varsova;varsovia;varsovie;varsava;warsawa;warschau,Warwick|RI|US|-71.42|41.7|81|N|,Wasco|CA|US|-119.34|35.59|26|N|,Washington|DC|US|-77.04|38.9|689|NW|washington d c;district of columbia;washington dc;waszyngton;territory of columbia,Washington Heights|NY|US|-73.94|40.85|152|NW|,Watampone|south sulawesi|ID|120.33|-4.54|149|W|,Waterbury|CT|US|-73.05|41.56|108|N|,Waterford|MI|US|-83.41|42.69|75|N|,Waterfront Communities-The Island|ON|CA|-79.38|43.63|65|N|,Waterloo|ON|CA|-80.52|43.47|104|N|,Waterloo|IA|US|-92.34|42.49|68|N|,Watertown|MA|US|-71.18|42.37|31|N|,Watertown|NY|US|-75.91|43.97|26|N|,Watsonville|CA|US|-121.76|36.91|53|N|,Watthana|bangkok|TH|100.59|13.73|171|W|vadhana,Waukegan|IL|US|-87.84|42.36|88|N|,Waukesha|WI|US|-88.23|43.01|71|N|,Wausau|WI|US|-89.63|44.96|39|N|,Wauwatosa|WI|US|-88.01|43.05|47|N|,Waxahachie|TX|US|-96.85|32.39|33|N|,Wayne|NJ|US|-74.28|40.93|57|N|,Wayne|PA|US|-75.39|40.04|30|N|,Wazirabad|punjab|PK|74.12|32.44|152|W|,Weatherford|TX|US|-97.8|32.76|28|N|,Weifang|shandong|CN|119.1|36.71|2044|W|wej fang,Weihai|shandong|CN|122.11|37.51|844|W|wej chaj,Weinan|shaanxi|CN|109.51|34.5|1199|W|wej nan,Welkom|free state|ZA|26.74|-27.98|431|W|,Welland|ON|CA|-79.25|42.98|52|N|,Wellesley|MA|US|-71.29|42.3|27|N|,Wellington|wellington region|NZ|174.78|-41.29|381|W|,Wellington|FL|US|-80.24|26.66|62|N|,Wenatchee|WA|US|-120.31|47.42|33|N|,Wenchang|hainan|CN|110.8|19.55|560|W|van xuong,Wenshan City|yunnan|CN|104.25|23.36|450|W|,Wentzville|MO|US|-90.85|38.81|35|N|,Wenzhou|zhejiang|CN|120.67|28|2650|W|wen cou;on chau;yongjia,Weru|west java|ID|108.5|-6.71|139|W|,Weslaco|TX|US|-97.99|26.16|39|N|,Wesley Chapel|FL|US|-82.33|28.24|44|N|,West Albany|NY|US|-73.78|42.68|93|N|,West Allis|WI|US|-88.01|43.02|60|N|,West Babylon|NY|US|-73.35|40.72|43|N|,West Bend|WI|US|-88.18|43.43|31|N|,West Bloomfield Township|MI|US|-83.38|42.57|64|N|west bloomfield;xa west bloomfield,West Chicago|IL|US|-88.2|41.88|27|N|,West Coon Rapids|MN|US|-93.35|45.16|62|N|,West Covina|CA|US|-117.94|34.07|108|N|,West Des Moines|IA|US|-93.71|41.58|64|N|,West Elkridge|MD|US|-76.73|39.21|28|N|,West End|BC|CA|-123.13|49.28|47|N|vancouver west end,West Englewood|IL|US|-87.67|41.78|32|N|,West Falls Church|VA|US|-77.19|38.86|29|N|,West Fargo|ND|US|-96.9|46.87|33|N|tay fargo,West Gulfport|MS|US|-89.09|30.4|71|N|,West Hartford|CT|US|-72.74|41.76|63|N|,West Haven|CT|US|-72.95|41.27|54|N|,West Hill|ON|CA|-79.18|43.77|27|N|,West Hills|CA|US|-118.64|34.2|41|N|,West Hollywood|FL|US|-80.18|26.02|60|N|,West Hollywood|CA|US|-118.36|34.09|36|N|tay hollywood,West Humber-Clairville|ON|CA|-79.6|43.72|33|N|,West Islip|NY|US|-73.31|40.71|28|N|,West Jerusalem|jerusalem|IL|35.22|31.78|400|W|vest jerusalem;vestjerusalem;vastra jerusalem;westjerusalem,West Jordan|UT|US|-111.94|40.61|111|N|,West Kelowna|BC|CA|-119.58|49.86|28|N|district of west kelowna,West Lafayette|IN|US|-86.91|40.43|45|N|,West Lake Sammamish|WA|US|-122.1|47.58|33|N|,West Lawn|IL|US|-87.72|41.77|32|N|,West Linn|OR|US|-122.61|45.37|26|N|,West Little River|FL|US|-80.24|25.86|34|N|,West Lynchburg|VA|US|-79.18|37.4|65|N|,West Memphis|AR|US|-90.18|35.15|25|N|,West Milford|NJ|US|-74.37|41.13|26|N|,West New York|NJ|US|-74.01|40.79|53|N|,West Oak Lane|PA|US|-75.17|40.07|38|N|,West Orange|NJ|US|-74.24|40.8|48|N|,West Palm Beach|FL|US|-80.05|26.72|120|N|,West Raleigh|NC|US|-78.66|35.79|338|NW|,West Ridge|IL|US|-87.69|42|72|N|,West Roxbury|MA|US|-71.15|42.28|30|N|,West Sacramento|CA|US|-121.53|38.58|52|N|,West Scarborough|ME|US|-70.39|43.57|27|N|,West Seneca|NY|US|-78.8|42.85|44|N|,West Springfield|MA|US|-72.62|42.11|27|N|,West Torrington|CT|US|-73.14|41.82|36|N|,West Town|IL|US|-87.67|41.89|86|N|,West Valley City|UT|US|-112|40.69|136|NW|west valley,West Vancouver|BC|CA|-123.16|49.33|45|N|vancouver barat,West Village|NY|US|-74.01|40.73|32|N|,West Warwick|RI|US|-71.52|41.7|30|N|,West Whittier-Los Nietos|CA|US|-118.07|33.98|25|N|,Westchester|FL|US|-80.33|25.75|29|N|,Westerville|OH|US|-82.93|40.13|38|N|,Westfield|MA|US|-72.75|42.13|41|N|westfield centre,Westfield|IN|US|-86.13|40.04|36|N|,Westfield|NJ|US|-74.35|40.66|30|N|,Westlake|OH|US|-81.92|41.46|32|N|,Westland|MI|US|-83.4|42.32|82|N|,Westminster|CO|US|-105.04|39.84|116|N|,Westminster|CA|US|-118.01|33.76|92|N|,Westminster-Branson|ON|CA|-79.45|43.78|26|N|,Westmont|CA|US|-118.3|33.94|31|N|,Weston|FL|US|-80.4|26.1|69|N|,Westonaria|gauteng|ZA|27.65|-26.32|156|W|,Westport|CT|US|-73.36|41.14|26|N|,Wethersfield|CT|US|-72.65|41.71|26|N|,Wexford/Maryvale|ON|CA|-79.3|43.75|27|N|,Weymouth|MA|US|-70.94|42.22|54|N|,Whalley|BC|CA|-122.87|49.18|102|N|,Wharton|PA|US|-75.16|39.93|49|N|,Wheat Ridge|CO|US|-105.08|39.77|31|N|wheatridge,Wheaton|IL|US|-88.11|41.87|53|N|,Wheaton|MD|US|-77.06|39.04|48|N|,Wheeling|IL|US|-87.93|42.14|38|N|,Wheeling|WV|US|-80.72|40.06|27|N|,Whitby|ON|CA|-78.93|43.88|138|NW|,Whitchurch-Stouffville|ON|CA|-79.32|44|49|N|,White Bear Lake|MN|US|-93.01|45.08|25|N|,White Plains|NY|US|-73.76|41.03|58|N|,Whitehorse|YT|CA|-135.05|60.72|28|N|,Whitestone|NY|US|-73.82|40.79|36|N|,Whitman|PA|US|-75.16|39.92|49|N|,Whitney|NV|US|-115.04|36.1|38|N|,Whittier|CA|US|-118.03|33.98|87|N|,Wichita|KS|US|-97.34|37.69|396|NW|,Wichita Falls|TX|US|-98.49|33.91|104|N|,Wiesbaden|hesse|DE|8.24|50.09|288|W|,Wigan|england|GB|-2.64|53.54|175|W|,Wildomar|CA|US|-117.28|33.6|35|N|,Wildwood|MO|US|-90.66|38.58|35|N|,Wilkes-Barre|PA|US|-75.88|41.25|40|N|,Williamsburg|NY|US|-73.95|40.71|33|N|,Williamsport|PA|US|-77|41.24|29|N|,Willingboro|NJ|US|-74.87|40.03|31|N|,Williston|ND|US|-103.62|48.15|26|N|,Willoughby|BC|CA|-122.68|49.13|31|N|,Willowbrook|CA|US|-118.26|33.92|35|N|,Willowdale|ON|CA|-79.4|43.77|79|N|,Willowdale East|ON|CA|-79.4|43.77|50|N|,Wilmette|IL|US|-87.72|42.07|27|N|,Wilmington|NC|US|-77.95|34.24|115|N|,Wilmington|DE|US|-75.55|39.75|70|N|,Wilmington|CA|US|-118.26|33.78|52|N|,Wilson|NC|US|-77.92|35.72|49|N|,Winchester|NV|US|-115.12|36.13|27|N|,Winchester|VA|US|-78.16|39.19|27|N|,Windhoek|khomas region|NA|17.08|-22.56|386|W|vinduque;windhuk,Windsor|ON|CA|-83.02|42.3|229|NW|,Windsor|CO|US|-104.9|40.48|32|N|,Windsor|CT|US|-72.64|41.85|28|N|,Windsor|CA|US|-122.82|38.55|27|N|,Winejok|northern bahr al ghazal|SS|27.57|9.01|300|W|,Winnetka|CA|US|-118.57|34.21|47|N|,Winnipeg|MB|CA|-97.15|49.88|749|NW|vinnipeg;winnipeg city,Winona|MN|US|-91.64|44.05|27|N|,Winston-Salem|NC|US|-80.24|36.1|241|NW|,Winter Garden|FL|US|-81.59|28.57|40|N|,Winter Haven|FL|US|-81.73|28.02|37|N|,Winter Park|FL|US|-81.34|28.6|29|N|,Winter Springs|FL|US|-81.31|28.7|34|N|,Woburn|ON|CA|-79.23|43.77|53|N|,Woburn|MA|US|-71.15|42.48|39|N|,Wola|mazovia|PL|20.96|52.23|140|W|,Wollongong|new south wales|AU|150.89|-34.42|280|W|,Wolverhampton|england|GB|-2.12|52.59|263|W|,Wong Tai Sin|wong tai sin district|HK|114.18|22.35|425|W|,Wonju|gangwon do|KR|127.95|37.35|332|W|,Wonsan|kangwon do|KP|127.44|39.15|329|W|gensan,Woodburn|OR|US|-122.86|45.14|25|N|,Woodbury|MN|US|-92.96|44.92|67|N|,Woodhaven|NY|US|-73.86|40.69|36|N|,Woodland|CA|US|-121.77|38.68|58|N|,Woodland Hills|CA|US|-118.61|34.17|70|N|,Woodlands||SG|103.79|1.44|254|W|,Woodlawn|MD|US|-76.73|39.32|37|N|,Woodridge|IL|US|-88.05|41.75|33|N|,Woodside|NY|US|-73.91|40.75|41|N|,Woodstock|ON|CA|-80.75|43.13|40|N|,Woodstock|GA|US|-84.52|34.1|29|N|,Woodstock|IL|US|-88.45|42.31|25|N|,Woonsocket|RI|US|-71.51|42|41|N|,Wooster|OH|US|-81.94|40.81|26|N|,Worcester|MA|US|-71.8|42.26|206|NW|,Wroclaw|lower silesia|PL|17.03|51.1|672|W|breslau;breslavia;vratislav;bresslau;vratislavie,Wuerzburg|bavaria|DE|9.95|49.79|133|W|wurzburg;wurtzbourg;wurtzburgo;wurzburgo,Wugang|hunan|CN|110.63|26.73|132|W|,Wuhai|inner mongolia|CN|106.82|39.68|218|W|wu chaj,Wuhan|hubei|CN|114.27|30.58|10392|W|vuhan;vu han;wu chan,Wuhu|anhui|CN|118.43|31.35|1598|W|wu chu,Wujiaqu|xinjiang|CN|87.52|44.16|154|W|,Wuppertal|north rhine westphalia|DE|7.15|51.26|360|W|,Wuwei|gansu|CN|102.63|37.93|1010|W|,Wuxi|jiangsu|CN|120.29|31.57|4396|W|vo tich;wu si,Wuxue|hubei|CN|115.55|29.85|220|W|,Wuyishan|fujian|CN|118.03|27.76|137|W|ciudad de wuyishan;vu di son;wuyishan city,Wuzhong|ningxia|CN|106.2|37.99|7202|W|,Wuzhou|guangxi|CN|111.29|23.48|761|W|ngo chau;wu cou,Wyandotte|MI|US|-83.15|42.21|25|N|,Wylie|TX|US|-96.54|33.02|46|N|,Wyoming|MI|US|-85.71|42.91|75|N|,Xai-Xai|gaza province|MZ|33.64|-25.05|154|W|,Xalapa de Enriquez|MX30|MX|-96.92|19.53|424|NW|xalapa;jalapa;jalapa enriques;jalapa enriquez,Xalisco|MX18|MX|-104.9|21.44|35|N|jalisco,Xenia|OH|US|-83.93|39.68|25|N|,Xi'an|shaanxi|CN|108.93|34.26|9600|W|tay an;xian,Xiamen|fujian|CN|118.08|24.48|4617|W|amoy;sia men,Xiangtan|hunan|CN|112.9|27.85|959|W|siang tchan;tuong dam,Xiangyang|hubei|CN|112.14|32.04|1294|W|siang jang;tuong duong;xiangfan,Xianning|hubei|CN|114.32|29.84|512|W|,Xiantao|hubei|CN|113.44|30.37|239|W|sientaochen,Xianyang|shaanxi|CN|108.7|34.34|1034|W|ham duong;sien jang,Xiaogan|hubei|CN|113.92|30.93|908|W|siao kan,Xiayang|shanghai|CN|121.12|31.15|137|W|,Xichang|sichuan|CN|102.26|27.9|481|W|,Xico|MX15|MX|-98.95|19.27|384|NW|san miguel xico,Xicotepec de Juarez|MX21|MX|-97.96|20.28|39|N|,Xilinhot|inner mongolia|CN|116.07|43.94|349|W|,Xindi|hubei|CN|113.47|29.82|175|W|,Xingning|guangdong|CN|115.72|24.15|274|W|,Xingtai|hebei|CN|114.49|37.06|798|W|hinh dai;sing tchaj,Xingyi|guizhou|CN|104.91|25.1|322|W|,Xining|qinghai|CN|101.76|36.63|1677|W|si ning;sining;tay ninh,Xinji|hebei|CN|115.22|37.93|145|W|,Xinqiao|shanghai|CN|121.31|31.07|155|W|,Xintai|shandong|CN|117.75|35.9|222|W|,Xinxiang|henan|CN|113.8|35.19|1047|W|,Xinyang|henan|CN|114.07|32.12|1230|W|,Xinyi|jiangsu|CN|118.35|34.38|300|W|,Xinyu|jiangxi|CN|114.93|27.8|839|W|sin ju;tan du,Xinyuan|xinjiang|CN|83.25|43.43|282|W|,Xinzhou|shanxi|CN|112.73|38.41|544|W|han chau;sin cou,Xiuying|hainan|CN|110.29|20|290|W|,Xizhi|taipei|TW|121.66|25.07|204|W|hsichih;xizhi district,Xochimilco|MX09|MX|-99.1|19.25|442|NW|delegacion xochimilco,Xuan Loc|dong nai|VN|107.23|10.93|253|W|,Xuancheng|anhui|CN|118.76|30.95|774|W|,Xuanhua|hebei|CN|115.06|40.61|373|W|,Xuchang|henan|CN|113.86|34.03|1265|W|,Xuhui|shanghai|CN|121.45|31.2|1109|W|,Xuzhou|jiangsu|CN|117.28|34.2|1253|W|pengcheng,Ya'an|sichuan|CN|103|29.99|612|W|,Yachiyo|chiba|JP|140.12|35.74|199|W|,Yaizu|shizuoka|JP|138.32|34.87|139|W|,Yakima|WA|US|-120.51|46.6|93|N|,Yakutsk|sakha|RU|129.72|62.03|235|W|iakoutsk;jakutsk,Yamagata|yamagata|JP|140.37|38.23|248|W|,Yamaguchi|yamaguchi|JP|131.47|34.18|193|W|jamaguci,Yamato|kanagawa|JP|139.45|35.47|242|W|,Yamoussoukro|lacs district|CI|-5.28|6.82|275|W|jamusukro;yamusukro,Yamuna Nagar|haryana|IN|77.28|30.13|217|W|yamunanagar,Yan'an|shaanxi|CN|109.49|36.6|475|W|,Yanbu|medina region|SA|38.06|24.09|200|W|yambo;yanbu al bahr;yenbo,Yancheng|jiangsu|CN|120.16|33.36|1615|W|diem thanh;jen ccheng,Yangcheng|chongqing|CN|106.26|30|186|W|,Yangchun|guangdong|CN|111.78|22.17|153|W|,Yanghang|shanghai|CN|121.44|31.37|204|W|,Yangjiang|guangdong|CN|111.96|21.86|1292|W|duong giang;jang tiang,Yangju|gyeonggi do|KR|127.06|37.83|179|W|,Yangon|yangon|MM|96.16|16.81|4477|W|rangoon;rangoun;rangum;rangun;yankoun,Yangpu|shanghai|CN|121.52|31.26|1210|W|,Yangquan|shanxi|CN|113.56|37.86|731|W|jang cchuan,Yangsan|gyeongsangnam do|KR|129.03|35.34|358|W|jangsan,Yangshuo|guangxi|CN|110.49|24.78|300|W|,Yangzhou|jiangsu|CN|119.44|32.4|1584|W|duong chau;jang cou,Yanji|jilin|CN|129.5|42.89|326|W|dien cat,Yantai|shandong|CN|121.44|37.48|2227|W|jen tchaj;yen dai;chefoo,Yanzhou|shandong|CN|116.83|35.55|254|W|,Yao|osaka|JP|135.6|34.62|273|W|,Yaounde|centre|CM|11.52|3.87|1299|W|jaunde;yaunde,Yarmouth|MA|US|-70.23|41.71|25|N|,Yaroslavl|yaroslavl oblast|RU|39.87|57.63|608|W|jaroslawl;iaroslavl;jaroslavl;jaroslaw,Yasenevo|moscow|RU|37.52|55.61|180|W|,Yautepec|MX17|MX|-99.07|18.88|105|N|yautepec de zaragoza,Yawnghwe|shan state|MM|96.93|20.66|188|W|,Yazd|yazd province|IR|54.37|31.9|477|W|jasd;jazd,Yei|central equatoria|SS|30.68|4.09|260|W|,Yekaterinburg|sverdlovsk oblast|RU|60.62|56.86|1495|W|jekaterinburg;ekaterimburgo;ekaterinbourg;ekaterinburg;ekaterinburgo;jekaterinenburg;jekaterynburg,Yenagoa|bayelsa state|NG|6.27|4.93|365|W|,Yeosu|jeollanam do|KR|127.66|34.76|268|W|josu,Yerevan|yerevan|AM|44.51|40.18|1144|W|erevan;erivan;erywan;jerevan;jerewan,Yibin|sichuan|CN|104.64|28.76|836|W|nghi tan,Yichang|hubei|CN|111.28|30.71|1350|W|i cchang;nghi xuong,Yichun|jiangxi|CN|114.4|27.83|1045|W|i cchun;nghi xuan,Yichun|heilongjiang|CN|128.88|47.72|155|W|i cchun;y xuan,Yinchuan|ningxia|CN|106.27|38.47|1487|W|jin cchuan;ngan xuyen,Yingkou|liaoning|CN|122.23|40.66|591|W|newchwang;eiko,Yingtan|jiangxi|CN|117|28.23|214|W|jing tchan;ung dam,Yintai|shaanxi|CN|109.1|35.12|217|W|,Yishun New Town||SG|103.83|1.43|228|W|,Yiwu|zhejiang|CN|120.08|29.32|1481|W|,Yixing|jiangsu|CN|119.82|31.36|1285|W|,Yizhou|guangxi|CN|108.67|24.5|155|W|,Yogyakarta|yogyakarta|ID|110.36|-7.8|375|W|di yogyakarta;jogjakarta;kota yogyakarta,Yokkaichi|mie|JP|136.62|34.97|305|W|,Yokohama|kanagawa|JP|139.65|35.43|3777|W|jokohama,Yokosuka|kanagawa|JP|139.67|35.28|409|W|jokosuka,Yola|adamawa|NG|12.48|9.21|460|W|,Yonago|tottori|JP|133.33|35.43|148|W|,Yong'an|chongqing|CN|109.46|31.02|144|W|fengjie;feng chieh;kweichow,Yongchuan|chongqing|CN|105.89|29.35|192|W|,Yongji|shanxi|CN|110.44|34.87|452|W|,Yongkang|taiwan|TW|120.26|23.02|233|W|vinh khang;yongkang district,Yongzhou|hunan|CN|111.61|26.42|1020|W|lingling,Yonkers|NY|US|-73.9|40.93|201|NW|,Yopal|casanare department|CO|-72.39|5.34|168|W|,Yorba Linda|CA|US|-117.81|33.89|67|N|,York|england|GB|-1.08|53.96|156|W|,York|PA|US|-76.73|39.96|43|N|,York University Heights|ON|CA|-79.49|43.77|27|N|,Yoshkar-Ola|mariy el republic|RU|47.89|56.64|268|W|iochkar ola;joschkar ola;josjkar ola;joszkar ola;joskar ola,Youngstown|OH|US|-80.65|41.1|64|N|,Yuba City|CA|US|-121.62|39.14|66|N|kota yuba,Yucaipa|CA|US|-117.04|34.03|53|N|,Yuci|shanxi|CN|112.73|37.68|235|W|,Yuen Long|yuen long|HK|114.03|22.45|200|W|,Yuen Long Kau Hui|yuen long|HK|114.03|22.45|169|W|,Yuen Long San Hui|yuen long|HK|114.03|22.43|200|W|,Yuepu|shanghai|CN|121.42|31.43|139|W|,Yueyang|hunan|CN|113.09|29.37|991|W|jue jang,Yukon|OK|US|-97.76|35.51|25|N|,Yulin|guangxi|CN|110.15|22.63|1056|W|ju lin,Yuma|AZ|US|-114.62|32.73|95|N|,Yuncheng|shanxi|CN|110.99|35.02|680|W|jun ccheng,Yunfu|guangdong|CN|112.04|22.93|2612|W|jun fu;van phu,Yunlong|jiangsu|CN|117.25|34.25|345|W|,Yunusobod|tashkent|UZ|69.28|41.37|352|W|,Yuriria|MX11|MX|-101.13|20.21|25|N|,Yushu|qinghai|CN|97.01|33|141|W|,Yuzhno-Sakhalinsk|sakhalin oblast|RU|142.74|46.95|198|W|juzjno sakhalinsk;ioujno sakhalinsk;iujno sahalinsk;iujno sakhalinsk;joezjno sachalinsk;juschno sachalinsk;juzjno sachalinsk;juznosachalinsk;juzno sachalinsk;juzno sahalinsk;yujno sahalinsk;yuzhno sajalinsk,Zaanstad|north holland|NL|4.81|52.45|140|W|,Zabrze|silesia|PL|18.79|50.32|192|W|hindenburg,Zacapu|MX16|MX|-101.79|19.82|50|N|,Zacatecas|MX32|MX|-102.58|22.77|129|N|zacatecas city,Zacatelco|MX29|MX|-98.24|19.22|42|N|,Zacatlan|MX21|MX|-97.96|19.94|33|N|,Zagazig|sharqia|EG|31.5|30.59|430|W|,Zagreb|zagreb|HR|15.98|45.81|663|W|zagabria;zagrep;zagrzeb;zahreb;agram,Zahedan|sistan and baluchestan|IR|60.86|29.5|551|W|,Zama|kanagawa|JP|139.39|35.49|132|W|,Zamboanga|zamboanga peninsula|PH|122.07|6.91|1018|W|zamboanga city,Zamora de Hidalgo|MX16|MX|-102.29|19.98|186|NW|zamora,Zanesville|OH|US|-82.01|39.94|25|N|,Zango|luanda|AO|13.38|-9.01|198|W|,Zanjan|zanjan|IR|48.5|36.68|357|W|zandschan,Zanzibar|zanzibar urban west|TZ|39.2|-6.16|709|W|sansibar stadt;zanzibar by,Zaoyang|hubei|CN|112.75|32.13|184|W|,Zaozhuang|shandong|CN|117.55|34.86|899|W|cao cuang,Zapopan|MX14|MX|-103.39|20.72|1476|NW|,Zaporizhzhya|zaporizhzhia|UA|35.12|47.85|710|W|zaporizjzja;zaporizzja;alessandrovia;saporischschja;zaporiggia;zaporijjia;zaporiyia;zaporizhzhia;zaporoye;zaporozhye;zaporoze;zaporozi;alexandrovsk;saporoschje;saporoshje,Zapotlanejo|MX14|MX|-103.07|20.62|32|N|,Zaragoza|aragon|ES|-0.88|41.66|686|W|saragossa;saragosse;saragozza;saragoca;zaragosa,Zaria|kaduna state|NG|7.72|11.11|980|W|,Zarichnyi|sumy|UA|34.81|50.9|150|W|zarichnyi rayon,Zarqa|zarqa|JO|36.09|32.07|792|W|zarka,Zawiya|az zawiyah|LY|12.73|32.75|186|W|,Zelenograd|moscow|RU|37.18|55.98|215|W|selenograd,Zemun|central serbia|RS|20.4|44.85|155|W|semlin,Zenica|federation of b h|BA|17.9|44.2|164|W|,Zeytinburnu|istanbul|TR|28.9|40.99|280|W|,Zhabei|shanghai|CN|121.46|31.26|840|W|,Zhalantun|inner mongolia|CN|122.74|48.01|132|W|,Zhangjiagang|jiangsu|CN|120.54|31.86|1432|W|,Zhangjiajie|hunan|CN|110.48|29.13|441|W|cang tia tie,Zhangjiakou|hebei|CN|114.87|40.78|692|W|cang tia kchou,Zhangye|gansu|CN|100.45|38.93|507|W|cang jie,Zhangzhou|fujian|CN|117.66|24.51|589|W|chuong chau;cang cou,Zhanjiang|guangdong|CN|110.39|21.23|1400|W|,Zhaodong|heilongjiang|CN|125.96|46.05|154|W|,Zhaoqing|guangdong|CN|112.46|23.05|1553|W|cao cching;shiu hing,Zhaotong|yunnan|CN|103.72|27.32|787|W|chieu thong;cao tchung,Zheleznodorozhnyy|moscow oblast|RU|38.02|55.74|141|W|zjeleznodorozjnyj,Zhengding|hebei|CN|114.57|38.15|193|W|,Zhengzhou|henan|CN|113.65|34.76|4253|W|czengczou;cengcou;ceng cou,Zhenjiang|jiangsu|CN|119.46|32.21|950|W|chinkiang,Zhenping|henan|CN|112.23|33.03|181|W|,Zhenzhou|jiangsu|CN|119.17|32.28|176|W|icheng ku,Zhicheng|hubei|CN|111.5|30.3|159|W|chihkiang,Zhongshan|guangdong|CN|113.38|22.52|3841|W|trung son;xiangshan;cung san,Zhongwei|ningxia|CN|105.19|37.51|1174|W|cung wej,Zhoukou|henan|CN|114.63|33.63|505|W|cou kchou,Zhoushan|zhejiang|CN|122.2|29.99|882|W|,Zhu Cheng City|shandong|CN|119.4|36|1000|W|,Zhubei|taiwan|TW|121.01|24.84|212|W|cu pej,Zhucheng|shandong|CN|119.4|35.99|499|W|,Zhuhai|guangdong|CN|113.57|22.28|2207|W|cu chaj,Zhulebino|moscow|RU|37.85|55.7|150|W|,Zhumadian|henan|CN|114.03|32.98|721|W|,Zhuzhou|hunan|CN|113.15|27.83|1129|W|chu chau;cu cou;jianning,Zhytomyr|zhytomyr oblast|UA|28.68|50.26|261|W|jytomyr;jitomir;schytomyr;zjytomyr;zytomierz;zitomir;zytomyr,Zibo|shandong|CN|118.06|36.79|3129|W|c po;truy bac,Zigong|sichuan|CN|104.78|29.34|1262|W|c kung,Ziguinchor|ziguinchor|SN|-16.27|12.57|214|W|,Zinacantepec|MX15|MX|-99.73|19.28|54|N|,Zinder|zinder region|NE|8.99|13.81|318|W|,Zionsville|IN|US|-86.26|39.95|26|N|,Zipaquira|cundinamarca|CO|-74|5.02|130|W|,Zitong|chongqing|CN|105.83|30.18|212|W|,Ziyang|sichuan|CN|104.65|30.12|905|W|,Zlatoust|chelyabinsk|RU|59.65|55.17|191|W|slatoust;zlato oest;zlatooust,Zliten|misratah|LY|14.57|32.47|203|W|zalitan;zlitan,Zoucheng|shandong|CN|116.97|35.4|277|W|trau thanh,Zuerich|zurich|CH|8.55|47.37|415|W|zurich;curych;zurigo;zurique;zurych;zurih,Zuglo|budapest|HU|19.11|47.52|130|W|lerchenfeld,Zumpango|MX15|MX|-99.1|19.8|280|NW|zumpango de ocampo,Zunyi|guizhou|CN|106.91|27.69|2037|W|cun i;tuan nghia";/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var wY={\u0142:"l",\u0141:"L",\u0131:"i",\u00F8:"o",\u00D8:"O",\u0111:"d",\u0110:"D",\u00F0:"d",\u00D0:"D"},WY=[1632,1776,2406,3664,65296],CY=/[\u0300-\u036F]/g;function AY(e){let t=wY[e];if(t)return t;let a=e.codePointAt(0);for(let n of WY)if(a>=n&&a<=n+9)return String.fromCharCode(48+a-n);if(a>=65313&&a<=65338||a>=65345&&a<=65370)return String.fromCharCode(a-65248);let r=e.normalize("NFD").replace(CY,"");return r.length===1?r:e}function Cn(e){if(!e)return e??"";let t="";for(let a of e)t+=AY(a);return t}var DM=new RegExp("([\\p{Ll}\\p{Nd}])(\\p{Lu})","gu"),_Y=/[_\-./]+/g,MY=/[^\p{L}\p{M}\p{N}\x00-\x7F]/gu;function Wa(e){return e?String(e).normalize("NFC").replace(DM,"$1 $2").replace(_Y," ").replace(MY," ").toLowerCase().split(/\s+/).filter(t=>t.length>0):[]}function LM(e,t={}){if(!e)return[];let a=String(e).normalize("NFC");return t.camel&&(a=a.replace(DM,"$1 $2")),a.toLowerCase().split(/[^\p{L}\p{M}]+/u).filter(r=>r.length>0)}function gr(e){let t=Wa(e),a=Wa(Cn(String(e??"").normalize("NFC")));return{words:t,folded:a.length===t.length?a:t.map(Cn)}}var xY=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Thai}\u30FC]/u,IY=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Thai}\u30FC]+/gu;function PY(e){return!!e&&xY.test(e)}function UY(e){return e?String(e).normalize("NFC").match(IY)??[]:[]}var D8=3;function wi(e,t,a=D8){return!e||!t||e.length<=t.length||!e.endsWith(t)?!1:Array.from(e.slice(0,e.length-t.length)).length>=a}var TY=2;function $g(e,t){let a=Ga(t);if(!e||!a||a.gluedPrefixes.length===0)return[];let r=[];for(let n of[...a.gluedPrefixes].sort((i,o)=>o.length-i.length))if(e.length>n.length&&e.startsWith(n)){let i=e.slice(n.length);Array.from(i).length>=TY&&!r.includes(i)&&r.push(i)}return r}var EY=2,RY=new RegExp("\\p{Script=Hangul}","u");function Og(e,t){return!e||!t||!RY.test(t)?!1:wi(e,t,EY)}var Dg=2;function jM(e,t,a){if(!e||!t)return null;let r=Ga(a);if(!r)return null;let n=t.normalize("NFC").toLowerCase();if(PY(n))return Array.from(n).length<Dg?null:UY(e).some(l=>l.includes(n))?"substring":null;let i=gr(e),o=r.foldSensitive?i.words:i.folded,s=r.foldSensitive?n:Cn(t.normalize("NFC")).toLowerCase();return o.includes(s)?"word":r.compounds&&o.some(l=>wi(l,s))||o.some(l=>Og(l,s))?"suffix":r.gluedPrefixes.length&&o.some(l=>$g(l,r.code).includes(s))?"prefix":null}function Lg(e){return e!=null?e.toString():""}function Xa(e,t){if(!e.length)return NaN;if(e.length===1)return e[0];let a=(e.length-1)*t,r=Math.floor(a),n=Math.ceil(a);return r===n?e[r]:e[r]+(e[n]-e[r])*(a-r)}function L8(e){if(!e)return 0;let t=0xcbf29ce484222325n,a=0x100000001b3n,r=t;for(let n=0;n<e.length;n++)r^=BigInt(e.charCodeAt(n)),r=r*a&0xFFFFFFFFFFFFFFFFn;return Number(r&0x1FFFFFFFFFFFFFn)}function jg(){let e=typeof globalThis<"u"?globalThis:{};if(e.crypto&&typeof e.crypto.getRandomValues=="function"){let t=new Uint32Array(1);return e.crypto.getRandomValues(t),t[0]/4294967296}return Math.floor(Date.now()%4294967295)/4294967296}function Fg(e){return!!e&&e.isRefusal===!0}var Bg=30;function Wi(e){let t=Date.parse(e);if(isNaN(t))return null;let a=new Date(t);if(zY.test(e)||$Y.test(e.trim())||OY.test(e))return a;let r=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds())),n=a.getFullYear();return n>=0&&n<100&&r.setUTCFullYear(n),r}function Hg(e){return!(e instanceof Date)||isNaN(e.getTime())?null:e.getUTCHours()===0&&e.getUTCMinutes()===0&&e.getUTCSeconds()===0&&e.getUTCMilliseconds()===0?"utc":e.getHours()===0&&e.getMinutes()===0&&e.getSeconds()===0&&e.getMilliseconds()===0?"local":null}function Gg(e){let t=Hg(e);if(!t)return null;let a=e;if(t==="utc")return a.toISOString().slice(0,10);let r=n=>(n<10?"0":"")+n;return`${a.getFullYear()}-${r(a.getMonth()+1)}-${r(a.getDate())}`}function j8(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())),a=e.getFullYear();return a>=0&&a<100&&t.setUTCFullYear(a),t}function Kg(e){let t=!1;for(let a of e)if(!(a==null||a==="")){if(!(a instanceof Date)||isNaN(a.getTime()))return!1;Hg(a)===null&&(t=!0)}return t}function Xg(e){let t=!1,a=!1;for(let r of e)if(!(r==null||r==="")){if(!(r instanceof Date)||isNaN(r.getTime())||(a=!0,!(r.getUTCFullYear()===1899&&r.getUTCMonth()===11&&r.getUTCDate()===30)))return!1;!t&&(r.getUTCHours()||r.getUTCMinutes()||r.getUTCSeconds()||r.getUTCMilliseconds())&&(t=!0)}return a&&t}var zY=/^\s*\d{4}(-\d{2}(-\d{2})?)?\s*$/,$Y=/(?:Z|[+-]\d{2}:?\d{2})$/i,OY=/\b(?:GMT|UTC)\b/i;/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var KM=new Set(["n a","none","null","nil","unknown","not applicable","not available","not specified","unspecified","missing","blank","empty","tbd","to be determined"]),DY=new Set(Array.from(KM).filter(e=>e.includes(" ")&&e!=="n a").map(e=>e.replace(/ /g,"")));function B8(e){return e?KM.has(e)||DY.has(e.replace(/ /g,"")):!0}var v0=80;function Ca(e){return mr(e.normalize("NFD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/[^\p{L}\p{Nd}\s]/gu," ").replace(/\s+/g," ").trim()}function ef(e){return Wn(e)}var LY="AD AND,AE ARE,AF AFG,AG ATG,AI AIA,AL ALB,AM ARM,AO AGO,AQ ATA,AR ARG,AS ASM,AT AUT,AU AUS,AW ABW,AX ALA,AZ AZE,BA BIH,BB BRB,BD BGD,BE BEL,BF BFA,BG BGR,BH BHR,BI BDI,BJ BEN,BL BLM,BM BMU,BN BRN,BO BOL,BQ BES,BR BRA,BS BHS,BT BTN,BV BVT,BW BWA,BY BLR,BZ BLZ,CA CAN,CC CCK,CD COD,CF CAF,CG COG,CH CHE,CI CIV,CK COK,CL CHL,CM CMR,CN CHN,CO COL,CR CRI,CU CUB,CV CPV,CW CUW,CX CXR,CY CYP,CZ CZE,DE DEU,DJ DJI,DK DNK,DM DMA,DO DOM,DZ DZA,EC ECU,EE EST,EG EGY,EH ESH,ER ERI,ES ESP,ET ETH,FI FIN,FJ FJI,FK FLK,FM FSM,FO FRO,FR FRA,GA GAB,GB GBR,GD GRD,GE GEO,GF GUF,GG GGY,GH GHA,GI GIB,GL GRL,GM GMB,GN GIN,GP GLP,GQ GNQ,GR GRC,GS SGS,GT GTM,GU GUM,GW GNB,GY GUY,HK HKG,HM HMD,HN HND,HR HRV,HT HTI,HU HUN,ID IDN,IE IRL,IL ISR,IM IMN,IN IND,IO IOT,IQ IRQ,IR IRN,IS ISL,IT ITA,JE JEY,JM JAM,JO JOR,JP JPN,KE KEN,KG KGZ,KH KHM,KI KIR,KM COM,KN KNA,KP PRK,KR KOR,KW KWT,KY CYM,KZ KAZ,LA LAO,LB LBN,LC LCA,LI LIE,LK LKA,LR LBR,LS LSO,LT LTU,LU LUX,LV LVA,LY LBY,MA MAR,MC MCO,MD MDA,ME MNE,MF MAF,MG MDG,MH MHL,MK MKD,ML MLI,MM MMR,MN MNG,MO MAC,MP MNP,MQ MTQ,MR MRT,MS MSR,MT MLT,MU MUS,MV MDV,MW MWI,MX MEX,MY MYS,MZ MOZ,NA NAM,NC NCL,NE NER,NF NFK,NG NGA,NI NIC,NL NLD,NO NOR,NP NPL,NR NRU,NU NIU,NZ NZL,OM OMN,PA PAN,PE PER,PF PYF,PG PNG,PH PHL,PK PAK,PL POL,PM SPM,PN PCN,PR PRI,PS PSE,PT PRT,PW PLW,PY PRY,QA QAT,RE REU,RO ROU,RS SRB,RU RUS,RW RWA,SA SAU,SB SLB,SC SYC,SD SDN,SE SWE,SG SGP,SH SHN,SI SVN,SJ SJM,SK SVK,SL SLE,SM SMR,SN SEN,SO SOM,SR SUR,SS SSD,ST STP,SV SLV,SX SXM,SY SYR,SZ SWZ,TC TCA,TD TCD,TF ATF,TG TGO,TH THA,TJ TJK,TK TKL,TL TLS,TM TKM,TN TUN,TO TON,TR TUR,TT TTO,TV TUV,TW TWN,TZ TZA,UA UKR,UG UGA,UM UMI,US USA,UY URY,UZ UZB,VA VAT,VC VCT,VE VEN,VG VGB,VI VIR,VN VNM,VU VUT,WF WLF,WS WSM,XK XKX,YE YEM,YT MYT,ZA ZAF,ZM ZMB,ZW ZWE",fr=(()=>{let e=new Map;for(let t of LY.split(",")){let[a,r]=t.split(" ");a&&r&&e.set(a,r)}return e})(),tf=new Set(fr.keys()),af=new Set(fr.values()),jY=["en","fr","es","de","it","pt","ru","ja","zh","ko","ar","hi","tr","pl","he","nl","sv","fi","nb","da","cs","el","uk","ro","id","vi","th","sk","hu","hr"],FY={usa:"USA","u.s.":"USA","u.s.a.":"USA",us:"USA",america:"USA","united states of america":"USA","the united states":"USA",uk:"GBR","u.k.":"GBR","great britain":"GBR",britain:"GBR",england:"GBR","south korea":"KOR","north korea":"PRK",korea:"KOR","ivory coast":"CIV","cote d ivoire":"CIV",vietnam:"VNM",laos:"LAO",syria:"SYR",iran:"IRN",russia:"RUS",moldova:"MDA",tanzania:"TZA",bolivia:"BOL",venezuela:"VEN",brunei:"BRN","czech republic":"CZE",czechia:"CZE",slovakia:"SVK",uae:"ARE","united arab emirates":"ARE",drc:"COD","dr congo":"COD","democratic republic of the congo":"COD","republic of the congo":"COG",congo:"COG",swaziland:"SWZ",eswatini:"SWZ","cape verde":"CPV","cabo verde":"CPV",burma:"MMR",myanmar:"MMR",holland:"NLD","the netherlands":"NLD",netherlands:"NLD",vatican:"VAT","vatican city":"VAT",palestine:"PSE",macau:"MAC",macao:"MAC","hong kong":"HKG",taiwan:"TWN",turkey:"TUR",turkiye:"TUR",macedonia:"MKD","north macedonia":"MKD",gambia:"GMB","the gambia":"GMB",bahamas:"BHS","the bahamas":"BHS","east timor":"TLS","timor leste":"TLS"},BY=Object.freeze({"Antigua and Barbuda":"ATG","Bosnia and Herzegovina":"BIH","Heard Island and McDonald Islands":"HMD","Saint Kitts and Nevis":"KNA","St Kitts and Nevis":"KNA","Saint Pierre and Miquelon":"SPM","St Pierre and Miquelon":"SPM","Saint Vincent and the Grenadines":"VCT","St Vincent and the Grenadines":"VCT","Sao Tome and Principe":"STP","South Georgia and the South Sandwich Islands":"SGS","Svalbard and Jan Mayen":"SJM","Trinidad and Tobago":"TTO","Turks and Caicos Islands":"TCA","Turks and Caicos":"TCA","Wallis and Futuna":"WLF","Saint Helena, Ascension and Tristan da Cunha":"SHN","Bonaire, Sint Eustatius and Saba":"BES","United Kingdom of Great Britain and Northern Ireland":"GBR","Bolivia, Plurinational State of":"BOL","Bolivia (Plurinational State of)":"BOL","Brunei Darussalam":"BRN","Congo, The Democratic Republic of the":"COD","Congo, Democratic Republic of the":"COD","Democratic Republic of Congo":"COD","Falkland Islands (Malvinas)":"FLK","Holy See (Vatican City State)":"VAT","Holy See":"VAT","Iran, Islamic Republic of":"IRN","Iran (Islamic Republic of)":"IRN","Islamic Republic of Iran":"IRN","Korea, Republic of":"KOR","Republic of Korea":"KOR","Korea (the Republic of)":"KOR","Korea, Democratic People's Republic of":"PRK","Democratic People's Republic of Korea":"PRK","Korea (the Democratic People's Republic of)":"PRK","Lao People's Democratic Republic":"LAO","Micronesia, Federated States of":"FSM","Micronesia (Federated States of)":"FSM","Moldova, Republic of":"MDA","Republic of Moldova":"MDA","Palestine, State of":"PSE","State of Palestine":"PSE","Russian Federation":"RUS","Syrian Arab Republic":"SYR","Taiwan, Province of China":"TWN","Tanzania, United Republic of":"TZA","United Republic of Tanzania":"TZA","Venezuela, Bolivarian Republic of":"VEN","Venezuela (Bolivarian Republic of)":"VEN","Viet Nam":"VNM","Virgin Islands, British":"VGB","Virgin Islands, U.S.":"VIR","Saint Martin (French part)":"MAF","Sint Maarten (Dutch part)":"SXM","Netherlands (Kingdom of the)":"NLD","Macedonia, the former Yugoslav Republic of":"MKD",Kosovo:"XKX","Republic of Kosovo":"XKX"}),Vg=null,Qg=null;function N0(){if(Vg)return Vg;let e=new Map,t=[],a=["en",...jY.filter(n=>n!=="en")];for(let n of a){let i=null;try{i=new Intl.DisplayNames([n],{type:"region"})}catch{continue}for(let[o,s]of fr){let l;try{l=i.of(o)}catch{l=void 0}if(!l||l===o)continue;let u=Ca(l);u&&!e.has(u)&&e.set(u,s),t.push([l,s])}}for(let[n,i]of Object.entries(BY)){let o=Ca(n);o&&!e.has(o)&&e.set(o,i),t.push([n,i])}for(let[n,i]of Object.entries(FY)){let o=Ca(n);o&&e.set(o,i),t.push([n,i])}let r=new m0;for(let[n,i]of t){let o=Ca(n);e.get(o)===i&&(r.add(n,i),r.add(o,i))}return Vg=e,Qg=r,e}function HY(){return Qg||N0(),Qg}function nf(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;let a=Ca(t);return N0().get(a)||(B8(a)?null:HY().get(ef(t))??null)}function H8(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;let a=t.toUpperCase();return a.length===3&&af.has(a)?a:a.length===2&&tf.has(a)?fr.get(a)??null:nf(t)}var XM={europe:[-25,34,45,71.5],asia:[25,-11,150,56],africa:[-26,-35,58,38],"south-america":[-92,-56,-34,13],"north-america":[-168,7,-52,72],oceania:[110,-48,200,20]};function GY(e,t,a){let r=XM[a];return!r||e<r[1]||e>r[3]?!1:t>=r[0]&&t<=r[2]?!0:r[2]>180&&t+360>=r[0]&&t+360<=r[2]}var KY=[[24.4,49.4,-125,-66.9],[51.2,71.5,-168,-129.9],[18.9,22.3,-160.3,-154.8]],XY=[7,72,-172,-52];function FM(e,t,a){return e>=a[0]&&e<=a[1]&&t>=a[2]&&t<=a[3]}var Va=e=>Math.round(e*10)/10;function VM(e,t=3){let a=[],r=[],n=0,i=0,o=Object.keys(XM),s=new Map(o.map(h=>[h,0]));for(let h of e){let p=h?.lat,m=h?.lon;if(typeof p!="number"||typeof m!="number"||!isFinite(p)||!isFinite(m)||p<-90||p>90||m<-180||m>180)continue;a.push(p),r.push(m);for(let y of o)GY(p,m,y)&&s.set(y,s.get(y)+1);let g=h?.country?String(h.country).trim().toUpperCase():"",f=g?Ci(g):null;f?((g==="US"||g==="USA")&&n++,f==="north-america"&&i++):(KY.some(y=>FM(p,m,y))&&n++,FM(p,m,XY)&&i++)}let l=a.length;if(l<t)return null;a.sort((h,p)=>h-p),r.sort((h,p)=>h-p);let u={},c,d=0;for(let h of[...o].sort()){let p=s.get(h);u[h]=Va(p/l*100),p>d&&(d=p,c=h)}return{pctUsa:Va(n/l*100),pctNa:Va(i/l*100),latP5:Va(Xa(a,.05)),latP95:Va(Xa(a,.95)),lonP5:Va(Xa(r,.05)),lonP95:Va(Xa(r,.95)),n:l,regionPct:u,...c?{dominantFrame:c,dominantFramePct:Va(d/l*100)}:{}}}var BM={"north-america":"AG AI AW BB BL BM BQ BS BZ CA CR CU CW DM DO GD GL GP GT HN HT JM KN KY LC MF MQ MS MX NI PA PM PR SV SX TC TT US VC VG VI","south-america":"AR BO BR CL CO EC FK GF GY PE PY SR UY VE",europe:"AD AL AT AX BA BE BG BY CH CY CZ DE DK EE ES FI FO FR GB GG GI GR HR HU IE IM IS IT JE LI LT LU LV MC MD ME MK MT NL NO PL PT RO RS RU SE SI SJ SK SM UA VA XK",africa:"AO BF BI BJ BW CD CF CG CI CM CV DJ DZ EG EH ER ET GA GH GM GN GQ GW KE KM LR LS LY MA MG ML MR MU MW MZ NA NE NG RE RW SC SD SH SL SN SO SS ST SZ TD TG TN TZ UG YT ZA ZM ZW",asia:"AE AF AM AZ BD BH BN BT CC CN CX GE HK ID IL IN IO IQ IR JO JP KG KH KP KR KW KZ LA LB LK MM MN MO MV MY NP OM PH PK PS QA SA SG SY TH TJ TL TM TR TW UZ VN YE",oceania:"AS AU CK FJ FM GU KI MH MP NC NF NR NU NZ PF PG PN PW SB TK TO TV UM VU WF WS",antarctica:"AQ BV GS HM TF"},F8=(()=>{let e=new Map;for(let t of Object.keys(BM))for(let a of BM[t].split(/\s+/))a&&e.set(a,t);return e})();function VY(e){for(let[t,a]of e){let r=F8.get(t);r&&!F8.has(a)&&F8.set(a,r)}}VY(fr);function Ci(e){if(!e)return null;let t=String(e).trim().toUpperCase();if(!t)return null;let a=F8.get(t);if(a)return a;let r=H8(String(e));return r?F8.get(r)??null:null}function qM(e,t=2){let a=new Map,r=0;for(let[s,l]of e){let u=Ci(s);if(!u)continue;let c=typeof l=="number"&&isFinite(l)&&l>0?l:1;a.set(u,(a.get(u)??0)+c),r+=c}if(r<t||!a.size)return null;let n=0;for(let[s,l]of e)qY(s)&&(n+=typeof l=="number"&&isFinite(l)&&l>0?l:1);let i="europe",o=-1;for(let s of Array.from(a.keys()).sort()){let l=a.get(s);l>o&&(i=s,o=l)}return{dominantGeoRegion:i,dominantGeoRegionPct:Va(o/r*100),regionCount:a.size,middleEastPct:Va(Math.min(n,r)/r*100),n:r}}var ZM=new Set("AE BH CY EG IL IQ IR JO KW LB OM PS QA SA SY TR YE".split(" ")),HM=new Set([...ZM].map(e=>fr.get(e)).filter(e=>!!e));function qY(e){if(!e)return!1;let t=String(e).trim().toUpperCase();if(ZM.has(t)||HM.has(t))return!0;let a=H8(String(e));return!!a&&HM.has(a)}var ZY=Symbol.for("@bicharts/shape-core/admin1-lookup/v1"),An=(e=>e[ZY]??={lookup:null})(globalThis),JY=(()=>{let e=new Map;return fr.forEach((t,a)=>e.set(t,a)),e})();function JM(){return An.lookup!==null}function YM(e){let t=H8(e);return t?JY.get(t)??null:null}var YY=10;function QM(e,t={}){if(!An.lookup||!e)return{status:"unmatched"};let a=Ca(String(e)),r=An.lookup.cityByKey.get(a);if(!r||r.length===0)return{status:"unmatched"};let n=t.country?YM(t.country):null;if(t.country&&n?r=r.filter(c=>c.cc===n):t.region&&(r=r.filter(c=>Ci(c.cc)===t.region)),r.length===0)return{status:"unmatched"};let i=r.filter(c=>c.primary),o=i.length>0?i:r,s=new Map;for(let c of o){let d=`${c.cc}|${c.a1}|${c.lat}|${c.lon}`;s.has(d)||s.set(d,c)}let l=[...s.values()].sort((c,d)=>d.popK-c.popK),u=l[0];return l.length===1||u.popK>=YY*Math.max(l[1].popK,1)?!u.a1&&!u.pid?{status:"unmatched"}:{status:"resolved",cc:u.cc,admin1:u.a1,code:`${u.cc}.${u.a1}`,provinceId:u.pid||null,lat:u.lat,lon:u.lon,popK:u.popK}:{status:"ambiguous",candidates:l.length}}function ex(e,t){if(!An.lookup||!e)return[];let a=An.lookup.admin1ByKey.get(Ca(String(e)))??[],r=t?YM(t):null;return r?a.filter(n=>n.startsWith(r+".")):[...a]}function tx(e){return!An.lookup||!e?null:An.lookup.provinceOfCode.get(e)??null}function ax(e){return!An.lookup||!e?!1:An.lookup.provinceIds.has(String(e).trim().toUpperCase())}var QY={"north-america":"N",world:"W"};function eQ(e,t){let a=e.filter(r=>r.row.kinds.includes(QY[t||"north-america"]));return a.length?a:(t||"north-america")==="world"?e:a}var tQ=OM;var aQ={US:"washington",CA:"ottawa",MX:"mexico city",GB:"london",FR:"paris",DE:"berlin",IT:"rome",ES:"madrid",PT:"lisbon",NL:"amsterdam",BE:"brussels",CH:"bern",AT:"vienna",IE:"dublin",PL:"warsaw",SE:"stockholm",NO:"oslo",DK:"copenhagen",FI:"helsinki",IS:"reykjavik",CZ:"prague",SK:"bratislava",HU:"budapest",RO:"bucharest",BG:"sofia",GR:"athens",TR:"ankara",UA:"kyiv",RU:"moscow",RS:"belgrade",HR:"zagreb",SI:"ljubljana",EE:"tallinn",LV:"riga",LT:"vilnius",JP:"tokyo",CN:"beijing",KR:"seoul",KP:"pyongyang",IN:"new delhi",PK:"islamabad",BD:"dhaka",LK:"colombo",TH:"bangkok",VN:"hanoi",PH:"manila",ID:"jakarta",MY:"kuala lumpur",SG:"singapore",MM:"naypyidaw",KH:"phnom penh",LA:"vientiane",NP:"kathmandu",AF:"kabul",IR:"tehran",IQ:"baghdad",SA:"riyadh",AE:"abu dhabi",QA:"doha",KW:"kuwait city",BH:"manama",OM:"muscat",JO:"amman",LB:"beirut",SY:"damascus",IL:"jerusalem",YE:"sanaa",EG:"cairo",LY:"tripoli",TN:"tunis",DZ:"algiers",MA:"rabat",SD:"khartoum",ET:"addis ababa",KE:"nairobi",TZ:"dodoma",UG:"kampala",NG:"abuja",GH:"accra",CI:"yamoussoukro",SN:"dakar",ML:"bamako",CM:"yaounde",CD:"kinshasa",CG:"brazzaville",AO:"luanda",ZM:"lusaka",ZW:"harare",MZ:"maputo",BW:"gaborone",NA:"windhoek",ZA:"pretoria",AU:"canberra",NZ:"wellington",PG:"port moresby",FJ:"suva",BR:"brasilia",AR:"buenos aires",CL:"santiago",PE:"lima",CO:"bogota",VE:"caracas",EC:"quito",BO:"la paz",PY:"asuncion",UY:"montevideo",GY:"georgetown",SR:"paramaribo",CU:"havana",DO:"santo domingo",HT:"port au prince",JM:"kingston",TT:"port of spain",PA:"panama city",CR:"san jose",NI:"managua",HN:"tegucigalpa",SV:"san salvador",GT:"guatemala city",BZ:"belmopan",AZ:"baku",AM:"yerevan",GE:"tbilisi",KZ:"astana",UZ:"tashkent",TM:"ashgabat",KG:"bishkek",TJ:"dushanbe",MN:"ulaanbaatar",BY:"minsk",MD:"chisinau",AL:"tirana",MK:"skopje",BA:"sarajevo",ME:"podgorica",XK:"pristina",CY:"nicosia",MT:"valletta",LU:"luxembourg"},qg=null;function b0(){if(qg)return qg;let e=new Map,t=tQ,a=(r,n,i)=>{if(!r)return;let o=e.get(r);o?o.some(s=>s.row===n)||o.push({row:n,primary:i}):e.set(r,[{row:n,primary:i}])};for(let r of t.split(",")){let n=r.split("|");if(n.length<7)continue;let i={a1:n[1],cc:n[2],lon:+n[3],lat:+n[4],pop:+n[5],kinds:n[6]||"N"};n.length>8&&n[8]&&(i.tags=n[8].split(";").filter(Boolean));let o=aQ[i.cc];if(o&&Wn(n[0])===Wn(o)&&(i.tags||(i.tags=[]),i.tags.includes("capital")||i.tags.push("capital")),a(Ca(n[0]),i,!0),n.length>7&&n[7])for(let s of n[7].split(";"))a(Ca(s),i,!1)}for(let r of e.values())r.sort((n,i)=>i.row.pop-n.row.pop);return qg=e,e}var nQ=200,Zg=null;function nx(){if(Zg)return Zg;let e=new Map;for(let[t,a]of b0()){if(!t.endsWith(" city"))continue;let r=t.slice(0,-5);!r||b0().get(r)?.some(n=>n.primary)||a[0].row.pop<nQ||e.set(r,a)}return Zg=e,e}function rQ(e,t){if(!e)return;let a=GM(b0(),nx(),e);if(a)return a;if(B8(e))return;let r=t??Wn(e);if(pr(r))return GM(iQ(),oQ(),r)}function GM(e,t,a){let r=e.get(a);if(r?.some(o=>o.primary))return r;let n=t.get(a);if(!n)return r;let i=n.map(o=>({row:o.row,primary:!0}));return r?[...i,...r]:i}var Jg=null;function iQ(){return Jg||(Jg=rx(b0())),Jg}var Yg=null;function oQ(){return Yg||(Yg=rx(nx())),Yg}function rx(e){let t=new Map;for(let[a,r]of e){let n=Wn(a);if(!pr(n))continue;let i=t.get(n);if(!i){t.set(n,r.slice());continue}for(let o of r){let s=i.findIndex(l=>l.row===o.row);s<0?i.push(o):o.primary&&!i[s].primary&&(i[s]=o)}}for(let a of t.values())a.sort((r,n)=>n.row.pop-r.row.pop);return t}function ix(e){if(e==null)return null;let t=String(e).trim().replace(/\.0+$/,"");if(!t)return null;let a=/^(\d{5})(-\d{4})?$/.exec(t);return a?a[1]:/^\d{3,4}$/.test(t)?t.padStart(5,"0"):null}function rf(e,t){if(!e)return!1;let a=rQ(e);return a?eQ(a,t).length>0:!1}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var sQ="006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191193194195196197198199200201202203204205206207208209210211212214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310312313314315316317318319320321322323324325326327328329330331333334335336337338339341342344346347349350351352354355356357358359360361362363364365366367368369370371372373374376377378379380381382383384385386387388389390391392393394395396397398400401402403404405406407408409410411412413414415416417418420421422423424425426427430431432433434435436437438439440441442443444445446447448449450451452453454455456457458460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508510511512513514515516520521522523524525526527528530531532534535537538539540541542543544545546547548549550551553554556557558559560561562563564565566567570571572573574575576577580581582583584585586587588590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620622623624625626627628629630631633634635636637638639640641644645646647648650651652653654655656657658660661662664665666667668669670671672673674675676677678679680681683684685686687688689690691692693700701703704705706707708710711712713714716717718719720721722723724725726727728729730731734735736737738739740741743744745746747748749750751752753754755756757758759760761762763764765766767768769770772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816820821822823824825826827828829830831832833834835836837838840841843844845846847850851852853855856857859860863864865870871873874875877878879880881882883884890891893894895897898900902903904905906907908910911912913914915916917918919920921922923924925926927928930931932933934935936937939940941943944945946947948949950951952953954955956957958959960961967968969970971972973974975976977978979980981982983984985986988989990991992993994995996997998999",ox=new Set(sQ.match(/.{3}/g)??[]),lx=[["AL","Alabama"],["AK","Alaska"],["AZ","Arizona"],["AR","Arkansas"],["CA","California"],["CO","Colorado"],["CT","Connecticut"],["DE","Delaware"],["FL","Florida"],["GA","Georgia"],["HI","Hawaii"],["ID","Idaho"],["IL","Illinois"],["IN","Indiana"],["IA","Iowa"],["KS","Kansas"],["KY","Kentucky"],["LA","Louisiana"],["ME","Maine"],["MD","Maryland"],["MA","Massachusetts"],["MI","Michigan"],["MN","Minnesota"],["MS","Mississippi"],["MO","Missouri"],["MT","Montana"],["NE","Nebraska"],["NV","Nevada"],["NH","New Hampshire"],["NJ","New Jersey"],["NM","New Mexico"],["NY","New York"],["NC","North Carolina"],["ND","North Dakota"],["OH","Ohio"],["OK","Oklahoma"],["OR","Oregon"],["PA","Pennsylvania"],["RI","Rhode Island"],["SC","South Carolina"],["SD","South Dakota"],["TN","Tennessee"],["TX","Texas"],["UT","Utah"],["VT","Vermont"],["VA","Virginia"],["WA","Washington"],["WV","West Virginia"],["WI","Wisconsin"],["WY","Wyoming"],["DC","District of Columbia"],["PR","Puerto Rico"],["GU","Guam"],["VI","U.S. Virgin Islands"],["AS","American Samoa"],["MP","Northern Mariana Islands"]],lQ=new Set(lx.map(e=>e[0])),uQ={"Ala.":"AL","Alab.":"AL","Ariz.":"AZ","Ark.":"AR","Calif.":"CA","Cal.":"CA","Colo.":"CO","Col.":"CO","Conn.":"CT","Del.":"DE","Fla.":"FL","Flor.":"FL","Ga.":"GA","Ill.":"IL","Ind.":"IN","Kan.":"KS","Kans.":"KS","Ky.":"KY","La.":"LA","Md.":"MD","Mass.":"MA","Mich.":"MI","Minn.":"MN","Miss.":"MS","Mo.":"MO","Mont.":"MT","Neb.":"NE","Nebr.":"NE","Nev.":"NV","N.H.":"NH","N.J.":"NJ","N.M.":"NM","N.Mex.":"NM","N. Mex.":"NM","N.Y.":"NY","N.C.":"NC","N.D.":"ND","N.Dak.":"ND","N. Dak.":"ND","Okla.":"OK","Ore.":"OR","Oreg.":"OR","Pa.":"PA","Penn.":"PA","Penna.":"PA","R.I.":"RI","S.C.":"SC","S.D.":"SD","S.Dak.":"SD","S. Dak.":"SD","Tenn.":"TN","Tex.":"TX","Vt.":"VT","Va.":"VA","Wash.":"WA","W.Va.":"WV","W. Va.":"WV","Wis.":"WI","Wisc.":"WI","Wyo.":"WY","D.C.":"DC","Wash. D.C.":"DC","Wash., D.C.":"DC","P.R.":"PR","V.I.":"VI"},lf=(()=>{let e=new Map;for(let[t,a]of lx)e.set(f3(a),t);e.set(f3("Washington DC"),"DC"),e.set(f3("Washington D.C."),"DC"),e.set(f3("US Virgin Islands"),"VI");for(let[t,a]of Object.entries(uQ)){let r=f3(t);r&&!e.has(r)&&e.set(r,a)}return e})(),cQ=(()=>{let e=new m0;for(let[t,a]of lf)e.add(t,a);return e})();function dQ(e){let t=f3(e);return lf.get(t)||(B8(t)?null:cQ.get(ef(e))??null)}var hQ=new Set(["01","02","04","05","06","08","09","10","11","12","13","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","44","45","46","47","48","49","50","51","53","54","55","56","60","66","69","72","78"]);function pQ(e){return e.trim().toUpperCase()}function f3(e){return Ca(e)}var of=new Set(["country","countries","nation","nationality","iso","geo"]),sf=new Set(["state","province","st"]),sx=new Set(["zip","zipcode","postal","postcode","plz"]),mQ=new Set(["county","fips","borough","parish"]),uf=new Set(["city","cities","town","municipality","metro","location","place"]);function qa(e,t){if(!e)return!1;for(let a of Wa(e))if(t.has(a))return!0;return!1}var gQ=95,cf=5,fQ=6e4;function ux(e,t,a){if(!e||e.length===0)return null;let r=[],n=new Set;for(let D of e){if(D==null)continue;let $=String(D).trim();if($.length===0||B8(f3($)))continue;let J=$.toLowerCase();if(!n.has(J)&&(n.add(J),r.push($),r.length>fQ))return null}let i=r.length;if(i<2)return null;let o=r.map(pQ),s=r.map(f3),l=N0(),u=0,c=0,d=0,h=0,p=0,m=0,g=0,f=0,y=0,b=0,v=0,k=0,w=D=>(ix(D)??"").slice(0,3),S=0,M=0,U=0,W=qa(t,sx);for(let D=0;D<i;++D){let $=o[D],J=s[D],F=r[D],Z=tf.has($),oe=lQ.has($);af.has($)&&u++,Z&&c++,oe&&d++,Z&&oe&&S++;let G=l.has(J)||nf(F)!==null,ee=lf.has(J)||dQ(F)!==null;G&&h++,ee&&p++,G&&ee&&M++,H8(F)&&b++,oe&&ee&&U++,/^\d{5}(-\d{4})?$/.test(F)||W&&/^\d{3,4}$/.test(F)?(m++,ox.has(w(F))&&k++):/^\d{4}$/.test(F)&&v++,/^\d{5}$/.test(F)&&hQ.has(F.slice(0,2))&&g++,rf(J)&&f++,rf(J,"world")&&y++}if(!W&&m>0){m+=v;for(let D of r)/^\d{4}$/.test(D)&&ox.has(w(D))&&k++}let A=D=>D/i*100,R=[],j=(D,$,J,F=!1)=>{let Z=A($),oe=D==="city-name"||D==="city-name-world";Z<(oe?v0:gQ)||$<2||F&&$<cf&&!qa(t,D==="country-name"?of:oe?uf:sf)||R.push({kind:D,matched:$,spec:J,pct:Z})};j("country-iso3",u,6),j("country-name",h,5,!0),j("us-state-name",p,5,!0),j("us-zip5",m,4),j("us-county-fips",g,4),j("country-iso2",c,3),j("us-state-code",d,3);let C=R.length;j("city-name",f,2,!0),R.length===C&&j("city-name-world",y,2,!0);let N=d-U,x=p-U;N>0&&x>0&&j("us-state-name",d+p-U,5,!0);let I=Math.max(u,c,h);if(b>I){let D=u===I?"country-iso3":h===I?"country-name":"country-iso2";j(D,b,D==="country-iso3"?6:D==="country-name"?5:3,D==="country-name")}if(R.length===0)return null;R.sort((D,$)=>$.pct-D.pct||$.spec-D.spec);let P=R[0],E=!1,B={"country-iso2":"us-state-code","us-state-code":"country-iso2","us-zip5":"us-county-fips","us-county-fips":"us-zip5","country-name":"us-state-name","us-state-name":"country-name"}[P.kind],O=R[1],q=B&&O&&O.kind===B&&Math.abs(P.pct-O.pct)<=15;if(P.kind==="country-iso2"||P.kind==="us-state-code"){let D=P.matched>0?S/P.matched:0,$=qa(t,of),J=qa(t,sf);if(q||D>=.5){if($&&!J)return L("country-iso2",c,!1);if(J&&!$)return L("us-state-code",d,!1);E=!0}}else if(P.kind==="us-zip5"||P.kind==="us-county-fips"){let D=g===m&&m===i,$=qa(t,sx),J=qa(t,mQ);return J&&!$?L("us-county-fips",g,!1):$&&!J?L("us-zip5",m,!1):D?L("us-zip5",m,!0):L("us-zip5",m,!1)}else if(q&&(P.kind==="country-name"||P.kind==="us-state-name")){let D=P.matched>0?M/P.matched:0,$=qa(t,of),J=qa(t,sf);if($&&!J)return L("country-name",h,!1);if(J&&!$)return L("us-state-name",p,!1);D>=.5&&(E=!0)}return L(P.kind,P.matched,E);function L(D,$,J){let F={geoKind:D,geoMatchPct:Math.round(A(D==="us-zip5"?k:$)*10)/10};return J&&(F.geoAmbiguous=!0),F}}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Uhe=Object.freeze({hour:24,weekday:7,month:12,quarter:4,week:53,season:4}),yQ={nl:["jaar"],de:["jahr"],fr:["ann\xE9e"],es:["a\xF1o"],pt:["ano"],it:["anno"],pl:["rok"],cs:["rok"],sk:["rok"],sv:["\xE5r"],da:["\xE5r"],nb:["\xE5r"],fi:["vuosi"],hu:["\xE9v"],tr:["y\u0131l"],ro:["anul"],hr:["godina"],id:["tahun"],vi:["n\u0103m"],ru:["\u0433\u043E\u0434"],uk:["\u0440\u0456\u043A"],el:["\u03AD\u03C4\u03BF\u03C2"],zh:["\u5E74\u4EFD","\u5E74\u5EA6"],ja:["\u5E74\u5EA6"],ko:["\uC5F0\uB3C4","\uB144\uB3C4"],ar:["\u0633\u0646\u0629"],he:["\u05E9\u05E0\u05D4"],hi:["\u0935\u0930\u094D\u0937","\u0938\u093E\u0932"],th:["\u0E1B\u0E35\u0E07\u0E1A\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13"],fa:["\u0633\u0627\u0644"]},cx={hour:{de:["stunde"],fr:["heure"],es:["hora"],pt:["hora"],it:["ora"],pl:["godzina"],cs:["hodina"],sk:["hodina"],sv:["timme"],fi:["tunti"],hu:["\xF3ra"],ro:["ora"],vi:["gi\u1EDD"],ru:["\u0447\u0430\u0441"],uk:["\u0433\u043E\u0434\u0438\u043D\u0430"],el:["\u03CE\u03C1\u03B1"],zh:["\u5C0F\u65F6"],ar:["\u0633\u0627\u0639\u0629"],he:["\u05E9\u05E2\u05D4"],hi:["\u0918\u0902\u091F\u093E"],th:["\u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07"],fa:["\u0633\u0627\u0639\u062A"]},weekday:{nl:["weekdag"],de:["wochentag"],sv:["veckodag"],da:["ugedag"],nb:["ukedag"],fi:["viikonp\xE4iv\xE4"],zh:["\u661F\u671F"],ja:["\u66DC\u65E5"],ko:["\uC694\uC77C"]},month:{nl:["maand"],de:["monat"],fr:["mois"],es:["mes"],pt:["m\xEAs"],it:["mese"],pl:["miesi\u0105c"],cs:["m\u011Bs\xEDc"],sk:["mesiac"],sv:["m\xE5nad"],da:["m\xE5ned"],nb:["m\xE5ned"],fi:["kuukausi"],hu:["h\xF3nap"],hr:["mjesec"],id:["bulan"],vi:["th\xE1ng"],ru:["\u043C\u0435\u0441\u044F\u0446"],uk:["\u043C\u0456\u0441\u044F\u0446\u044C"],el:["\u03BC\u03AE\u03BD\u03B1\u03C2"],zh:["\u6708\u4EFD"],ar:["\u0634\u0647\u0631"],he:["\u05D7\u05D5\u05D3\u05E9"],hi:["\u092E\u0939\u0940\u0928\u093E","\u092E\u093E\u0939"],th:["\u0E40\u0E14\u0E37\u0E2D\u0E19"],fa:["\u0645\u0627\u0647"]},quarter:{nl:["kwartaal"],de:["quartal"],fr:["trimestre"],es:["trimestre"],pt:["trimestre"],it:["trimestre"],pl:["kwarta\u0142"],cs:["\u010Dtvrtlet\xED"],sk:["\u0161tvr\u0165rok"],sv:["kvartal"],da:["kvartal"],nb:["kvartal"],fi:["vuosinelj\xE4nnes"],hu:["negyed\xE9v"],tr:["\xE7eyrek"],ro:["trimestru"],hr:["tromjese\u010Dje"],id:["kuartal","triwulan"],vi:["qu\xFD"],ru:["\u043A\u0432\u0430\u0440\u0442\u0430\u043B"],uk:["\u043A\u0432\u0430\u0440\u0442\u0430\u043B"],el:["\u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF"],zh:["\u5B63\u5EA6"],ja:["\u56DB\u534A\u671F"],ko:["\uBD84\uAE30"],ar:["\u0631\u0628\u0639"],he:["\u05E8\u05D1\u05E2\u05D5\u05DF"],hi:["\u0924\u093F\u092E\u093E\u0939\u0940"],th:["\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A"]},week:{de:["woche"],fr:["semaine"],es:["semana"],pt:["semana"],it:["settimana"],pl:["tydzie\u0144"],cs:["t\xFDden"],sk:["t\xFD\u017Ede\u0148"],sv:["vecka"],da:["uge"],nb:["uke"],fi:["viikko"],hu:["h\xE9t"],tr:["hafta"],ro:["s\u0103pt\u0103m\xE2n\u0103"],hr:["tjedan"],id:["minggu"],vi:["tu\u1EA7n"],ru:["\u043D\u0435\u0434\u0435\u043B\u044F"],uk:["\u0442\u0438\u0436\u0434\u0435\u043D\u044C"],el:["\u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1"],ar:["\u0623\u0633\u0628\u0648\u0639"],he:["\u05E9\u05D1\u05D5\u05E2"],hi:["\u0938\u092A\u094D\u0924\u093E\u0939"],th:["\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C"],fa:["\u0647\u0641\u062A\u0647"]},season:{nl:["seizoen"],de:["jahreszeit"],fr:["saison"],es:["temporada"],it:["stagione"],pl:["sezon"],cs:["sez\xF3na"],sk:["sez\xF3na"],sv:["s\xE4song","\xE5rstid"],da:["s\xE6son","\xE5rstid"],nb:["sesong","\xE5rstid"],fi:["vuodenaika"],hu:["\xE9vszak"],tr:["mevsim"],ro:["anotimp"],vi:["m\xF9a"],ru:["\u0441\u0435\u0437\u043E\u043D"],uk:["\u0441\u0435\u0437\u043E\u043D"],el:["\u03B5\u03C0\u03BF\u03C7\u03AE"],zh:["\u5B63\u8282"],ja:["\u5B63\u7BC0"],ko:["\uACC4\uC808"],ar:["\u0645\u0648\u0633\u0645"],he:["\u05E2\u05D5\u05E0\u05D4"],hi:["\u092E\u094C\u0938\u092E"],th:["\u0E24\u0E14\u0E39"],fa:["\u0641\u0635\u0644"]}},bQ=["\xE5r","\xE9v","h\xE9t","\xF3ra"];function vQ(e,t,a){let r=Ga(a);if(!r)return null;let n=t.normalize("NFC").toLowerCase(),i=gr(e).words;return i.includes(n)?"word":r.compounds&&i.some(o=>wi(o,n,D8))?"suffix":null}function wx(e,t){let a=String(e??"");if(!a.trim())return null;for(let[r,n]of Object.entries(t))for(let i of n){let o=bQ.includes(i)?vQ(a,i,r):jM(a,i,r);if(o)return{lang:r,word:i,view:o}}return null}function pf(e){return wx(e,yQ)}function NQ(e){let t=null;for(let a of Object.keys(cx)){let r=wx(e,cx[a]);if(r){if(t&&t.concept!==a)return null;t={concept:a,hit:r}}}return t}var SQ=Object.freeze({quarter:4,half:2,week:53}),Ai={quarter:{en:{words:["quarter #","qtr #"],codes:["q #"]},nl:{words:["kwartaal #","# kwartaal","#e kwartaal","@ kwartaal"],codes:["k #"]},de:{words:["quartal #","# quartal","@ quartal"]},fr:{words:["trimestre #","# trimestre","#er trimestre","#e trimestre","#eme trimestre","@ trimestre"],codes:["t #","# t","trim. #"]},es:{words:["trimestre #","# trimestre","#er trimestre","#o trimestre","#\xBA trimestre","#\xB0 trimestre","@ trimestre"],codes:["t #","# t","trim. #"]},pt:{words:["trimestre #","# trimestre","#o trimestre","#\xBA trimestre","#\xB0 trimestre","@ trimestre"],codes:["t #","# t","#\xBA t","trim. #"]},it:{words:["trimestre #","# trimestre","#\xBA trimestre","#\xB0 trimestre","% trimestre","@ trimestre"],codes:["t #","trim. #"]},pl:{words:["kwarta\u0142 #","# kwarta\u0142","% kwarta\u0142","@ kwarta\u0142","# kw.","% kw."]},cs:{words:["\u010Dtvrtlet\xED #","# \u010Dtvrtlet\xED","% \u010Dtvrtlet\xED","@ \u010Dtvrtlet\xED"]},sk:{words:["\u0161tvr\u0165rok #","# \u0161tvr\u0165rok","% \u0161tvr\u0165rok","@ \u0161tvr\u0165rok"]},sv:{words:["kvartal #","# kvartalet","#:a kvartalet","#:e kvartalet","@ kvartalet"],codes:["k #"]},da:{words:["kvartal #","# kvartal","@ kvartal"],codes:["k #"]},nb:{words:["kvartal #","# kvartal","@ kvartal"],codes:["k #"]},fi:{words:["nelj\xE4nnes #","# nelj\xE4nnes","# vuosinelj\xE4nnes","vuosinelj\xE4nnes #"]},hu:{words:["negyed\xE9v #","# negyed\xE9v","% negyed\xE9v"]},tr:{words:["\xE7eyrek #","# \xE7eyrek","@ \xE7eyrek"],codes:["\xE7 #"]},ro:{words:["trimestrul #","trimestrul %","trimestru #"],codes:["t #"]},hr:{words:["tromjese\u010Dje #","# tromjese\u010Dje","% tromjese\u010Dje","kvartal #","# kvartal"]},id:{words:["kuartal #","kuartal %","kuartal ke #","triwulan #","triwulan %","triwulan ke #"],codes:["tw #","tw %"]},vi:{words:["qu\xFD #","qu\xFD %"]},ru:{words:["\u043A\u0432\u0430\u0440\u0442\u0430\u043B #","# \u043A\u0432\u0430\u0440\u0442\u0430\u043B","% \u043A\u0432\u0430\u0440\u0442\u0430\u043B","@ \u043A\u0432\u0430\u0440\u0442\u0430\u043B","# \u043A\u0432.","% \u043A\u0432."]},uk:{words:["\u043A\u0432\u0430\u0440\u0442\u0430\u043B #","# \u043A\u0432\u0430\u0440\u0442\u0430\u043B","% \u043A\u0432\u0430\u0440\u0442\u0430\u043B","@ \u043A\u0432\u0430\u0440\u0442\u0430\u043B","# \u043A\u0432.","% \u043A\u0432."]},el:{words:["\u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF #","# \u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF","#\u03BF \u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF","@ \u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF"]},zh:{words:["\u7B2C#\u5B63\u5EA6","\u7B2C@\u5B63\u5EA6","@\u5B63\u5EA6","#\u5B63\u5EA6"]},ja:{words:["\u7B2C#\u56DB\u534A\u671F","\u7B2C@\u56DB\u534A\u671F","#\u56DB\u534A\u671F"],codes:["# q"]},ko:{words:["#\uBD84\uAE30","#/4\uBD84\uAE30"]},ar:{words:["\u0627\u0644\u0631\u0628\u0639 #","\u0627\u0644\u0631\u0628\u0639 @","\u0631\u0628\u0639 #"]},he:{words:["\u05E8\u05D1\u05E2\u05D5\u05DF #","\u05E8\u05D1\u05E2\u05D5\u05DF @"]},hi:{words:["\u0924\u093F\u092E\u093E\u0939\u0940 #","# \u0924\u093F\u092E\u093E\u0939\u0940","@ \u0924\u093F\u092E\u093E\u0939\u0940"]},th:{words:["\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A #","\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A\u0E17\u0E35\u0E48 #"]}},half:{en:{words:["half #"],codes:["h #"]},nl:{words:["halfjaar #","# halfjaar","@ halfjaar"]},de:{words:["halbjahr #","# halbjahr","@ halbjahr"],codes:["hj #"]},fr:{words:["semestre #","# semestre","#er semestre","#e semestre","#eme semestre","@ semestre"],codes:["s #"]},es:{words:["semestre #","# semestre","#er semestre","#o semestre","#\xBA semestre","#\xB0 semestre","@ semestre"],codes:["s #","# s"]},pt:{words:["semestre #","# semestre","#o semestre","#\xBA semestre","#\xB0 semestre","@ semestre"],codes:["s #","# s"]},it:{words:["semestre #","# semestre","#\xBA semestre","#\xB0 semestre","% semestre","@ semestre"],codes:["s #"]},pl:{words:["p\xF3\u0142rocze #","# p\xF3\u0142rocze","% p\xF3\u0142rocze","@ p\xF3\u0142rocze"]},cs:{words:["pololet\xED #","# pololet\xED","% pololet\xED","@ pololet\xED"]},sk:{words:["polrok #","# polrok","% polrok"]},sv:{words:["halv\xE5r #","# halv\xE5ret","@ halv\xE5ret"]},da:{words:["halv\xE5r #","# halv\xE5r","@ halv\xE5r"]},nb:{words:["halv\xE5r #","# halv\xE5r","@ halv\xE5r"]},fi:{words:["vuosipuolisko #","# vuosipuolisko"]},hu:{words:["f\xE9l\xE9v #","# f\xE9l\xE9v","% f\xE9l\xE9v"]},tr:{words:["yar\u0131y\u0131l #","# yar\u0131y\u0131l","@ yar\u0131y\u0131l"]},ro:{words:["semestrul #","semestrul %"],codes:["s #"]},hr:{words:["polugodi\u0161te #","# polugodi\u0161te","% polugodi\u0161te"]},id:{words:["semester #","semester %"]},ru:{words:["\u043F\u043E\u043B\u0443\u0433\u043E\u0434\u0438\u0435 #","# \u043F\u043E\u043B\u0443\u0433\u043E\u0434\u0438\u0435","% \u043F\u043E\u043B\u0443\u0433\u043E\u0434\u0438\u0435","@ \u043F\u043E\u043B\u0443\u0433\u043E\u0434\u0438\u0435"]},uk:{words:["\u043F\u0456\u0432\u0440\u0456\u0447\u0447\u044F #","# \u043F\u0456\u0432\u0440\u0456\u0447\u0447\u044F","% \u043F\u0456\u0432\u0440\u0456\u0447\u0447\u044F","@ \u043F\u0456\u0432\u0440\u0456\u0447\u0447\u044F"]},el:{words:["\u03B5\u03BE\u03AC\u03BC\u03B7\u03BD\u03BF #","# \u03B5\u03BE\u03AC\u03BC\u03B7\u03BD\u03BF","#\u03BF \u03B5\u03BE\u03AC\u03BC\u03B7\u03BD\u03BF","@ \u03B5\u03BE\u03AC\u03BC\u03B7\u03BD\u03BF"]},zh:{words:["\u4E0A\u534A\u5E74=1","\u4E0B\u534A\u5E74=2"]},ja:{words:["\u4E0A\u671F=1","\u4E0B\u671F=2","\u4E0A\u534A\u671F=1","\u4E0B\u534A\u671F=2"]},ko:{words:["\uC0C1\uBC18\uAE30=1","\uD558\uBC18\uAE30=2"]},ar:{words:["\u0627\u0644\u0646\u0635\u0641 @"]},he:{words:["\u05D7\u05E6\u05D9\u05D5\u05DF #"]},hi:{words:["\u091B\u092E\u093E\u0939\u0940 #","@ \u091B\u092E\u093E\u0939\u0940"]},th:{words:["\u0E04\u0E23\u0E36\u0E48\u0E07\u0E1B\u0E35\u0E41\u0E23\u0E01=1","\u0E04\u0E23\u0E36\u0E48\u0E07\u0E1B\u0E35\u0E2B\u0E25\u0E31\u0E07=2"]}},week:{en:{words:["week #","wk #"],codes:["w #"]},de:{words:["woche #","# woche","kw #"]},fr:{words:["semaine #","sem. #"],codes:["s #"]},es:{words:["semana #","sem. #"],codes:["s #"]},pt:{words:["semana #","sem. #"],codes:["s #"]},it:{words:["settimana #","sett. #"]},pl:{words:["tydzie\u0144 #","# tydzie\u0144","tydz. #"]},cs:{words:["t\xFDden #","# t\xFDden"]},sk:{words:["t\xFD\u017Ede\u0148 #","# t\xFD\u017Ede\u0148"]},sv:{words:["vecka #"],codes:["v #"]},da:{words:["uge #"]},nb:{words:["uke #"]},fi:{words:["viikko #","vko #","vk #"]},hu:{words:["h\xE9t #","# h\xE9t"]},tr:{words:["hafta #","# hafta"]},ro:{words:["s\u0103pt\u0103m\xE2na #"]},hr:{words:["tjedan #","# tjedan"]},id:{words:["minggu #","minggu ke #"]},vi:{words:["tu\u1EA7n #"]},ru:{words:["\u043D\u0435\u0434\u0435\u043B\u044F #","# \u043D\u0435\u0434\u0435\u043B\u044F","\u043D\u0435\u0434. #"]},uk:{words:["\u0442\u0438\u0436\u0434\u0435\u043D\u044C #","# \u0442\u0438\u0436\u0434\u0435\u043D\u044C","\u0442\u0438\u0436. #"]},el:{words:["\u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1 #","# \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1"]},zh:{words:["\u7B2C#\u5468"]},ja:{words:["\u7B2C#\u9031"]},ko:{words:["#\uC8FC","#\uC8FC\uCC28"]},ar:{words:["\u0627\u0644\u0623\u0633\u0628\u0648\u0639 #","\u0623\u0633\u0628\u0648\u0639 #"]},he:{words:["\u05E9\u05D1\u05D5\u05E2 #"]},hi:{words:["\u0938\u092A\u094D\u0924\u093E\u0939 #"]},th:{words:["\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C #","\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C\u0E17\u0E35\u0E48 #"]}}},Wx={nl:[["eerste"],["tweede"],["derde"],["vierde"]],de:[["erstes","erste"],["zweites","zweite"],["drittes","dritte"],["viertes","vierte"]],fr:[["premier"],["deuxi\xE8me","second"],["troisi\xE8me"],["quatri\xE8me"]],es:[["primer","primero"],["segundo"],["tercer","tercero"],["cuarto"]],pt:[["primeiro"],["segundo"],["terceiro"],["quarto"]],it:[["primo"],["secondo"],["terzo"],["quarto"]],pl:[["pierwszy","pierwsze"],["drugi","drugie"],["trzeci","trzecie"],["czwarty","czwarte"]],cs:[["prvn\xED"],["druh\xE9","druh\xFD"],["t\u0159et\xED"],["\u010Dtvrt\xE9","\u010Dtvrt\xFD"]],sk:[["prv\xFD"],["druh\xFD"],["tret\xED"],["\u0161tvrt\xFD"]],sv:[["f\xF6rsta"],["andra"],["tredje"],["fj\xE4rde"]],da:[["f\xF8rste"],["andet","anden"],["tredje"],["fjerde"]],nb:[["f\xF8rste"],["andre"],["tredje"],["fjerde"]],tr:[["birinci","ilk"],["ikinci"],["\xFC\xE7\xFCnc\xFC"],["d\xF6rd\xFCnc\xFC"]],ru:[["\u043F\u0435\u0440\u0432\u044B\u0439","\u043F\u0435\u0440\u0432\u043E\u0435"],["\u0432\u0442\u043E\u0440\u043E\u0439","\u0432\u0442\u043E\u0440\u043E\u0435"],["\u0442\u0440\u0435\u0442\u0438\u0439","\u0442\u0440\u0435\u0442\u044C\u0435"],["\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044B\u0439","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043E\u0435"]],uk:[["\u043F\u0435\u0440\u0448\u0438\u0439","\u043F\u0435\u0440\u0448\u0435"],["\u0434\u0440\u0443\u0433\u0438\u0439","\u0434\u0440\u0443\u0433\u0435"],["\u0442\u0440\u0435\u0442\u0456\u0439","\u0442\u0440\u0435\u0442\u0454"],["\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438\u0439","\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0435"]],el:[["\u03C0\u03C1\u03CE\u03C4\u03BF"],["\u03B4\u03B5\u03CD\u03C4\u03B5\u03C1\u03BF"],["\u03C4\u03C1\u03AF\u03C4\u03BF"],["\u03C4\u03AD\u03C4\u03B1\u03C1\u03C4\u03BF"]],zh:[["\u4E00"],["\u4E8C"],["\u4E09"],["\u56DB"]],ja:[["\u4E00"],["\u4E8C"],["\u4E09"],["\u56DB"]],ar:[["\u0627\u0644\u0623\u0648\u0644"],["\u0627\u0644\u062B\u0627\u0646\u064A"],["\u0627\u0644\u062B\u0627\u0644\u062B"],["\u0627\u0644\u0631\u0627\u0628\u0639"]],he:[["\u05E8\u05D0\u05E9\u05D5\u05DF"],["\u05E9\u05E0\u05D9"],["\u05E9\u05DC\u05D9\u05E9\u05D9"],["\u05E8\u05D1\u05D9\u05E2\u05D9"]],hi:[["\u092A\u0939\u0932\u0940","\u092A\u0939\u0932\u093E"],["\u0926\u0942\u0938\u0930\u0940","\u0926\u0942\u0938\u0930\u093E"],["\u0924\u0940\u0938\u0930\u0940","\u0924\u0940\u0938\u0930\u093E"],["\u091A\u094C\u0925\u0940","\u091A\u094C\u0925\u093E"]]},kQ=["\xE7 #"],wQ=String.raw`[\s\-_./]*`,WQ={i:1,ii:2,iii:3,iv:4};function yr(e,t){let a=String(e??"").normalize("NFC").toLowerCase();return t||(a=Cn(a)),a.replace(/[\s_]+/g," ").trim().replace(/\.+$/,"").trim()}function dx(e){return/[.*+?^${}()|[\]\\]/.test(e)?"\\"+e:e}function hx(e,t,a,r){let n=!!Ga(t)?.foldSensitive||kQ.includes(e),i=e,o=null,s=/=(\d+)$/.exec(i);s&&(o=Number(s[1]),i=i.slice(0,s.index));let l=(Wx[t]??[]).map(d=>d.map(h=>yr(h,n))),u=o!==null?{kind:"fixed",n:o}:{kind:"digits"},c="";for(let d of yr(i,n))if(d==="#")c+="([0-9]{1,2})",u={kind:"digits"};else if(d==="%")c+="(iv|iii|ii|i)",u={kind:"roman"};else if(d==="@"){let h=l.flat().sort((p,m)=>m.length-p.length).map(p=>[...p].map(dx).join(""));c+="("+h.join("|")+")",u={kind:"ordinal",words:l}}else d===" "?c+=wQ:d==="."?c+="\\.?":c+=dx(d);return{lang:t,grain:a,form:r,unfold:n,re:new RegExp("^"+c+"$","u"),number:u}}var df=null;function CQ(){if(df)return df;let e=[];for(let t of Object.keys(Ai))for(let[a,r]of Object.entries(Ai[t])){for(let n of r.words??[])e.push(hx(n,a,t,"word"));for(let n of r.codes??[])e.push(hx(n,a,t,"code"))}return df=e,e}var px=/^[0-9]+$/,mx=/^[0-9]/,gx=/[0-9]$/,AQ=/^[\s\-_./,']*/,_Q=/[\s\-_./,']*$/,MQ=/^(年|년)/u;function fx(e){if(e.length===4){let t=Number(e);return t>=1900&&t<=2099?t:null}return 2e3+Number(e)}function yx(e){let t=[{body:e,year:null,yearDigits:0}];for(let a of[4,2]){if(e.length<=a)continue;let r=e.slice(0,a);if(px.test(r)&&!mx.test(e.slice(a))){let o=e.slice(a),s=MQ.exec(o),l=s?o.slice(s[0].length):o,u=AQ.exec(l)[0],c=l.slice(u.length),d=fx(r);c&&d!==null&&(s||u||!mx.test(c))&&t.push({body:c,year:d,yearDigits:a})}let n=e.slice(e.length-a),i=e.slice(0,e.length-a);if(px.test(n)&&!gx.test(i)){let o=_Q.exec(i)[0],s=i.slice(0,i.length-o.length),l=fx(n);s&&l!==null&&(o||!gx.test(s))&&t.push({body:s,year:l,yearDigits:a})}}return t}var S0=null;function xQ(){if(S0)return S0;let e=new Set;for(let[t,a]of Object.entries(Wx)){let r=!!Ga(t)?.foldSensitive;for(let n of a)for(let i of n)e.add(yr(i,!1)),r&&e.add(yr(i,!0))}for(let t of Object.keys(Ai))for(let a of Object.values(Ai[t]))for(let r of a?.words??[]){let n=/=[0-9]+$/.exec(r);n&&e.add(yr(r.slice(0,n.index),!1))}return S0=[...e],S0}var IQ=/[0-9]/,PQ=/(^|[^\p{L}])(iv|iii|ii|i)([^\p{L}]|$)/u;function bx(e){return IQ.test(e)||PQ.test(e)?!0:xQ().some(t=>e.includes(t))}function UQ(e,t){switch(e.number.kind){case"fixed":return e.number.n;case"digits":return t[1]===void 0?null:Number(t[1]);case"roman":return t[1]===void 0?null:WQ[t[1]]??null;case"ordinal":{let a=t[1],r=e.number.words.findIndex(n=>n.includes(a));return r<0?null:r+1}}}function k0(e){let t=String(e??"");if(!t.trim()||t.length>40)return[];let a=yr(t,!1),r=yr(t,!0);if(!bx(a)&&!bx(r))return[];let n=yx(a),i=yx(r),o=[],s=new Set;for(let l of CQ()){let u=l.lang+"|"+l.grain;if(!s.has(u))for(let c of l.unfold?i:n){let d=l.re.exec(c.body);if(!d)continue;let h=UQ(l,d);if(!(h===null||h<1||h>SQ[l.grain])){o.push({lang:l.lang,grain:l.grain,n:h,year:c.year,yearDigits:c.yearDigits,form:l.form}),s.add(u);break}}}return o}function TQ(e,t=()=>!0){if(e.length===0)return null;let a=e.map(r=>k0(r).filter(t));if(a.some(r=>r.length===0))return null;for(let r of Object.keys(Ai))for(let n of Object.keys(Ai[r])){let i=[],o=0;for(let s of a){let l=s.find(c=>c.grain===r&&c.lang===n),u=s.find(c=>c.grain===r&&c.lang==="en")??l;if(!u)break;u.lang===n&&o++,i.push(u)}if(i.length===e.length&&(n==="en"||o>0))return{lang:n,grain:r,readings:i}}return null}var Cx=[{name:"likert7_agreement",minMatches:5,canonical:["strongly disagree","disagree","slightly disagree","neutral","slightly agree","agree","strongly agree"]},{name:"likert5_agreement",minMatches:3,canonical:["strongly disagree","disagree","neutral","agree","strongly agree"]},{name:"likert3_agreement",minMatches:2,canonical:["disagree","neutral","agree"]},{name:"likert5_satisfaction",minMatches:3,canonical:["very dissatisfied","dissatisfied","neutral","satisfied","very satisfied"]},{name:"likert3_satisfaction",minMatches:2,canonical:["dissatisfied","neutral","satisfied"]},{name:"likert5_quality",minMatches:3,canonical:["poor","fair","good","very good","excellent"]},{name:"likert3_quality",minMatches:2,canonical:["poor","fair","good"]},{name:"frequency5",minMatches:3,canonical:["never","rarely","sometimes","often","always"]},{name:"intensity5",minMatches:3,canonical:["not at all","slightly","moderately","very","extremely"]},{name:"importance5",minMatches:3,canonical:["not important","slightly important","moderately important","very important","extremely important"]},{name:"severity_low_critical",minMatches:3,canonical:["low","medium","high","critical"]},{name:"severity_low_urgent",minMatches:3,canonical:["low","medium","high","urgent"]},{name:"severity_none_critical",minMatches:3,canonical:["none","mild","moderate","severe","critical"]},{name:"priority_p4_p1",minMatches:3,canonical:["p4","p3","p2","p1","p0"]},{name:"severity_trivial_blocker",minMatches:3,canonical:["trivial","minor","major","critical","blocker"]},{name:"severity_minor_severe",minMatches:3,canonical:["minor","moderate","major","severe"]},{name:"magnitude5_medium",minMatches:3,canonical:["very low","low","medium","high","very high"]},{name:"magnitude5_moderate",minMatches:3,canonical:["very low","low","moderate","high","very high"]},{name:"speed5",minMatches:3,canonical:["very slow","slow","moderate","fast","very fast"]},{name:"temperature6",minMatches:3,canonical:["freezing","cold","cool","mild","warm","hot"]},{name:"experience6",minMatches:3,canonical:["novice","beginner","intermediate","advanced","expert","master"]},{name:"tier_metal",minMatches:3,canonical:["bronze","silver","gold","platinum","diamond"]},{name:"tshirt_letter_sizes",minMatches:4,canonical:["xxs","xs","s","m","l","xl","xxl","xxxl"]},{name:"tshirt_word_sizes",minMatches:3,canonical:["extra small","small","medium","large","extra large"]},{name:"nps_bands",minMatches:2,canonical:["detractor","passive","promoter"]},{name:"likelihood5",minMatches:3,canonical:["very unlikely","unlikely","neutral","likely","very likely"]},{name:"education",minMatches:3,canonical:["none","primary","secondary","bachelors","masters","doctoral"]},{name:"grades_a_to_f",minMatches:3,canonical:["a","b","c","d","f"]},{name:"grades_a_to_f_plusminus",minMatches:4,canonical:["a+","a","a-","b+","b","b-","c+","c","c-","d+","d","d-","f"]}],EQ={seldom:"rarely",infrequently:"rarely","hardly ever":"rarely",occasionally:"sometimes",periodically:"sometimes","now and then":"sometimes",frequently:"often",frequent:"often",regularly:"often",commonly:"often",usually:"often",constantly:"always","every time":"always","all the time":"always",consistently:"always",continually:"always",bad:"poor",weak:"poor",subpar:"poor",mediocre:"fair",passable:"fair","so so":"fair",decent:"good",solid:"good",outstanding:"excellent",superb:"excellent",exceptional:"excellent",stellar:"excellent",unsatisfied:"dissatisfied",unhappy:"dissatisfied",displeased:"dissatisfied",happy:"satisfied",content:"satisfied",pleased:"satisfied",delighted:"very satisfied","highly satisfied":"very satisfied","extremely satisfied":"very satisfied","highly dissatisfied":"very dissatisfied","extremely dissatisfied":"very dissatisfied",neither:"neutral",undecided:"neutral","no opinion":"neutral","neither agree nor disagree":"neutral","completely agree":"strongly agree","totally agree":"strongly agree","completely disagree":"strongly disagree","totally disagree":"strongly disagree","highly unlikely":"very unlikely","extremely unlikely":"very unlikely","highly likely":"very likely","extremely likely":"very likely","almost certain":"very likely",bachelor:"bachelors","bachelor's":"bachelors",undergraduate:"bachelors","bachelor degree":"bachelors","master's":"masters",graduate:"masters","master degree":"masters",doctorate:"doctoral",phd:"doctoral"},RQ=(()=>{let e=new Set;for(let t of Cx)for(let a of t.canonical)e.add(Aa(a));return e})(),zQ=(()=>{let e=new Map;for(let[t,a]of Object.entries(EQ)){let r=Aa(t);RQ.has(r)||e.has(r)||e.set(r,Aa(a))}return e})();function vx(e){return zQ.get(e)??e}var $Q=new Set(["hour","hr","day","dow","dom","weekday","week","wk","woy","month","mth","quarter","qtr","year","yr","semester","trimester","decade","period","fiscal","fy","rank","level","lvl","tier","grade","band","decile","percentile","quartile","quintile","score","rating","stars","step","stage","phase","round","wave","episode","chapter","age","cohort","generation","seniority","position","sequence","seq","priority"]);function Ax(e){if(!e)return!1;for(let t of Wa(e))if($Q.has(t))return!0;return NQ(e)!==null||pf(e)!==null}function Aa(e){return e.toLowerCase().replace(/[-_]+/g," ").replace(/\s+/g," ").trim()}function _x(e){return mr(e.normalize("NFD").replace(new RegExp("\\p{Diacritic}","gu"),""))}function OQ(e){let t=new Map;for(let[a,r]of e){let n=_x(a);if(!n)continue;let i=t.get(n);t.set(n,i===void 0||i===r?r:-1)}return t}function hf(e){let t=new Map;for(let[a,r]of e)for(let n of a)t.set(Aa(n),r);return t}var mf=[{name:"weekday_mon_sun",minMatches:4,dict:hf([[["monday","mon"],0],[["tuesday","tue","tues"],1],[["wednesday","wed","weds"],2],[["thursday","thu","thur","thurs","thr"],3],[["friday","fri"],4],[["saturday","sat"],5],[["sunday","sun"],6]])},{name:"month_jan_dec",minMatches:4,dict:hf([[["january","jan"],0],[["february","feb"],1],[["march","mar"],2],[["april","apr"],3],[["may"],4],[["june","jun"],5],[["july","jul"],6],[["august","aug"],7],[["september","sep","sept"],8],[["october","oct"],9],[["november","nov"],10],[["december","dec"],11]])},{name:"quarter_q1_q4",minMatches:3,dict:hf([[["q1","qtr 1","qtr1","quarter 1","q 1"],0],[["q2","qtr 2","qtr2","quarter 2","q 2"],1],[["q3","qtr 3","qtr3","quarter 3","q 3"],2],[["q4","qtr 4","qtr4","quarter 4","q 4"],3]])}],Nx={};function DQ(e){let t=e||"";if(!t)return{weekday:new Map,month:new Map};let a=Nx[t];if(a)return a;let r=new Map,n=new Map,i=(s,l,u)=>{let c=Aa(l);c&&s.set(c,u);let d=Aa(l.replace(/\./g,""));d&&d!==c&&s.set(d,u)};try{let s=new Intl.DateTimeFormat(t,{weekday:"long",timeZone:"UTC"}),l=new Intl.DateTimeFormat(t,{weekday:"short",timeZone:"UTC"});for(let d=0;d<7;++d){let h=new Date(Date.UTC(2024,0,1+d));i(r,s.format(h),d),i(r,l.format(h),d)}let u=new Intl.DateTimeFormat(t,{month:"long"}),c=new Intl.DateTimeFormat(t,{month:"short"});for(let d=0;d<12;++d){let h=new Date(Date.UTC(2020,d,15));i(n,u.format(h),d),i(n,c.format(h),d)}}catch{}let o={weekday:r,month:n};return Nx[t]=o,o}function Sx(e,t){if(t.size===0)return e;let a=new Map(e);for(let[r,n]of t)a.has(r)||a.set(r,n);return a}function LQ(e,t){let a=DQ(t);for(let r of mf){let n=r.name==="weekday_mon_sun"?Sx(r.dict,a.weekday):r.name==="month_jan_dec"?Sx(r.dict,a.month):r.dict,i=!0,o=null,s=new Map;for(let[u,c]of e){let d=n.get(u);if(d===void 0){o=o??OQ(n);let h=o.get(_x(u));d=h===void 0||h<0?void 0:h}if(d===void 0){i=!1;break}s.has(d)||s.set(d,c)}if(!i||s.size<r.minMatches)continue;let l=[...s.entries()].sort((u,c)=>u[0]-c[0]).map(u=>u[1]);return{pattern:r.name,orderedDomain:l}}return jQ(e)}var kx=mf.find(e=>e.name==="quarter_q1_q4");function jQ(e){let t=[...e.values()],a=TQ(t,i=>i.grain==="quarter"&&i.year===null&&(i.lang==="en"||i.form==="word"));if(!a||a.lang==="en")return null;let r=new Map;if(a.readings.forEach((i,o)=>{r.has(i.n)||r.set(i.n,t[o])}),r.size<kx.minMatches)return null;let n=[...r.entries()].sort((i,o)=>i[0]-o[0]).map(i=>i[1]);return{pattern:kx.name,orderedDomain:n}}function Mx(e){let t=new Map;for(let a of e){if(a==null)continue;let r=String(a);if(r.length===0)continue;let n=Aa(r);t.has(n)||t.set(n,r)}return t}var FQ=15,BQ=10,HQ=(()=>{let e=["xxs","xs","s","sm","small","m","med","medium","l","lg","large","xl","xlarge","xxl","xxxl","2xl","3xl","4xl","y","n","yes","no","t","f","true","false","na","n/a","n a","none","null","unknown","other","all","both","low","medium","med","high","very low","very high","minimal","critical","urgent"],t=new Set(e.map(Aa));for(let a of mf)for(let r of a.dict.keys())t.add(r);return t})();function GQ(e){let t=e.trim();return t.length===0||t.length>BQ||(t.match(new RegExp("\\p{L}","gu"))||[]).length>1?!1:new RegExp("\\p{Nd}","u").test(t)}function KQ(e){let t=e.trim();return t.length===1&&/[\p{L}\p{Nd}]/u.test(t)}function xx(e){if(!e||e.length===0)return null;let t=new Set,a=[];for(let r of e){if(r==null)continue;let n=String(r);if(t.has(n))continue;let i=Aa(n);if(!(i===""||HQ.has(i)||GQ(n)||KQ(n))||(t.add(n),a.push(n),a.length>FQ))return null}return a.length>0?a:null}var XQ=new RegExp("^(\\p{L}{0,3}) ?([0-9]+)\\s*[-\u2013\u2014:.)]\\s*(.+)$","u");function VQ(e){let t=null,a=new Set,r=[];for(let n of e.values()){let i=XQ.exec(n.trim());if(!i)return null;let o=i[1].toLowerCase();if(t===null)t=o;else if(o!==t)return null;let s=Number(i[2]);if(a.has(s)||Aa(i[3])==="")return null;a.add(s),r.push({code:s,original:n,label:i[3]})}return r}function qQ(e,t){let a=Ix(Mx(e.map(s=>s.label)),t);if(a===null)return;if(a.orderedDomain.length!==e.length)return null;let r=new Map;for(let s of e)r.set(s.label,s);let n=a.orderedDomain.map(s=>r.get(s));if(n.some(s=>s===void 0))return null;let i=!0,o=!0;for(let s=1;s<n.length;++s)n[s].code<=n[s-1].code&&(i=!1),n[s].code>=n[s-1].code&&(o=!1);return!i&&!o?null:{pattern:a.pattern,orderedDomain:n.map(s=>s.original)}}function gf(e,t){if(!e||e.length<2)return null;let a=Mx(e);if(a.size<2)return null;let r=VQ(a);if(r!==null){let i=qQ(r,t);if(i!==void 0)return i}let n=Ix(a,t);return n!==null?n:r!==null?QQ(a):null}var ZQ=/^([0-9]+)\s*(?:\.|\)|-)\s*([^\s\d].*)$/u,JQ=3,YQ=20;function QQ(e){if(e.size<JQ||e.size>YQ)return null;let t=new Set,a=[];for(let r of e.values()){let n=ZQ.exec(r.trim());if(!n||Aa(n[2])==="")return null;let i=Number(n[1]);if(t.has(i))return null;t.add(i),a.push({n:i,original:r})}return a.sort((r,n)=>r.n-n.n),{pattern:"numeric_rank_prefix",orderedDomain:a.map(r=>r.original)}}function Ix(e,t){let a=new Map;for(let[n,i]of e){let o=vx(n);a.has(o)||a.set(o,i)}let r=null;for(let n of Cx){let i=[];for(let u of n.canonical){let c=a.get(u);c!==void 0&&i.push(c)}if(i.length<n.minMatches)continue;let o=new Set(n.canonical),s=!0;for(let u of e.keys())if(!o.has(vx(u))){s=!1;break}if(!s)continue;let l;r===null||i.length>r.matched||i.length===r.matched&&n.canonical.length<r.pattern.canonical.length?l=!0:l=!1,l&&(r={pattern:n,matched:i.length,orderedDomain:i})}return r?{pattern:r.pattern.name,orderedDomain:r.orderedDomain}:LQ(e,t)}var _f=vo(bf(),1);/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var eee=85,tee=60,aee=/(^|[^a-z])(state|province|provincia|provinz|region|regione|regiao|county|department|departement|departamento|prefecture|oblast|canton|kanton|bundesland|land|territory)([^a-z]|$)/i,Af=e=>Math.round(e*10)/10,w0=e=>e.split("-")[0];function Px(e){let t=new Map,a=0;if(e.forEach((i,o)=>{let s=Ci(o);s&&(t.set(s,(t.get(s)||0)+i),a+=i)}),a===0)return{};let[r,n]=[...t].sort((i,o)=>o[1]-i[1])[0];return{dominantRegion:r,dominantRegionPct:Af(100*n/a)}}function nee(e,t,a={}){let r=new Map;if(!JM()||t.length===0)return r;let n=e.findIndex(s=>!s.isMeasure&&(s.geoKind||"").startsWith("country")),i=s=>s==null?"":String(s).trim(),o=s=>{let l=new Map;for(let p of t){let m=i(p[s]);if(!m)continue;let g=n>=0&&i(p[n])||null,f=m+""+(g??""),y=l.get(f);y?y.rows++:l.set(f,{city:m,country:g,rows:1})}if(l.size===0)return null;let u=0,c=0,d=new Set,h=new Map;return l.forEach(p=>{let m=QM(p.city,{country:p.country});m.status!=="unmatched"&&c++,!(m.status!=="resolved"||!m.provinceId)&&(u++,d.add(m.provinceId),h.set(m.cc,(h.get(m.cc)||0)+p.rows))}),{signals:{rollupPct:Af(100*u/l.size),regionCount:d.size,countryCount:h.size,...Px(h)},cityPct:100*c/l.size,distinct:l.size}};return e.forEach((s,l)=>{if(s.isMeasure||l===n)return;let u=s.geoKind||"";if(u.startsWith("city")){if(a.cities===!1)return;let S=o(l);S&&r.set(l,S.signals);return}if(u)return;let c=new Map,d=new Map;for(let S of t){let M=i(S[l]);M&&(c.set(M,(c.get(M)||0)+1),d.has(M)||d.set(M,n>=0&&i(S[n])||null))}if(c.size<3)return;let h=0,p=0,m=0,g=new Set,f=new Map;c.forEach((S,M)=>{if(ax(M)){h++;let W=M.toUpperCase();g.add(W),f.set(w0(W),(f.get(w0(W))||0)+S);return}let U=new Set(ex(M,d.get(M)).map(tx).filter(W=>!!W));if(U.size===1){p++;let W=[...U][0];g.add(W),f.set(w0(W),(f.get(w0(W))||0)+S)}else U.size>1&&m++});let y=aee.test(s.name.replace(/[_-]+/g," "))?tee:eee,b=100*h/c.size,v=100*p/c.size,k=b>=v,w=k?b:v;if(w<y){if(a.cities===!1)return;let S=o(l);if(!S||S.cityPct<v0||S.distinct<cf&&!qa(s.name,uf))return;r.set(l,S.signals);return}r.set(l,{kind:k?"admin1-code":"admin1-name",matchPct:Af(w),ambiguous:!k&&m/c.size>.15?!0:void 0,regionCount:g.size,countryCount:f.size,...Px(f)})}),r}function Gx(e){let t=(e||"").toLowerCase();return t==="en-us"||t==="en"||t.startsWith("en-us-")||t==="en-ph"||t==="en-bz"}var vf={a:0,b:0,c:0,yearFirst:!1,sep:"",trail:"",word:"",day:0,year:0,namedOrder:"dmy",cjkPattern:""},ree=/\s+(\d{1,2}):(\d{2})(?::(\d{2})(?:[.,]\d{1,9})?)?(?:\s*([ap])\.?\s?m\.?)?$/i,iee=/^(\d{1,4})(\s*[./-]\s*)(\d{1,2})(\s*[./-]\s*)(\d{1,4})(\.?)$/,oee=/^(\d{4})(\s*[年년]\s*)(\d{1,2})(\s*[月월]\s*)(\d{1,2})(\s*[日일号])$/,see=/(\d)(?:st|nd|rd|th|er|º|ª)(?=[\s.,/-]|$)/gi,lee=new Set(["de","del","of"]),uee=new Set(["\u0433","\u0440","r"]),cee=/^[\p{L}\p{M}\u0970\u05f3]+$/u,Nf=/^\d+$/;function dee(e){let t=+e[1],a=+e[2],r=e[3]===void 0?0:+e[3],n=e[4]!==void 0;if(a>59||r>59)return null;if(n){if(t<1||t>12)return null;t=t%12+(e[4].toLowerCase()==="p"?12:0)}else if(t>23)return null;return{h:t,mi:a,s:r,seconds:e[3]!==void 0,meridiem:n}}function Ux(e){let t=e.replace(/[\u200e\u200f\u061c]/g,"").replace(/\s+/g," ").trim();if(t==="")return null;t=g3(t);let a=null,r=ree.exec(t);if(r){if(a=dee(r),!a)return null;t=t.slice(0,r.index)}let n;if(n=oee.exec(t)){let h=`cjk|${n[2]}|${n[4]}|${n[6]}`;return{...vf,form:"cjk",key:h,clock:a,a:+n[1],b:+n[3],c:+n[5],yearFirst:!0,cjkPattern:`%Y${n[2]}%m${n[4]}%d${n[6]}`}}if(n=iee.exec(t)){let h=n[2],p=n[4];if(h!==p)return null;let m=h.trim(),g=n[6];if(g&&m!==".")return null;let f=[n[1].length,n[3].length,n[5].length],y=f[0]===4,b=f[2]===4;return y===b||(y?f[1]>2||f[2]>2:f[0]>2||f[1]>2)?null:y&&m==="-"&&h==="-"&&f[1]===2&&f[2]===2?"iso":y&&m==="."&&h==="."&&!g&&!(f[1]===2&&f[2]===2)?null:{...vf,form:"numeric",key:`num|${y?"y":"x"}|${h}|${g}`,clock:a,a:+n[1],b:+n[3],c:+n[5],yearFirst:y,sep:h,trail:g}}let i=t.replace(see,"$1").split(/[\s.,/-]+/).filter(h=>h!==""&&!lee.has(h.toLowerCase()));if(i.length===4&&Nf.test(i[2])&&uee.has(i[3].toLowerCase())&&i.pop(),i.length!==3)return null;let o=i.map(h=>Nf.test(h)?"N":cee.test(h)?"W":"?").join(""),s=i.map(h=>Nf.test(h)?h:""),l=0,u=0,c="",d;if(o==="NWN"&&s[0].length<=2&&s[2].length===4)l=+s[0],c=i[1],u=+s[2],d="dmy";else if(o==="WNN"&&s[1].length<=2&&s[2].length===4)c=i[0],l=+s[1],u=+s[2],d="mdy";else if(o==="NWN"&&s[0].length===4&&s[2].length<=2)u=+s[0],c=i[1],l=+s[2],d="ymd";else return null;return{...vf,form:"named",key:`named|${d}`,clock:a,day:l,year:u,word:c,namedOrder:d}}var hee=[31,28,31,30,31,30,31,31,30,31,30,31],pee=e=>e%4===0&&e%100!==0||e%400===0;function Tx(e,t,a){return e>=1&&e<=9999&&t>=1&&t<=12&&a>=1?a<=(t===2&&pee(e)?29:hee[t-1]):!1}function mee(e,t,a,r){let n=new Date(Date.UTC(2e3,t-1,a,r?.h??0,r?.mi??0,r?.s??0));return n.setUTCFullYear(e),n}function Pf(e,t={}){let a=(t.floor??1)>=1,r=new Map,n=new Map,i=0,o=null;for(let y of e){if(y==null)continue;if(typeof y!="string"){if(a)return null;i++;continue}let b=y.trim();if(b==="")continue;i++;let v=r.get(b);if(v===void 0&&(v=Ux(b),r.set(b,v)),v===null||v==="iso"){if(a)return null;continue}if(a){if(o===null)o=v;else if(v.key!==o.key)return null}else n.set(v.key,(n.get(v.key)??0)+1)}if(!a){let y=0,b="";for(let[v,k]of n)k>y&&(y=k,b=v);if(y===0||y/i<t.floor)return null;o=[...r.values()].find(v=>v!==null&&v!=="iso"&&v.key===b)??null}if(o===null)return null;let s=o.key,l=[...r.values()].filter(y=>y!==null&&y!=="iso"&&y.key===s),u,c="shape",d=null;if(o.form==="named"){if(u=o.namedOrder,d=zg(l.map(y=>y.word),t.locale),!d)return null}else if(o.form==="cjk"||o.yearFirst)u="ymd";else{let y=0,b=0;for(let v of l)v.a>12&&y++,v.b>12&&b++;if(y>0&&b>0)return null;y>0?(u="dmy",c="values"):b>0?(u="mdy",c="values"):o.sep.trim()==="."?(u="dmy",c="shape"):(u=Gx(t.locale)?"mdy":"dmy",c="locale")}let h=y=>{if(y.form==="named"){let b=d.get(Ka(y.word));return b===void 0?null:[y.year,b+1,y.day]}return y.yearFirst?[y.a,y.b,y.c]:u==="dmy"?[y.c,y.b,y.a]:[y.c,y.a,y.b]},p=1/0,m=-1/0,g=0;for(let y of l){let b=h(y);if(!b||!Tx(b[0],b[1],b[2])){if(a)return null;g++;continue}p=Math.min(p,b[0]),m=Math.max(m,b[0])}if(!a&&(n.get(s)-g)/i<t.floor||p>=2400&&m<=2699||p>=1300&&m<=1500)return null;let f={form:o.form,order:u,orderFrom:c,hasTime:l.some(y=>y.clock!==null),read(y){if(typeof y!="string")return null;let b=y.trim();if(b==="")return null;let v=r.get(b);if(v===void 0&&(v=Ux(b),r.set(b,v)),v===null||v==="iso"||v.key!==s)return null;let k=h(v);return!k||!Tx(k[0],k[1],k[2])?null:mee(k[0],k[1],k[2],v.clock)}};if(o.form!=="named"&&!l.some(y=>y.clock?.meridiem)){let y;o.form==="cjk"?y=o.cjkPattern:o.yearFirst?y=`%Y${o.sep}%m${o.sep}%d${o.trail}`:y=(u==="dmy"?`%d${o.sep}%m${o.sep}%Y`:`%m${o.sep}%d${o.sep}%Y`)+o.trail;let b=l.filter(v=>v.clock!==null).length;b===0?f.pattern=y:b===l.length&&(f.pattern=y+(l.every(v=>v.clock.seconds)?" %H:%M:%S":" %H:%M"))}return f}var gee={es:["latitud"],pt:["latitude"],fr:["latitude"],it:["latitudine"],nl:["breedtegraad"],de:["breitengrad"]},fee={es:["longitud"],pt:["longitude"],fr:["longitude"],it:["longitudine"],nl:["lengtegraad"],de:["l\xE4ngengrad"]},Uf=e=>Cn(e.normalize("NFC")).toLowerCase(),yee=new Set(Object.values(gee).flatMap(e=>(e??[]).map(Uf))),bee=new Set(Object.values(fee).flatMap(e=>(e??[]).map(Uf)));function vee(e){let t=!1,a=!1;for(let r of e){let n=Uf(r);yee.has(n)?t=!0:bee.has(n)&&(a=!0)}return t===a?null:t?"lat":"lon"}var Nee=["rate","ratio","pct","percent","percentage","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","z[_-]?score","average","avg","mean","median","stddev","variance","gpa","percentile","quantile","efficiency","accuracy","probability","multiplier","coefficient","correlation","occupancy","age","bmi","temperature","density","pressure","humidity","ph","velocity","speed","elevation","altitude","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps","capita","temperatuur","temperatur","temperatura","teplota","lampotila","homerseklet","sicaklik","pression","presion","pressao","pressione","druck","tryck","tlak","paine","nyomas","presiune","humidite","humedad","umidade","umidita","feuchtigkeit","vochtigheid","kosteus","vlhkost","vitesse","velocidad","velocidade","velocita","geschwindigkeit","snelheid","hastighet","hastighed","rychlost","nopeus","sebesseg","brzina","predkosc","densite","densidad","densidade","densita","dichte","dichtheid","hustota","tiheys","gustoca","moyenne","mediane","promedio","mediana","gemiddelde","durchschnitt","mittelwert","genomsnitt","gennemsnit","gjennomsnitt","keskiarvo","atlag","ortalama","prosjek","srednia","prumer","priemer","medie","taux","tasa","taxa","tasso","verhaltnis","verhouding","aandeel","anteil","andel","osuus","podil","udzial","udio","pourcentage","porcentaje","percentual","prozent","procent","prosentti","szazalek","yuzde","participacion","participacao","pondere","omjer","arany","oran","rata","leeftijd","edad","idade","wiek","eletkor","varsta","puntuacion","pontuacao","punteggio","betyg","ocena","indice","indeks","wskaznik","puan","ocupacion","ocupacao","occupazione","auslastung","bezetting","belaggning","belaegning","belegg","kayttoaste","oblozenie","obsazenost","obsadenost","kihasznaltsag","doluluk","ocupare","popunjenost","efficacite","eficiencia","efficienza","effizienz","effectiviteit","verimlilik"],See=["pct","percent","percentage","rate","ratio","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","gpa","percentile","quantile","bmi","density","pressure","humidity","velocity","efficiency","occupancy","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps"],kee=["latitude","longitude"],wee=["latitude","longitude"];function Tf(e){return Cn(e)}var Kx=["somme de","suma de","soma de","summe von","som van","somma di","summa av","sum av","sum af","soucet z","suma z","totaal van","total de","toplam","osszeg","nombre de","recuento de","contagem de","anzahl von","aantal van","conteggio di","antal av","lukumaara","pocet z","sum pa","\u0441\u0443\u043C\u043C\u0430","\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E","\u0441\u0443\u043C\u0430","\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C","\u03B1\u03B8\u03C1\u03BF\u03B9\u03C3\u03BC\u03B1","\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2"],Wee=["moyenne de","promedio de","media de","media di","durchschnitt von","gemiddelde van","medelvarde av","genomsnitt av","gennemsnit af","keskiarvo","atlag","ortalama","prumer z","srednia z","medie de","minimum de","minimo de","minimo di","minimum von","maximum de","maximo de","massimo di","maximum von","prom.","\u0441\u0440\u0435\u0434\u043D\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435","\u0441\u0440\u0435\u0434\u043D\u0435\u0435","\u0441\u0435\u0440\u0435\u0434\u043D\u0454","\u03BC\u03B5\u03C3\u03BF\u03C2 \u03BF\u03C1\u03BF\u03C2","\u0645\u06CC\u0627\u0646\u06AF\u06CC\u0646"],Cee=["osszege","sucet","\u7684\u603B\u548C","\u7684\u8BA1\u6570","\u306E\u5408\u8A08","\uC758 \uD569\uACC4"],Aee=["atlaga","priemer","\u7684\u5E73\u5747\u503C","\u306E\u5E73\u5747","\uC758 \uD3C9\uADE0"],W0=Object.freeze({"nombre de":"count","recuento de":"count","contagem de":"count","anzahl von":"count","aantal van":"count","conteggio di":"count","antal av":"count",lukumaara:"count","pocet z":"count",\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:"count",\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C:"count",\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2:"count",\u7684\u8BA1\u6570:"count","minimum de":"min","minimo de":"min","minimo di":"min","minimum von":"min","maximum de":"max","maximo de":"max","massimo di":"max","maximum von":"max"});function Mf(e){return[...e].sort((t,a)=>a.length-t.length).map(t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")}var _ee=new RegExp("^\\s*(?:(?:sum|count|count\\s+distinct|distinct\\s+count)\\s+of\\s+|(?:"+Mf(Kx)+")\\s+)","i");function Ex(e){for(let t of e){let a=t.codePointAt(0)??0;if(a>=11904&&a<=40959||a>=44032&&a<=55215)return!0}return!1}var Mee="[\u2013\u2014-]";function Xx(e){let t=e.filter(n=>!Ex(n)),a=e.filter(Ex),r=[];return t.length&&r.push("(?:\\s+|\\s*"+Mee+"\\s*)("+Mf(t)+")"),a.length&&r.push("\\s*("+Mf(a)+")"),new RegExp("(?:"+r.join("|")+")\\s*$","i")}var Vx=Xx(Cee),xee=Xx(Aee);function xf(e,t){let a=t.exec(e);if(!a)return null;let r=e.slice(0,a.index);return r.trim()===""?null:{base:r,label:(a[1]??a[2]??"").toLowerCase()}}function Iee(e){let t=Tf(String(e??"").trim().toLowerCase());if(!t)return null;for(let n of Wee)if(t.startsWith(n+" "))return W0[n]??"avg";for(let n of Kx)if(t.startsWith(n+" ")||t===n)return W0[n]??"sum";let a=xf(t,xee);if(a)return W0[a.label]??"avg";let r=xf(t,Vx);return r?W0[r.label]??"sum":null}var Bhe=new RegExp("\\b("+Nee.join("|")+")\\b|("+See.join("|")+")$","i"),Hhe=new RegExp("\\b("+kee.join("|")+")\\b|("+wee.join("|")+")$","i");function Pee(e){if(!e)return"";let t=String(e),a=Tf(t),r=_ee.exec(a);if(r)return t.slice(r[0].length).trim();let n=xf(a,Vx);return(n?t.slice(0,n.base.length):t).trim()}var Uee=["count (distinct)","count distinct","distinct count","standard deviation","average","variance","median","product","stddev","std dev","count","sum","avg","min","minimum","max","maximum","var"],Rx=new RegExp("^\\s*("+[...Uee].sort((e,t)=>t.length-e.length).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")+")\\s+of\\s+","i");function zx(e){if(e==null)return"";let t=String(e),a=Rx.exec(t);if(!a)return t;let r=s=>s.toLowerCase().replace(/\s+/g," ").trim(),n=r(a[1]),i=t.slice(a[0].length),o=0;for(;o<8;){let s=Rx.exec(i);if(!s||r(s[1])!==n)break;let l=i.slice(s[0].length);if(l.trim()==="")break;i=l,o++}return o===0?t:t.slice(0,a[0].length)+i}function $x(e,t){if(!e||!t)return!1;let a=String(e);for(let r of t){let n=r?.hostName;if(n&&n!==r?.name&&a.includes(n))return!0}return!1}var C0={Sum:["Sum of "],Avg:["Average of "],Average:["Average of "],Count:["Count of "],CountNonNull:["Count of "],Min:["Min of ","First ","Earliest "],Max:["Max of ","Last ","Latest "],Median:["Median of "],StandardDeviation:["Standard deviation of "],Variance:["Variance of "]},qx=new RegExp("^("+Object.keys(C0).join("|")+")\\((.+)\\)$");function Tee(e){if(!e)return[];let t=qx.exec(String(e).trim());if(!t)return[];let a=C0[t[1]],r=t[2],n=[];for(let i=r.indexOf(".");i>=0;i=r.indexOf(".",i+1)){if(i===0)continue;let o=r.slice(i+1);if(o.trim()!=="")for(let s of a){let l=s+o;n.includes(l)||n.push(l)}}return n}function Eee(e,t,a){let r=qx.exec(String(e??"").trim());if(!r)return!1;let n=r[1];if((n==="Count"||n==="CountNonNull")&&a==="Decimal")return!0;let i=new Set(C0[n]),o=String(t??""),s=r[2];for(let l=s.indexOf(".");l>=0;l=s.indexOf(".",l+1)){if(l===0)continue;let u=s.slice(l+1);if(u.trim()!==""){for(let c of Object.values(C0))for(let d of c)if(!i.has(d)&&o===d+u)return!0}}return!1}var Ree={de:["nr","nummer","kennung","kennziffer","plz","postleitzahl"],nl:["nr","nummer"],sv:["nr","nummer"],da:["nr","nummer"],nb:["nr","nummer"],fi:["tunnus","koodi","nro"],hu:["azonos\xEDt\xF3","k\xF3d"],tr:["kod","kodu","numaras\u0131","numarasi"],zh:["\u7F16\u53F7","\u4EE3\u7801","\u7F16\u7801","\u53F7\u7801","\u90AE\u7F16"],ja:["\u756A\u53F7","\u30B3\u30FC\u30C9"],ko:["\uBC88\uD638","\uCF54\uB4DC"],hi:["\u0915\u094B\u0921","\u0915\u094D\u0930\u092E\u093E\u0902\u0915"],fr:["num\xE9ro"],es:["c\xF3digo"],pt:["c\xF3digo","cep"],it:["codice"],pl:["kod","numer"],cs:["k\xF3d","\u010D\xEDslo"],sk:["k\xF3d","\u010D\xEDslo"],hr:["\u0161ifra","oznaka"],ru:["\u043A\u043E\u0434","\u043D\u043E\u043C\u0435\u0440"],uk:["\u043A\u043E\u0434","\u043D\u043E\u043C\u0435\u0440"],el:["\u03BA\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2"],ar:["\u0631\u0645\u0632","\u0643\u0648\u062F","\u0631\u0642\u0645"],he:["\u05E7\u05D5\u05D3"],id:["kode","nomor"],vi:["m\xE3"],th:["\u0E23\u0E2B\u0E31\u0E2A"]},zee=["fr","es","pt","it","pl","cs","sk","hr","ru","uk","el","ar","he","id","vi","th"],$ee=["num\xE9ro"],Oee=e=>e.normalize("NFC").toLowerCase();function Dee(e,t,a,r){let n=Ga(a);return!n||!e?null:e===t?"word":n.wordBreaks===!1?Array.from(t).length<Dg?null:(r?e.startsWith(t):e.endsWith(t))&&e.length>t.length?"suffix":null:r?$g(e,a).includes(t)?"word":null:n.script==="Hang"?Og(e,t)?"suffix":null:n.compounds&&wi(e,t,D8)?"suffix":null}function Lee(e){let t=String(e??"").trim();if(!t)return null;let a=gr(t),r=gr(Pee(t));for(let[n,i]of Object.entries(Ree)){let o=zee.includes(n),s=o?r:a;for(let l of i){let u=$ee.includes(l)||!!Ga(n)?.foldSensitive,c=u?s.words:s.folded;if(c.length===0)continue;let d=u?Oee(l):gr(l).folded.join(" "),h=Dee(o?c[0]:c[c.length-1],d,n,o);if(h)return{lang:n,word:l,view:h}}}return null}var jee=[["Lu",new RegExp("^\\p{Lu}$","u")],["Ll",new RegExp("^\\p{Ll}$","u")],["Lt",new RegExp("^\\p{Lt}$","u")],["Lm",new RegExp("^\\p{Lm}$","u")],["Lo",new RegExp("^\\p{Lo}$","u")],["Mn",new RegExp("^\\p{Mn}$","u")],["Mc",new RegExp("^\\p{Mc}$","u")],["Nd",new RegExp("^\\p{Nd}$","u")]];function A0(e){for(let[t,a]of jee)if(a.test(e))return t;return null}var Fee=[{id:"ascii",test:/^[A-Za-z]$/,ranges:[[65,90],[97,122]]},{id:"latin",test:/^[\u00C0-\u017F]$/u,ranges:[[192,383]]},{id:"cyrillic",test:/^[\u0400-\u045F\u0490-\u0491]$/u,ranges:[[1024,1119],[1168,1169]]},{id:"greek",test:/^[\u0386-\u03CE]$/u,ranges:[[902,974]]},{id:"han",test:/^[\u4E00-\u9FFF]$/u,ranges:[[19968,40959]]},{id:"hiragana",test:new RegExp("^\\p{Script=Hiragana}$","u"),ranges:[[12353,12447]]},{id:"katakana",test:new RegExp("^\\p{Script=Katakana}$","u"),ranges:[[12448,12543]]},{id:"hangul",test:/^[\uAC00-\uD7A3]$/u,ranges:[[44032,55203]]},{id:"arabic",test:/^[\u0620-\u0652\u0671-\u06D3]$/u,ranges:[[1568,1618],[1649,1747]]},{id:"hebrew",test:/^[\u05B0-\u05EA]$/u,ranges:[[1456,1514]]},{id:"devanagari",test:new RegExp("^\\p{Script=Devanagari}$","u"),ranges:[[2304,2431]]},{id:"thai",test:new RegExp("^\\p{Script=Thai}$","u"),ranges:[[3585,3662]]}],_0=new Map;function Ox(e,t,a,r){let n=_0.get(e);if(n)return n;let i=[];for(let[o,s]of t)for(let l=o;l<=s;l++){let u=String.fromCodePoint(l);A0(u)===a&&(r&&!r.test(u)||i.push(u))}return _0.set(e,i),i}function Bee(e){let t=e.codePointAt(0);for(let i=0;i<9&&A0(String.fromCodePoint(t-1))==="Nd";i++)t--;let a="nd:"+t.toString(16),r=_0.get(a);if(r)return r;let n=[];for(let i=t;i<t+10;i++){let o=String.fromCodePoint(i);A0(o)==="Nd"&&n.push(o)}return _0.set(a,n),n}function Hee(e,t){if(t==="Nd")return Bee(e);for(let r of Fee)if(r.test.test(e))return Ox(r.id+":"+t,r.ranges,t,r.id==="ascii"?null:r.test);let a=e.codePointAt(0)&-128;return Ox("block:"+a.toString(16)+":"+t,[[a,a+127]],t,null)}function Gee(e,t,a,r){let n=e.filter(i=>!t.has(i));return n.length===0&&(n=e.filter(i=>i!==a)),n.length===0?a:n[Math.min(n.length-1,Math.floor(r()*n.length))]}var Kee=/^[\p{L}\p{M}\p{Nd}]$/u,Dx=/^[\p{L}\p{Nd}]$/u;function Xee(e,t){if(!e)return e??"";let a=new Set(Array.from(e)),r=u=>{let c=A0(u);return!c||!Kee.test(u)?u:Gee(Hee(u,c),a,u,t)},n=u=>{let c=[];for(let d of u)c.push(r(d)),Dx.test(d)&&t()<.2&&c.push(r(d));if(c.length>6){let d=Math.floor(t()*Math.min(3,c.length-6));for(let h=0;h<d;h++)for(let p=0;p<5;p++){let m=Math.floor(t()*c.length);if(Dx.test(c[m])){c.splice(m,1);break}}}return c.join("")};if(!(e.includes("@")&&e.includes(".")))return n(e);let[i,o=""]=e.split("@"),s=o.endsWith(".com"),l=s?o.slice(0,-4):o;return`${n(i)}@${n(l)}${s?".com":""}`}var Vee=/^[A-Za-z_$][A-Za-z0-9_$]*$/,qee=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Ghe=new RegExp([String.raw`\bisMeasure\b`,String.raw`\bdataType\b`,String.raw`\bcolumns\s*\[\s*-?\d`,String.raw`\.iloc\s*\[[^\]]*,`,String.raw`\.iat\s*\[`,String.raw`\bselect_dtypes\b`,String.raw`\b_get_numeric_data\b`,String.raw`\bis_numeric_dtype\b`,String.raw`\bfor\s+\w+\s+in\s+(?:list\s*\(\s*)?df\.columns\b`,String.raw`\bdf\.columns\s*\.\s*(?:tolist|to_list|difference|drop)\b`,String.raw`\bdf\.dtypes\b`,String.raw`\bObject\s*\.\s*(?:keys|values|entries)\s*\(\s*(?:rows|data|df)?\s*\[\s*0\s*\]`,String.raw`\b(?:row|rw|r)\s*\[\s*\d+\s*\]`].join("|"));function Lx(e,t){if(!e||!t)return!1;let a=qee(t);return new RegExp("['\"`]"+a+"['\"`]").test(e)?!0:Vee.test(t)&&new RegExp("\\."+a+"(?![A-Za-z0-9_$])").test(e)}var Zee=5,Jee=6,Yee=3,br=864e5,Qee=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2}))?(?:\.\d+)?Z?)?$/,ete=/^(\d{4})[-/](\d{1,2})$/,tte=/^(\d{4})[-\s]?Q([1-4])$/i,ate=/^Q([1-4])[-\s](\d{4})$/i,nte=/^(\d{4})$/,rte=/^(\d{4})(0[1-9]|1[0-2])$/,ite=/^(\d{4})(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])$/,ote=/^(\D+?)[\s\-/.,']*((?:19|20)\d{2})$/u,ste=/^((?:19|20)\d{2})[\s\-/.,']+(\D+)$/u;function Sf(e,t,a){let r=Ka(e);if(!r)return 0;if(r==="sept")return 9;for(let o of t&&!/^en\b/i.test(t)?["en",t]:["en"]){let s=Rg(o)[r];if(s!==void 0)return s+1}let n=a?.get(r);if(n!==void 0)return n+1;let i=y0(e);if(i.length>0){if(i.every(l=>l.month===i[0].month))return i[0].month+1;let o=$8(String(t??"").split(/[-_]/)[0])?.code,s=i.find(l=>l.lang===o);if(s)return s.month+1}return 0}function lte(e){let t=k0(e).filter(r=>r.yearDigits===4);if(t.length===0||t.some(r=>r.lang==="en"))return null;let a=t[0];return t.some(r=>r.grain!=="quarter"||r.n!==a.n||r.year!==a.year)?null:oa(a.year,(a.n-1)*3+1,1)}function oa(e,t,a,r=0,n=0,i=0){if(!(e>=1&&t>=1&&t<=12&&a>=1&&a<=31))return null;let o=Date.UTC(e,t-1,a,r,n,i);if(!Number.isFinite(o))return null;let s=l=>l<10?"0"+l:String(l);return{ms:o,y:e,m:t,d:a,iso:`${e}-${s(t)}-${s(a)}`}}function ute(e,t){let a=[],r="";for(let l=0;l<t.length;l++){if(t[l]!=="%"){r+=t[l].replace(/[.*+?^${}()|[\]\\]/g,"\\$&");continue}switch(t[++l]){case"Y":a.push("Y"),r+="(\\d{4})";break;case"m":a.push("m"),r+="(\\d{1,2})";break;case"d":a.push("d"),r+="(\\d{1,2})";break;case"H":case"M":case"S":r+="\\d{1,2}";break;case"%":r+="%";break;default:return null}}let n=new RegExp("^"+r+"$").exec(e);if(!n)return null;let i=0,o=1,s=1;return a.forEach((l,u)=>{let c=+n[u+1];l==="Y"?i=c:l==="m"?o=c:s=c}),i?oa(i,o,s):null}function K8(e,t,a,r){let n=(e??"").trim();if(n==="")return null;if(t)return ute(n,t)||null;let i=Qee.exec(n);if(i)return oa(+i[1],+i[2],+i[3],+(i[4]??0),+(i[5]??0),+(i[6]??0));if(i=tte.exec(n),i)return oa(+i[1],(+i[2]-1)*3+1,1);if(i=ate.exec(n),i)return oa(+i[2],(+i[1]-1)*3+1,1);if(i=ete.exec(n),i&&+i[2]>=1&&+i[2]<=12)return oa(+i[1],+i[2],1);if(i=ite.exec(n),i)return oa(+i[1],+i[2],+i[3]);if(i=rte.exec(n),i)return oa(+i[1],+i[2],1);if(i=nte.exec(n),i){let l=+i[1];return l>=1900&&l<=2100?oa(l,1,1):null}let o=lte(n);if(o)return o;if(i=ote.exec(n),i){let l=Sf(i[1],a,r);if(l)return oa(+i[2],l,1)}if(i=ste.exec(n),i){let l=Sf(i[2],a,r);if(l)return oa(+i[1],l,1)}let s=O8(n);if(s){let l="month"in s?s.month:Sf(s.word,a,r);if(l)return oa(s.year,l,1)}return null}function Zx(e){let t=new Date(e).getUTCDay();return t>=1&&t<=5}function Jx(e,t){if(t<=e)return 0;let a=Math.round((t-e)/br),r=Math.floor(a/7),n=r*5,i=e+r*7*br;for(;i<t;)Zx(i)&&n++,i+=br;return n}function cte(e){if(e.length===0)return 0;let t=[...e].sort((r,n)=>r-n),a=t.length>>1;return t.length%2?t[a]:(t[a-1]+t[a])/2}function dte(e){return e>0?e<.95?"hour":e<=1.05?"day":e>=6.5&&e<=7.5?"week":e>=27&&e<=31.5?"month":e>=88&&e<=93?"quarter":e>=362&&e<=368?"year":"irregular":"irregular"}function M0(e,t,a,r){switch(a){case"year":return t.y-e.y;case"quarter":return t.y*4+Math.floor((t.m-1)/3)-(e.y*4+Math.floor((e.m-1)/3));case"month":return t.y*12+t.m-(e.y*12+e.m);case"week":return Math.round((t.ms-e.ms)/(7*br));case"weekday":return Jx(e.ms,t.ms);case"day":return Math.round((t.ms-e.ms)/br);default:return r>0?Math.round((t.ms-e.ms)/r):0}}function hte(e,t){return Yx(e,t)?.cadence??null}function Yx(e,t){let a=t?.gapFactor??Zee,r=0,n=0,i=new Map,o=Array.from(e),s;if(!t?.pattern){let k=[];for(let w of o){if(w==null||w==="")continue;let S=O8(String(w));S&&"word"in S&&k.push(S.word)}k.length>0&&(s=zg(k,t?.locale)??void 0)}for(let k of o){if(k==null||k==="")continue;r++;let w=K8(String(k),t?.pattern,t?.locale,s);w&&(n++,i.set(w.ms,w))}let l=[...i.values()].sort((k,w)=>k.ms-w.ms);if(l.length<Yee||r>0&&n/r<.8)return null;let u=l[l.length-1].ms-l[0].ms;if(u<=0)return null;let c=[];for(let k=1;k<l.length;k++)c.push(l[k].ms-l[k-1].ms);let d=cte(c);if(!(d>0))return null;let h=dte(d/br);h==="day"&&u>=7*br&&l.every(k=>Zx(k.ms))&&Jx(l[0].ms,l[l.length-1].ms)+1>l.length*.5&&(h="weekday");let p=h==="irregular"?l.length:M0(l[0],l[l.length-1],h,d)+1,m=1,g=1,f=[],y=l[0],b=1;for(let k=1;k<l.length;k++){let w=M0(l[k-1],l[k],h,d);w>m&&(m=w),h!=="irregular"&&w>a?(g++,f.push({from:y.iso,to:l[k-1].iso,points:b}),y=l[k],b=1):b++}f.push({from:y.iso,to:l[l.length-1].iso,points:b});let v={grain:h,points:l.length,expectedPoints:Math.max(p,l.length),coveragePct:Math.round(l.length/Math.max(p,l.length)*1e3)/10,runs:g,largestGapUnits:m,gapFactor:a};return t?.includeBounds&&f.length<=Jee&&(v.runBounds=f),{cadence:v,points:l,stepMs:d}}var pte=8,mte=.5,gte=200,fte=new Set(["category","categories","subcategory","type","types","kind","class","classes","classification","segment","segments","tier","status","priority","severity","grade","level","band","bucket","group","channel","method","mode","stage","phase","period","shift","gender","sex","result","outcome","reason","flag","genre","sector","source"]),yte=["category","classification","segment","status","priority","severity","channel"],bte=new Set(["UUID","EMAIL_LIKE","URL_LIKE","PHONE_LIKE","NUMERIC_ID","HEX_ID","OPAQUE_ID_ALPHANUMERIC","DATE_STR","BOOLEAN"]);function vte(e){let t=Wa(e);if(t.length===0)return!1;let a=t[t.length-1];return fte.has(a)?!0:yte.some(r=>a.length>r.length&&a.endsWith(r))}function Nte(e){if(e.isMeasure)return"measure";if(e.isTemporal||e.isDatePart||e.isReassembledDate)return"temporal";let t=Array.from(e.values).filter(a=>a!==""&&a!==null&&a!==void 0);return t.length<2||t.length>gte?"cardinality":e.rows>0&&t.length>=e.rows?"row-identity":e.isBinaryFlag?"flag":gf(t,e.locale)!==null?"ordinal":e.identifierNamed||e.dataType==="String"&&bte.has(Tg(t))?"identifier":!e.geoKind&&vte(e.name)?"attribute":"entity"}function Ste(e){let t=-1,a=1/0,r=!1;return e.forEach((n,i)=>{if(Nte(n)!=="entity")return;let o=new Set(Array.from(n.values).filter(l=>l!=="")).size,s=!!n.geoKind;(o<a||o===a&&s&&!r)&&(t=i,a=o,r=s)}),t}var jx=e=>e<10?"0"+e:String(e);function Fx(e,t){switch(t){case"year":return`${e.y}-01-01`;case"quarter":return`${e.y}-${jx(Math.floor((e.m-1)/3)*3+1)}-01`;case"month":return`${e.y}-${jx(e.m)}-01`;case"hour":return new Date(e.ms).toISOString().replace(/\.\d{3}Z$/,"Z");default:return e.iso}}function kte(e){let{periods:t,series:a}=e,r=Math.min(t.length,a.length),n=new Set;for(let w=0;w<r;w++)t[w]&&n.add(t[w]);let i=Yx(n,{pattern:e.pattern,locale:e.locale});if(!i)return null;let o=i.cadence.grain;if(o==="irregular")return null;let s=i.points[0],l=M0(s,i.points[i.points.length-1],o,i.stepMs)+1;if(l!==i.cadence.expectedPoints)return null;let u=new Map;for(let w of n){let S=K8(w,e.pattern,e.locale);if(!S)continue;let M=M0(s,S,o,i.stepMs);M>=0&&M<l&&u.set(w,{idx:M,stamp:S})}let c=new Map;for(let w=0;w<r;w++){let S=a[w];if(!S)continue;let M=u.get(t[w]);if(!M)continue;let U=c.get(S);U||(U={seen:new Set,lo:M.idx,hi:M.idx,loStamp:M.stamp,hiStamp:M.stamp,order:c.size},c.set(S,U)),U.seen.add(M.idx),M.idx<U.lo&&(U.lo=M.idx,U.loStamp=M.stamp),M.idx>U.hi&&(U.hi=M.idx,U.hiStamp=M.stamp)}if(c.size<2)return null;let d=0;for(let w of c.values())d+=w.seen.size;if(d/(c.size*l)<(e.minFill??mte))return null;let h=[],p=new Set,m=0,g=0,f=0,y=0,b=0,v=1;for(let[w,S]of c){for(let A of S.seen)p.add(A);if(S.seen.size>=l)continue;let M=[...S.seen].sort((A,R)=>A-R),U=1;for(let A=1;A<M.length;A++)U=Math.max(U,M[A]-M[A-1]);let W={key:w,acc:S,coverage:S.seen.size/l,before:S.lo,after:l-1-S.hi,interior:S.hi-S.lo+1-S.seen.size,gap:U};h.push(W),W.before>0&&m++,W.after>0&&g++,W.interior>0&&f++,y=Math.max(y,W.before),b=Math.max(b,W.after),v=Math.max(v,U)}if(h.length===0)return null;h.sort((w,S)=>w.coverage-S.coverage||w.acc.order-S.acc.order);let k=h.slice(0,e.maxListed??pte);return{seriesColumn:e.seriesColumn,grain:o,periods:l,seriesCount:c.size,incompleteSeries:h.length,lateStarts:m,earlyEnds:g,withHoles:f,columnWideMissing:l-p.size,maxMissingBefore:y,maxMissingAfter:b,largestGap:v,series:k.map(w=>{let S={};return e.includeNames&&(S.name=w.key),e.includeDates&&(S.first=Fx(w.acc.loStamp,o),S.last=Fx(w.acc.hiStamp,o)),S.missingBefore=w.before,S.missingAfter=w.after,S.missingInterior=w.interior,S.largestGap=w.gap,S.coverage=Math.round(w.coverage*1e3)/1e3,S}),more:h.length-k.length}}var If=6;function G8(e){let t=e.slice().sort((r,n)=>r-n),a=t.length>>1;return t.length%2?t[a]:(t[a-1]+t[a])/2}function wte(e){let t=e.length;if(t<If)return null;let a=e[0],r=e[0],n=0;for(let v of e)v<a&&(a=v),v>r&&(r=v),n+=v;if(a===r)return null;let i=G8(e.map(Math.abs));if(i===0)return null;let o=[];for(let v=1;v<t;v++)o.push(e[v]-e[v-1]);let s=G8(o.map(Math.abs))/i,l=(t-1)/2,u=n/t,c=0,d=0,h=0;for(let v=0;v<t;v++)c+=(v-l)*(e[v]-u),d+=(v-l)*(v-l),h+=(e[v]-u)*(e[v]-u);h/=t;let p=c/d,m=u-p*l,g=e.map((v,k)=>v-(m+p*k)),f=g.reduce((v,k)=>v+k,0)/t,y=0,b=0;for(let v=0;v<t;v++)y+=(g[v]-f)*(g[v]-f),v>0&&(b+=(g[v]-g[v-1])*(g[v]-g[v-1]));return y/=t,b/=t-1,{vnDetrended:y<=h*1e-12?2:b/y,relStep:s}}function Wte(e){let{stamps:t,series:a,values:r}=e,n=Math.min(t.length,r.length),i=new Map;for(let u=0;u<n;u++){let c=t[u],d=r[u];if(c===null||d===null||!Number.isFinite(d))continue;let h="";if(a&&(h=a[u]??"",h===""))continue;let p=i.get(h);p||i.set(h,p=new Map),p.set(c,(p.get(c)??0)+d)}let o=[],s=[],l=[];for(let u of i.values()){let c=[...u.entries()].sort((h,p)=>h[0]-p[0]).map(h=>h[1]),d=wte(c);d&&(o.push(d.vnDetrended),s.push(d.relStep),l.push(c.length))}return o.length===0?null:{series:o.length,points:Math.round(G8(l)),vnDetrended:Math.round(G8(o)*1e3)/1e3,relStep:Math.round(G8(s)*1e4)/1e4}}var Cte=5e5,Ate=8,_te=4,Mte=5,kf=1,wf=2,xte=4,Ite=8;function Pte(e,t,a){let[r,n]=[...e];if(t.isTemporal){let i=K8(r,t.temporalTextPattern,a),o=K8(n,t.temporalTextPattern,a);if(i&&o&&i.ms!==o.ms)return i.ms<o.ms?{a:r,b:n,setOrder:"temporal"}:{a:n,b:r,setOrder:"temporal"}}return r<n?{a:r,b:n,setOrder:"none"}:{a:n,b:r,setOrder:"none"}}function Ute(e,t,a){let{rows:r,text:n,locale:i}=e,o=Pte(a.values,a,i),s=new Uint8Array(r.length),l=0;for(let u=0;u<r.length;u++){let c=n(r[u][t]);c===o.a?s[u]=1:c===o.b?s[u]=2:l++}return{code:s,blankRows:l,setOrder:o.setOrder}}function Tte(e,t){let{rows:a,text:r}=e,n=new Int32Array(a.length),i=new Map;for(let o=0;o<a.length;o++){let s=r(a[o][t]);if(s===""){n[o]=-1;continue}let l=i.get(s);l===void 0&&(l=i.size,i.set(s,l)),n[o]=l}return{ids:n,dict:i}}function Ete(e,t,a){let r=new Uint8Array(a);for(let i=0;i<e.length;i++){let o=t[i];if(o===0)continue;let s=e[i];if(s<0)continue;let l=r[s];r[s]=l&o?l|o<<2:l|o}let n={keysA:0,keysB:0,keysBoth:0,dupA:0,dupB:0};for(let i=0;i<a;i++){let o=r[i];o&kf&&n.keysA++,o&wf&&n.keysB++,(o&(kf|wf))===(kf|wf)&&n.keysBoth++,o&xte&&n.dupA++,o&Ite&&n.dupB++}return n}function Rte(e,t){let a=(e.dupA+e.dupB)*(t.keysA+t.keysB),r=(t.dupA+t.dupB)*(e.keysA+e.keysB);return a<r||a===r&&e.keysBoth>t.keysBoth}var Bx=e=>e==null||typeof e=="string"&&e.trim()==="";function zte(e,t,a){if(e===t)return!0;let r=Bx(e),n=Bx(t);return r||n?r&&n:typeof e=="number"&&typeof t=="number"?!1:e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():a(e).trim()===a(t).trim()}function $te(e){let{rows:t,columns:a}=e,r=t.length;if(r<2||r>Cte)return null;let n=a.map((S,M)=>({c:S,i:M})).filter(({c:S})=>!S.isMeasure&&!S.isTemporal&&!S.isDatePart&&S.distinct>=Mte).sort((S,M)=>(M.c.identifierNamed?1:0)-(S.c.identifierNamed?1:0)||M.c.distinct-S.c.distinct||S.i-M.i).slice(0,Ate),i=a.map((S,M)=>({c:S,i:M})).filter(({c:S})=>!S.isMeasure&&S.values!==null&&S.values.size===2).slice(0,_te);if(n.length===0||i.length===0)return null;let o=i.map(({c:S,i:M})=>Ute(e,M,S)),s=null;for(let{i:S}of n){let M=Tte(e,S);for(let U=0;U<i.length;U++){if(i[U].i===S)continue;let W=Ete(M.ids,o[U].code,M.dict.size);W.keysBoth<1||(!s||Rte(W,s.tally))&&(s={tally:W,keyIdx:S,setNo:U,ids:M.ids,dict:M.dict})}}if(!s)return null;let{ids:l,dict:u,tally:c}=s,d=o[s.setNo],h=i[s.setNo].i,p=u.size,m=new Int32Array(p).fill(-1),g=new Int32Array(p).fill(-1);for(let S=0;S<r;S++){let M=d.code[S],U=l[S];M===0||U<0||(M===1?m[U]<0&&(m[U]=S):g[U]<0&&(g[U]=S))}let f=[];for(let S=0;S<a.length;S++)S!==s.keyIdx&&S!==h&&f.push(S);let y=0;for(let S=0;S<p;S++){let M=m[S],U=g[S];if(M<0||U<0)continue;let W=t[M],A=t[U],R=!0;for(let j of f)if(!zte(W[j],A[j],e.text)){R=!1;break}R&&y++}let b=y===c.keysBoth?100:y===0?0:Math.min(99,Math.max(1,Math.round(y/c.keysBoth*100))),v=new Map,k=new Map;for(let[S,M]of u){let U=m[M]>=0,W=g[M]>=0;if(!U&&!W)continue;let A=Wn(S);pr(A)&&(U&&v.set(A,(v.get(A)??0)+1),W&&k.set(A,(k.get(A)??0)+1))}let w=S=>{let M=0;for(let U of S.values())U>=2&&(M+=U);return M};return{key:s.keyIdx,discriminator:h,pairing:{form:"long",key:a[s.keyIdx].name,discriminator:a[h].name,keysA:c.keysA,keysB:c.keysB,keysBoth:c.keysBoth,duplicateKeysA:c.dupA,duplicateKeysB:c.dupB,identicalPct:b,discriminatorBlankRows:d.blankRows,looseCollisionsA:w(v),looseCollisionsB:w(k),setOrder:d.setOrder}}}var Ote=e=>e==="Integer"||e==="Decimal";function Dte(e){let t=[],a=[];return e.forEach((r,n)=>{if(r.twoValues){if(r.isBinaryFlag){t.push(n);return}r.isMeasure||r.isTemporal||r.isDatePart||r.identifierNamed||a.push(n)}}),[...t,...a].slice(0,6)}function Lte(e,t){let a=[];for(let r=0;r<e.length&&a.length<12;r++){let n=e[r];t.has(r)||!Ote(n.dataType)||n.isTemporal||n.isDatePart||n.identifierNamed||n.distinct<3||a.push(r)}return a}function jte(e){let t=new Map,{rows:a,columns:r,text:n}=e;if(a.length===0||a.length>(e.maxRows??5e5))return t;let i=Dte(r);if(i.length===0)return t;let o=Lte(r,new Set(i));if(o.length===0)return t;let s=i.map(l=>{let[u,c]=r[l].twoValues,d=new Uint8Array(a.length);for(let h=0;h<a.length;h++){let p=n(a[h][l]);d[h]=p===u?1:p===c?2:0}return d});for(let l of o){let u=new Float64Array(a.length),c=0;for(let b=0;b<a.length;b++){let v=a[b][l],k=v==null||v===""?NaN:typeof v=="number"?v:parseFloat(v);u[b]=k,k===k&&k!==1/0&&k!==-1/0&&c++}if(c<2)continue;let d=new Float64Array(c);for(let b=0,v=0;b<a.length;b++){let k=u[b];k===k&&k!==1/0&&k!==-1/0&&(d[v++]=k)}d.sort();let h=new Float64Array(c),p=0;for(let b=0;b<c;b++)(b===0||d[b]!==d[b-1])&&(h[p++]=d[b]);let m=new Int32Array(a.length).fill(-1);for(let b=0;b<a.length;b++){let v=u[b];if(!(v===v&&v!==1/0&&v!==-1/0))continue;let k=0,w=p-1;for(;k<w;){let S=k+w>>>1;h[S]<v?k=S+1:w=S}m[b]=k}let g=[],f=new Int32Array(p),y=new Int32Array(p);for(let b=0;b<i.length;b++){let v=s[b];f.fill(0),y.fill(0);let k=0,w=0;for(let N=0;N<a.length;N++){let x=m[N];x<0||(v[N]===1?(f[x]++,k++):v[N]===2&&(y[x]++,w++))}if(k===0||w===0)continue;let S=k<=w,M=S?k:w,U=S?w:k,W=S?f:y,A=S?y:f,R=0,j=0,C=0;for(let N=0;N<p;N++){let x=W[N],I=A[N];R+=x*(j+.5*I),j+=I,x+I>=2&&(C+=x+I)}g.push({outcome:r[i[b]].name,aucMinorityHigh:Math.round(R/(M*U)*1e4)/1e4,nMinority:M,nMajority:U,ties:C})}g.length>0&&t.set(l,g)}return t}var Fte=12,Bte=100,Hte=.3,Gte=.9,Kte=120,Xte=1900,Vte=2100,qte=0,Zte=20,Jte=new Set(["id","ids","uuid","guid","key","zip","zipcode","postal","postalcode","ssn","code","codes","sku","isbn","msisdn","imei"]);function _i(e){if(!e)return!1;let t=Wa(e);return t.length===0?!1:Jte.has(t[t.length-1])?!0:Lee(e)!==null}var Yte=new Set(["year","yr","fy"]),Qte=e=>Wa(e).some(t=>Yte.has(t))||pf(e)!==null,e1e=/^(?:(?:19|20)\d{2}(?:[-/ ]?(?:q[1-4]|w(?:0?[1-9]|[1-4]\d|5[0-3])|(?:0?[1-9]|1[0-2])))?|q[1-4][-/ ](?:19|20)\d{2}|(?:jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]*[-/ ]?(?:19|20)?\d{2})$/i;function Wf(e){if(!Number.isInteger(e)||e<190001||e>210012)return!1;let t=e%100;return t>=1&&t<=12}function Cf(e){if(!Number.isInteger(e)||e<19000101||e>21001231)return!1;let t=Math.floor(e/100)%100,a=e%100;return t>=1&&t<=12&&a>=1&&a<=31}var t1e=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2}))?(?:\.\d+)?Z?)?$/,a1e=/^(\d{4})([\/.])(\d{1,2})\2(\d{1,2})$/,n1e=/^(\d{1,2})([\/.\-])(\d{1,2})\2(\d{4})(?:[ T](\d{2}):(\d{2})(?::(\d{2}))?)?$/;function Qx(e,t){let a=[],r=0,n=r1e(e,t,a,()=>{r++});if(n)return n;if(r>0||a.length<2)return null;let i=Pf(a,{locale:t,floor:.8});return!i||!i.pattern||i.form==="named"?null:{pattern:i.pattern,orderFrom:i.orderFrom==="shape"?i.order==="ymd"?"iso":"shape":i.orderFrom}}function r1e(e,t,a,r){let n=0,i=0,o=0,s=0,l=0,u="",c=0,d="",h=0,p=0,m=0,g=0,f=!1;for(let k of e){if(k==null)continue;let w=String(k).trim();if(w==="")continue;n++,a.push(w);let S;if(S=t1e.exec(w)){r();let M=+S[2],U=+S[3];M>=1&&M<=12&&U>=1&&U<=31&&(i++,S[4]!==void 0&&o++,S[6]!==void 0&&s++)}else if(S=a1e.exec(w)){r();let M=+S[3],U=+S[4];M>=1&&M<=12&&U>=1&&U<=31&&(u&&u!==S[2]&&(f=!0),u=S[2],l++)}else if(S=n1e.exec(w)){r();let M=+S[1],U=+S[3];M>=1&&M<=31&&U>=1&&U<=31&&(M<=12||U<=12)&&(d&&d!==S[2]&&(f=!0),d=S[2],c++,M>12&&m++,U>12&&g++,S[5]!==void 0&&h++,S[7]!==void 0&&p++)}if(n>=200)break}if(n<2||(i+l+c)/n<.8||(i>0?1:0)+(l>0?1:0)+(c>0?1:0)!=1||f)return null;if(i>0)return o===i?{pattern:s===i?"%Y-%m-%dT%H:%M:%S":"%Y-%m-%dT%H:%M",orderFrom:"iso"}:{pattern:"%Y-%m-%d",orderFrom:"iso"};if(l>0)return{pattern:`%Y${u}%m${u}%d`,orderFrom:"iso"};if(m>0&&g>0)return null;let y,b;m>0?(y=!0,b="values"):g>0?(y=!1,b="values"):d==="."?(y=!0,b="shape"):(y=!Gx(t),b="locale");let v=y?`%d${d}%m${d}%Y`:`%m${d}%d${d}%Y`;return h===c?{pattern:v+(p===c?" %H:%M:%S":" %H:%M"),orderFrom:b}:{pattern:v,orderFrom:b}}function i1e(e,t){if(!t||!/\b(?:19|20)\d{2}\b/.test(e))return!1;let a=e.replace(/\b(?:19|20)\d{2}\b/g,"").replace(/[-/.,]/g," ").trim();if(!a)return!1;let r=Ka(a);return r.length>0&&t[r]!==void 0}function o1e(e,t){let a=new Map,r=new Map;for(let s of e){let l=O8(s);if(!l||"month"in l)continue;let u=y0(l.word),c=u.some(h=>h.lang==="en"),d=Ka(l.word);for(let h of new Set(u.map(p=>p.lang)))h!=="en"&&(a.has(h)||(a.set(h,new Set),r.set(h,new Set)),a.get(h).add(d),c||r.get(h).add(d))}let n=[...a.keys()].filter(s=>a.get(s).size>=3&&r.get(s).size>=1),i=0,o=new Map(n.map(s=>[s,0]));for(let s of t){let l=O8(s);if(!l)continue;if("month"in l){i++;continue}let u=y0(l.word);if(u.length===0)continue;let c=u.some(d=>d.lang==="en");for(let d of n)(c||u.some(h=>h.lang===d))&&o.set(d,o.get(d)+1)}return i+Math.max(0,...o.values())}var s1e=/(?:19|20)[0-9]{2}/;function l1e(e){let t=new Map,a=0;for(let n of e){if(!s1e.test(Cn(n)))continue;let i=new Set(k0(n).filter(o=>o.yearDigits===4&&(o.grain==="quarter"||o.grain==="week")).map(o=>o.lang));if(i.size!==0){if(i.has("en")){a++;continue}for(let o of i)t.set(o,(t.get(o)??0)+1)}}let r=0;for(let n of t.values())r=Math.max(r,n);return r>0?r+a:0}function u1e(e){let{dataType:t,name:a,isMeasure:r,distinctCount:n}=e;if(t==="DateTime")return!0;if(r)return!1;if(t==="Integer"||t==="Decimal"){let i=e.minNum,o=e.maxNum;if(!(i!=null&&o!=null&&Number.isFinite(i)&&Number.isFinite(o)&&Number.isInteger(i)&&Number.isInteger(o)&&o>=i))return!1;let s=i>=1900&&o<=2100;if(s&&n>=2&&Qte(a)||s&&n>=3&&n===o-i+1)return!0;let l=Wf(i)&&Wf(o),u=Cf(i)&&Cf(o);if(l||u){if(!e.sampleValues)return!0;let c=0,d=0;for(let h of e.sampleValues){if(h==null||h==="")continue;c++;let p=Number(String(h).trim());if(Number.isFinite(p)&&(l?Wf(p):Cf(p))&&d++,c>=60)break}if(c>=2&&d===c)return!0}return!1}if(e.sampleValues){let i=e.locale?Rg(e.locale):null,o=0,s=0,l=[],u=[];for(let c of e.sampleValues){if(c==null||c==="")continue;o++;let d=String(c).trim();if(l.push(d),e1e.test(d)||i1e(d,i)?s++:u.push(d),o>=60)break}if(o>=2&&s/o>=.8||o>=2&&(s+l1e(u)+o1e(l,u))/o>=.8||Qx(l,e.locale)!==null)return!0}return!1}function c1e(e){let t=Tf((e||"").trim().toLowerCase());return t.startsWith("sum ")||t.startsWith("total ")?"sum":t.startsWith("average ")||t.startsWith("avg. ")?"avg":t.startsWith("count ")||t.startsWith("distinct count ")||t.startsWith("count (distinct) ")?"count":t.startsWith("min ")||t.startsWith("minimum ")?"min":t.startsWith("max ")||t.startsWith("maximum ")?"max":Iee(e)}function d1e(e){let{rows:t,measureColIdx:a,measureName:r,candidateDims:n,minNum:i,maxNum:o,discourageAgg:s}=e,l=100,u=.01,c="";for(let h of n){if(h.distinct<2||h.distinct>l)continue;let p=n.filter(b=>b.idx!==h.idx).map(b=>b.idx),m=new Map;for(let b of t){let v=b[a];if(typeof v!="number"||!Number.isFinite(v))continue;let k=p.length?p.map(S=>String(b[S])).join(c):"",w=m.get(k);w||(w={sum:0,cset:new Set},m.set(k,w)),w.sum+=v,w.cset.add(String(b[h.idx]))}let g=0,f=0,y=0;for(let b of m.values())b.cset.size<2||(y++,Math.abs(b.sum-100)<=100*u?g++:Math.abs(b.sum-1)<=1*u&&f++);if(y>=2&&(g/y>=.9||f/y>=.9))return{additivity:"part_of_whole",partOfWholeDim:h.name}}if(s)return{additivity:"intensive_rate"};let d=c1e(r);return d==="avg"||d==="min"||d==="max"?{additivity:"intensive_rate"}:d==="count"?{additivity:"additive"}:d==="sum"?{additivity:"unknown"}:i!=null&&o!=null&&Number.isFinite(i)&&Number.isFinite(o)&&i>=0&&o<=1.0001&&o>0?{additivity:"intensive_rate"}:{additivity:"unknown"}}function eI(e){let{dataType:t,isMeasure:a,name:r,distinct:n,nonblank:i,prec:o,maxval:s,minval:l}=e,u=s-l+1,c=u>0?n/u:1,d=i>0?n/i:0,h=t==="Decimal"||o>0;return!a&&_i(r)?"Categorical":c>=Gte&&!(e.ordinalNeedsWholeNumbers&&o>0)&&(Ax(r)&&n<=Kte||l>=Xte&&s<=Vte||l>=qte&&s<=Zte)?"Ordinal":a||n>Fte&&(h||n>=Bte||d>=Hte)?"Continuous":"Categorical"}function Hx(e,t,a){return!e||e.isMeasure||t||e.dataType!=="Integer"&&e.dataType!=="Decimal"?!1:eI({dataType:e.dataType,isMeasure:!1,name:e.name,distinct:a.distinct,nonblank:a.nonblank,prec:a.prec,maxval:typeof a.maxval=="number"?a.maxval:0,minval:typeof a.minval=="number"?a.minval:0,ordinalNeedsWholeNumbers:!0})==="Continuous"}function h1e(e){let t=null;for(let a=0;a<e.length;a++){let r=e[a];if(typeof r!="string"||r.length===0)continue;let n=r.trim();n.length!==r.length&&(t||(t=e.slice()),t[a]=n)}return t||e}var tI=class{_computedStatsForLevel=null;_cols=[];_rows=[];_origIndices=[];_rowHashes=new Set;_hostQueryNames=[];_englishAliases=new Map;_generationColumns=[];_generationColumnsSig="[]";_declaredDimensions=new WeakSet;_inferredMeasureFlags=null;dedupRows=!0;emitLegacyAggAliases=!1;deriveProvinces=!0;dateCellsAreLocalWallClock=!1;wallClockColumnIndexes(){let e=new Set;if(!this.dateCellsAreLocalWallClock||!this._cols)return e;for(let t=0;t<this._cols.length;t++){let a=this._cols[t];!a||!/date|time/i.test(String(a.dataType??""))||Kg(this._rows.map(r=>r[t]))&&e.add(t)}return e}STR(e){return e==null?"":e instanceof Date?this.wholeDayIso(e)??(isNaN(e.getTime())?"":e.toISOString()):e.toString()}getPrecision(e){if(!isFinite(e))return 0;let t=e.toString().split(".")[1];return t?t.length:0}getColumns(){return this._cols}inferredMeasureFlags(){if(this._inferredMeasureFlags)return this._inferredMeasureFlags;let e=this._cols.map(t=>!!(t&&t.isMeasure));return this._cols.forEach((t,a)=>{if(!t||t.isMeasure||this._declaredDimensions.has(t)||t.dataType!=="Integer"&&t.dataType!=="Decimal")return;let r=new Set,n=0,i=0,o=null,s=null;for(let l of this._rows){let u=l[a],c=this.STR(u);if(c!=""&&(r.add(c),n++,(o===null||u<o)&&(o=u),(s===null||u>s)&&(s=u),t.dataType=="Decimal")){let d=this.getPrecision(u);d>i&&(i=d)}}e[a]=Hx(t,!1,{distinct:r.size,nonblank:n,prec:i,minval:o,maxval:s})}),Object.freeze(e),this._inferredMeasureFlags=e,e}declareDimensions(e){this._inferredMeasureFlags=null;for(let t of e)t&&this._declaredDimensions.add(t)}wholeDayIso(e){return Gg(e)}hasTimeComponent(e){return!(e instanceof Date)||isNaN(e.getTime())?!1:this.wholeDayIso(e)===null}getColumnsWithStats(e,t){if(this._computedStatsForLevel==e)return this._cols;let a=0,r=parseInt(e),n=this.wallClockColumnIndexes(),i=[],o=[],s=[];for(let N of this._cols){let x=new Map,I=[],P=0,E=0,B=0,O=null,q=null,L=null,D=!1,$=!0,J=!0,F=null,Z=!1,oe=n.has(a);for(let G of this._rows){let ee=G[a],ie=oe&&ee instanceof Date?j8(ee):ee,le=this.STR(ie);if(le!=""){if(P+=le.length,x.set(le,(x.get(le)||0)+1),E++,N.dataType=="Integer"||N.dataType=="Decimal"||N.dataType=="DateTime")if((O===null||ie<O)&&(O=ie),(q===null||ie>q)&&(q=ie),N.dataType=="Integer"||N.dataType=="Decimal"){if(L===null?L=ie:L+=ie,N.dataType=="Decimal"){let ke=this.getPrecision(ie);ke>B&&(B=ke)}I.push(ie)}else D=D||this.hasTimeComponent(ie);Z&&(ie<F?$=!1:ie>F&&(J=!1)),F=ie,Z=!0}}if(E>=3&&($&&!J?N.sortedDirection="asc":J&&!$?N.sortedDirection="desc":N.sortedDirection="none"),E>0&&x.size>0&&!N.isMeasure){let G=0,ee=Number.MAX_SAFE_INTEGER;for(let ie of x.values())ie>G&&(G=ie),ie<ee&&(ee=ie);if(N.modalShare=G/E,N.minGroupCount=ee===Number.MAX_SAFE_INTEGER?null:ee,x.size===2){let ie=[...x.keys()].map(Pe=>Lg(Pe).trim().toLowerCase()).sort(),le=[["false","true"],["no","yes"],["n","y"],["0","1"],["f","t"]].some(Pe=>ie[0]===Pe[0]&&ie[1]===Pe[1]),ke=/^(is|has)[_\p{L}\p{N}]|(?:default|churn|fraud|approv|convert|active|cancel|delinquen|flag|paid|win|pass|fail)/iu.test(N.name);(le||ke)&&(N.isBinaryFlag=!0)}}else N.isMeasure&&(N.dataType==="Integer"||N.dataType==="Decimal")&&x.size===2&&x.has("0")&&x.has("1")&&(N.isBinaryFlag=!0);if(N.dataType=="DateTime"&&(N.dateWithTime=D,D&&Xg(oe?this._rows.map(G=>G[a]instanceof Date?j8(G[a]):G[a]):this._rows.map(G=>G[a]))?N.timeOfDayOnly=!0:delete N.timeOfDayOnly),N.isTemporal=u1e({dataType:N.dataType,name:N.name,isMeasure:N.isMeasure,distinctCount:x.size,minNum:typeof O=="number"?O:null,maxNum:typeof q=="number"?q:null,sampleValues:x.keys(),locale:t}),N.isTemporal&&N.dataType==="String"&&!N.isMeasure){let G=Qx(x.keys(),t);G&&(N.temporalTextPattern=G.pattern)}if(N.timeOfDayOnly)delete N.temporalCadence;else if(N.isTemporal&&!N.isMeasure){let G=hte(x.keys(),{includeBounds:r>=20,pattern:N.temporalTextPattern,locale:t});G&&(N.temporalCadence=G)}this.updateColumnStats10(r,N,E,x,B,q,O),this.updateColumnStats20(r,I,E,L,N,P,D,O,q,B,x,t),Hx(N,this._declaredDimensions.has(N),{distinct:x.size,nonblank:E,prec:B,minval:O,maxval:q})&&(N.isMeasure=!0,N.valueNature="Continuous",N.geoKind=void 0,N.geoMatchPct=void 0,N.geoAmbiguous=void 0,N.dominantGeoRegion=void 0,N.dominantGeoRegionPct=void 0,N.geoRegionCount=void 0),i[a]=N.isMeasure||x.size>2e3?null:new Set(x.keys()),o[a]=x.size,s[a]=x.size===2?[...x.keys()].sort():null,a++}nee(this._cols,this._rows,{cities:this.deriveProvinces}).forEach((N,x)=>{let I=this._cols[x];N.kind&&(I.geoKind=N.kind,I.geoMatchPct=N.matchPct,N.ambiguous&&(I.geoAmbiguous=!0)),N.rollupPct!==void 0&&(I.admin1RollupPct=N.rollupPct),N.regionCount!==void 0&&(I.admin1RegionCount=N.regionCount),N.countryCount!==void 0&&(I.admin1CountryCount=N.countryCount),N.dominantRegion&&(I.dominantGeoRegion=N.dominantRegion,I.dominantGeoRegionPct=N.dominantRegionPct)});let l=this.getGeoExtent();if(l&&l.dominantFrame&&this._geoExtentLatIdx>=0){let N=this._cols[this._geoExtentLatIdx];N.geoKind||(N.dominantGeoRegion=l.dominantFrame,N.dominantGeoRegionPct=l.dominantFramePct,this.deriveProvinces&&(N.admin1RollupPct=l.dominantFramePct))}let u=[];this._cols.forEach((N,x)=>{N.isMeasure||u.push({idx:x,distinct:N.distinctCount??0,name:N.name})}),this._cols.forEach((N,x)=>{if(!N.isMeasure)return;let I=typeof N.lowValue=="number"?N.lowValue:null,P=typeof N.highValue=="number"?N.highValue:null,E=d1e({rows:this._rows,measureColIdx:x,measureName:N.name,candidateDims:u,minNum:I,maxNum:P,discourageAgg:!!N.discourageAggregationAcrossGroups});N.additivity=E.additivity,E.partOfWholeDim&&(N.partOfWholeDim=E.partOfWholeDim)});let c=50,d=4,h=u.filter(N=>N.distinct>=2&&N.distinct<=c);this._cols.forEach((N,x)=>{if(!N.isMeasure)return;let I=[];for(let J of this._rows){let F=J[x];if(F==null||F==="")continue;let Z=typeof F=="number"?F:parseFloat(F);isNaN(Z)||I.push(Z)}if(I.length===0)return;let P=[...I].sort((J,F)=>J-F);if(P[0]===P[P.length-1])N.relativeDispersion=0;else if(P.length>=d){let J=Xa(P,.5),F=Xa(P,.1),Z=Xa(P,.9);N.relativeDispersion=Math.abs(J)>1e-9?Math.round((Z-F)/Math.abs(J)*1e3)/1e3:void 0}else N.relativeDispersion=void 0;let E=[];for(let J of h){let F=new Set;for(let Z of this._rows){let oe=Z[x];oe==null||oe===""||F.add(this.STR(Z[J.idx])+"")}E.push({otherColumn:J.name,nonBlankGroupCount:F.size})}E.length>0&&(N.nonBlankGroups=E);let B=0;for(let J of I)B+=J;B/=I.length;let O=0;for(let J of I)O+=(J-B)*(J-B);if(O<=1e-12)return;let q=[],L=[],D=J=>{if(J.length<4)return NaN;let F=[...J].sort((oe,G)=>oe-G),Z=oe=>F[Math.min(F.length-1,Math.max(0,Math.floor(oe*(F.length-1))))];return Z(.75)-Z(.25)},$=D(I);for(let J of h){let F=new Map;for(let G of this._rows){let ee=G[x];if(ee==null||ee==="")continue;let ie=typeof ee=="number"?ee:parseFloat(ee);if(isNaN(ie))continue;let le=this.STR(G[J.idx])+"",ke=F.get(le);ke?(ke.s+=ie,ke.n++,ke.vals.push(ie)):F.set(le,{s:ie,n:1,vals:[ie]})}let Z=0;for(let G of F.values()){let ee=G.s/G.n;Z+=G.n*(ee-B)*(ee-B)}q.push({otherColumn:J.name,eta2:Math.round(Z/O*1e4)/1e4});let oe=[];for(let G of F.values()){let ee=D(G.vals);isNaN(ee)||oe.push(ee)}if(oe.length>=2&&isFinite($)&&$>1e-9){let G=(Math.max(...oe)-Math.min(...oe))/$;L.push({otherColumn:J.name,spreadRatio:Math.round(G*1e4)/1e4})}}q.length>0&&(N.groupDiscrimination=q),L.length>0&&(N.spreadDiscrimination=L)});let p=.97,m=.8,g=8,f=5,y=this._cols.map((N,x)=>({c:N,i:x})).filter(N=>N.c.isMeasure);for(let N=0;N<y.length;N++)for(let x=N+1;x<y.length;x++){let I=y[N].i,P=y[x].i,E=0,B=0,O=0,q=0,L=0,D=0;for(let oe of this._rows){let G=oe[I],ee=oe[P];if(G==null||G===""||ee===null||ee===void 0||ee==="")continue;let ie=typeof G=="number"?G:parseFloat(G),le=typeof ee=="number"?ee:parseFloat(ee);isNaN(ie)||isNaN(le)||(E++,B+=ie,O+=le,q+=ie*ie,L+=le*le,D+=ie*le)}if(E<f)continue;let $=E*q-B*B,J=E*L-O*O;if($<=1e-12||J<=1e-12)continue;let F=(E*D-B*O)/Math.sqrt($*J),Z=Math.min(1,Math.round(Math.abs(F)*1e3)/1e3);for(let oe of[y[N].c,y[x].c])(oe.maxAbsMeasureCorrelation===void 0||Z>oe.maxAbsMeasureCorrelation)&&(oe.maxAbsMeasureCorrelation=Z);if(Math.abs(F)>=p){let oe=y[N].c,G=y[x].c;oe.collinearWithMeasures||(oe.collinearWithMeasures=[]),G.collinearWithMeasures||(G.collinearWithMeasures=[]),oe.collinearWithMeasures.push(G.name),G.collinearWithMeasures.push(oe.name)}else if(Math.abs(F)>=m){let oe=y[N].c,G=y[x].c,ee=Math.round(F*1e3)/1e3;oe.correlatedWithMeasures||(oe.correlatedWithMeasures=[]),G.correlatedWithMeasures||(G.correlatedWithMeasures=[]),oe.correlatedWithMeasures.push({otherColumn:G.name,r:ee}),G.correlatedWithMeasures.push({otherColumn:oe.name,r:ee})}}for(let{c:N}of y)N.correlatedWithMeasures&&(N.correlatedWithMeasures.sort((x,I)=>Math.abs(I.r)-Math.abs(x.r)||(x.otherColumn<I.otherColumn?-1:1)),N.correlatedWithMeasures.length=Math.min(N.correlatedWithMeasures.length,g));for(let N=0;N<this._cols.length;N++){let x=i[N];if(!x||x.size===0)continue;let I=[];for(let P=0;P<this._cols.length;P++){if(P===N)continue;let E=i[P];if(!E||E.size===0)continue;let B=0;for(let q of x)E.has(q)&&B++;let O=Math.round(B/x.size*100);O>0&&I.push({otherColumn:this._cols[P].name,percentShared:O})}I.length>0&&(this._cols[N].sharedValueRatioWithOthers=I)}let b=50,v=[];for(let N=0;N<this._cols.length;N++){let x=i[N];x&&x.size>=2&&x.size<=b&&v.push(N)}if(v.length>=2){let N=new Map,x=(P,E)=>P+":"+E;for(let P=0;P<v.length;P++)for(let E=P+1;E<v.length;E++)N.set(x(v[P],v[E]),new Map);for(let P of this._rows)for(let E=0;E<v.length;E++){let B=this.STR(P[v[E]])+"";for(let O=E+1;O<v.length;O++){let q=""+this.STR(P[v[O]]),L=N.get(x(v[E],v[O])),D=B+""+q;L.set(D,(L.get(D)??0)+1)}}let I=new Map;for(let P=0;P<v.length;P++)for(let E=P+1;E<v.length;E++){let B=v[P],O=v[E],q=i[B].size,L=i[O].size,D=N.get(x(B,O)),$=D.size,J=0;for(let G of D.values())(J===0||G<J)&&(J=G);let F=Math.round($/(q*L)*100),Z=$===q,oe=$===L;if((this._cols[B].categoricalPairStats||=[]).push({otherColumn:this._cols[O].name,fillPct:F,determinesOther:Z,minCellCount:J,distinctCombinations:$}),(this._cols[O].categoricalPairStats||=[]).push({otherColumn:this._cols[B].name,fillPct:F,determinesOther:oe,minCellCount:J,distinctCombinations:$}),Z&&q>L){let G=I.get(B);(!G||L<G.card)&&I.set(B,{name:this._cols[O].name,card:L,ratio:L/q})}if(oe&&L>q){let G=I.get(O);(!G||q<G.card)&&I.set(O,{name:this._cols[B].name,card:q,ratio:q/L})}}for(let[P,E]of I)this._cols[P].primaryParentColumn=E.name,this._cols[P].nestingRatio=Math.round(E.ratio*100)/100}let k=6,w=this._rows.length;for(let N=0;N<this._cols.length;N++){let x=this._cols[N];if(x.isMeasure||x.primaryParentColumn)continue;let I=x.distinctCount??0;if(I<=b||w>0&&I>=w)continue;let P=[];for(let E=0;E<this._cols.length;E++){if(E===N)continue;let B=this._cols[E];if(B.isMeasure)continue;let O=B.distinctCount??0;O<2||O>=I||P.push(E)}P.sort((E,B)=>(this._cols[E].distinctCount??0)-(this._cols[B].distinctCount??0));for(let E of P.slice(0,k)){let B=new Map,O=!0;for(let L of this._rows){let D=this.STR(L[N])+"",$=this.STR(L[E])+"",J=B.get(D);if(J===void 0)B.set(D,$);else if(J!==$){O=!1;break}}if(!O)continue;let q=this._cols[E].distinctCount??0;x.primaryParentColumn=this._cols[E].name,x.nestingRatio=Math.round(q/I*100)/100;break}}let S=.01,M=.05,U=.95,W=8,A=8,R=6,j=500,C=[];for(let N=0;N<this._cols.length&&C.length<A;N++){let x=this._cols[N].dataType;(x==="Double"||x==="Integer"||x==="Decimal")&&C.push(N)}if(C.length>=3&&this._rows.length>=W){let N=Math.min(this._rows.length,j),x=C.map(q=>{let L=[];for(let J=0;J<N;J++){let F=this._rows[J][q],Z=typeof F=="number"?F:parseFloat(String(F).replace(/,/g,""));if(F==null||F===""||!isFinite(Z))return null;L.push(Z)}let D=L[0],$=!1;for(let J of L)if(J!==D){$=!0;break}return $?L:null}),I=C.map((q,L)=>L).filter(q=>x[q]!==null),P=q=>{let L=q.slice().sort(($,J)=>$-J),D=L.length>>1;return L.length%2?L[D]:(L[D-1]+L[D])/2},E=null,B=[],O=q=>{if(B.length>=3){let L=B.map(F=>x[F]),D=L[0].length,$=new Array(D);for(let F=0;F<D;F++){let Z=0;for(let oe of L)Z+=oe[F];$[F]=Z}let J=P($);if(J>0){let F=0;for(let oe of $)Math.abs(oe-J)<=J*S&&F++;let Z=F/D;if(Z>=U){let oe=1;for(let G of L){let ee=P(G)/J;ee<oe&&(oe=ee)}oe>=M&&(!E||B.length>E.cols.length)&&(E={cols:B.slice(),total:J,matched:Z})}}}if(!(B.length>=R))for(let L=q;L<I.length;L++)B.push(I[L]),O(L+1),B.pop()};if(O(0),E){let q=E,L={columns:q.cols.map(D=>this._cols[C[D]].name),total:Math.round(q.total*1e3)/1e3,matchedPct:Math.round(q.matched*100)/100};for(let D of q.cols)this._cols[C[D]].constantSumGroup=L}}return this.applyTwoSetPairing(t,i),this.applyScoreSeparation(o,s),this.applySeriesCompleteness(r,t,i),this.applyMeasurePersistence(t,i),this._computedStatsForLevel=e,this._cols}applyTwoSetPairing(e,t){for(let r of this._cols)r.twoSetPairing!==void 0&&delete r.twoSetPairing;let a=$te({rows:this._rows,columns:this._cols.map((r,n)=>{let i=t[n];return{name:r.name,values:i,distinct:i?i.size:r.distinctCount??0,isMeasure:!!r.isMeasure,isTemporal:!!r.isTemporal,isDatePart:!!r.isDatePart,identifierNamed:_i(r.name),temporalTextPattern:r.temporalTextPattern}}),text:r=>this.STR(r),locale:e});a&&(this._cols[a.key].twoSetPairing=a.pairing,this._cols[a.discriminator].twoSetPairing=a.pairing)}applyScoreSeparation(e,t){for(let r of this._cols)r.scoreSeparation!==void 0&&delete r.scoreSeparation;let a=jte({rows:this._rows,columns:this._cols.map((r,n)=>({name:r.name,dataType:r.dataType,isMeasure:!!r.isMeasure,isTemporal:!!r.isTemporal,isDatePart:!!r.isDatePart,identifierNamed:_i(r.name),isBinaryFlag:!!r.isBinaryFlag,distinct:e[n]??0,twoValues:t[n]??null})),text:r=>this.STR(r)});for(let[r,n]of a)this._cols[r].scoreSeparation=n}applySeriesCompleteness(e,t,a){for(let l of this._cols)l.seriesCompleteness!==void 0&&delete l.seriesCompleteness;let r=this._cols.map((l,u)=>({c:l,i:u})).filter(({c:l})=>l.isTemporal&&!l.isMeasure&&l.temporalCadence&&l.temporalCadence.grain!=="irregular");if(r.length===0)return;let n=this.seriesKeyIndex(t,a);if(n<0)return;let i=this._cols[n],o=this._rows.map(l=>this.STR(l[n])),s=e>=20&&(i.dataType!=="String"||Array.isArray(i.safeDistinctValues));for(let{c:l,i:u}of r){let c=kte({periods:this._rows.map(d=>this.STR(d[u])),series:o,seriesColumn:i.name,pattern:l.temporalTextPattern,locale:t,includeDates:e>=20,includeNames:s});c&&(l.seriesCompleteness=c)}}seriesKeyIndex(e,t){let a=[],r=[];this._cols.forEach((i,o)=>{let s=t[o];s&&(a.push(o),r.push({name:i.name,dataType:i.dataType,isMeasure:!!i.isMeasure,isTemporal:!!i.isTemporal,isDatePart:!!i.isDatePart,isReassembledDate:!!i.isReassembledDate,isBinaryFlag:!!i.isBinaryFlag,geoKind:i.geoKind,identifierNamed:_i(i.name),values:s,rows:this._rows.length,locale:e}))});let n=Ste(r);return n<0?-1:a[n]}applyMeasurePersistence(e,t){for(let s of this._cols)s.persistence!==void 0&&delete s.persistence;let a=[];if(this._cols.forEach((s,l)=>{s.isMeasure&&(s.dataType==="Integer"||s.dataType==="Decimal"||s.dataType==="Double")&&a.push(l)}),a.length===0||this._rows.length<If)return;let r=-1,n=[];for(let s=0;s<this._cols.length&&r<0;s++){let l=this._cols[s];if(!l.isTemporal||l.isMeasure||l.isDatePart)continue;let u=this._rows.map(c=>K8(this.STR(c[s]),l.temporalTextPattern,e)?.ms??null);new Set(u.filter(c=>c!==null)).size<If||(r=s,n=u)}if(r<0)return;let i=this.seriesKeyIndex(e,t),o=i>=0?this._rows.map(s=>this.STR(s[i])):void 0;for(let s of a){let l=this._rows.map(c=>{let d=c[s];if(d==null||d==="")return null;let h=typeof d=="number"?d:parseFloat(String(d).replace(/,/g,""));return Number.isFinite(h)?h:null}),u=Wte({stamps:n,series:o,values:l});u&&(this._cols[s].persistence={timeColumn:this._cols[r].name,...i>=0?{seriesColumn:this._cols[i].name}:{},...u})}}updateColumnStats20(e,t,a,r,n,i,o,s,l,u,c,d){if(e>=20){let h=[...t].sort((g,f)=>g-f),p=Math.floor(h.length/2);if(a>0&&r!=null?n.avgValue=n.dataType=="Integer"?Math.round(r/a):r/a:n.avgValue=null,a>0&&(n.avgLength=i/a),this._rows.length>0){let g=f=>{let y=f instanceof Date?f:typeof f=="string"?Wi(f)??new Date(f):new Date(f),b=this.wholeDayIso(y);return b?b+"T00:00:00.000Z":isNaN(y.getTime())?f:y.toISOString().slice(0,10)+"T00:00:00.000Z"};n.dataType!="DateTime"||o||!s?n.lowValue=s:n.lowValue=g(s),n.dataType!="DateTime"||o||!l?n.highValue=l:n.highValue=g(l),n.medianValue=h.length===0?null:h.length%2===0?n.dataType=="Integer"?Math.round((h[p-1]+h[p])/2):(h[p-1]+h[p])/2:h[p],n.numericPrecision=u}if(h.length>0){let g=a>0&&r!=null?r/a:n.avgValue??0,f=h.length,y=0,b=0;for(let w of h){let S=w-g;y+=S*S,b+=S*S*S}let v=y/f,k=Math.sqrt(v);n.skewness=v===0?0:b/f/(k*k*k),n.stdDev=Math.sqrt(v)}r!==null&&(n.sum=r);let m=Array.from(c.entries()).sort((g,f)=>f[1]-g[1]);if(n.topCategories=m.slice(0,10).map(g=>g[1]),!n.isMeasure&&m.length>0&&(n.dataType!=="String"&&(n.topCategoryValues=m.slice(0,5).map(g=>g[0])),e>=20)){let g=m.map(y=>y[0]),f=gf(g,d);if(f!==null)n.ordinalPattern=f.pattern,n.orderedDomain=f.orderedDomain;else if(n.dataType==="String"){let y=xx(g);y!==null&&(n.safeDistinctValues=y)}}if(h.length>=8&&(n.dataType==="Integer"||n.dataType==="Decimal")){let g=f=>h[Math.floor((h.length-1)*f)];n.quantiles={p05:g(.05),p25:g(.25),p75:g(.75),p95:g(.95)}}}if(!n.isMeasure&&n.dataType==="String"&&c.size>0){let h=Array.from(c.entries()).sort((g,f)=>f[1]-g[1]).map(g=>g[0]);n.formatSignature=Tg(h);let p=a>0?i/a:void 0,m=/^(UUID|EMAIL_LIKE|URL_LIKE|PHONE_LIKE|NUMERIC_ID|HEX_ID|OPAQUE_ID_ALPHANUMERIC|DATE_STR|BOOLEAN)$/;n.formatSignature&&!m.test(n.formatSignature)&&(p===void 0||p>=3)&&(n.isFreeText=!0)}if(!n.isMeasure&&c.size>0){let h=Array.from(c.entries()).sort((m,g)=>g[1]-m[1]),p=ux(h.map(m=>m[0]),n.name,d);if(p!==null&&(n.geoKind=p.geoKind,n.geoMatchPct=p.geoMatchPct,p.geoAmbiguous&&(n.geoAmbiguous=!0),p.geoKind.indexOf("country")===0)){let m=qM(h);m&&(n.dominantGeoRegion=m.dominantGeoRegion,n.dominantGeoRegionPct=m.dominantGeoRegionPct,n.geoRegionCount=m.regionCount,m.middleEastPct>0&&(n.middleEastPct=m.middleEastPct))}}}updateColumnStats10(e,t,a,r,n,i,o){let s=this._rows.length-a;e>=10&&(t.blankCount=s),t.distinctCount=r.size+(s!=0?1:0),t.valueNature="Categorical",a>0&&(t.dataType==="Integer"||t.dataType==="Decimal"?t.valueNature=eI({dataType:t.dataType,isMeasure:!!t.isMeasure,name:t.name,distinct:r.size,nonblank:a,prec:n,maxval:i,minval:o}):t.dataType==="DateTime"&&(t.valueNature=t.dateWithTime?"Continuous":"Ordinal"))}getRowCount(){return this._rows.length}getLeafCardinality(){if(this._leafCardinality!==null)return this._leafCardinality;let e=[];if(this._cols.forEach((a,r)=>{a.isMeasure||e.push(r)}),e.length===0)return this._leafCardinality=this._rows.length,this._leafCardinality;let t=new Set;for(let a of this._rows)t.add(JSON.stringify(e.map(r=>a[r])));return this._leafCardinality=t.size,this._leafCardinality}_leafCardinality=null;getGeoExtent(){if(this._geoExtentComputed)return this._geoExtent;this._geoExtentComputed=!0,this._geoExtent=null;let e=i=>LM(i,{camel:!0}),t=-1,a=-1,r=-1;if(this._cols.forEach((i,o)=>{let s=e(i.name),l=i.dataType==="Integer"||i.dataType==="Decimal";l&&t<0&&s.some(u=>u==="lat"||u==="latitude")?t=o:l&&a<0&&s.some(u=>u==="lon"||u==="lng"||u==="long"||u==="longitude")&&(a=o),r<0&&!i.isMeasure&&typeof i.geoKind=="string"&&i.geoKind.indexOf("country")===0&&(r=o)}),t<0||a<0){let i=(l,u)=>{let c=0;for(let d of this._rows){let h=d[l];if(h==null||h==="")continue;let p=Number(h);if(!Number.isFinite(p)||p<-u||p>u)return!1;c++}return c>0},o=-1,s=-1;if(this._cols.forEach((l,u)=>{if(!(l.dataType==="Integer"||l.dataType==="Decimal"))return;let c=e(l.name),d=c.some(h=>h==="lat"||h==="latitude")?"lat":c.some(h=>h==="lon"||h==="lng"||h==="long"||h==="longitude")?"lon":vee(c);d==="lat"&&o<0&&i(u,90)?o=u:d==="lon"&&s<0&&i(u,180)&&(s=u)}),o<0||s<0)return null;t=o,a=s}this._geoExtentLatIdx=t;let n=[];for(let i of this._rows){let o=i[t],s=i[a],l=o==null||o===""?null:Number(o),u=s==null||s===""?null:Number(s);n.push({lat:l,lon:u,country:r>=0&&Ci(this.STR(i[r]))?this.STR(i[r]):null})}return this._geoExtent=VM(n),this._geoExtent}_geoExtent=null;_geoExtentComputed=!1;_geoExtentLatIdx=-1;obfuscateString(e){return Xee(e,jg)}toObjectArray(){let e=this.liveEnglishAliases();return this._rows.map(t=>{let a={};this._cols.forEach((r,n)=>{a[r.name]=t[n],this.emitLegacyAggAliases&&r.hostName&&r.hostName!==r.name&&!Object.prototype.hasOwnProperty.call(a,r.hostName)&&(a[r.hostName]=t[n])});for(let[r,n]of e)Object.prototype.hasOwnProperty.call(a,n.alias)||(a[n.alias]=t[r]);return a})}async getCSVAsync(e){let t=[],a=e?25:1e7,r=e?4e3:1e7,n=new Map,i=this.wallClockColumnIndexes();for(let o of this._rows){let s={};for(let l=0;l<this._cols.length;l++){let u=this._cols[l],c=o[l];if(this.STR(c)!=""){if(e&&u.dataType=="String")if(n.has(c))c=n.get(c);else{let d=this.obfuscateString(c);n.set(c,d),c=d}else if(u.dataType=="DateTime"&&!u.dateWithTime){let d=c instanceof Date?c:typeof c=="string"?Wi(c)??new Date(c):new Date(c);c=(this.wholeDayIso(d)??d.toISOString().slice(0,10))+"T00:00:00.000Z"}else i.has(l)&&c instanceof Date&&(c=j8(c));r-=this.STR(c).length}else c=null;s[l]=c,--r}if(t.push(s),--a,a<=0||r<=0)break}return await _f.default.unparse(t,{header:!1})}getCSVHeaderLine(){let e=this.liveEnglishAliases();return _f.default.unparse([this._cols.map((t,a)=>{if(this.emitLegacyAggAliases&&t.hostName)return this.STR(t.hostName);let r=e.get(a);return this.STR(r&&r.headerName?r.alias:t.name)})])}setHostQueryNames(e){this._hostQueryNames=(e??[]).map(t=>t==null?null:this.STR(t)),this._englishAliases=new Map}setGenerationColumns(e){let t=(e??[]).filter(r=>!!r&&typeof r.n=="string"&&r.n!==""&&typeof r.q=="string"&&r.q!=="").map(r=>({n:r.n,q:r.q})),a=JSON.stringify(t);a!==this._generationColumnsSig&&(this._generationColumns=t,this._generationColumnsSig=a,this._englishAliases=new Map)}aliasesForCode(e){let t=$x(e,this._cols)?this.legacyAliases():[];for(let a of this.englishAliasesFor(e).values())t.push({name:a.name,alias:a.alias,reason:a.reason});return t}armAliasesForCode(e){return this.emitLegacyAggAliases=$x(e,this._cols),this._englishAliases=this.englishAliasesFor(e),this.getArmedAliases()}getArmedAliases(){let e=this.emitLegacyAggAliases?this.legacyAliases():[];for(let t of this.liveEnglishAliases().values())e.push({name:t.name,alias:t.alias,reason:t.reason});return e}legacyAliases(){let e=[];for(let t of this._cols)t&&t.hostName&&t.hostName!==t.name&&e.push({name:this.STR(t.name),alias:this.STR(t.hostName),reason:"doubled-agg-prefix"});return e}englishAliasesFor(e){let t=new Map;if(!e||this._hostQueryNames.length===0||!this._cols||this._cols.length===0)return t;let a=String(e),r=new Set;for(let o of this._cols)o&&(r.add(this.STR(o.name)),o.hostName&&r.add(this.STR(o.hostName)));let n=new Map,i=new Set;for(let o=0;o<this._cols.length;o++){if(!this._cols[o])continue;let s=this._hostQueryNames[o],l=Eee(s,this._cols[o].name,this._cols[o].dataType)?[]:Tee(s),u=this.STR(this._cols[o].name),c=[];if(s){for(let h of this._generationColumns)if(h.q===s)for(let p of[h.n,zx(h.n)])p&&p!==u&&!l.includes(p)&&!c.includes(p)&&c.push(p)}let d=[...l,...c].filter(h=>!r.has(h)&&Lx(a,h));d.length===1&&(n.set(d[0],[...n.get(d[0])??[],o]),c.includes(d[0])&&i.add(d[0]))}for(let[o,s]of n){if(s.length!==1)continue;let l=this.STR(this._cols[s[0]].name);t.set(s[0],{name:l,alias:o,headerName:!Lx(a,l),reason:i.has(o)?"stored-query-name":"english-implicit-agg"})}return t}liveEnglishAliases(){let e=new Map;for(let[t,a]of this._englishAliases){let r=this._cols?this._cols[t]:null;r&&this.STR(r.name)===a.name&&e.set(t,a)}return e}addRow(e,t){if(this.dedupRows){let a="";for(let n of e)a+=this.STR(n)+"~";let r=L8(a);if(this._rowHashes.has(r))return!1;this._rowHashes.add(r)}return this._rows.push(h1e(e)),this._inferredMeasureFlags=null,this._origIndices.push(t??-1),!0}getOriginalRowIndex(e){return e<0||e>=this._origIndices.length?-1:this._origIndices[e]}invalidateStats(){this._computedStatsForLevel=null,this._geoExtentComputed=!1,this._geoExtent=null,this._geoExtentLatIdx=-1}reset(){this._inferredMeasureFlags=null,this._cols=[],this._rows=[],this._origIndices=[],this._rowHashes=new Set,this._leafCardinality=null,this._hostQueryNames=[],this._englishAliases=new Map,this._generationColumns=[],this._generationColumnsSig="[]"}setColumns(e){if(this._inferredMeasureFlags=null,this._cols=e,!e||e.length===0)return;let t=new Set(e.map(a=>this.STR(a?.name)));for(let a of e){if(!a)continue;let r=this.STR(a.name),n=zx(r);!n||n===r||t.has(n)||(t.delete(r),t.add(n),a.hostName=r,a.name=n)}}};var Rf=vo(bf(),1);/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var aI=500,nI=/^[+-]?\d{1,15}$/,p1e=/^\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|[+-]\d{2}:?\d{2})?)?$/,m1e=/^\d{1,2}[\/\-.]\d{1,2}[\/\-.]\d{2,4}$/;function g1e(e,t=".",a=!1){if(a)return"DateTime";let r=0,n=0,i=0,o=0;for(let s of e){if(s==null)continue;if(typeof s=="number"){o++,n++,Number.isInteger(s)&&r++;continue}if(s instanceof Date){o++,i++;continue}if(typeof s=="boolean"){o++;continue}let l=String(s).trim();if(l!==""){if(o++,nI.test(g3(l))){r++,n++;continue}if(RM(l,t)){n++;continue}if((p1e.test(l)||m1e.test(l))&&!isNaN(Date.parse(l))){i++;continue}}}return o===0?"String":i===o?"DateTime":r===o?"Integer":n===o?"Decimal":"String"}function f1e(e,t,a=".",r=null){if(e==null)return null;if(typeof e=="number")return t==="String"?String(e):e;if(e instanceof Date)return t==="DateTime"?e:e.toISOString();if(typeof e=="boolean")return String(e);let n=String(e).trim();if(n==="")return null;switch(t){case"Integer":{let i=g3(n);return nI.test(i)?parseInt(i,10):null}case"Decimal":return Eg(n,a);case"DateTime":return r?r.read(n):Wi(n);default:return n}}function rI(e){let t=(e||"").toLowerCase().replace(/\(.*$/,"").trim();return/^(tinyint|smallint|int|integer|int2|int4|int8|bigint|serial|bigserial)$/.test(t)?"Integer":/^(decimal|numeric|money|smallmoney|float|real|double|double precision|number)$/.test(t)?"Decimal":/^(date|datetime|datetime2|smalldatetime|datetimeoffset|timestamp|timestamptz|time)$/.test(t)?"DateTime":(/^(bit|bool|boolean)$/.test(t),"String")}function*y1e(e,t){for(let a of e)yield a?.[t]}function X8(e,t,a){if(e.length===0)throw new Error("ingest: no columns were resolved from the source. Supply column descriptors, or use a source shape that carries them (grid/table/objects/sql).");let r=e.length,n=e.map((f,y)=>t.slice(0,aI).map(b=>b?.[y])),i=n.map(f=>EM(f,a.locale)),o=e.map((f,y)=>f.dataType===void 0||f.dataType==="DateTime"?Pf(y1e(t,y),{locale:a.locale??"en"}):null),s=e.map((f,y)=>f.dataType??g1e(n[y],i[y],o[y]!==null)),l=new Set((a.measures??[]).map(f=>f.toLowerCase())),u=new Set((a.dimensions??[]).map(f=>f.toLowerCase())),c=new Set((a.nonAdditive??[]).map(f=>f.toLowerCase())),d=e.map((f,y)=>{let b=f.name.toLowerCase(),v=f.isMeasure??((s[y]==="Integer"||s[y]==="Decimal")&&!_i(f.name));l.has(b)&&(v=!0),u.has(b)&&(v=!1);let k={name:f.name,dataType:s[y],isMeasure:v};return v&&c.has(b)&&(k.discourageAggregationAcrossGroups=!0),k}),h=new tI;h.dedupRows=a.dedup!==!1,h.deriveProvinces=a.deriveProvinces!==!1,h.setColumns(d),h.declareDimensions(d.filter((f,y)=>u.has(e[y].name.toLowerCase())));for(let f=0;f<t.length;f++){let y=t[f];h.addRow(Array.from({length:r},(b,v)=>f1e(y?.[v],s[v],i[v],o[v])),f)}let p=h.getColumnsWithStats(a.privacyLevel??"20",a.locale??"en"),m=new Map(p.map(f=>[f.name,f]));e.forEach(f=>{let y=m.get(f.name);y&&(f.format&&(y.modelFormat=f.format),f.description&&(y.modelDesc=f.description))});let g=f=>{let y=m.get(f);if(y)return[y];let b=f.toLowerCase();return p.filter(v=>v.name.toLowerCase()===b)};for(let[f,y]of Object.entries(a.formats??{}))for(let b of g(f))b.modelFormat=y;for(let[f,y]of Object.entries(a.descriptions??{}))for(let b of g(f))b.modelDesc=y;for(let f of a.groupBy??[])for(let y of g(f))y.isGrouping=!0;return{columns:p,rows:h.toObjectArray(),totalRows:h.getRowCount(),index:h}}function Ef(e,t){return e.map(a=>Array.isArray(a)?a:t.map(r=>a[r]))}function b1e(e,t){let a=[],r=new Set,n=Math.min(e.length,Math.max(1,t));for(let i=0;i<n;i++){let o=e[i];if(!(!o||typeof o!="object"))for(let s of Object.keys(o))r.has(s)||(r.add(s),a.push(s))}return a}function Mi(e){let t=String(e??"").replace(/^\uFEFF/,""),a=[],r=[],n=0;return Rf.default.parse(t,{skipEmptyLines:!1,step:i=>{let o=i.meta.cursor,s=t.slice(n,o);n=o,i.errors?.length&&r.push(...i.errors);let l=i.data;l.length===1&&l[0]===""&&s.replace(/[\r\n]/g,"")===""||a.push(l)}}),!a.length&&!r.length&&r.push(...Rf.default.parse(t,{skipEmptyLines:!0}).errors),{rows:a,errors:r}}function x0(e,t={}){switch(e.kind){case"csv":{let a=Mi(e.text);if(a.errors.length&&a.rows.length===0)throw new Error(`ingest: CSV parse failed - ${a.errors[0].message}`);let r=a.rows;if(r.length<2)throw new Error("ingest: CSV needs a header line plus at least one data row.");let n=r[0].map(i=>(i??"").trim());return X8(n.map(i=>({name:i})),r.slice(1),t)}case"grid":{if(!e.header?.length)throw new Error("ingest: 'grid' needs a non-empty header.");return X8(e.header.map(a=>({name:(a??"").trim()})),e.rows??[],t)}case"table":{if(!e.columns?.length)throw new Error("ingest: 'table' needs at least one column descriptor.");let a=e.columns.map(r=>r.name);return X8(e.columns,Ef(e.rows??[],a),t)}case"objects":{let a=e.rows??[],r=e.columns?.length?e.columns:b1e(a,t.columnScanLimit??aI).map(n=>({name:n}));if(!r.length)throw new Error("ingest: 'objects' produced no columns - the rows array is empty or holds no object keys.");return X8(r,Ef(a,r.map(n=>n.name)),t)}case"sql":{if(!e.schema?.length)throw new Error("ingest: 'sql' needs at least one schema column.");let a=e.schema.map(r=>{let n=rI(r.dataType);return{name:r.name,dataType:n,isMeasure:r.isMeasure,format:r.format,description:r.description}});return X8(a,Ef(e.rows??[],a.map(r=>r.name)),t)}default:{let a=e;throw new Error(`ingest: unknown source kind '${a?.kind}'. Expected one of: csv, grid, table, objects, sql.`)}}}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */function iI(e){return{shape:e.columns,totalRows:e.totalRows,sampleCsv:null,index:e.index}}function v1e(e,t,a={}){if(e.length===0)throw new Error("no columns provided");let r=t.map(n=>n??[]);return iI(x0({kind:"table",columns:e,rows:r},a))}function y3(e,t={}){let a=Mi(e);if(a.errors.length&&a.rows.length===0)throw new Error(`CSV parse failed: ${a.errors[0].message}`);let r=a.rows;if(r.length<2)throw new Error("CSV needs a header line plus at least one data row.");let n=r[0].map(i=>(i??"").trim());return v1e(n.map(i=>({name:i})),r.slice(1),t)}function I0(e,t,a={}){if(!e||e.length===0)throw new Error("profileTabular: at least one column is required");if(!t||t.length===0)throw new Error("profileTabular: at least one row is required");return iI(x0({kind:"table",columns:e,rows:t},a))}async function zf(e,t){return parseInt(t)>=30&&(e.sampleCsv=await e.index.getCSVAsync(!0)),e}import{randomBytes as Dre,randomUUID as Lre}from"node:crypto";import{readFileSync as jre}from"node:fs";import{homedir as Fre}from"node:os";import{join as Bre}from"node:path";/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. *//*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var oI=Object.freeze(["licenseKey","licensee","secretKey","freemiumKey","linkNonce","accessToken","clientId","instanceKey","correlationId"]);function N1e(e){let t=e.shape;return!Array.isArray(t)||t.length===0}function $f(e,t={}){let a=new Set(oI),r={};for(let[n,i]of Object.entries(e??{}))if(!a.has(n)){if(n==="sampleCsv"){let o=typeof i=="string"?i.length>0:i!=null;r[n]=o?t.sampleNote??null:i;continue}r[n]=i}return t.emptyShapeNote&&N1e(e??{})&&(r._note=t.emptyShapeNote),r}var sI=4,lI=0,uI=1,S1e=2;function Ti(e){let t=e.length;for(;--t>=0;)e[t]=0}var k1e=0,yI=1,w1e=2,bI=29,Zf=256,vI=286,Ii=30,Jf=19,NI=573,J8=15,Of=16,W1e=7,Yf=256,SI=16,kI=17,wI=18,Bf=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),P0=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),C1e=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),WI=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),A1e=512,_n=new Array(288*2);Ti(_n);var Y8=new Array(Ii*2);Ti(Y8);var Q8=new Array(A1e);Ti(Q8);var es=new Array(256);Ti(es);var Qf=new Array(bI);Ti(Qf);var T0=new Array(Ii);Ti(T0);var Df=class{constructor(e,t,a,r,n){this.static_tree=e,this.extra_bits=t,this.extra_base=a,this.elems=r,this.max_length=n,this.has_stree=e&&e.length}},CI,AI,_I,Lf=class{constructor(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}},MI=e=>e<256?Q8[e]:Q8[256+(e>>>7)],ts=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},x1=(e,t,a)=>{e.bi_valid>Of-a?(e.bi_buf|=t<<e.bi_valid&65535,ts(e,e.bi_buf),e.bi_buf=t>>Of-e.bi_valid,e.bi_valid+=a-Of):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=a)},Ja=(e,t,a)=>{x1(e,a[t*2],a[t*2+1])},xI=(e,t)=>{let a=0;do a|=e&1,e>>>=1,a<<=1;while(--t>0);return a>>>1},_1e=e=>{e.bi_valid===16?(ts(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},M1e=(e,t)=>{let a=t.dyn_tree,r=t.max_code,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,l=t.stat_desc.max_length,u,c,d,h,p,m,g=0;for(h=0;h<=J8;h++)e.bl_count[h]=0;for(a[e.heap[e.heap_max]*2+1]=0,u=e.heap_max+1;u<NI;u++)c=e.heap[u],h=a[a[c*2+1]*2+1]+1,h>l&&(h=l,g++),a[c*2+1]=h,!(c>r)&&(e.bl_count[h]++,p=0,c>=s&&(p=o[c-s]),m=a[c*2],e.opt_len+=m*(h+p),i&&(e.static_len+=m*(n[c*2+1]+p)));if(g!==0){do{for(h=l-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(h=l;h!==0;h--)for(c=e.bl_count[h];c!==0;)d=e.heap[--u],!(d>r)&&(a[d*2+1]!==h&&(e.opt_len+=(h-a[d*2+1])*a[d*2],a[d*2+1]=h),c--)}},II=(e,t,a)=>{let r=new Array(16),n=0,i,o;for(i=1;i<=J8;i++)n=n+a[i-1]<<1,r[i]=n;for(o=0;o<=t;o++){let s=e[o*2+1];s!==0&&(e[o*2]=xI(r[s]++,s))}},x1e=()=>{let e,t,a,r,n,i=new Array(16);for(a=0,r=0;r<bI-1;r++)for(Qf[r]=a,e=0;e<1<<Bf[r];e++)es[a++]=r;for(es[a-1]=r,n=0,r=0;r<16;r++)for(T0[r]=n,e=0;e<1<<P0[r];e++)Q8[n++]=r;for(n>>=7;r<Ii;r++)for(T0[r]=n<<7,e=0;e<1<<P0[r]-7;e++)Q8[256+n++]=r;for(t=0;t<=J8;t++)i[t]=0;for(e=0;e<=143;)_n[e*2+1]=8,e++,i[8]++;for(;e<=255;)_n[e*2+1]=9,e++,i[9]++;for(;e<=279;)_n[e*2+1]=7,e++,i[7]++;for(;e<=287;)_n[e*2+1]=8,e++,i[8]++;for(II(_n,287,i),e=0;e<Ii;e++)Y8[e*2+1]=5,Y8[e*2]=xI(e,5);CI=new Df(_n,Bf,257,vI,J8),AI=new Df(Y8,P0,0,Ii,J8),_I=new Df(new Array(0),C1e,0,Jf,W1e)},PI=e=>{let t;for(t=0;t<vI;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ii;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Jf;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Yf*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},UI=e=>{e.bi_valid>8?ts(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},cI=(e,t,a,r)=>{let n=t*2,i=a*2;return e[n]<e[i]||e[n]===e[i]&&r[t]<=r[a]},jf=(e,t,a)=>{let r=e.heap[a],n=a<<1;for(;n<=e.heap_len&&(n<e.heap_len&&cI(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!cI(t,r,e.heap[n],e.depth));)e.heap[a]=e.heap[n],a=n,n<<=1;e.heap[a]=r},dI=(e,t,a)=>{let r,n,i=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+i++]&255,r+=(e.pending_buf[e.sym_buf+i++]&255)<<8,n=e.pending_buf[e.sym_buf+i++],r===0?Ja(e,n,t):(o=es[n],Ja(e,o+Zf+1,t),s=Bf[o],s!==0&&(n-=Qf[o],x1(e,n,s)),r--,o=MI(r),Ja(e,o,a),s=P0[o],s!==0&&(r-=T0[o],x1(e,r,s)));while(i<e.sym_next);Ja(e,Yf,t)},Hf=(e,t)=>{let a=t.dyn_tree,r=t.stat_desc.static_tree,n=t.stat_desc.has_stree,i=t.stat_desc.elems,o,s,l=-1,u;for(e.heap_len=0,e.heap_max=NI,o=0;o<i;o++)a[o*2]!==0?(e.heap[++e.heap_len]=l=o,e.depth[o]=0):a[o*2+1]=0;for(;e.heap_len<2;)u=e.heap[++e.heap_len]=l<2?++l:0,a[u*2]=1,e.depth[u]=0,e.opt_len--,n&&(e.static_len-=r[u*2+1]);for(t.max_code=l,o=e.heap_len>>1;o>=1;o--)jf(e,a,o);u=i;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],jf(e,a,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,a[u*2]=a[o*2]+a[s*2],e.depth[u]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,a[o*2+1]=a[s*2+1]=u,e.heap[1]=u++,jf(e,a,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],M1e(e,t),II(a,l,e.bl_count)},hI=(e,t,a)=>{let r,n=-1,i,o=t[1],s=0,l=7,u=4;for(o===0&&(l=138,u=3),t[(a+1)*2+1]=65535,r=0;r<=a;r++)i=o,o=t[(r+1)*2+1],!(++s<l&&i===o)&&(s<u?e.bl_tree[i*2]+=s:i!==0?(i!==n&&e.bl_tree[i*2]++,e.bl_tree[SI*2]++):s<=10?e.bl_tree[kI*2]++:e.bl_tree[wI*2]++,s=0,n=i,o===0?(l=138,u=3):i===o?(l=6,u=3):(l=7,u=4))},pI=(e,t,a)=>{let r,n=-1,i,o=t[1],s=0,l=7,u=4;for(o===0&&(l=138,u=3),r=0;r<=a;r++)if(i=o,o=t[(r+1)*2+1],!(++s<l&&i===o)){if(s<u)do Ja(e,i,e.bl_tree);while(--s!==0);else i!==0?(i!==n&&(Ja(e,i,e.bl_tree),s--),Ja(e,SI,e.bl_tree),x1(e,s-3,2)):s<=10?(Ja(e,kI,e.bl_tree),x1(e,s-3,3)):(Ja(e,wI,e.bl_tree),x1(e,s-11,7));s=0,n=i,o===0?(l=138,u=3):i===o?(l=6,u=3):(l=7,u=4)}},I1e=e=>{let t;for(hI(e,e.dyn_ltree,e.l_desc.max_code),hI(e,e.dyn_dtree,e.d_desc.max_code),Hf(e,e.bl_desc),t=Jf-1;t>=3&&e.bl_tree[WI[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},P1e=(e,t,a,r)=>{let n;for(x1(e,t-257,5),x1(e,a-1,5),x1(e,r-4,4),n=0;n<r;n++)x1(e,e.bl_tree[WI[n]*2+1],3);pI(e,e.dyn_ltree,t-1),pI(e,e.dyn_dtree,a-1)},U1e=e=>{let t=4093624447,a;for(a=0;a<=31;a++,t>>>=1)if(t&1&&e.dyn_ltree[a*2]!==0)return lI;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return uI;for(a=32;a<Zf;a++)if(e.dyn_ltree[a*2]!==0)return uI;return lI},mI=!1,T1e=e=>{mI||(x1e(),mI=!0),e.l_desc=new Lf(e.dyn_ltree,CI),e.d_desc=new Lf(e.dyn_dtree,AI),e.bl_desc=new Lf(e.bl_tree,_I),e.bi_buf=0,e.bi_valid=0,PI(e)},E0=(e,t,a,r)=>{x1(e,(k1e<<1)+(r?1:0),3),UI(e),ts(e,a),ts(e,~a),a&&e.pending_buf.set(e.window.subarray(t,t+a),e.pending),e.pending+=a},E1e=e=>{x1(e,yI<<1,3),Ja(e,Yf,_n),_1e(e)},R1e=(e,t,a,r)=>{let n,i,o=0;e.level>0?(e.strm.data_type===S1e&&(e.strm.data_type=U1e(e)),Hf(e,e.l_desc),Hf(e,e.d_desc),o=I1e(e),n=e.opt_len+3+7>>>3,i=e.static_len+3+7>>>3,(i<=n||e.strategy===sI)&&(n=i)):n=i=a+5,a+4<=n&&t!==-1?E0(e,t,a,r):e.strategy===sI||i===n?(x1(e,(yI<<1)+(r?1:0),3),dI(e,_n,Y8)):(x1(e,(w1e<<1)+(r?1:0),3),P1e(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),dI(e,e.dyn_ltree,e.dyn_dtree)),PI(e),r&&UI(e)},N3=(e,t,a)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=a,t===0?e.dyn_ltree[a*2]++:(e.matches++,t--,e.dyn_ltree[(es[a]+Zf+1)*2]++,e.dyn_dtree[MI(t)*2]++),e.sym_next===e.sym_end),TI=(e,t,a,r)=>{let n=e&65535|0,i=e>>>16&65535|0,o=0;for(;a!==0;){o=a>2e3?2e3:a,a-=o;do n=n+t[r++]|0,i=i+n|0;while(--o);n%=65521,i%=65521}return n|i<<16|0},z1e=()=>{let e,t=[];for(var a=0;a<256;a++){e=a;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[a]=e}return t},$1e=new Uint32Array(z1e()),b3=(e,t,a,r)=>{let n=$1e,i=r+a;e^=-1;for(let o=r;o<i;o++)e=e>>>8^n[(e^t[o])&255];return e^-1},U0={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};var O1e=9;var D1e=573,ot=3,vr=258,Ya=262,L1e=32,Pi=42,ey=57,Gf=69,Kf=73,Xf=91,Vf=103,Nr=113,q8=666,b1=1,Ei=2,kr=3,Ri=4,j1e=3,Sr=(e,t)=>(e.msg=U0[t],t),gI=e=>e*2-(e>4?9:0),v3=e=>{let t=e.length;for(;--t>=0;)e[t]=0},F1e=e=>{let t,a,r,n=e.w_size;t=e.hash_size,r=t;do a=e.head[--r],e.head[r]=a>=n?a-n:0;while(--t);t=n,r=t;do a=e.prev[--r],e.prev[r]=a>=n?a-n:0;while(--t)},ty=(e,t,a)=>(t<<e.hash_shift^a)&e.hash_mask,wr=(e,t)=>{let a;if(e.legacy_hash)a=e.ins_h=ty(e,e.ins_h,e.window[t+ot-1]);else{let n=e.window,i=n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24;a=e.ins_h=Math.imul(i,66521)+66521>>>16&e.hash_mask}let r=e.prev[t&e.w_mask]=e.head[a];return e.head[a]=t,r},F1=e=>{let t=e.state,a=t.pending;a>e.avail_out&&(a=e.avail_out),a!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+a),e.next_out),e.next_out+=a,t.pending_out+=a,e.total_out+=a,e.avail_out-=a,t.pending-=a,t.pending===0&&(t.pending_out=0))},B1=(e,t)=>{R1e(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F1(e.strm)},it=(e,t)=>{e.pending_buf[e.pending++]=t},V8=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},qf=(e,t,a,r)=>{let n=e.avail_in;return n>r&&(n=r),n===0?0:(e.avail_in-=n,t.set(e.input.subarray(e.next_in,e.next_in+n),a),e.state.wrap===1?e.adler=TI(e.adler,t,n,a):e.state.wrap===2&&(e.adler=b3(e.adler,t,n,a)),e.next_in+=n,e.total_in+=n,n)},EI=(e,t)=>{let a=e.max_chain_length,r=e.strstart,n,i,o=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-Ya?e.strstart-(e.w_size-Ya):0,u=e.window,c=e.w_mask,d=e.prev,h=e.strstart+vr,p=u[r+o-1],m=u[r+o];e.prev_length>=e.good_match&&(a>>=2),s>e.lookahead&&(s=e.lookahead);do if(n=t,!(u[n+o]!==m||u[n+o-1]!==p||u[n]!==u[r]||u[++n]!==u[r+1])){r+=2,n++;do;while(u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&u[++r]===u[++n]&&r<h);if(i=vr-(h-r),r=h-vr,i>o){if(e.match_start=t,o=i,i>=s)break;p=u[r+o-1],m=u[r+o]}}while((t=d[t&c])>l&&--a!==0);return o<=e.lookahead?o:e.lookahead},Ui=e=>{let t=e.w_size,a,r,n;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ya)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),F1e(e),r+=t),e.strm.avail_in===0)break;if(a=qf(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=a,e.legacy_hash){if(e.lookahead+e.insert>=ot)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=ty(e,e.ins_h,e.window[n+1]);e.insert&&(wr(e,n),n++,e.insert--,!(e.lookahead+e.insert<ot)););}else if(e.lookahead+e.insert>ot)for(n=e.strstart-e.insert;e.insert&&(wr(e,n),n++,e.insert--,!(e.lookahead+e.insert<=ot)););}while(e.lookahead<Ya&&e.strm.avail_in!==0)},RI=(e,t)=>{let a=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,n,i,o=0,s=e.strm.avail_in;do{if(r=65535,i=e.bi_valid+42>>3,e.strm.avail_out<i||(i=e.strm.avail_out-i,n=e.strstart-e.block_start,r>n+e.strm.avail_in&&(r=n+e.strm.avail_in),r>i&&(r=i),r<a&&(r===0&&t!==4||t===0||r!==n+e.strm.avail_in)))break;o=t===4&&r===n+e.strm.avail_in?1:0,E0(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,F1(e.strm),n&&(n>r&&(n=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+n),e.strm.next_out),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n,e.block_start+=n,r-=n),r&&(qf(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?Ri:t!==0&&t!==4&&e.strm.avail_in===0&&e.strstart===e.block_start?Ei:(i=e.window_size-e.strstart,e.strm.avail_in>i&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,i+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),i>e.strm.avail_in&&(i=e.strm.avail_in),i&&(qf(e.strm,e.window,e.strstart,i),e.strstart+=i,e.insert+=i>e.w_size-e.insert?e.w_size-e.insert:i),e.high_water<e.strstart&&(e.high_water=e.strstart),i=e.bi_valid+42>>3,i=e.pending_buf_size-i>65535?65535:e.pending_buf_size-i,a=i>e.w_size?e.w_size:i,n=e.strstart-e.block_start,(n>=a||(n||t===4)&&t!==0&&e.strm.avail_in===0&&n<=i)&&(r=n>i?i:n,o=t===4&&e.strm.avail_in===0&&r===n?1:0,E0(e,e.block_start,r,o),e.block_start+=r,F1(e.strm)),o?kr:b1)},Ff=(e,t)=>{let a,r;for(;;){if(e.lookahead<Ya){if(Ui(e),e.lookahead<Ya&&t===0)return b1;if(e.lookahead===0)break}if(a=0,e.lookahead>=ot&&(a=wr(e,e.strstart)),a!==0&&e.strstart-a<=e.w_size-Ya&&(e.match_length=EI(e,a)),e.match_length>=ot)if(r=N3(e,e.strstart-e.match_start,e.match_length-ot),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ot){e.match_length--;do e.strstart++,a=wr(e,e.strstart);while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.legacy_hash&&(e.ins_h=e.window[e.strstart],e.ins_h=ty(e,e.ins_h,e.window[e.strstart+1]));else r=N3(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(B1(e,!1),e.strm.avail_out===0))return b1}return e.insert=e.strstart<ot-1?e.strstart:ot-1,t===4?(B1(e,!0),e.strm.avail_out===0?kr:Ri):e.sym_next&&(B1(e,!1),e.strm.avail_out===0)?b1:Ei},xi=(e,t)=>{let a,r,n;for(;;){if(e.lookahead<Ya){if(Ui(e),e.lookahead<Ya&&t===0)return b1;if(e.lookahead===0)break}if(a=0,e.lookahead>=ot&&(a=wr(e,e.strstart)),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ot-1,a!==0&&e.prev_length<e.max_lazy_match&&e.strstart-a<=e.w_size-Ya&&(e.match_length=EI(e,a),e.match_length<=5&&(e.strategy===1||e.match_length===ot&&e.strstart-e.match_start>4096)&&(e.match_length=ot-1)),e.prev_length>=ot&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-ot,r=N3(e,e.strstart-1-e.prev_match,e.prev_length-ot),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(a=wr(e,e.strstart));while(--e.prev_length!==0);if(e.match_available=0,e.match_length=ot-1,e.strstart++,r&&(B1(e,!1),e.strm.avail_out===0))return b1}else if(e.match_available){if(r=N3(e,0,e.window[e.strstart-1]),r&&B1(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return b1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=N3(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ot-1?e.strstart:ot-1,t===4?(B1(e,!0),e.strm.avail_out===0?kr:Ri):e.sym_next&&(B1(e,!1),e.strm.avail_out===0)?b1:Ei},B1e=(e,t)=>{let a,r,n,i,o=e.window;for(;;){if(e.lookahead<=vr){if(Ui(e),e.lookahead<=vr&&t===0)return b1;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=ot&&e.strstart>0&&(n=e.strstart-1,r=o[n],r===o[++n]&&r===o[++n]&&r===o[++n])){i=e.strstart+vr;do;while(r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&n<i);e.match_length=vr-(i-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ot?(a=N3(e,1,e.match_length-ot),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(a=N3(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),a&&(B1(e,!1),e.strm.avail_out===0))return b1}return e.insert=0,t===4?(B1(e,!0),e.strm.avail_out===0?kr:Ri):e.sym_next&&(B1(e,!1),e.strm.avail_out===0)?b1:Ei},H1e=(e,t)=>{let a;for(;;){if(e.lookahead===0&&(Ui(e),e.lookahead===0)){if(t===0)return b1;break}if(e.match_length=0,a=N3(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,a&&(B1(e,!1),e.strm.avail_out===0))return b1}return e.insert=0,t===4?(B1(e,!0),e.strm.avail_out===0?kr:Ri):e.sym_next&&(B1(e,!1),e.strm.avail_out===0)?b1:Ei},Za=class{constructor(e,t,a,r,n){this.good_length=e,this.max_lazy=t,this.nice_length=a,this.max_chain=r,this.func=n}},Z8=[new Za(0,0,0,0,RI),new Za(4,4,8,4,Ff),new Za(4,5,16,8,Ff),new Za(4,6,32,32,Ff),new Za(4,4,16,16,xi),new Za(8,16,32,32,xi),new Za(8,16,128,128,xi),new Za(8,32,128,256,xi),new Za(32,128,258,1024,xi),new Za(32,258,258,4096,xi)],G1e=e=>{e.window_size=2*e.w_size,v3(e.head),e.max_lazy_match=Z8[e.level].max_lazy,e.good_match=Z8[e.level].good_length,e.nice_match=Z8[e.level].nice_length,e.max_chain_length=Z8[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ot-1,e.match_available=0,e.ins_h=0},K1e=class{constructor(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.legacy_hash=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(D1e*2),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),v3(this.dyn_ltree),v3(this.dyn_dtree),v3(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),v3(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),v3(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}},R0=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==Pi&&t.status!==ey&&t.status!==Gf&&t.status!==Kf&&t.status!==Xf&&t.status!==Vf&&t.status!==Nr&&t.status!==q8?1:0},X1e=e=>{if(R0(e))return Sr(e,-2);e.total_in=e.total_out=0,e.data_type=2;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?ey:t.wrap?Pi:Nr,e.adler=t.wrap===2?0:1,t.last_flush=-2,T1e(t),0},V1e=e=>{let t=X1e(e);return t===0&&G1e(e.state),t};var q1e=(e,t,a,r,n,i,o)=>{if(!e)return-2;let s=1;if(t===-1&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),n<1||n>O1e||a!==8||r<8||r>15||t<0||t>9||i<0||i>4||r===8&&s!==1)return Sr(e,-2);r===8&&(r=9);let l=new K1e;return e.state=l,l.strm=e,l.status=Pi,l.wrap=s,l.gzhead=null,l.w_bits=r,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.legacy_hash=o?1:0,l.hash_bits=n+7,!l.legacy_hash&&l.hash_bits<15&&(l.hash_bits=15),l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+ot-1)/ot),l.window=new Uint8Array(l.w_size*2),l.head=new Uint16Array(l.hash_size),l.prev=new Uint16Array(l.w_size),l.lit_bufsize=1<<n+6,l.pending_buf_size=l.lit_bufsize*4,l.pending_buf=new Uint8Array(l.pending_buf_size),l.sym_buf=l.lit_bufsize,l.sym_end=(l.lit_bufsize-1)*3,l.level=t,l.strategy=i,l.method=a,V1e(e)};var Z1e=(e,t)=>{if(R0(e)||t>5||t<0)return e?Sr(e,-2):-2;let a=e.state;if(!e.output||e.avail_in!==0&&!e.input||a.status===q8&&t!==4)return Sr(e,e.avail_out===0?-5:-2);let r=a.last_flush;if(a.last_flush=t,a.pending!==0){if(F1(e),e.avail_out===0)return a.last_flush=-1,0}else if(e.avail_in===0&&gI(t)<=gI(r)&&t!==4)return Sr(e,-5);if(a.status===q8&&e.avail_in!==0)return Sr(e,-5);if(a.status===Pi&&a.wrap===0&&(a.status=Nr),a.status===Pi){let n=8+(a.w_bits-8<<4)<<8,i=-1;if(a.strategy>=2||a.level<2?i=0:a.level<6?i=1:a.level===6?i=2:i=3,n|=i<<6,a.strstart!==0&&(n|=L1e),n+=31-n%31,V8(a,n),a.strstart!==0&&(V8(a,e.adler>>>16),V8(a,e.adler&65535)),e.adler=1,a.status=Nr,F1(e),a.pending!==0)return a.last_flush=-1,0}if(a.status===ey){if(e.adler=0,it(a,31),it(a,139),it(a,8),a.gzhead)it(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),it(a,a.gzhead.time&255),it(a,a.gzhead.time>>8&255),it(a,a.gzhead.time>>16&255),it(a,a.gzhead.time>>24&255),it(a,a.level===9?2:a.strategy>=2||a.level<2?4:0),it(a,a.gzhead.os&255),a.gzhead.extra&&a.gzhead.extra.length&&(it(a,a.gzhead.extra.length&255),it(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(e.adler=b3(e.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=Gf;else if(it(a,0),it(a,0),it(a,0),it(a,0),it(a,0),it(a,a.level===9?2:a.strategy>=2||a.level<2?4:0),it(a,j1e),a.status=Nr,F1(e),a.pending!==0)return a.last_flush=-1,0}if(a.status===Gf){if(a.gzhead.extra){let n=a.pending,i=(a.gzhead.extra.length&65535)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let s=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+s),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex+=s,F1(e),a.pending!==0)return a.last_flush=-1,0;n=0,i-=s}let o=new Uint8Array(a.gzhead.extra);a.pending_buf.set(o.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex=0}a.status=Kf}if(a.status===Kf){if(a.gzhead.name){let n=a.pending,i;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n)),F1(e),a.pending!==0)return a.last_flush=-1,0;n=0}a.gzindex<a.gzhead.name.length?i=a.gzhead.name.charCodeAt(a.gzindex++)&255:i=0,it(a,i)}while(i!==0);a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex=0}a.status=Xf}if(a.status===Xf){if(a.gzhead.comment){let n=a.pending,i;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n)),F1(e),a.pending!==0)return a.last_flush=-1,0;n=0}a.gzindex<a.gzhead.comment.length?i=a.gzhead.comment.charCodeAt(a.gzindex++)&255:i=0,it(a,i)}while(i!==0);a.gzhead.hcrc&&a.pending>n&&(e.adler=b3(e.adler,a.pending_buf,a.pending-n,n))}a.status=Vf}if(a.status===Vf){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(F1(e),a.pending!==0))return a.last_flush=-1,0;it(a,e.adler&255),it(a,e.adler>>8&255),e.adler=0}if(a.status=Nr,F1(e),a.pending!==0)return a.last_flush=-1,0}if(e.avail_in!==0||a.lookahead!==0||t!==0&&a.status!==q8){let n=a.level===0?RI(a,t):a.strategy===2?H1e(a,t):a.strategy===3?B1e(a,t):Z8[a.level].func(a,t);if((n===kr||n===Ri)&&(a.status=q8),n===b1||n===kr)return e.avail_out===0&&(a.last_flush=-1),0;if(n===Ei&&(t===1?E1e(a):t!==5&&(E0(a,0,0,!1),t===3&&(v3(a.head),a.lookahead===0&&(a.strstart=0,a.block_start=0,a.insert=0))),F1(e),e.avail_out===0))return a.last_flush=-1,0}return t!==4?0:a.wrap<=0?1:(a.wrap===2?(it(a,e.adler&255),it(a,e.adler>>8&255),it(a,e.adler>>16&255),it(a,e.adler>>24&255),it(a,e.total_in&255),it(a,e.total_in>>8&255),it(a,e.total_in>>16&255),it(a,e.total_in>>24&255)):(V8(a,e.adler>>>16),V8(a,e.adler&65535)),F1(e),a.wrap>0&&(a.wrap=-a.wrap),a.pending!==0?0:1)},J1e=e=>{if(R0(e))return-2;let t=e.state.status;return e.state=null,t===Nr?Sr(e,-3):0},Y1e=(e,t)=>{let a=t.length;if(R0(e))return-2;let r=e.state,n=r.wrap;if(n===2||n===1&&r.status!==Pi||r.lookahead)return-2;if(n===1&&(e.adler=TI(e.adler,t,a,0)),r.wrap=0,a>=r.w_size){n===0&&(v3(r.head),r.strstart=0,r.block_start=0,r.insert=0);let l=new Uint8Array(r.w_size);l.set(t.subarray(a-r.w_size,a),0),t=l,a=r.w_size}let i=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=a,e.next_in=0,e.input=t,Ui(r);r.lookahead>=ot;){let l=r.strstart,u=r.lookahead-(ot-1);do wr(r,l),l++;while(--u);r.strstart=l,r.lookahead=ot-1,Ui(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=ot-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=i,r.wrap=n,0};var cpe=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),dpe=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,199,75]),hpe=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),ppe=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Q1e=class{constructor(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}};var eae=e=>{let t=new Uint8Array(e.reduce((r,n)=>r+n.length,0)),a=0;for(let r of e)t.set(r,a),a+=r.length;return t},fI=Object.prototype.toString,tae={level:-1,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,raw:!1,gzip:!1,legacyHash:!1,dictionary:new Uint8Array(0)},aae=class{options;err;msg;ended;started;chunks;strm;result;constructor(e={}){this.options=Object.assign({},tae,e);let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.started=!1,this.chunks=[],this.result=new Uint8Array(0),this.strm=new Q1e,this.strm.avail_out=0;let a=q1e(this.strm,t.level,8,t.windowBits,t.memLevel,t.strategy,t.legacyHash);if(a!==0)throw new Error(U0[a]);fI.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary));let r=t.dictionary;if(r.length){if(t.gzip)throw new Error("dictionary is not supported with gzip");if(a=Y1e(this.strm,r),a!==0)throw new Error(U0[a])}}push(e,t=!1){let a=this.strm,r=this.options.chunkSize,n,i;if(this.ended)return!1;for(typeof t=="number"?i=t:i=t===!0?4:0,typeof e=="string"?a.input=new TextEncoder().encode(e):fI.call(e)==="[object ArrayBuffer]"?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length,this.started||(this.started=!0,this.onStart(a));;){if(a.avail_out===0&&(a.output=new Uint8Array(r),a.next_out=0,a.avail_out=r),(i===2||i===3)&&a.avail_out<=6){this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;continue}if(n=Z1e(a,i),n===-2)break;if(n===1){a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=J1e(this.strm);break}if(a.avail_out===0){this.onData(a.output);continue}if(i>0&&a.next_out>0){this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;continue}if(a.avail_in===0)return!0}return this.err=n,this.msg=a.msg||U0[n],this.ended=!0,this.onEnd(n),n===0}onStart(e){}onData(e){this.chunks.push(e)}onEnd(e){e===0&&(this.result=eae(this.chunks)),this.chunks=[]}};function nae(e,t={}){let a=new aae(t);if(a.push(e,!0),a.err)throw new Error(a.msg);return a.result}function zI(e,t={}){return nae(e,Object.assign({},t,{gzip:!0}))}var mpe={chunkSize:1024*64,windowBits:15,raw:!1,dictionary:new Uint8Array(0)};/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var $I=e=>zI(e);function zi(e){return rae($I(JSON.stringify(e))).replace(/\//g,".")}function rae(e){let t="";for(let a=0;a<e.length;a+=32768)t+=String.fromCharCode(...e.subarray(a,a+32768));return btoa(t)}function ay(e){if(typeof e!="string"||e==="")throw new TypeError("keyedSigner needs the host's signing key");return{sign:t=>String(L8(t+e))}}function ny(e,t){let a=t.sign(e);if(typeof a!="string"||a.trim()==="")throw new TypeError("the host's signer returned a blank signature");return a}function vt(e,t){if(e==null||typeof e!="object")return;let a=e;return a[t]??a[t.charAt(0).toUpperCase()+t.slice(1)]}function OI(e){return String(e??"").toLowerCase().includes("ndjson")}function ry(e){let t=null;try{t=e.headers?.get?.("content-type")??null}catch{t=null}return{status:typeof e.status=="number"?e.status:0,...typeof e.statusText=="string"?{statusText:e.statusText}:{},contentType:t,body:e.body??null,text:()=>e.text()}}function iae(e,t,a){let r=e.trim();if(!r)return{result:null,typed:!1,parsed:!1};let n;try{n=JSON.parse(r)}catch{return{result:null,typed:!1,parsed:!1}}return DI(n,t,a)}function DI(e,t,a){if(!e||typeof e!="object"||Array.isArray(e))return{result:null,typed:!1,parsed:!0};let r=vt(e,"type");if(r!=null){if(r==="progress"){let n=String(vt(e,"stage")??"").trim(),i=String(vt(e,"stageId")??"").trim();return n&&t?.(n,i||void 0),{result:null,typed:!0,parsed:!0}}if(r==="result"){let n=vt(e,"result");return{result:n&&typeof n=="object"?n:null,typed:!0,parsed:!0}}return{result:null,typed:!0,parsed:!0}}return a?{result:vt(e,"code")!==void 0||vt(e,"errorMessage")!==void 0?e:null,typed:!1,parsed:!0}:{result:e,typed:!1,parsed:!0}}var LI=class{constructor(e){this.onStage=e}onStage;result=null;anyParsed=!1;take(e){let t=iae(e,this.onStage,!0);t.parsed&&(this.anyParsed=!0),t.result&&(t.typed||this.result===null)&&(this.result=t.result)}};function iy(){return new Error("the generate response ended without a result")}async function oae(e,t){let a=e.body;if(!a||typeof a.getReader!="function")return jI(await e.text(),t,null);let r=a.getReader(),n=new TextDecoder,i=new LI(t),o="";try{for(;;){let{done:s,value:l}=await r.read();if(s)break;o+=n.decode(l,{stream:!0});let u;for(;(u=o.indexOf(`
96
96
  `))>=0;)i.take(o.slice(0,u)),o=o.slice(u+1)}}finally{try{r.releaseLock?.()}catch{}}if(o+=n.decode(),i.take(o),!i.result)throw iy();return i.result}function jI(e,t,a){let r=new LI(t);for(let n of e.split(`
97
97
  `))r.take(n);if(r.result)return r.result;throw!r.anyParsed&&a?a:iy()}async function sae(e,t){let a=await e.text(),r;try{r=JSON.parse(a)}catch(i){return jI(a,t,i)}if(!r||typeof r!="object"||Array.isArray(r))throw new SyntaxError("the generate response was JSON but not a result object");let n=DI(r,t,!1);if(n.result)return n.result;throw iy()}async function oy(e,t){return OI(e.contentType)?oae(e,t):sae(e,t)}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Y=(e,...t)=>({part:e,langs:Object.freeze(t)}),lae=Object.freeze({jaar:Y("year","nl"),kwartaal:Y("quarter","nl"),maand:Y("month","nl"),dag:Y("day","nl","sv","da","nb"),jahr:Y("year","de"),quartal:Y("quarter","de"),monat:Y("month","de"),tag:Y("day","de"),ann\u00E9e:Y("year","fr"),mois:Y("month","fr"),jour:Y("day","fr"),trimestre:Y("quarter","fr","es","pt","it"),a\u00F1o:Y("year","es"),mes:Y("month","es"),d\u00EDa:Y("day","es"),ano:Y("year","pt"),m\u00EAs:Y("month","pt"),dia:Y("day","pt"),anno:Y("year","it"),mese:Y("month","it"),giorno:Y("day","it"),\u0433\u043E\u0434:Y("year","ru"),\u043C\u0435\u0441\u044F\u0446:Y("month","ru"),\u0440\u0456\u043A:Y("year","uk"),\u043C\u0456\u0441\u044F\u0446\u044C:Y("month","uk"),\u043A\u0432\u0430\u0440\u0442\u0430\u043B:Y("quarter","ru","uk"),\u0434\u0435\u043D\u044C:Y("day","ru","uk"),rok:Y("year","pl","cs","sk"),kwarta\u0142:Y("quarter","pl"),miesi\u0105c:Y("month","pl"),dzie\u0144:Y("day","pl"),\u010Dtvrtlet\u00ED:Y("quarter","cs"),m\u011Bs\u00EDc:Y("month","cs"),den:Y("day","cs"),\u0161tvr\u0165rok:Y("quarter","sk"),mesiac:Y("month","sk"),de\u0148:Y("day","sk"),\u00E5r:Y("year","sv","da","nb"),kvartal:Y("quarter","sv","da","nb"),m\u00E5nad:Y("month","sv"),m\u00E5ned:Y("month","da","nb"),vuosi:Y("year","fi"),vuosinelj\u00E4nnes:Y("quarter","fi"),kuukausi:Y("month","fi"),p\u00E4iv\u00E4:Y("day","fi"),\u00E9v:Y("year","hu"),negyed\u00E9v:Y("quarter","hu"),h\u00F3nap:Y("month","hu"),nap:Y("day","hu"),y\u0131l:Y("year","tr"),\u00E7eyrek:Y("quarter","tr"),ay:Y("month","tr"),g\u00FCn:Y("day","tr"),\u03AD\u03C4\u03BF\u03C2:Y("year","el"),\u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF:Y("quarter","el"),\u03BC\u03AE\u03BD\u03B1\u03C2:Y("month","el"),\u03B7\u03BC\u03AD\u03C1\u03B1:Y("day","el"),an:Y("year","ro"),trimestru:Y("quarter","ro"),lun\u0103:Y("month","ro"),zi:Y("day","ro"),godina:Y("year","hr"),tromjese\u010Dje:Y("quarter","hr"),mjesec:Y("month","hr"),dan:Y("day","hr"),\u5E74:Y("year","ja","zh"),\u56DB\u534A\u671F:Y("quarter","ja"),\u5B63\u5EA6:Y("quarter","zh"),\u6708:Y("month","ja","zh"),\u65E5:Y("day","ja","zh"),\uC5F0\uB3C4:Y("year","ko"),\uBD84\uAE30:Y("quarter","ko"),\uC6D4:Y("month","ko"),\uC77C:Y("day","ko"),tahun:Y("year","id"),kuartal:Y("quarter","id"),triwulan:Y("quarter","id"),bulan:Y("month","id"),hari:Y("day","id"),n\u0103m:Y("year","vi"),qu\u00FD:Y("quarter","vi"),th\u00E1ng:Y("month","vi"),ng\u00E0y:Y("day","vi"),\u0E1B\u0E35:Y("year","th"),\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A:Y("quarter","th"),\u0E40\u0E14\u0E37\u0E2D\u0E19:Y("month","th"),\u0E27\u0E31\u0E19:Y("day","th"),\u0627\u0644\u0633\u0646\u0629:Y("year","ar"),\u0633\u0646\u0629:Y("year","ar"),\u0627\u0644\u0639\u0627\u0645:Y("year","ar"),\u0639\u0627\u0645:Y("year","ar"),\u0627\u0644\u0631\u0628\u0639:Y("quarter","ar"),\u0631\u0628\u0639:Y("quarter","ar"),"\u0631\u0628\u0639 \u0627\u0644\u0633\u0646\u0629":Y("quarter","ar"),\u0627\u0644\u0634\u0647\u0631:Y("month","ar"),\u0634\u0647\u0631:Y("month","ar"),\u0627\u0644\u064A\u0648\u0645:Y("day","ar"),\u064A\u0648\u0645:Y("day","ar"),\u05E9\u05E0\u05D4:Y("year","he"),\u05E8\u05D1\u05E2\u05D5\u05DF:Y("quarter","he"),\u05D7\u05D5\u05D3\u05E9:Y("month","he"),\u05D9\u05D5\u05DD:Y("day","he"),\u0935\u0930\u094D\u0937:Y("year","hi"),\u0938\u093E\u0932:Y("year","hi"),\u0924\u093F\u092E\u093E\u0939\u0940:Y("quarter","hi"),\u092E\u0939\u0940\u0928\u093E:Y("month","hi"),\u092E\u093E\u0939:Y("month","hi"),\u0926\u093F\u0928:Y("day","hi"),\u0633\u0627\u0644:Y("year","fa"),\u0645\u0627\u0647:Y("month","fa"),\u0631\u0648\u0632:Y("day","fa")}),_pe=Object.freeze(Array.from(new Set(Object.values(lae).flatMap(e=>e.langs)))),Mpe=Object.freeze(["fa","ar","he","th"]);var Ke=e=>e==null?"":String(e),Mn=e=>e===!0,sy=e=>{if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.trim()!==""){let t=Number(e);return Number.isFinite(t)?t:null}return null},FI=e=>{let t=sy(e);return t!==null&&t>0?t:null},uae=[["city","CityColumn"],["state","StateColumn"],["zip","ZipColumn"],["lat","LatColumn"],["lon","LonColumn"],["country","CountryColumn"]];function BI(e,t){let a={};for(let[r,n]of uae){let i=Ke(vt(e,t+n));i&&(a[r]=i)}return a}function cae(e){return Array.isArray(e)?e.map(t=>({code:Ke(vt(t,"code")),severity:Ke(vt(t,"severity")),text:Ke(vt(t,"text"))})).filter(t=>t.text!==""):[]}function ly(e){let t=d=>vt(e,d),a=t("retryAfterSeconds"),r=t("overrideThumbnailUpload"),n=t("forceThumbnailUpload"),i=BI(e,"point"),o=BI(e,"destPoint");Object.keys(o).length&&(i.dest=o);let s=t("retryable"),l=t("isPollFinal"),u=FI(t("chartMinWidth")),c=FI(t("chartMinHeight"));return{errorMessage:Ke(t("errorMessage")),errorCode:Ke(t("errorCode")),refusalCode:Ke(t("refusalCode")),retryable:typeof s=="boolean"?s:null,notices:cae(t("notices")),freemiumStatusCode:Ke(t("freemiumStatusCode")),code:Ke(t("code")),language:Ke(t("language")),version:Number(t("version")??0),codeSummary:Ke(t("codeSummary")),chartName:Ke(t("chartName")??t("chartType")),finalChartName:Ke(t("finalChartName")),warningMessage:Ke(t("warningMessage")),outputHash:Ke(t("outputHash")),validatorToken:Ke(t("validatorToken")),editCodeKey:Ke(t("editCodeKey")),signedLLMRequestID:Ke(t("signedLLMRequestID")),userReply:Ke(t("userReply")),userReplyOutcome:Ke(t("userReplyOutcome")),improvementSuggestion:Ke(t("improvementSuggestion")),geoColumn:Ke(t("geoColumn")),geoKind:Ke(t("geoKind")),geoPointCols:Object.keys(i).length?i:null,creditBalanceBefore:sy(t("creditBalanceBefore")),creditCost:sy(t("creditCost")),isServiceError:Mn(t("isServiceError")),isRateLimited:Mn(t("isRateLimited")),suppressSelectionGlyph:Mn(t("suppressSelectionGlyph")),isRefusal:Mn(t("isRefusal")),isVersionNotFound:Mn(t("isVersionNotFound")),isGenerationCancelled:Mn(t("isGenerationCancelled")),retryAfterSeconds:typeof a=="number"&&Number.isFinite(a)?a:null,servedCorrelationId:Ke(t("servedCorrelationId")),...typeof l=="boolean"?{isPollFinal:l}:{},...Ke(t("pollOutcome"))!==""?{pollOutcome:Ke(t("pollOutcome"))}:{},...u!==null?{chartMinWidth:u}:{},...c!==null?{chartMinHeight:c}:{},...typeof r=="boolean"?{overrideThumbnailUpload:r}:{},...typeof n=="boolean"?{forceThumbnailUpload:n}:{}}}var dae=["app","table","map","kpi"];function hae(e){return typeof e=="string"&&dae.includes(e)?e:void 0}var HI=e=>e==null?void 0:Number(e),as=e=>Ke(e)||void 0;function XI(e){let t=vt(e,"charts"),a=vt(e,"refused"),r=Array.isArray(t)?t.map(i=>{let o=l=>vt(i,l),s=o("recommended");return{name:Ke(o("chartTypeName")??o("name")),description:Ke(o("description")??o("chartDesc")),rank:HI(o("rank")),score:HI(o("score")),renderer:as(o("renderer")),language:as(o("language")),isPreview:Mn(o("isPreview")),kind:hae(o("kind")),alsoWorthALook:Mn(o("alsoWorthALook")),recommended:typeof s=="boolean"?s:void 0,viaProjection:as(o("viaProjection")),viaProjectionKey:as(o("viaProjectionKey")),detailNote:as(o("detailNote"))}}).filter(i=>i.name):null,n=Array.isArray(a)?a.map(i=>({name:Ke(vt(i,"chartTypeName")??vt(i,"name")),reason:Ke(vt(i,"reason")),reasonCode:Ke(vt(i,"reasonCode")),isVeto:Mn(vt(i,"isVeto"))})).filter(i=>i.name):[];return{errorMessage:Ke(vt(e,"errorMessage")),errorCode:Ke(vt(e,"errorCode")),charts:r,refused:n,noFitSummary:Ke(vt(e,"noFitSummary"))}}function VI(e){let t=e?.retryable;return typeof t=="boolean"?t:null}function qI(e){let t=e.linkNonce?(e.linkNonce()??"").trim():null,a=t?null:e.accessToken?(e.accessToken()??"").trim():null,r=t||a?{licensee:"",licenseKey:"",secretKey:""}:e.triple();return{request:{licenseKey:r.licenseKey,licensee:r.licensee,secretKey:r.secretKey,freemiumKey:e.freemiumKey?.()??""},linkNonce:t,accessToken:a}}function ZI(e){let{width:t,height:a}=e.measure();return{request:{height:a,width:t},hints:{viewportWidth:t,viewportHeight:a}}}function JI(e){let t=0;for(let a of e){if(a.isMeasure)continue;let r=a.distinctCount;typeof r=="number"&&r>t&&(t=r)}return t}function pae(e){if(e.recoveryFetchByCorrelation)return{version:null,fetchOnly:!0};if(e.recoveryFetchVersion!=null)return{version:e.recoveryFetchVersion,fetchOnly:!0};let t=e.settingVersion??null;if(e.genNew)return{version:t,fetchOnly:void 0};let a=(t??0)>0?t:null,r=(e.codeVersion??0)>0?e.codeVersion:null,n=a??r??t;return{version:n,fetchOnly:n!=null&&n>0?!0:void 0}}function uy(e){let t=e.fetchCorrelationId!=null,a=t||e.recoveryFetchVersion!=null?!1:e.genNew,r=pae({genNew:a,recoveryFetchVersion:e.recoveryFetchVersion,recoveryFetchByCorrelation:t,settingVersion:e.settingVersion,codeVersion:e.codeVersion}),n=e.fetchArmedAtMs,i=t&&typeof n=="number"&&Number.isSafeInteger(n)&&n>0?n:void 0,o=e.fetchCutAtMs,s=t&&typeof o=="number"&&Number.isSafeInteger(o)&&o>0?o:void 0,l=t?mae(e.fetchCause):"";return{genNew:a,version:r.version,fetchOnly:r.fetchOnly,fetchCorrelationId:e.fetchCorrelationId??void 0,...i!==void 0?{fetchArmedAtMs:i}:{},...s!==void 0?{fetchCutAtMs:s}:{},...l?{fetchCause:l}:{}}}function mae(e){if(typeof e!="string")return"";let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").trim().slice(0,120);return/[\ud800-\udbff]$/.test(t)&&(t=t.slice(0,-1)),t.trimEnd()}function YI(e){let t=a=>e.renderers.has(a);return{supportsD3:t("D3"),supportsPlotly:t("PLOTLY"),supportsVega:t("VEGA")}}function QI(e){let t=e.cap!=null&&e.budget>e.cap?e.cap:e.budget;return{triesLeft:e.triesLeft??t,maxTries:t}}function eP(e){return e&&e>0?{leafCardinality:Math.round(e)}:{}}function $0(e,t,a){let r=n=>typeof n=="number"&&Number.isInteger(n)&&n>0;return{...typeof e=="boolean"?{dataComplete:e}:{},...r(t)?{rowsWithheld:t}:{},...r(a)?{rowsFilteredOut:a}:{}}}var xpe=Object.freeze({integer:"number",decimal:"number",double:"number",datetime:"date",date:"date",boolean:"boolean",string:"text"});var tP=2;var aP=4;var nP=8e3;var Ipe=Object.freeze({RENDER_START:"render-start",RENDER_OK:"render-ok",RENDER_ERROR:"render-error",VIEW:"view",VIEW_VERDICT:"view-verdict",REDRAW:"redraw",INTERACT:"interact"}),Ppe=Object.freeze(["open","generate","version","rebind","data","sample","fix","resize","other"]);function gae(e,t,a,r){let n=`${e},${t}|${a}`;return r?`${n}|${Math.max(0,Math.round(r.count))}|${r.nonce}`:n}function rP(e,t){let a=e;if(!a||!a.signer||typeof a.signer.sign!="function")throw new TypeError("createTelemetryClient needs the host's signer");if(!a.transport||typeof a.transport.post!="function")throw new TypeError("createTelemetryClient needs the host's transport");if(!a.clock||typeof a.clock.now!="function")throw new TypeError("createTelemetryClient needs the host's clock");if(!t||typeof t.baseUrl!="string"&&typeof t.baseUrl!="function")throw new TypeError("createTelemetryClient needs the service's base URL");if(typeof t.baseUrl=="string"&&t.baseUrl==="")throw new TypeError("createTelemetryClient needs the service's base URL");if(typeof t.clientVersion!="string"||t.clientVersion==="")throw new TypeError("createTelemetryClient needs the client version");if(typeof t.timeoutMs!="number"||!Number.isFinite(t.timeoutMs)||t.timeoutMs<=0)throw new TypeError("createTelemetryClient needs a positive deadline in milliseconds");let{signer:r,transport:n,clock:i}=a,o=t.apiPath??"/api",s=t.timeoutMs,l=()=>typeof t.baseUrl=="function"?t.baseUrl():t.baseUrl,u=d=>{try{t.onFailure?.(d)}catch{}},c=async(d,h,p,m)=>{let g;try{let f=await n.post(h,p,m,{timeoutMs:s});g=f.status;try{f.body?.cancel().catch(()=>{})}catch{}}catch(f){u({channel:d,stage:"post",status:null,error:f});return}(g<200||g>299)&&u({channel:d,stage:"status",status:g,error:null})};return{async sendClientMessage(d){let h,p,m;try{h=`${l()}${o}/LogClientMsg/?nocache=${i.now()}`,p=zi(d),m=ny(p,r)}catch(g){u({channel:"client-message",stage:"build",status:null,error:g});return}await c("client-message",h,p,{"Content-Type":"text/plain","X-Signature":m})},async countEvent(d,h,p){let m,g;try{m=`${l()}${o}/eventlog`,g=gae(d,t.clientVersion,h,p)}catch(f){u({channel:"event-count",stage:"build",status:null,error:f});return}await c("event-count",m,g,{"Content-Type":"text/plain"})}}}var GI=2**31-1;function KI(e){return Object.assign(new Error(`The request did not finish within ${e} ms.`),{name:"TimeoutError"})}function fae(e){return typeof e=="number"&&e>0&&e<=GI?null:new RangeError(`fetchTransport cannot keep a deadline of ${String(e)} ms: it must be a number of milliseconds above 0 and at most ${GI} (about 24.8 days), the longest a timer can wait. Nothing was sent.`)}function O0(e,t={}){if(typeof e!="function")throw new TypeError("fetchTransport needs the host's fetch");let a=e,r=t.credentials??"omit";return{async post(n,i,o,s){let l=s.timeoutMs,u=fae(l);if(u)throw u;let c=new AbortController,d=!1,h=setTimeout(()=>{d=!0,c.abort(KI(l))},l),p=()=>c.abort(s.signal?.reason);s.signal&&(s.signal.aborted?p():s.signal.addEventListener("abort",p,{once:!0}));let m=!1,g=()=>{m||(m=!0,clearTimeout(h),s.signal?.removeEventListener("abort",p))},f=S=>d?KI(l):S,y;try{y=await a(n,{method:"POST",body:i,headers:o,credentials:r,signal:c.signal})}catch(S){throw g(),f(S)}let b=ry(y),v=b.statusText!==void 0?{statusText:b.statusText}:{};if(!b.body)return{status:b.status,...v,contentType:b.contentType,body:null,text:async()=>{try{return await b.text()}catch(S){throw f(S)}finally{g()}}};let k=b.body.getReader(),w=new ReadableStream({async pull(S){try{let M=await k.read();if(M.done){g(),S.close();return}S.enqueue(M.value)}catch(M){g(),S.error(f(M))}},cancel(S){return g(),k.cancel(S)}});return{status:b.status,...v,contentType:b.contentType,body:w,text:()=>new Response(w).text()}}}}var yae=300;function bae(e){return String(e??"").toLowerCase().replace(/[^a-z0-9-]/g,"").slice(0,40)}var vae="/LLMChart/",Nae="/LLMChart/qualify",Sae="/VisionReview/",kae="/LLMChart/sample",wae="/RefundGenerate/",Wae=e=>!!e&&typeof e=="object"&&e.name==="TimeoutError",z0=async e=>JSON.parse(await e.text());function Cae(e){try{e.body?e.body.cancel().catch(()=>{}):e.text().catch(()=>{})}catch{}}function iP(e,t){let a=e;if(!a||!a.signer||typeof a.signer.sign!="function")throw new TypeError("createGenerateClient needs the host's signer");if(!a.transport||typeof a.transport.post!="function")throw new TypeError("createGenerateClient needs the host's transport");if(!a.clock||typeof a.clock.now!="function")throw new TypeError("createGenerateClient needs the host's clock");if(!t||typeof t.baseUrl!="string"&&typeof t.baseUrl!="function")throw new TypeError("createGenerateClient needs the service's base URL");if(typeof t.baseUrl=="string"&&t.baseUrl==="")throw new TypeError("createGenerateClient needs the service's base URL");if(t.apiPath!==void 0&&typeof t.apiPath!="string")throw new TypeError("createGenerateClient's apiPath must be a string");if(t.nocache!==void 0&&t.nocache!==null&&typeof t.nocache!="function")throw new TypeError("createGenerateClient's nocache must be a function");let{signer:r,transport:n,clock:i}=a,o=t.apiPath??"/api",s=()=>typeof t.baseUrl=="function"?t.baseUrl():t.baseUrl,l=d=>t.nocache?t.nocache(d):String(i.now());async function u(d,h,p,m,g){let f=`${s()}${o}${h}?nocache=${l(d)}`,y={"Content-Type":"text/plain","X-Signature":ny(p,r)},b=m.signal??void 0,v=(w,S)=>{let M=!!b?.aborted;return{kind:"transport",headersReceived:w,timedOut:!M&&Wae(S),cancelled:M,error:S}},k;try{k=await n.post(f,p,y,b?{timeoutMs:m.timeoutMs,signal:b}:{timeoutMs:m.timeoutMs})}catch(w){return v(!1,w)}if(k.status<200||k.status>299){let w="";if(m.readErrorBody===!1)Cae(k);else try{w=(await k.text()).slice(0,yae)}catch{}return{kind:"http",status:k.status,statusText:k.statusText??"",bodyStart:w}}try{return{kind:"answer",status:k.status,value:await g(k)}}catch(w){return v(!0,w)}}function c(d,h){if(!h||typeof h.timeoutMs!="number"||!Number.isFinite(h.timeoutMs)||h.timeoutMs<=0)throw new TypeError(`The ${d} call needs a positive deadline in milliseconds`);return h}return{async generate(d,h){let p=c("generate",h),m=p.onStage??void 0;return u("generate",vae,zi(d),p,g=>oy(g,m))},async qualify(d,h){let p=c("qualify",h),m=p.route??Nae;if(typeof m!="string"||!m.startsWith("/"))throw new TypeError("The qualify route must start with '/'");return u("qualify",m,zi(d),p,z0)},async review(d,h){let p=c("review",h),m=JSON.stringify(d);if(typeof m!="string")throw new TypeError("The review wire did not serialize to JSON");return u("review",Sae,m,p,z0)},async sample(d,h){let p=c("sample",h);return u("sample",kae,zi(d),p,z0)},async refund(d,h,p){let m=c("refund",h);if(typeof d!="string"||d.trim()==="")throw new TypeError("A refund needs the generation's correlation id");let g=bae(p),f=g?{CorrelationID:d.trim(),Reason:g}:{CorrelationID:d.trim()};return u("refund",wae,JSON.stringify(f),m,z0)}}}cP();/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var Pae=lP({"../../node_modules/papaparse/papaparse.min.js"(e,t){/* @license
98
98
  Papa Parse
@@ -366,7 +366,7 @@ data:
366
366
 
367
367
  `,t.enqueue(a.encode(i)),!0}catch(i){return this.onerror?.(i),!1}}handleUnsupportedRequest(){return this.onerror?.(new Error("Method not allowed.")),new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(t,a){try{let r=t.headers.get("accept");if(!r?.includes("application/json")||!r.includes("text/event-stream"))return this.onerror?.(new Error("Not Acceptable: Client must accept both application/json and text/event-stream")),this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept both application/json and text/event-stream");let n=t.headers.get("content-type");if(!AO(n))return this.onerror?.(new Error("Unsupported Media Type: Content-Type must be application/json")),this.createJsonErrorResponse(415,-32e3,"Unsupported Media Type: Content-Type must be application/json");let i={headers:Object.fromEntries(t.headers.entries()),url:new URL(t.url)},o;if(a?.parsedBody!==void 0)o=a.parsedBody;else try{let b=await xO(t,this._maxRequestBodySize);if(b.tooLarge){let v=_O(this._maxRequestBodySize);return this.onerror?.(new Error(v)),this.createJsonErrorResponse(413,-32e3,v)}o=JSON.parse(b.text)}catch{return this.onerror?.(new Error("Parse error: Invalid JSON")),this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}if(Array.isArray(o)&&o.length>100)return this.onerror?.(new Error(`Invalid Request: Batch must not exceed ${100} messages`)),this.createJsonErrorResponse(400,-32600,`Invalid Request: Batch must not exceed ${100} messages`);let s;try{Array.isArray(o)?s=o.map(b=>V2.parse(b)):s=[V2.parse(o)]}catch{return this.onerror?.(new Error("Parse error: Invalid JSON-RPC message")),this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}if(this._closed)return this.createJsonErrorResponse(404,-32001,"Session not found");let l=s.some(hp);if(l){if(this._initialized&&this.sessionId!==void 0)return this.onerror?.(new Error("Invalid Request: Server already initialized")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(s.length>1)return this.onerror?.(new Error("Invalid Request: Only one initialization request is allowed")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!l){let b=this.validateSession(t);if(b)return b;let v=this.validateProtocolVersion(t);if(v)return v}if(this._closed)return this.createJsonErrorResponse(404,-32001,"Session not found");if(!s.some(bn)){for(let b of s)this.onmessage?.(b,{authInfo:a?.authInfo,requestInfo:i});return new Response(null,{status:202})}let c=crypto.randomUUID(),d=s.find(b=>hp(b)),h=d?d.params.protocolVersion:t.headers.get("mcp-protocol-version")??NW;if(this._enableJsonResponse)return new Promise(b=>{this._streamMapping.set(c,{resolveJson:b,cleanup:()=>{this._streamMapping.delete(c)}});for(let v of s)bn(v)&&this._requestToStreamMapping.set(v.id,c);for(let v of s)this.onmessage?.(v,{authInfo:a?.authInfo,requestInfo:i})});let p=new TextEncoder,m,g,f=new ReadableStream({start:b=>{m=b},cancel:()=>{g!==void 0&&clearInterval(g),this._streamMapping.get(c)?.controller===m&&this._streamMapping.delete(c)}}),y={"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"};this.sessionId!==void 0&&(y["mcp-session-id"]=this.sessionId);for(let b of s)bn(b)&&(this._streamMapping.set(c,{controller:m,encoder:p,cleanup:()=>{g!==void 0&&clearInterval(g),this._streamMapping.delete(c);try{m.close()}catch{}}}),this._requestToStreamMapping.set(b.id,c));try{await this.writePrimingEvent(m,p,c,h);for(let b of s){let v,k;bn(b)&&this._eventStore&&h>="2025-11-25"&&(v=()=>{this.closeSSEStream(b.id)},k=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(b,{authInfo:a?.authInfo,requestInfo:i,closeSSEStream:v,closeStandaloneSSEStream:k})}}catch(b){this._streamMapping.get(c)?.cleanup(),this._resumableStreams.delete(c);for(let v of s)bn(v)&&this._requestToStreamMapping.delete(v.id);throw b}return this._streamMapping.get(c)?.controller===m&&(g=this.startKeepAlive(m,p)),new Response(f,{status:200,headers:y})}catch(r){return this.onerror?.(r),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(r)})}}async handleDeleteRequest(t){let a=this.validateSession(t);if(a)return a;let r=this.validateProtocolVersion(t);if(r)return r;try{return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),new Response(null,{status:200})}finally{await this.close()}}validateSession(t){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.onerror?.(new Error("Bad Request: Server not initialized")),this.createJsonErrorResponse(400,-32e3,"Bad Request: Server not initialized");let a=t.headers.get("mcp-session-id");if(!a)return this.onerror?.(new Error("Bad Request: Mcp-Session-Id header is required")),this.createJsonErrorResponse(400,-32e3,"Bad Request: Mcp-Session-Id header is required");if(a!==this.sessionId)return this.onerror?.(new Error("Session not found")),this.createJsonErrorResponse(404,-32001,"Session not found")}validateProtocolVersion(t){let a=t.headers.get("mcp-protocol-version");if(a!==null&&!ei.includes(a))return this.onerror?.(new Error(`Bad Request: Unsupported protocol version: ${a} (supported versions: ${ei.join(", ")})`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${a} (supported versions: ${ei.join(", ")})`)}async close(){this._closed||(this._closed=!0,this._streamMapping.forEach(({cleanup:t})=>{t()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this._resumableStreams.clear(),this.onclose?.())}closeSSEStream(t){let a=this._requestToStreamMapping.get(t);if(!a)return;let r=this._streamMapping.get(a);r&&r.cleanup()}closeStandaloneSSEStream(){let t=this._streamMapping.get(this._standaloneSseStreamId);t&&t.cleanup()}async send(t,a){let r=a?.relatedRequestId;if((vn(t)||ti(t))&&(r=t.id),r===void 0){if(vn(t)||ti(t))throw new Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let o;this._eventStore&&(o=await this._eventStore.storeEvent(this._standaloneSseStreamId,t));let s=this._streamMapping.get(this._standaloneSseStreamId);if(s===void 0)return;s.controller&&s.encoder&&(o===void 0||!s.replayedEventIds?.has(o))&&this.writeSSEEvent(s.controller,s.encoder,t,o);return}let n=this._requestToStreamMapping.get(r);if(!n)throw new Error(`No connection established for request ID: ${String(r)}`);let i=this._streamMapping.get(n);if(!this._enableJsonResponse){let o;this._eventStore&&(o=await this._eventStore.storeEvent(n,t),i=this._streamMapping.get(n)),i?.controller&&i?.encoder&&(o===void 0||!i.replayedEventIds?.has(o))&&this.writeSSEEvent(i.controller,i.encoder,t,o)&&o!==void 0&&this._resumableStreams.add(n)}if(vn(t)||ti(t)){this._requestResponseMap.set(r,t);let o=Array.from(this._requestToStreamMapping.entries()).filter(([l,u])=>u===n).map(([l])=>l);if(o.every(l=>this._requestResponseMap.has(l))){if(!i){if(this._closed){for(let l of o)this._requestResponseMap.delete(l),this._requestToStreamMapping.delete(l);return}if(!this._enableJsonResponse&&this._eventStore&&this._resumableStreams.has(n)){for(let l of o)this._requestResponseMap.delete(l),this._requestToStreamMapping.delete(l);this._resumableStreams.delete(n);return}for(let l of o)this._requestResponseMap.delete(l),this._requestToStreamMapping.delete(l);throw new Error(`No connection established for request ID: ${String(r)}`)}if(this._enableJsonResponse&&i.resolveJson){let l={"Content-Type":"application/json"};this.sessionId!==void 0&&(l["mcp-session-id"]=this.sessionId);let u=o.map(c=>this._requestResponseMap.get(c));u.length===1?i.resolveJson(new Response(JSON.stringify(u[0]),{status:200,headers:l})):i.resolveJson(new Response(JSON.stringify(u),{status:200,headers:l}))}else i.cleanup();for(let l of o)this._requestResponseMap.delete(l),this._requestToStreamMapping.delete(l);this._resumableStreams.delete(n)}}}};var ru=class{constructor(t={}){this._requestContext=new WeakMap,this._webStandardTransport=new nu(t),this._requestListener=Xv(async a=>{let r=this._requestContext.get(a);return this._webStandardTransport.handleRequest(a,{authInfo:r?.authInfo,parsedBody:r?.parsedBody})},{overrideGlobalObjects:!1})}get sessionId(){return this._webStandardTransport.sessionId}set onclose(t){this._webStandardTransport.onclose=t}get onclose(){return this._webStandardTransport.onclose}set onerror(t){this._webStandardTransport.onerror=t}get onerror(){return this._webStandardTransport.onerror}set onmessage(t){this._webStandardTransport.onmessage=t}get onmessage(){return this._webStandardTransport.onmessage}async start(){return this._webStandardTransport.start()}async close(){return this._webStandardTransport.close()}async send(t,a){return this._webStandardTransport.send(t,a)}async handleRequest(t,a,r){let n=t.auth;await Xv(async o=>this._webStandardTransport.handleRequest(o,{authInfo:n,parsedBody:r}),{overrideGlobalObjects:!1})(t,a)}closeSSEStream(t){this._webStandardTransport.closeSSEStream(t)}closeStandaloneSSEStream(){this._webStandardTransport.closeStandaloneSSEStream()}};var ese=16*1024*1024;function PO(e,t){let a=o=>{let s=e.indexOf(o);return s>=0&&s+1<e.length?e[s+1]:void 0},r=e.includes("--http")||/^(1|true|yes|on)$/i.test((t.BIC_MCP_HOSTED??"").trim()),n=a("--port")??t.BIC_MCP_HTTP_PORT??"8799",i=Number(n);if(!Number.isInteger(i)||i<0||i>65535)throw new Error(`--port must be a whole number from 0 to 65535 (got "${n}").`);return{http:r,host:a("--host")??"127.0.0.1",port:i}}function iu(e,t,a,r={}){if(e.headersSent){e.end();return}e.writeHead(t,{"Content-Type":"application/json","Cache-Control":"no-store",...r}),e.end(JSON.stringify(a))}function Ts(e,t,a,r,n={}){iu(e,t,{jsonrpc:"2.0",error:{code:a,message:r},id:null},n)}function tse(e,t,a){return new Promise((r,n)=>{let i=[],o=0,s=!1;e.on("data",l=>{if(!s){if(o+=l.length,o>a){s=!0,i.length=0,Ts(t,413,-32600,`The request is larger than this server accepts (${Math.floor(a/1048576)} MB). Send the table at the chart's grain - aggregated - or with fewer columns.`,{Connection:"close"}),r(null);return}i.push(l)}}),e.on("end",()=>{s||r(Buffer.concat(i).toString("utf-8"))}),e.on("error",n)})}async function ase(e,t,a){let r=xT(e.headers.authorization);if(!r){Ts(t,401,-32001,"Sign in to use this chart server: connect to it from your app, which sends your account's access token with each request.",{"WWW-Authenticate":"Bearer"});return}let n=await tse(e,t,a.maxBodyBytes??ese);if(n===null)return;let i;try{i=JSON.parse(n)}catch{Ts(t,400,-32700,"Parse error: the request body isn't JSON.");return}let o=a.newServer(),s=new ru({sessionIdGenerator:void 0});t.on("close",()=>{s.close().catch(()=>{}),o.close().catch(()=>{})}),await o.connect(s);let l=IT(e.headers[kb.toLowerCase()]);await AT({accessToken:r,...l?{clientIp:l}:{}},()=>s.handleRequest(e,t,i))}function UO(e){let t=e.log??(r=>{process.stderr.write(r+`
368
368
  `)}),a=Q8e((r,n)=>{let i=new URL(r.url??"/","http://localhost").pathname;if(i==="/healthz"){if(r.method!=="GET"&&r.method!=="HEAD"){iu(n,405,{error:"Use GET."},{Allow:"GET"});return}iu(n,200,{ok:!0,server:"bic-chart",version:e.version});return}if(i!=="/mcp"){iu(n,404,{error:"Not found. The MCP endpoint is /mcp."});return}if(r.method!=="POST"){Ts(n,405,-32e3,"Method not allowed: this server is stateless, so it takes POST only.",{Allow:"POST"});return}ase(r,n,e).catch(o=>{t(`[bic-chart http] request failed (${o?.name??"Error"})`),Ts(n,500,-32603,"Internal error: the chart server couldn't handle this request. Try again.")})});return new Promise((r,n)=>{a.once("error",n),a.listen(e.port,e.host,()=>{a.off("error",n),r(a)})})}var RO=["assess_data_shape","list_eligible_charts","generate_chart","get_guide","preview_request","check_request"],mo="This hosted server receives your table, profiles it in memory and sends only the profile to generation; rows aren't stored or logged.",zO={csv_path:"this hosted server can't read files on your machine, so pass the table as data or csv_text",project_dir:"this hosted server can't see your project folder, so pass language or renderer instead",out_dir:"this hosted server returns the chart inline; it can't write to your machine",preview_html:"this hosted server returns the chart inline; it can't write to your machine"},ou=e=>`Not accepted by this hosted server: ${zO[e]}.`,Es={csv_path:_.string().optional().describe(ou("csv_path")),project_dir:_.string().optional().describe(ou("project_dir"))},TO={out_dir:_.string().optional().describe(ou("out_dir")),preview_html:_.boolean().optional().describe(ou("preview_html"))},Zv=_.enum(["javascript","typescript","python",""]).optional(),EO=["csv_path","project_dir","out_dir","preview_html"],$O={assess_data_shape:{description:`Profile a dataset: per-column types, cardinality, ranges, measure/dimension roles, temporal/ordinal detection, and cross-column signals (nesting, shared values, association) - the same measurement engine the BIC Power BI visual uses before generating a chart. Pass the table as data ({columns, rows}) or csv_text. ${mo} This tool sends nothing on.`,inputs:{csv_path:Es.csv_path},refuse:["csv_path"]},list_eligible_charts:{description:"The AUTHORITATIVE list of chart types (maps, tables a reader works with and app widgets included) that can render this dataset - the server's own eligibility engine, NOT a guess. Pass the table as data ({columns, rows}) or csv_text. "+mo+" Ranked for JavaScript (D3) unless you pass language ('python' ranks Plotly and matplotlib) or renderer ('D3'/'PLOTLY'/... for one renderer, '' for every renderer). No model runs, but the call is METERED: free within a generous hourly allowance, then usage credits per call.",inputs:{...Es,language:Zv.describe("Project source language: javascript/typescript ranks D3, python ranks Plotly and matplotlib. Omit for JavaScript; `renderer`, when given, overrides it.")},refuse:["csv_path","project_dir"]},generate_chart:{description:`Generate ready-to-render chart code for a dataset: the backend picks a suitable chart type (or honors chart_type) and returns code that has passed its eligibility gates and quality checks. Pass the table as data ({columns, rows}) or csv_text. ${mo} The code and the render-ready data come back inline in the reply; this server writes no files. JavaScript (D3) unless you pass language or renderer. The D3 code is a portable render(container, data, options) function meant to be MERGED into your own app; an integration contract describes exactly how to call it. A generation uses your account's credits. ${ol}`,inputs:{...Es,...TO,language:Zv.describe("Project source language: javascript/typescript generates D3 (the renderer @bicharts/chart-host draws), python lets the backend pick within Plotly/matplotlib. Omit for JavaScript (D3); `renderer`, when given, overrides it.")},refuse:EO},preview_request:{description:`Shows exactly what a chart generation would send on for these arguments - the measured shape of your data (column names, types, counts, ranges), the settings, and whether any sample rows travel - with the credentials removed. It sends nothing on and costs nothing. ${mo} Takes the same arguments as a generation.`,inputs:{...Es,...TO},refuse:EO},check_request:{description:`Checks a chart request against this data before anything is generated. Takes the same arguments as a generation - the chart type and every setting (date grain, limit, overlay, required columns, rows policy, data labels and the rest) - and answers, in the server's own words, each ask this data can't honor and why: a channel the data doesn't have, too little of one for the ask, or a name the catalog doesn't know. When the chart type itself is denied, it also lists up to five chart types that fit this data, best fit first. An OK names the asks it checked. Pass the table as data ({columns, rows}) or csv_text. ${mo} No model runs and no generation credits are spent, but the call is METERED like the eligibility list: free within a generous hourly allowance, then usage credits per call. The reply carries a text block and a structured result: the verdict (OK or DENY), the asks checked, each finding with its kind and reason, and the alternatives.`,inputs:{...Es,language:Zv.describe("Project source language: javascript/typescript checks the request as a D3 generation, python as a Plotly/matplotlib one. Omit for JavaScript (D3); `renderer`, when given, overrides it.")},refuse:["csv_path","project_dir"]},get_guide:{description:"How to build an app with these charts, from the guide this server ships. Free, and it sends nothing on. topic 'fabric-app' (the default) is what a Microsoft Fabric App on the Rayfin data app template needs; 'all' is the whole guide, including Blazor; 'chart-shapes' lists every chart type with the columns, limits and renderers it needs; 'settings' lists the choices a person can make about a chart, with their options and defaults. Some steps the guide describes, the ones that write into a project, need the local server (npx -y @bicharts/chart-mcp) rather than this one."}};function OO(e,t){let a=(t??[]).filter(r=>{let n=e?.[r];return n!=null&&n!==!1&&n!==""});return a.length===0?null:a.map(r=>`${r} isn't accepted here: ${zO[r]}.`).join(" ")}var DO=["This is RegiaBI's hosted chart server: it builds charts, maps, tables a reader works with and app widgets from a table you send. A request for RegiaBI means these tools.",mo+" It can't reach your files: pass each table as data ({columns, rows}) or csv_text; the chart returns inline.","Which visuals suit the data? Answer from list_eligible_charts, not general knowledge.","Six rules for charts that fit on the first try:","1. Pass the chart's WHOLE result at its grain, not a sample: counts decide what fits.","2. Name columns as your app renders them (rename Table[Column]), unchanged at render time.","3. To pick a type, call list_eligible_charts on that data first and choose what answers the question as asked. Pass chart_type only for a type the person named; else leave it unset and the engine chooses. Named a type or ask? Run check_request first; say what it denies and why, don't generate around it. Build no input beside a visual's own controls.","4. Host the code with @bicharts/chart-host. generate_chart returns the code, the render-ready rows and the binding: pass them as is; never hand-build __rowIdx__ or __geo* columns.","5. Use `prompt` for what the chart shows; selection, cross-filtering, sizing and theming are the host's: filter with useBicFilter + selects (a lasso too), read a chart's sliders with useBicControls + controls (@bicharts/chart-host/react). Never write a select handler, toggle or clear.","6. The person chooses chart forms (familiar or unusual), language and region, and how much data shows and which way is good (get_guide topic 'settings'). Unstated: ask once, one question listing the options, before the first generate_chart; pass only what they say, never a guess from the data. Can't ask: use defaults and report in your final message what `settings` shows the engine chose.","Building an app? get_guide has the setup; the local server (npx -y @bicharts/chart-mcp) writes into your app."].join(`
369
- `);function zs(e,t){return $l(e,t).dir??Or(e??process.cwd())}var Yv="0.6.118",FO=[],fo=null,q1={registerTool(e,t,a){FO.push({name:e,config:t,cb:a})},get server(){if(!fo)throw new Error("The local server isn't running in this process.");return fo.server}};function jO(e){let t=e?new R8({name:"bic-chart",version:Yv},{instructions:DO}):new R8({name:"bic-chart",version:Yv},{instructions:B$});e||(t.server.registerCapabilities({logging:{}}),gT(a=>{t.server.sendLoggingMessage({level:"notice",logger:"sign-in",data:a}).catch(()=>{})}));for(let a of FO){if(e&&!RO.includes(a.name))continue;let r=e?$O[a.name]:void 0,n={...a.config,...r?{description:r.description,inputSchema:{...a.config.inputSchema,...r.inputs??{}}}:{},annotations:{title:a.config.title,...a.config.annotations}},i=r?.refuse?(o,s)=>{let l=OO(o,r.refuse);return l?{isError:!0,content:[{type:"text",text:l}]}:a.cb(o,s)}:a.cb;t.registerTool(a.name,n,i)}return t}var Rs="2026-11-12T11:56:43Z src:5264d9ecc210 (46 files)",Qv="@bicharts/chart-host@0.6.118, @bicharts/shape-core@0.6.118",nse=_.object({columns:_.array(_.object({name:_.string(),dataType:_.enum(["String","Integer","Decimal","DateTime"]).optional().describe("Known type (DAX/semantic-model callers have it); omit to infer from values."),isMeasure:_.boolean().optional().describe("Known measure/dimension role; omit to apply the numeric-non-identifier heuristic. A semantic-model caller should set this."),format:_.string().optional().describe('Format string from the model (e.g. "$#,##0") \u2192 modelFormat.'),description:_.string().optional().describe("Column description from the model \u2192 modelDesc.")})).min(1),rows:_.array(_.union([_.array(_.any()),_.record(_.string(),_.any())])).min(1).describe("Rows as positional arrays aligned to columns, OR objects keyed by column name.")}).describe("A pre-typed {columns, rows} table (DAX query results, dataframe, arrow). Use INSTEAD of csv_path/csv_text."),tN={csv_path:_.string().optional().describe("Path to a CSV file (header row required)."),csv_text:_.string().optional().describe("Inline CSV text (alternative to csv_path)."),data:nse.optional().describe("A pre-typed {columns, rows} table \u2014 the shape a Fabric DAX query / dataframe already has. Alternative to csv_path/csv_text; when columns carry isMeasure/format/description the shape matches PBI fidelity with no guessing."),measures:_.array(_.string()).optional().describe("Columns to treat as MEASURES (the PBI 'Values' well \u2014 fields the chart aggregates). Numeric non-identifier columns are measures by default."),dimensions:_.array(_.string()).optional().describe("Columns to treat as DIMENSIONS (a PBI category/axis well \u2014 fields to group/break by). Use for numeric codes/years that should NOT be aggregated."),formats:_.record(_.string(),_.string()).optional().describe(`Per-column number/date FORMAT STRING (e.g. {"Revenue":"$#,##0","Margin":"0.0%"}). PBI supplies these from its model; a CSV can't, so provide them to steer number formatting.`),descriptions:_.record(_.string(),_.string()).optional().describe("Per-column human DESCRIPTION \u2014 gives the model semantic context the bare column name lacks."),group_by:_.array(_.string()).optional().describe("Columns that are the PRIMARY series/breakdown (the PBI 'Group by' well); the backend leads the visualization with these."),non_additive:_.array(_.string()).optional().describe("MEASURE columns that must NOT be summed (a ratio/average/rate \u2014 use mean, never stack). Usually auto-detected; this is an authoritative override."),privacy_level:_.enum(["0","10","20","30"]).optional().describe("How much detail to compute/share: 0 names only, 10 +counts, 20 +detailed stats (default), 30 +obfuscated sample rows."),culture:Mr(_.string().regex(/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*$/).max(35).refine(e=>A3(e)!==void 0,{error:e=>`'${String(e.input)}' is not a valid language tag; use a form such as 'de-DE', 'fr', 'ja-JP', 'es-419' or 'zh-Hant-TW'.`})).describe("The caller's language and region as a BCP 47 tag such as 'de-DE', 'fr' or 'ja-JP'. Default 'en-US'. It is the language the chart's own text is written in (titles, axis labels, legends, notes), and it breaks the tie when a CSV's numbers or dates are ambiguous: 12.500 as twelve thousand five hundred or twelve and a half, 05.03.2024 as 5 March or 3 May. Set it from the end user's locale when you know it; it does not translate the data.")};function go(e){return{measures:e.measures,dimensions:e.dimensions,formats:e.formats,descriptions:e.descriptions,groupBy:e.group_by,nonAdditive:e.non_additive,privacyLevel:e.privacy_level??"20",locale:e.culture||void 0}}function $s(e){if(e.data)return I0(e.data.columns,e.data.rows,go(e));if(e.csv_text)return y3(e.csv_text,go(e));if(e.csv_path)return y3(eN(Or(e.csv_path),"utf-8"),go(e));throw new Error("Provide one of: data ({columns, rows}), csv_text, or csv_path.")}q1.registerTool("assess_data_shape",{title:"Assess data shape",description:"Profile a dataset locally (no data leaves the machine): per-column types, cardinality, ranges, measure/dimension roles, temporal/ordinal detection, and cross-column signals (nesting, shared values, association). This is the same measurement engine the BIC Power BI visual uses before generating a chart.",inputSchema:tN,annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{let t=$s(e),a={totalRows:t.totalRows,leafCardinality:t.index.getLeafCardinality(),columns:t.shape},r=P1()?null:eE(process.env);return{content:[{type:"text",text:JSON.stringify(a,null,2)},...r?[{type:"text",text:r}]:[]]}});q1.registerTool("get_guide",{title:"Read the build guide",description:"How to build an app with these charts, from the guide this package ships. Local and free: no network, no credentials. topic 'fabric-app' (the default) is what a Microsoft Fabric App on the Rayfin data app template needs: what to pull, generating, wiring in React, the Fabric App section and the time-savers. 'all' is the whole guide, including Blazor. 'chart-shapes' lists every chart type with the columns, limits and renderers it needs. 'settings' lists the choices a person can make about a chart, with their options and defaults.",inputSchema:{topic:_.enum(q$).optional().describe("'fabric-app' (default), 'all', 'chart-shapes', or 'settings'.")},annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{try{return{content:[{type:"text",text:Z$(e.topic??"fabric-app")}]}}catch(t){return{isError:!0,content:[{type:"text",text:`The guide could not be read from this package (${t?.message??t}). It is also published as skills/bic-charts/SKILL.md inside @bicharts/chart-mcp on npm.`}]}}});q1.registerTool("list_eligible_charts",{title:"List eligible chart types",description:"The AUTHORITATIVE list of chart types (maps, tables a reader works with and app widgets included) that can render this dataset \u2014 the server's own eligibility engine, NOT a local guess. Profiles the data locally, then sends that profile to the backend. NO LLM in the loop, but this is a NETWORK call and it is METERED \u2014 see the licensing note below. By default the tool DETECTS the project's language (JS/TS vs Python from the working dir) and returns the charts for THAT language, SCOPED and ordered by how well each type fits this data (best first; `order: 'variety'` favors newer and less-common types instead), each tagged with its source language and renderer. Pass `language` ('javascript'|'python') to force it, or `renderer` ('D3'/'PLOTLY'/\u2026) to rank one specific renderer, or renderer '' for the full renderer-agnostic eligibility across ALL renderers (also ranked, by chart type alone, with no renderer/language tag). If the language can't be auto-detected and none is given, the tool asks you to specify one. Needs an account: eligibility IS the engine, so programmatic access to it is licensed. With nothing configured, the first call opens a browser sign-in, waits for it and then answers (a license key in the environment is the alternative for a machine with no browser). Free within a generous hourly allowance; beyond it each call draws usage credits. The reply carries a text block and a structured table: one row per chart type with its rank, name, preview flag, fit verdict, description, language and renderer. Rows flagged alsoWorthALook are a few picks from below the top fits, drawn so an offer can include something different; the fit order itself never changes.",inputSchema:{...tN,language:_.enum(["javascript","typescript","python",""]).optional().describe("Project source language \u2192 the server ranks across that language's renderers (javascript/typescript = D3, python = Plotly/matplotlib). Omit to AUTO-DETECT from the working dir; `renderer` (if given) overrides this."),project_dir:_.string().optional().describe("Directory to auto-detect the project language from (default: the folder setup_fabric_app used, else the working directory or the one project folder directly inside it)."),renderer:_.enum(["D3","PLOTLY","PYMATPLOT",""]).optional().describe("Force a specific renderer (overrides `language`): a concrete renderer ranks that renderer's charts; '' = the full renderer-agnostic eligibility (all renderers, ranked by chart type alone). Omit to use `language`/auto-detection."),level_of_detail:Mr(_.enum(["High","Medium","Low",""])).describe("The user's own preference for how much of the data to see, as they've stated it. 'High' = every observation as its own mark, 'Medium' = every row shown as a distribution, 'Low' = one mark per category. Ranks this list the same way a generation would. Unset when they haven't stated one; unset changes nothing."),chart_style:Mr(_.enum(["traditional","non_traditional",""])).describe("The user's own preference for which family of charts the list covers, as they've stated it. 'traditional' lists only the familiar forms (bar, stacked and grouped bar, line, area, pie, donut, card, gauge), 'non_traditional' lists only the other chart types; a type outside the chosen family is left out. Unset when they haven't stated one; unset changes nothing."),name_filter:_.string().optional().describe("Show only chart types matching this text (the same matcher the Power BI and Excel chart-type lists use). Three tiers, first non-empty one wins outright: the term starting a WORD in the name ('gan' -> Gantt chart, and NOT Organization chart), then mid-word in the name ('eth' -> Choropleth), then the description. A name match therefore SUPPRESSES description matches. Case- and accent-insensitive and, by default, space- and punctuation-insensitive too ('barchart' and 'bar-chart' find Bar chart; see name_filter_match). Minimum two characters, and it never reorders - the picker's ranking is preserved and the ranks stay as issued. Applied after ranking and before `top`."),name_filter_match:_.enum(["loose","exact"]).optional().describe("How name_filter matches a name. 'loose' (the default) ignores accents, case, spaces and punctuation, so 'barchart' finds Bar chart. 'exact' folds accents and case and collapses repeated spaces, and nothing else: a name typed without its space or hyphen matches nothing. The same setting the Power BI and Excel chart-type lists offer."),order:_.enum(["fit","variety"]).optional().describe("How the list is ordered. 'fit' (the default) = by how well each chart type fits THIS data, nothing else - use it to choose a chart for a question. 'variety' = the picker's selection order, which favors newer and less-common types on purpose - use it when the user wants to explore or be surprised. Both lists hold the same chart types; only the order differs."),top:_.number().optional().describe("Show only the top-N ranked results. Omit for all."),width:_.number().optional().describe("Viewport width px (default 800) \u2014 affects small-viewport / facet-budget gates."),height:_.number().optional().describe("Viewport height px (default 600).")},outputSchema:j$,annotations:{readOnlyHint:!0,openWorldHint:!0}},async e=>{let t=$s(e),a="",r="",n="",i="";if(e.renderer!==void 0)a=e.renderer;else if(e.language)r=e.language;else if(P1())r="javascript",n=" (language: javascript, this server's default - pass language or renderer for another)";else{let b=zl(zs(e.project_dir,no));b.language?(r=b.language,n=` (auto-detected language: ${b.language} \u2014 ${b.reason})`):i=`Couldn't tell the project's language (${b.reason}), so this is the list across all renderers; pass language: "javascript" or "python", or project_dir, to narrow it.
369
+ `);function zs(e,t){return $l(e,t).dir??Or(e??process.cwd())}var Yv="0.6.119",FO=[],fo=null,q1={registerTool(e,t,a){FO.push({name:e,config:t,cb:a})},get server(){if(!fo)throw new Error("The local server isn't running in this process.");return fo.server}};function jO(e){let t=e?new R8({name:"bic-chart",version:Yv},{instructions:DO}):new R8({name:"bic-chart",version:Yv},{instructions:B$});e||(t.server.registerCapabilities({logging:{}}),gT(a=>{t.server.sendLoggingMessage({level:"notice",logger:"sign-in",data:a}).catch(()=>{})}));for(let a of FO){if(e&&!RO.includes(a.name))continue;let r=e?$O[a.name]:void 0,n={...a.config,...r?{description:r.description,inputSchema:{...a.config.inputSchema,...r.inputs??{}}}:{},annotations:{title:a.config.title,...a.config.annotations}},i=r?.refuse?(o,s)=>{let l=OO(o,r.refuse);return l?{isError:!0,content:[{type:"text",text:l}]}:a.cb(o,s)}:a.cb;t.registerTool(a.name,n,i)}return t}var Rs="2026-11-12T15:09:05Z src:79f857575183 (46 files)",Qv="@bicharts/chart-host@0.6.119, @bicharts/shape-core@0.6.119",nse=_.object({columns:_.array(_.object({name:_.string(),dataType:_.enum(["String","Integer","Decimal","DateTime"]).optional().describe("Known type (DAX/semantic-model callers have it); omit to infer from values."),isMeasure:_.boolean().optional().describe("Known measure/dimension role; omit to apply the numeric-non-identifier heuristic. A semantic-model caller should set this."),format:_.string().optional().describe('Format string from the model (e.g. "$#,##0") \u2192 modelFormat.'),description:_.string().optional().describe("Column description from the model \u2192 modelDesc.")})).min(1),rows:_.array(_.union([_.array(_.any()),_.record(_.string(),_.any())])).min(1).describe("Rows as positional arrays aligned to columns, OR objects keyed by column name.")}).describe("A pre-typed {columns, rows} table (DAX query results, dataframe, arrow). Use INSTEAD of csv_path/csv_text."),tN={csv_path:_.string().optional().describe("Path to a CSV file (header row required)."),csv_text:_.string().optional().describe("Inline CSV text (alternative to csv_path)."),data:nse.optional().describe("A pre-typed {columns, rows} table \u2014 the shape a Fabric DAX query / dataframe already has. Alternative to csv_path/csv_text; when columns carry isMeasure/format/description the shape matches PBI fidelity with no guessing."),measures:_.array(_.string()).optional().describe("Columns to treat as MEASURES (the PBI 'Values' well \u2014 fields the chart aggregates). Numeric non-identifier columns are measures by default."),dimensions:_.array(_.string()).optional().describe("Columns to treat as DIMENSIONS (a PBI category/axis well \u2014 fields to group/break by). Use for numeric codes/years that should NOT be aggregated."),formats:_.record(_.string(),_.string()).optional().describe(`Per-column number/date FORMAT STRING (e.g. {"Revenue":"$#,##0","Margin":"0.0%"}). PBI supplies these from its model; a CSV can't, so provide them to steer number formatting.`),descriptions:_.record(_.string(),_.string()).optional().describe("Per-column human DESCRIPTION \u2014 gives the model semantic context the bare column name lacks."),group_by:_.array(_.string()).optional().describe("Columns that are the PRIMARY series/breakdown (the PBI 'Group by' well); the backend leads the visualization with these."),non_additive:_.array(_.string()).optional().describe("MEASURE columns that must NOT be summed (a ratio/average/rate \u2014 use mean, never stack). Usually auto-detected; this is an authoritative override."),privacy_level:_.enum(["0","10","20","30"]).optional().describe("How much detail to compute/share: 0 names only, 10 +counts, 20 +detailed stats (default), 30 +obfuscated sample rows."),culture:Mr(_.string().regex(/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*$/).max(35).refine(e=>A3(e)!==void 0,{error:e=>`'${String(e.input)}' is not a valid language tag; use a form such as 'de-DE', 'fr', 'ja-JP', 'es-419' or 'zh-Hant-TW'.`})).describe("The caller's language and region as a BCP 47 tag such as 'de-DE', 'fr' or 'ja-JP'. Default 'en-US'. It is the language the chart's own text is written in (titles, axis labels, legends, notes), and it breaks the tie when a CSV's numbers or dates are ambiguous: 12.500 as twelve thousand five hundred or twelve and a half, 05.03.2024 as 5 March or 3 May. Set it from the end user's locale when you know it; it does not translate the data.")};function go(e){return{measures:e.measures,dimensions:e.dimensions,formats:e.formats,descriptions:e.descriptions,groupBy:e.group_by,nonAdditive:e.non_additive,privacyLevel:e.privacy_level??"20",locale:e.culture||void 0}}function $s(e){if(e.data)return I0(e.data.columns,e.data.rows,go(e));if(e.csv_text)return y3(e.csv_text,go(e));if(e.csv_path)return y3(eN(Or(e.csv_path),"utf-8"),go(e));throw new Error("Provide one of: data ({columns, rows}), csv_text, or csv_path.")}q1.registerTool("assess_data_shape",{title:"Assess data shape",description:"Profile a dataset locally (no data leaves the machine): per-column types, cardinality, ranges, measure/dimension roles, temporal/ordinal detection, and cross-column signals (nesting, shared values, association). This is the same measurement engine the BIC Power BI visual uses before generating a chart.",inputSchema:tN,annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{let t=$s(e),a={totalRows:t.totalRows,leafCardinality:t.index.getLeafCardinality(),columns:t.shape},r=P1()?null:eE(process.env);return{content:[{type:"text",text:JSON.stringify(a,null,2)},...r?[{type:"text",text:r}]:[]]}});q1.registerTool("get_guide",{title:"Read the build guide",description:"How to build an app with these charts, from the guide this package ships. Local and free: no network, no credentials. topic 'fabric-app' (the default) is what a Microsoft Fabric App on the Rayfin data app template needs: what to pull, generating, wiring in React, the Fabric App section and the time-savers. 'all' is the whole guide, including Blazor. 'chart-shapes' lists every chart type with the columns, limits and renderers it needs. 'settings' lists the choices a person can make about a chart, with their options and defaults.",inputSchema:{topic:_.enum(q$).optional().describe("'fabric-app' (default), 'all', 'chart-shapes', or 'settings'.")},annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{try{return{content:[{type:"text",text:Z$(e.topic??"fabric-app")}]}}catch(t){return{isError:!0,content:[{type:"text",text:`The guide could not be read from this package (${t?.message??t}). It is also published as skills/bic-charts/SKILL.md inside @bicharts/chart-mcp on npm.`}]}}});q1.registerTool("list_eligible_charts",{title:"List eligible chart types",description:"The AUTHORITATIVE list of chart types (maps, tables a reader works with and app widgets included) that can render this dataset \u2014 the server's own eligibility engine, NOT a local guess. Profiles the data locally, then sends that profile to the backend. NO LLM in the loop, but this is a NETWORK call and it is METERED \u2014 see the licensing note below. By default the tool DETECTS the project's language (JS/TS vs Python from the working dir) and returns the charts for THAT language, SCOPED and ordered by how well each type fits this data (best first; `order: 'variety'` favors newer and less-common types instead), each tagged with its source language and renderer. Pass `language` ('javascript'|'python') to force it, or `renderer` ('D3'/'PLOTLY'/\u2026) to rank one specific renderer, or renderer '' for the full renderer-agnostic eligibility across ALL renderers (also ranked, by chart type alone, with no renderer/language tag). If the language can't be auto-detected and none is given, the tool asks you to specify one. Needs an account: eligibility IS the engine, so programmatic access to it is licensed. With nothing configured, the first call opens a browser sign-in, waits for it and then answers (a license key in the environment is the alternative for a machine with no browser). Free within a generous hourly allowance; beyond it each call draws usage credits. The reply carries a text block and a structured table: one row per chart type with its rank, name, preview flag, fit verdict, description, language and renderer. Rows flagged alsoWorthALook are a few picks from below the top fits, drawn so an offer can include something different; the fit order itself never changes.",inputSchema:{...tN,language:_.enum(["javascript","typescript","python",""]).optional().describe("Project source language \u2192 the server ranks across that language's renderers (javascript/typescript = D3, python = Plotly/matplotlib). Omit to AUTO-DETECT from the working dir; `renderer` (if given) overrides this."),project_dir:_.string().optional().describe("Directory to auto-detect the project language from (default: the folder setup_fabric_app used, else the working directory or the one project folder directly inside it)."),renderer:_.enum(["D3","PLOTLY","PYMATPLOT",""]).optional().describe("Force a specific renderer (overrides `language`): a concrete renderer ranks that renderer's charts; '' = the full renderer-agnostic eligibility (all renderers, ranked by chart type alone). Omit to use `language`/auto-detection."),level_of_detail:Mr(_.enum(["High","Medium","Low",""])).describe("The user's own preference for how much of the data to see, as they've stated it. 'High' = every observation as its own mark, 'Medium' = every row shown as a distribution, 'Low' = one mark per category. Ranks this list the same way a generation would. Unset when they haven't stated one; unset changes nothing."),chart_style:Mr(_.enum(["traditional","non_traditional",""])).describe("The user's own preference for which family of charts the list covers, as they've stated it. 'traditional' lists only the familiar forms (bar, stacked and grouped bar, line, area, pie, donut, card, gauge), 'non_traditional' lists only the other chart types; a type outside the chosen family is left out. Unset when they haven't stated one; unset changes nothing."),name_filter:_.string().optional().describe("Show only chart types matching this text (the same matcher the Power BI and Excel chart-type lists use). Three tiers, first non-empty one wins outright: the term starting a WORD in the name ('gan' -> Gantt chart, and NOT Organization chart), then mid-word in the name ('eth' -> Choropleth), then the description. A name match therefore SUPPRESSES description matches. Case- and accent-insensitive and, by default, space- and punctuation-insensitive too ('barchart' and 'bar-chart' find Bar chart; see name_filter_match). Minimum two characters, and it never reorders - the picker's ranking is preserved and the ranks stay as issued. Applied after ranking and before `top`."),name_filter_match:_.enum(["loose","exact"]).optional().describe("How name_filter matches a name. 'loose' (the default) ignores accents, case, spaces and punctuation, so 'barchart' finds Bar chart. 'exact' folds accents and case and collapses repeated spaces, and nothing else: a name typed without its space or hyphen matches nothing. The same setting the Power BI and Excel chart-type lists offer."),order:_.enum(["fit","variety"]).optional().describe("How the list is ordered. 'fit' (the default) = by how well each chart type fits THIS data, nothing else - use it to choose a chart for a question. 'variety' = the picker's selection order, which favors newer and less-common types on purpose - use it when the user wants to explore or be surprised. Both lists hold the same chart types; only the order differs."),top:_.number().optional().describe("Show only the top-N ranked results. Omit for all."),width:_.number().optional().describe("Viewport width px (default 800) \u2014 affects small-viewport / facet-budget gates."),height:_.number().optional().describe("Viewport height px (default 600).")},outputSchema:j$,annotations:{readOnlyHint:!0,openWorldHint:!0}},async e=>{let t=$s(e),a="",r="",n="",i="";if(e.renderer!==void 0)a=e.renderer;else if(e.language)r=e.language;else if(P1())r="javascript",n=" (language: javascript, this server's default - pass language or renderer for another)";else{let b=zl(zs(e.project_dir,no));b.language?(r=b.language,n=` (auto-detected language: ${b.language} \u2014 ${b.reason})`):i=`Couldn't tell the project's language (${b.reason}), so this is the list across all renderers; pass language: "javascript" or "python", or project_dir, to narrow it.
370
370
  `}let o=await Pb({shape:t.shape,totalRows:t.totalRows,leafCardinality:t.index.getLeafCardinality(),dataComplete:Xb(e,P1()),geoExtent:t.index.getGeoExtent(),width:e.width,height:e.height,renderer:a,language:r,levelOfDetail:e.level_of_detail||void 0,order:e.order??"fit",chartStyle:e.chart_style||void 0,mcpClient:BO()});if(!o.ok)return{isError:!0,content:[{type:"text",text:Tl(o)?o.errorMessage:`Could not list eligible charts: ${o.errorMessage}`}]};let s=o.charts.length>0&&o.charts[0].rank!==void 0,l=r?`${r}`:a||"all renderers",u=o.charts,c=u.length,d="all",h=b=>F$({rows:b,order:e.order??"fit",eligibleCount:c,filter:e.name_filter?{text:e.name_filter,tier:d}:null,metering:Pr}),p=cU(e.name_filter_match),m=ds(u,e.name_filter,Q0,p);u=m.rows,d=m.tier;let g;if(s){e.top&&e.top>0&&(u=u.slice(0,e.top));let b=(e.order??"fit")==="variety"?'ordered for variety (newer and less-common types first; order: "fit" ranks by fit to this data)':'ordered by fit to this data (order: "variety" favors newer and less-common types)';g=`Top ${u.length} chart type(s) for this data in ${l}, ${b} (authoritative \u2014 the server's eligibility engine; ${Pr})${n}:`}else g=`${u.length} chart type(s) can render this data \u2014 renderer-agnostic eligibility (authoritative \u2014 the server's eligibility engine; ${Pr}):`;if(g=i+g,m.tier!=="all"){let b=m.tier==="desc"?" (no NAME matched; these matched on description)":m.tier==="namePart"?" (matched mid-word in the name)":"";g=`Filtered to "${e.name_filter}"${b}: ${u.length} of ${c} eligible chart type(s). The other ${c-u.length} are eligible and simply do not match the filter.
371
371
  `+g}let f=L$(u);if(u.length===0&&m.tier!=="all"&&c>0){let b=ds(o.refused,e.name_filter,dU,p),v=b.tier==="name"||b.tier==="namePart"?b.rows.filter(w=>w.reason).slice(0,3):[],k=v.length>0?`
372
372