!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.overpassWizard=e()}}(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o.searchArea;");bounds_part="(area.searchArea)";break;case"around":if(options.comment)query_parts.push("// adjust the search radius (in meters) here");query_parts.push("{{radius="+options.aroundRadius+"}}");bounds_part="(around:{{radius}},{{geocodeCoords:"+parsedQuery.area+"}})";break;case"bbox":bounds_part=options.globalBbox?"":"({{bbox}})";break;case"global":bounds_part=undefined;break;default:console.error("unknown bounds condition: "+parsedQuery.bounds);return false;break}function get_query_clause(condition){function escRegexp(str){return str.replace(/([()[{*+.$^\\|?])/g,"\\$1")}function esc(str){if(typeof str!=="string")return;return str.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}var key=esc(condition.key);var val=esc(condition.val);if(condition.query==="substr"){condition.query="like";condition.val={regex:escRegexp(condition.val)}}if(val===""){if(condition.query==="eq"){condition.query="like";condition.val={regex:"^$"}}else if(condition.query==="neq"){condition.query="notlike";condition.val={regex:"^$"}}}if(key===""){if(condition.query==="key"){condition.query="likelike";key="^$";condition.val={regex:".*"}}else if(condition.query==="eq"){condition.query="likelike";key="^$";condition.val={regex:"^"+escRegexp(condition.val)+"$"}}else if(condition.query==="like"){condition.query="likelike";key="^$"}}switch(condition.query){case"key":return'["'+key+'"]';case"nokey":return'["'+key+'"!~".*"]';case"eq":return'["'+key+'"="'+val+'"]';case"neq":return'["'+key+'"!="'+val+'"]';case"like":return'["'+key+'"~"'+esc(condition.val.regex)+'"'+(condition.val.modifier==="i"?",i":"")+"]";case"likelike":return'[~"'+key+'"~"'+esc(condition.val.regex)+'"'+(condition.val.modifier==="i"?",i":"")+"]";case"notlike":return'["'+key+'"!~"'+esc(condition.val.regex)+'"'+(condition.val.modifier==="i"?",i":"")+"]";case"meta":switch(condition.meta){case"id":return"("+val+")";case"newer":if(condition.val.match(/^-?\d+ ?(seconds?|minutes?|hours?|days?|weeks?|months?|years?)?$/))return'(newer:"{{date:'+val+'}}")';return'(newer:"'+val+'")';case"user":return'(user:"'+val+'")';case"uid":return"(uid:"+val+")";default:console.error("unknown query type: meta/"+condition.meta);return false}case"free form":default:console.error("unknown query type: "+condition.query);return false}}function get_query_clause_str(condition){function quotes(s){if(s.match(/^[a-zA-Z0-9_]+$/)===null)return'"'+s.replace(/"/g,'\\"')+'"';return s}function quoteRegex(s){if(s.regex.match(/^[a-zA-Z0-9_]+$/)===null||s.modifier)return"/"+s.regex.replace(/\//g,"\\/")+"/"+(s.modifier||"");return s.regex}switch(condition.query){case"key":return quote_comment_str(quotes(condition.key)+"=*");case"nokey":return quote_comment_str(quotes(condition.key)+"!=*");case"eq":return quote_comment_str(quotes(condition.key)+"="+quotes(condition.val));case"neq":return quote_comment_str(quotes(condition.key)+"!="+quotes(condition.val));case"like":return quote_comment_str(quotes(condition.key)+"~"+quoteRegex(condition.val));case"likelike":return quote_comment_str("~"+quotes(condition.key)+"~"+quoteRegex(condition.val));case"notlike":return quote_comment_str(quotes(condition.key)+"!~"+quoteRegex(condition.val));case"substr":return quote_comment_str(quotes(condition.key)+":"+quotes(condition.val));case"meta":switch(condition.meta){case"id":return quote_comment_str("id:"+quotes(condition.val));case"newer":return quote_comment_str("newer:"+quotes(condition.val));case"user":return quote_comment_str("user:"+quotes(condition.val));case"uid":return quote_comment_str("uid:"+quotes(condition.val));default:return""}case"free form":return quote_comment_str(quotes(condition.free));default:return""}}parsedQuery.query=normalize(parsedQuery.query);if(options.comment)query_parts.push("// gather results");query_parts.push("(");for(var i=0;i;");query_parts.push("out skel qt;")}else if(options.outputMode==="recursive_meta"){query_parts.push("(._;>;);");query_parts.push("out meta;")}else{query_parts.push("out "+options.outputMode+";")}return query_parts.join("\n")}},{"./free":1,"./parser.js":3}],3:[function(_dereq_,module,exports){module.exports=function(){"use strict";function peg$subclass(child,parent){function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor}function peg$SyntaxError(message,expected,found,location){this.message=message;this.expected=expected;this.found=found;this.location=location;this.name="SyntaxError";if(typeof Error.captureStackTrace==="function"){Error.captureStackTrace(this,peg$SyntaxError)}}peg$subclass(peg$SyntaxError,Error);function peg$parse(input){var options=arguments.length>1?arguments[1]:{},parser=this,peg$FAILED={},peg$startRuleIndices={start:0},peg$startRuleIndex=0,peg$consts=[function(x){return x},"in bbox",{type:"literal",value:"in bbox",description:'"in bbox"'},"IN BBOX",{type:"literal",value:"IN BBOX",description:'"IN BBOX"'},function(x){return{bounds:"bbox",query:x}},"in",{type:"literal",value:"in",description:'"in"'},"IN",{type:"literal",value:"IN",description:'"IN"'},function(x,y){return{bounds:"area",query:x,area:y}},"around",{type:"literal",value:"around",description:'"around"'},"AROUND",{type:"literal",value:"AROUND",description:'"AROUND"'},function(x,y){return{bounds:"around",query:x,area:y}},"global",{type:"literal",value:"global",description:'"global"'},"GLOBAL",{type:"literal",value:"GLOBAL",description:'"GLOBAL"'},function(x){return{bounds:"global",query:x}},"or",{type:"literal",value:"or",description:'"or"'},"OR",{type:"literal",value:"OR",description:'"OR"'},"||",{type:"literal",value:"||",description:'"||"'},"|",{type:"literal",value:"|",description:'"|"'},function(x,y){return{logical:"or",queries:[x,y]}},"and",{type:"literal",value:"and",description:'"and"'},"AND",{type:"literal",value:"AND",description:'"AND"'},"&&",{type:"literal",value:"&&",description:'"&&"'},"&",{type:"literal",value:"&",description:'"&"'},function(x,y){return{logical:"and",queries:[x,y]}},"(",{type:"literal",value:"(",description:'"("'},")",{type:"literal",value:")",description:'")"'},function(x){return x},"=",{type:"literal",value:"=",description:'"="'},"==",{type:"literal",value:"==",description:'"=="'},function(x,y){return{query:"eq",key:x,val:y}},"!=",{type:"literal",value:"!=",description:'"!="'},"<>",{type:"literal",value:"<>",description:'"<>"'},function(x,y){return{query:"neq",key:x,val:y}},"*",{type:"literal",value:"*",description:'"*"'},function(x){return{query:"key",key:x}},"is",{type:"literal",value:"is",description:'"is"'},"not",{type:"literal",value:"not",description:'"not"'},"null",{type:"literal",value:"null",description:'"null"'},"IS",{type:"literal",value:"IS",description:'"IS"'},"NOT",{type:"literal",value:"NOT",description:'"NOT"'},"NULL",{type:"literal",value:"NULL",description:'"NULL"'},function(x){return{query:"nokey",key:x}},"~=",{type:"literal",value:"~=",description:'"~="'},"~",{type:"literal",value:"~",description:'"~"'},"=~",{type:"literal",value:"=~",description:'"=~"'},function(x,y){return{query:"like",key:x,val:y.regex?y:{regex:y}}},"like",{type:"literal",value:"like",description:'"like"'},"LIKE",{type:"literal",value:"LIKE",description:'"LIKE"'},function(x,y){return{query:"likelike",key:x,val:y.regex?y:{regex:y}}},"!~",{type:"literal",value:"!~",description:'"!~"'},function(x,y){return{query:"notlike",key:x,val:y.regex?y:{regex:y}}},":",{type:"literal",value:":",description:'":"'},function(x,y){return{query:"substr",key:x,val:y}},"type",{type:"literal",value:"type",description:'"type"'},function(x){return{query:"type",type:x}},"user",{type:"literal",value:"user",description:'"user"'},"uid",{type:"literal",value:"uid",description:'"uid"'},"newer",{type:"literal",value:"newer",description:'"newer"'},"id",{type:"literal",value:"id",description:'"id"'},function(x,y){return{query:"meta",meta:x,val:y}},function(x){return{query:"free form",free:x}},{type:"other",description:"Key"},/^[a-zA-Z0-9_:\-]/,{type:"class",value:"[a-zA-Z0-9_:-]",description:"[a-zA-Z0-9_:-]"},function(s){return s.join("")},'"',{type:"literal",value:'"',description:'"\\""'},"'",{type:"literal",value:"'",description:'"\'"'},function(parts){return parts[1]},{type:"other",description:"string"},/^[^'" ()~=!*\/:<>&|[\]{}#+@$%?\^.,]/,{type:"class",value:"[^'\" ()~=!*/:<>&|[\\]{}#+@$%?^.,]",description:"[^'\" ()~=!*/:<>&|[\\]{}#+@$%?^.,]"},function(chars){return chars.join("")},"\\",{type:"literal",value:"\\",description:'"\\\\"'},{type:"any",description:"any character"},function(char_){return char_},function(sequence){return sequence},/^['"\\bfnrtv]/,{type:"class",value:"['\"\\\\bfnrtv]",description:"['\"\\\\bfnrtv]"},function(char_){return char_.replace("b","\b").replace("f","\f").replace("n","\n").replace("r","\r").replace("t"," ").replace("v"," ")},"/",{type:"literal",value:"/",description:'"/"'},"i",{type:"literal",value:"i",description:'"i"'},"",function(parts){return{regex:parts[1],modifier:parts[3]}},"\\/",{type:"literal",value:"\\/",description:'"\\\\/"'},function(){return"/"},{type:"other",description:"whitespace"},/^[ \t\n\r]/,{type:"class",value:"[ \\t\\n\\r]",description:"[ \\t\\n\\r]"}],peg$bytecode=[peg$decode("%;;/:#;!/1$;;/($8#: #!!)(#'#(\"'#&'#"),peg$decode('%;"/Y#$;""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E/H$$;peg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[]}peg$maxFailExpected.push(expected)}function peg$buildException(message,expected,found,location){function cleanupExpected(expected){var i=1;expected.sort(function(a,b){if(a.descriptionb.description){return 1}else{return 0}});while(i1?expectedDescs.slice(0,-1).join(", ")+" or "+expectedDescs[expected.length-1]:expectedDescs[0];foundDesc=found?'"'+stringEscape(found)+'"':"end of input";return"Expected "+expectedDesc+" but "+foundDesc+" found."}if(expected!==null){cleanupExpected(expected)}return new peg$SyntaxError(message!==null?message:buildMessage(expected,found),expected,found,location)}function peg$decode(s){var bc=new Array(s.length),i;for(i=0;ipeg$currPos){end=ip+3+bc[ip+1];ip+=3}else{end=ip+3+bc[ip+1]+bc[ip+2];ip+=3+bc[ip+1]}break;case 18:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(input.substr(peg$currPos,peg$consts[bc[ip+1]].length)===peg$consts[bc[ip+1]]){end=ip+4+bc[ip+2];ip+=4}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2]}break;case 19:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(input.substr(peg$currPos,peg$consts[bc[ip+1]].length).toLowerCase()===peg$consts[bc[ip+1]]){end=ip+4+bc[ip+2];ip+=4}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2]}break;case 20:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(peg$consts[bc[ip+1]].test(input.charAt(peg$currPos))){end=ip+4+bc[ip+2];ip+=4}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2]}break;case 21:stack.push(input.substr(peg$currPos,bc[ip+1]));peg$currPos+=bc[ip+1];ip+=2;break;case 22:stack.push(peg$consts[bc[ip+1]]);peg$currPos+=peg$consts[bc[ip+1]].length;ip+=2;break;case 23:stack.push(peg$FAILED);if(peg$silentFails===0){peg$fail(peg$consts[bc[ip+1]])}ip+=2;break;case 24:peg$savedPos=stack[stack.length-1-bc[ip+1]];ip+=2;break;case 25:peg$savedPos=peg$currPos;ip++;break;case 26:params=bc.slice(ip+4,ip+4+bc[ip+3]);for(i=0;i0){end=ends.pop();ip=ips.pop()}else{break}}return stack[0]}peg$result=peg$parseRule(peg$startRuleIndex);if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result}else{if(peg$result!==peg$FAILED&&peg$currPos