"),t.close()),t)return(n=t.createElement("base")).href=o,t.getElementsByTagName("head")[0].appendChild(n),(r=t.createElement("a")).href=a,r.href;throw Error("base not supported")}finally{e&&e.parentNode.removeChild(e)}}():a)||""),(e=new c(t.search?t.search.substring(1):null))._url_object=this,Object.defineProperties(this,{href:{get:function(){return t.href},set:function(e){t.href=e,n(),r()},enumerable:!0,configurable:!0},origin:{get:function(){return"data:"===this.protocol.toLowerCase()?null:"origin"in t?t.origin:this.protocol+"//"+this.host},enumerable:!0,configurable:!0},protocol:{get:function(){return t.protocol},set:function(e){t.protocol=e},enumerable:!0,configurable:!0},username:{get:function(){return t.username},set:function(e){t.username=e},enumerable:!0,configurable:!0},password:{get:function(){return t.password},set:function(e){t.password=e},enumerable:!0,configurable:!0},host:{get:function(){var e={"http:":/:80$/,"https:":/:443$/,"ftp:":/:21$/}[t.protocol];return e?t.host.replace(e,""):t.host},set:function(e){t.host=e},enumerable:!0,configurable:!0},hostname:{get:function(){return t.hostname},set:function(e){t.hostname=e},enumerable:!0,configurable:!0},port:{get:function(){return t.port},set:function(e){t.port=e},enumerable:!0,configurable:!0},pathname:{get:function(){return"/"!==t.pathname.charAt(0)?"/"+t.pathname:t.pathname},set:function(e){t.pathname=e},enumerable:!0,configurable:!0},search:{get:function(){return t.search},set:function(e){t.search!==e&&(t.search=e,n(),r())},enumerable:!0,configurable:!0},searchParams:{get:function(){return e},enumerable:!0,configurable:!0},hash:{get:function(){return t.hash},set:function(e){t.hash=e,n()},enumerable:!0,configurable:!0},toString:{value:function(){return t.toString()},enumerable:!1,configurable:!0},valueOf:{value:function(){return t.valueOf()},enumerable:!1,configurable:!0}}),this;throw new TypeError("Failed to construct 'URL': Please use the 'new' operator.");function n(){var e=t.href.replace(/#$|\?$|\?(?=#)/g,"");t.href!==e&&(t.href=e)}function r(){e._setList(t.search?l(t.search.substring(1)):[]),e._update_steps()}}if(Object.defineProperties(c.prototype,{append:{value:function(e,t){this._list.push({name:e,value:t}),this._update_steps()},writable:!0,enumerable:!0,configurable:!0},delete:{value:function(e){for(var t=0;ti[0]&&a[1]=n.length?void 0:n)&&n[e++],done:!n}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")},c=function(n,a){var t="function"==typeof Symbol&&n[Symbol.iterator];if(!t)return n;var e,r,u=t.call(n),i=[];try{for(;(void 0===a||0a[0]?1:0}function o(n,a){return n.typea.type?1:0}function L(n){var a=n;if(n.variants.length)for(var t="",e=0,r=n.variants;e\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/,p=(new RegExp("^"+p.source),new RegExp(p.source+"$"),a(y()));f=Error,(0,p.__extends)(A,f);function A(){var n=null!==f&&f.apply(this,arguments)||this;return n.type="MISSING_LOCALE_DATA",n}var v=a(i()),p=a(h()),C=new WeakMap;function D(n){var a=C.get(n);return a||(a=Object.create(null),C.set(n,a)),a}var M=p.supplemental.likelySubtags,i=["ca","co","hc","kf","kn","nu"],E=/^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/i;function N(n,a,t,e,r){return void 0===e&&(e=[]),r?{lang:n&&"und"!==n?n:r.lang,script:a||r.script,region:t||r.region,variants:(0,L.__spreadArray)((0,L.__spreadArray)([],e),r.variants)}:{lang:n||"und",script:a,region:t,variants:e}}function w(n){var n=(0,v.parseUnicodeLocaleId)(n),a=n.lang,t=a.lang,e=a.script,r=a.region,a=a.variants;if(e&&r){var u=M[(0,v.emitUnicodeLanguageId)({lang:t,script:e,region:r,variants:[]})];if(u)return u=(0,v.parseUnicodeLanguageId)(u),n.lang=N(void 0,void 0,void 0,a,u),(0,v.emitUnicodeLocaleId)(n)}if(e){var u=M[(0,v.emitUnicodeLanguageId)({lang:t,script:e,variants:[]})];if(u)return u=(0,v.parseUnicodeLanguageId)(u),n.lang=N(void 0,void 0,r,a,u),(0,v.emitUnicodeLocaleId)(n)}if(r){u=M[(0,v.emitUnicodeLanguageId)({lang:t,region:r,variants:[]})];if(u)return u=(0,v.parseUnicodeLanguageId)(u),n.lang=N(void 0,e,void 0,a,u),(0,v.emitUnicodeLocaleId)(n)}u=M[t]||M[(0,v.emitUnicodeLanguageId)({lang:"und",script:e,variants:[]})];if(u)return t=(0,v.parseUnicodeLanguageId)(u),n.lang=N(void 0,e,r,a,t),(0,v.emitUnicodeLocaleId)(n);throw new Error("No match for addLikelySubtags")}I.prototype.maximize=function(){var a=D(this).locale;try{return new I(w(a))}catch(n){return new I(a)}},I.prototype.minimize=function(){var a=D(this).locale;try{return new I(function n(a){if(t=w(a)){var t=(0,v.emitUnicodeLanguageId)((0,L.__assign)((0,L.__assign)({},(0,v.parseUnicodeLanguageId)(t)),{variants:[]})),e=(0,v.parseUnicodeLocaleId)(a),r=e.lang,u=r.lang,i=r.script,o=r.region,r=r.variants;if(w((0,v.emitUnicodeLanguageId)({lang:u,variants:[]}))===t)return(0,v.emitUnicodeLocaleId)((0,L.__assign)((0,L.__assign)({},e),{lang:N(u,void 0,void 0,r)}));if(o)if(w((0,v.emitUnicodeLanguageId)({lang:u,region:o,variants:[]}))===t)return(0,v.emitUnicodeLocaleId)((0,L.__assign)((0,L.__assign)({},e),{lang:N(u,void 0,o,r)}));if(i)if(w((0,v.emitUnicodeLanguageId)({lang:u,script:i,variants:[]}))===t)return(0,v.emitUnicodeLocaleId)((0,L.__assign)((0,L.__assign)({},e),{lang:N(u,i,void 0,r)}))}return a}(a))}catch(n){return new I(a)}},I.prototype.toString=function(){return D(this).locale},Object.defineProperty(I.prototype,"baseName",{get:function(){var n=D(this).locale;return(0,v.emitUnicodeLanguageId)((0,v.parseUnicodeLanguageId)(n))},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"calendar",{get:function(){return D(this).calendar},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"collation",{get:function(){return D(this).collation},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"hourCycle",{get:function(){return D(this).hourCycle},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"caseFirst",{get:function(){return D(this).caseFirst},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"numeric",{get:function(){return D(this).numeric},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"numberingSystem",{get:function(){return D(this).numberingSystem},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"language",{get:function(){var n=D(this).locale;return(0,v.parseUnicodeLanguageId)(n).lang},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"script",{get:function(){var n=D(this).locale;return(0,v.parseUnicodeLanguageId)(n).script},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"region",{get:function(){var n=D(this).locale;return(0,v.parseUnicodeLanguageId)(n).region},enumerable:!1,configurable:!0}),I.relevantExtensionKeys=i;p=I;function I(n,a){if(!(this&&this instanceof I?this.constructor:void 0))throw new TypeError("Intl.Locale must be called with 'new'");var t=I.relevantExtensionKeys,e=["initializedLocale","locale","calendar","collation","hourCycle","numberingSystem"];if(-1\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;new RegExp("^"+u.source),new RegExp(u.source+"$");function d(u,e,t,n,i){var r=function u(e,t,n,i,r){return D(e[t],n,i,r)}(e,"minimumIntegerDigits",1,21,1),o=e.minimumFractionDigits,a=e.maximumFractionDigits,l=e.minimumSignificantDigits,e=e.maximumSignificantDigits;u.minimumIntegerDigits=r,void 0!==l||void 0!==e?(u.roundingType="significantDigits",l=D(l,1,21,1),e=D(e,l,21,21),u.minimumSignificantDigits=l,u.maximumSignificantDigits=e):void 0!==o||void 0!==a?(u.roundingType="fractionDigits",o=D(o,0,20,t),a=D(a,o,20,Math.max(o,n)),u.minimumFractionDigits=o,u.maximumFractionDigits=a):"compact"===i?u.roundingType="compactRounding":(u.roundingType="fractionDigits",u.minimumFractionDigits=t,u.maximumFractionDigits=n)}function t(u,e,t,n){var i=n.availableLocales,r=n.relevantExtensionKeys,o=n.localeData,a=n.getDefaultLocale,n=n.getInternalSlots,e=c(e),l=Object.create(null),t=function u(e){return void 0===e?Object.create(null):f(e)}(t),n=n(u),D=(n.initializedPluralRules=!0,F(t,"localeMatcher","string",["best fit","lookup"],"best fit")),D=(l.localeMatcher=D,n.type=F(t,"type","string",["cardinal","ordinal"],"cardinal"),d(n,t,0,3,"standard"),g(i,e,l,r,o,a));return n.locale=D.locale,u}function e(u,e,t){var n=t.getInternalSlots,t=t.PluralRuleSelect,n=n(u);return p("Object"===r(n),"pl has to be an object"),p("initializedPluralRules"in n,"pluralrules must be initialized"),p("Number"===r(e),"n must be a number"),isFinite(e)?t(n.locale,n.type,e,function u(e){p("string"==typeof e,"GetOperands should have been called with a string");var t,n,i,r=l(e),o=(p(isFinite(r),"n should be finite"),e.indexOf(".")),a="",o=-1===o?(n=r,t=0):(n=e.slice(0,o),t=l(a=e.slice(o,e.length)),a.length),e=Math.abs(l(n));return a=0!==t?(i=(n=a.replace(/0+$/,"")).length,l(n)):i=0,{Number:r,IntegerDigits:e,NumberOfFractionDigits:o,NumberOfFractionDigitsWithoutTrailing:i,FractionDigits:t,FractionDigitsWithoutTrailing:a}}(o(n,e).formattedString)):"other"}function h(u,e){for(var t=[],n=0,i=e;na[a.length-1]?a[a.length-1].length-1:-1===(o=a.indexOf(c))||"0"===l[c=a[o]].other?0:c.length-l[c].other.match(/0+/)[0].length:0}}function c(n,t,e){var u,r,i,a,o,c=e;if(a=0===n?(u=m("0",c),r=0):(i=(a=n.toString()).indexOf("e"),o=(a=a.split("e"))[0],a=a[1],o=o.replace(".",""),0<=i&&o.length<=c?(r=+a,u=o+m("0",c-o.length),n):(r=f(n),i=Math.round(s(n,r-c+1)),10<=s(i,c-1)&&(r+=1,i=Math.floor(i/10)),u=i.toString(),s(i,c-1-r))),o=c-1<=r?(u+=m("0",r-c+1),r+1):0<=r?(u=u.slice(0,r+1)+"."+u.slice(r+1),r+1):(u="0."+m("0",-r-1)+u,1),0<=u.indexOf(".")&&t\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/,Vn=new RegExp("^"+L.source),Xn=new RegExp(L.source+"$"),Hn=/[#0](?:[\.,][#0]+)*/g;function zn(n,t,e,u){var r,i=n.sign,a=n.exponent,o=n.magnitude,c=u.notation,l=u.style,s=u.numberingSystem,f=t.numbers.nu[0],m=null;if("compact"===c&&o&&(m=function n(t,e,u,r,i,a,o){var c,l=t.roundedNumber,s=t.sign,t=t.magnitude,t=String(Math.pow(10,t)),f=u.numbers.nu[0];if("currency"===r&&"name"!==a){r=(m=u.numbers.currency)[o]||m[f],r=null==(a=r.short)?void 0:a[t];if(!r)return null;c=P(e,l,r)}else{var m,a=((m=u.numbers.decimal)[o]||m[f])[i][t];if(!a)return null;c=P(e,l,a)}return"0"!==c?c=j(c,s).replace(/([^\s;\-\+\d¤]+)/g,"{c:$1}").replace(/0+/,"0"):null}(n,e,t,l,u.compactDisplay,u.currencyDisplay,s)),"currency"===l&&"name"!==u.currencyDisplay){var D=t.currencies[u.currency];if(D)switch(u.currencyDisplay){case"code":r=u.currency;break;case"symbol":r=D.symbol;break;default:r=D.narrow}else r=u.currency}o=m||("decimal"===l||"unit"===l||"currency"===l&&"name"===u.currencyDisplay?j((t.numbers.decimal[s]||t.numbers.decimal[f]).standard,i):j("currency"===l?(p=t.numbers.currency[s]||t.numbers.currency[f])[u.currencySign]:t.numbers.percent[s]||t.numbers.percent[f],i));for(var g=Hn.exec(o)[0],p=(o=o.replace(Hn,"{0}").replace(/'(.)'/g,"$1"),(o="currency"===l&&"name"!==u.currencyDisplay&&((i=(p=t.numbers.currency[s]||t.numbers.currency[f]).currencySpacing.afterInsertBetween)&&!Xn.test(r)&&(o=o.replace("¤{0}","¤"+i+"{0}")),i=p.currencySpacing.beforeInsertBetween)&&!Vn.test(r)?o.replace("{0}¤","{0}"+i+"¤"):o).split(/({c:[^}]+}|\{0\}|[¤%\-\+])/g)),d=[],h=t.numbers.symbols[s]||t.numbers.symbols[f],y=0,F=p;yLoulé 2025 Holidays & City Breaks | Flight + Hotel | Expedia.ie
Save up to €185 when you book a flight and hotel together*
Find the right fit
With over 300,000 hotels worldwide, it's easy to create a perfect package
Rest easy
Plan, book, and manage your trip all in one place
Top Flight + Hotel Deals in Loulé
Price found within the past 48 hours. Click for updated prices.
Casa Felicidade
3 out of 5
Price was €386, price is now €250 per person
€250
per person
7 May - 14 May
found 20 hours ago
Return flight included
Dublin (DUB) to Faro (FAO)
7.8/10 Good! (6 reviews)
Absolutely lovely place to stay and the lady was very friendly and helpful would definitely stay there again
Reviewed on 16 Jun 2024
VidaMar Resort Hotel Algarve
5 out of 5
Save 100% on your flight
Price was €1,104, price is now €665 per person
€665
per person
7 May - 14 May
found 20 hours ago
Return flight included
Dublin (DUB) to Faro (FAO)
8.6/10 Excellent! (479 reviews)
Wonderful Accommodation!
Reviewed on 11 Dec 2024
Aqua Pedra dos Bicos Design Beach Hotel - Adults Friendly
4 out of 5
Save 100% on your flight
Price was €1,006, price is now €614 per person
€614
per person
7 May - 14 May
found 20 hours ago
Return flight included
Dublin (DUB) to Faro (FAO)
9.2/10 Wonderful! (1,002 reviews)
The hotel breakfast is very good. From the hotel to the old town centre is 30 minutes leisurely walking. I will definitely stay at this hotel again.
Reviewed on 7 Jan 2025
Hotel Maritur - Adults Only
4 out of 5
Save 100% on your flight
Price was €681, price is now €442 per person
€442
per person
7 May - 14 May
found 20 hours ago
Return flight included
Dublin (DUB) to Faro (FAO)
8.4/10 Very Good! (559 reviews)
The hotel itself needs a complete makeover, very dated, looks like it hasn’t been updated since the early 90’s, but is made up for the cleanliness, we stayed in a triple room which had amazing views from the balcony (one of the best) no tea or coffee facilities provided with paper cups and a kettle, main light not working in the room not enough sockets,breakfast was ok the selection basic, spa facilities was disappointing as mentioned needs updating, outside pool was good, lovely location small beach ten mins away with a nice restaurant/bar, marine not to far away cabs reliable and a good price to get around all in all if you’re looking for a luxury spa hotel then this is not for you, if you’re looking for basic with great location then you re good to go as it is very clean and the staff are friendly enough, this should be rated 3 with a good make over 4 or even a 5
Reviewed on 31 May 2024
Pure Monchique Hotel – Villa Termal Spa Resort by Unlock Hotels
4 out of 5
Save 100% on your flight
Price was €643, price is now €418 per person
€418
per person
7 May - 14 May
found 20 hours ago
Return flight included
Dublin (DUB) to Faro (FAO)
8/10 Very Good! (30 reviews)
The hotel was lovely, however the spa and outside areas all need a bit of a facelift.
Reviewed on 20 Apr 2024
Where to stay in Loulé
Find the best Loulé areas and neighborhoods for the activities you enjoy most. Learn more about Loulé
Vilamoura
1 out of top 10 points of interest in this area
The stunning beaches and fantastic nightlife are just a few highlights of Vilamoura. Make a stop by Falesia Beach or Vilamoura Marina while you're exploring the area.
The pristine beaches and ample dining options are top of the list for many visitors to Vale do Lobo. A stop by Vale do Lobo Beach or Garrao Beach might round out your trip.
Beaches, golf courses and restaurants are some highlights of Quinta do Lago. Make a stop by Quinta do Lago Golf or Quinta do Lago Beach while you're exploring.
Cavacos is a destination visitors seek out for its beaches, abundant dining options and seaside views. You might want to check out attractions like Quarteira Beach or Vilamoura Beach while you're exploring the neighbourhood.
The pristine beaches and ample dining options are top of the list for many visitors to Vale do Garrão. A stop by Garrao Beach or Quinta do Lago Beach might round out your trip.
Lowest nightly price found within the past 24 hours based on a 1 night stay for 2 adults. Prices and availability subject to change. Additional terms may apply.
Frequently asked questions
How much does a Loulé holiday package cost?
Offering great value package deals from €250 on Expedia, you’ll be pleasantly surprised at how much a holiday to Loulé costs! Expedia’s packages mean less travel planning for you and greater savings.
What are the cheapest months to go to Loulé?
You can generally find reduced prices and greater availability in January, February and November. Take a look at our cheap Loulé holiday packages and you could score some excellent off-season deals.
How many days is enough for Loulé?
We suggest planning a Loulé holiday for a minimum of 5 days. This will give you time to tick off top sights including Loule Castle and Algarve Stadium, and also explore neighbourhoods like São Sebastião and Falfosa. You might even be able to slot in a day trip (or two) beyond Loulé.
Is it worth booking a holiday package to Loulé?
Whether you’re looking to visit attractions like Loule Town Market and Loulé Municipal Market on your Loulé holiday, or coming for its great watersports, coastal beaches and golfing, there’s something for everyone here. With so much to do, you’ll soon learn why so many families think Loulé is a good holiday destination.
How to find the best Loulé package deals?
Use Expedia’s filter tool to help you find some of the best Loulé package deals. When you begin your search, simply set your maximum budget and then sort the results by “Price: low to high.” If you want to save, plan your trip for midweek, or search for Loulé package deals in the off-season. Play around with your travel dates and you may score even better discounts. As a rule of thumb, it’s typically best to lock in your holiday package as soon as possible.
Is it cheaper to book a Loulé holiday as a package?
You can enjoy significant savings on your next Loulé getaway by booking a tailored holiday package. Check the “Package” heading, then enter your destination and travel dates to see some great flight and hotel prices. Bundle everything into a neat package and you can save hundreds of dollars. Consider adding a rental car and you may score a better deal.
When to book a holiday package to Loulé?
If you’re planning an impromptu Loulé getaway, check out our last-minute deals that can be booked up to one week before you take off. Prefer not to wait until the last minute? You can find terrific deals on your flights and hotels by booking ahead.
How to plan a trip to Loulé?
Choose when to get away: Check your calendar and get packing. Your favourite time of year and the type of activities available will also help you decide when to visit Loulé.
Budget wisely: On top of the price of your stay, you should factor in other expenses too. These include food, flights and transportation. Also, set aside a little extra for unexpected expenses that may come up during your trip to Loulé.
Work out your trip length: Think about how long you want to spend exploring Loulé. Plan your itinerary so you can get to all the attractions and experiences you’re interested in at a leisurely pace.
Bundle your hotel and flights: Epic destination, check. Length of stay, check. Now all that’s left is to find a Loulé holiday package that brings all your bookings together.
Popular places to visit
Vilamoura Marina
4.5/5(504 reviews)
Take a boat trip to see dolphins and go parasailing with a tour operator near this marina, which is bordered by the town’s main strip of restaurants and nightclubs.