PageSourceSearch

https://www.livabl.com/

html livabl.com collected 2026-10-02 03:26:21 UTC 385,650 bytes, 5,619 lines download raw bytes

1
2<!DOCTYPE html>
3<html lang="en">
4<head>
5
6
7    <link href="https://www.livabl.com/" rel="canonical" />
8    <meta charset="utf-8" />
9    <meta http-equiv="X-UA-Compatible" content="IE=edge">
9<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info = {"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"027e82486e","applicationID":"4053565","transactionName":"MlZRZkJVW0VXB0VQCgscfmRzG31ZWwFyVgsRQVxeXFFHGX8KVVwd","queueTime":0,"applicationTime":89,"agent":"","atts":""}</script>
9<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={xpid:"UgcBWFFbGwcAUVJXAQQ=",licenseKey:"027e82486e",applicationID:"4053565",browserID:"4053568"};;/*! For license information please see nr-loader-full-1.323.0.min.js.LICENSE.txt */
10(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.323.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
10e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
10const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>S,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
10if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,R(e,t)}function R(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function w(e,t,r,n,i){if(R(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(w(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(w(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function S(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let R=0,w=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(R=R>0?Math.min(R,e):e),t&&(w=w>0?Math.max(w,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return R>0?Math.min(e,R):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return w>0?Math.max(e,w):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
10o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
10(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
10;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",649:"nr-full-iframe-message-handler",89
101:"nr-full"}[e]+"-1.323.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.323.0.PROD:";r.l=(n,i,s,a)=>{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={891:"sha512-3jboCmrue7pvfLFAQ9FaZC6iM4mLMLaZF6lKolNEXSkSEV504XyvxAZYc2IA7anoBv2V+k1HPTEP1kEgaIYkeg==",222:"sha512-VSWDjY6WtlUmQRPiGWVhKHgN3DMcL8oP9fKdTus8nteEdkVzXz/VhtS6N3wJyto6jHNHRLawzAny60sfcHbBNQ==",95:"sha512-JfHJ5y7GJR1Z5RXbhGTJAaX+pDpLAzH+9IdJQc7Lc7hz3fR+zqyabKG7hPG4eQQ3dZhcuoJKdfj+OhPePveplQ==",649:"sha512-mN3SeCI8QgOG4PdhbG1UlLTWP/P9Ckx3bEoFST53PE7ctYb2Pwk/sVJpCoVwkXTlhP17BH8L/BkzHI4sD+yo6Q=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={85:0,959:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.323.0.PROD"]=self["webpackChunk:NRBA-1.323.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
10ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var R=r(9232);var w=r(7836),T=r(3241);const S={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var A=r(9908),x=r(9752);function _(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,S)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:R.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=w.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,A.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var O=r(1863),k=r(4261),L=r(1738);var M=r(1687),P=r(4234),N=r(5289),j=r(5270),I=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends P.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,M.Ak)(e,this.featureName),t()}))}):(0,M.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
10{if((0,I.V)(e.init))try{const{setupAgentSession:t}=await r.e(891).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,A.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(649).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(891).then(r.bind(r,6589)),r.e(891).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,M.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,M.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,N.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,j.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}_(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var K=r(6630);class U extends W{static featureName=K.T;constructor(e){var t;super(e,K.T),this.setupInspectionEvents(),t=e,(0,L.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,A.p)("api-"+k.Fw,[(0,O.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(891).then(r.bind(r,908)):r.e(891).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,N.sB)(t=>{e(t,"DOMContentLoaded")}),(0,N.GG)(t=>{e(t,"load")}),(0,N.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(U),_(this,e,e.loaderType||"agent"),t=this,(0,L.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,L.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,L.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,A.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,L.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,L.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,L.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,L.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,L.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,A.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,A.p)("docHidden",[(0,O.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,A.p)("winPagehide",[(0,O.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(891).then(r.bind(r,9018))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(891).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,O.t)()){"string"==typeof e&&(e=new Error(e)),(0,A.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,A.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,O.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,O.t)()){(0,A.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,O.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
10null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,A.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,O.t)()){(0,A.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,O.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,O.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,O.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const Re=["entry","scripts","all"],we=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Se={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Ae(e){(0,L.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Se.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=R.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:R.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||Re.includes(r.timingMethod)||(Se.invalidTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||R.f.BA,"parent.id":r.parent?.id})}
10),Object.entries(r.tags).forEach(([e,t])=>{we.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Se.disabled),u(r.id)&&u(r.name)||d(()=>Se.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Se.duplicateName(r),n===r.id&&t!==r.name&&Se.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Se.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,O.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
10imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,O.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,A.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class _e extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,L.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,L.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,L.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Ae(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,A.p)("ierr",[ee(t),(0,O.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,A.p)("err",[te(t),(0,O.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,A.p)("err",[re(t),(0,O.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(891).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var Oe=r(8990);let ke=1;function Le(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,Oe.I)(e,"nr@id",function(){return ke++})}function Me(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Pe=r(8139),Ne=r(3434),je=r(5732);const Ie={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||w.ee;const n=function(e){return(e||w.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(Ie[n.debugId]++)return n;Ie[n.debugId]=1,(0,Pe.u)(r,t);var i=(0,Ne.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,je.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ke=g.gm.Request,Ue=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||w.ee).get("fetch")}(e);if(!(Ke&&Ue&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,je.$5)(t);var o;r.emit(i+"before-start",[e],n),n[w.P]&&n[w.P].dt&&(o=n[w.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
10return Ve[r.debugId]=1,We.forEach(e=>{n(Ke[Fe],e,He),n(Ue[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s,a=(0,ye.ZF)(),o=(0,ye.el)(),c=Date.now();this.agentRef.runtime?.timeKeeper?.ready&&(s=Math.floor(this.agentRef.runtime.timeKeeper.correctAbsoluteTimestamp(c)));var d={spanId:a,traceId:o,timestamp:c,timestampCorrected:s};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,o),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,s??c,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,o,s??c,r,n,i)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,A.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=S,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){_(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Me(i);a&&(n.txSize=a)}this.startTime=(0,O.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
10!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Le(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Le(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,O.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,O.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,O.t)()-this.xhrCbStart,this.onload,t],t)}function R(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function w(e,t){this.params={},this.metrics={},this.startTime=(0,O.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Me(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,O.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Me(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function S(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):_(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Me(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function _(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Me(e.response):"text"===r||""===r||void 0===r?Me(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,A.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",R),r.on("fetch-start",w),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(891).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||w.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Ne.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,L.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,A.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,A.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,L.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,A.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
10if(!(0,I.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Pe.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,O.t)()}),this.eventsEE.on(pt,function(e,r){(0,A.p)("bst",[e[0],r,this.bstStart,(0,O.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,O.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,A.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,A.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(891).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,L.Y)(k.CH,function(){(0,A.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,L.Y)(k.Tb,function(){(0,A.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,j.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(891).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,A.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,j.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(891),r.e(222)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var Rt=r(981);const wt={},Tt=new Set;function St(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class At{constructor(e,t){this.timestamp=(0,O.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class xt extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,L.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,L.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Ae(e),function(e){(0,L.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(wt[r.debugId]++)return r;wt[r.debugId]=1,(0,V.G)(()=>{const e=(0,O.t)();Tt.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
10class n extends WebSocket{static name=Rt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new At(e[0],e[1]),this.targets=(0,je.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,O.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),Tt.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=St(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,O.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,Tt.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=St(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,A.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,A.p)("spv",[_t(e),(0,O.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,A.p)("spv",[_t(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,A.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
10h(e=>{const t=(0,C.s)(e=>{(0,A.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,A.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,A.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,A.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,A.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(891).then(r.bind(r,8019))):this.deregisterDrain()}}function _t(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Ot=r(2646);const kt=new Map;function Lt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||w.ee).get("logger")}(e),o=(0,Ne.YM)(a,void 0,s),c=new Ot.y(w.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Ne.Jt]||t[r];return kt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>kt.get(d),void 0,!0),a}var Mt=r(1910);class Pt extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,L.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,L.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Lt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Ae(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Mt.i)(g.gm.console[t]),Lt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(891).then(r.bind(r,5288)))}}new F({features:[U,G,vt,Et,nt,Y,_e,xt,Pt],loaderType:"pro"})})()})();</script>
10
11    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0">
12    <meta name="apple-mobile-web-app-capable" content="yes" />
13    <meta property="og:title" content="Livabl.com | New Construction Homes for Sale & New Home Builders">
14    <meta property="og:description" name="Description" content="Livabl is North America's largest new home construction and builder marketplace. Search over 20,000 new home, condo and townhome communities.">
15    <meta name="Author" content="Livabl">
16    <meta name="Email" content="[email protected]">
17    <meta name="referrer" content="origin-when-crossorigin" />
18
19    
20
21    <meta property="og:type" content="website" />
22
23    <meta property="og:site_name" content="Livabl" />
24
25
26    <meta property="og:image" content="https://d1hsh3wswahchu.cloudfront.net/siteimages/logos/livabl_logo_white.png">
27
28
29
30
31    <!--[if lt IE 8]><meta http-equiv="refresh" content="0; url=/unsupported" /><![endif]-->
32    <link rel="icon" href="https://livabl.s3.amazonaws.com/favicons/favicon.ico" />
33    <link rel="shortcut icon" href="https://livabl.s3.amazonaws.com/favicons/favicon.ico" />
34    <link rel="apple-touch-icon" sizes="180x180" href="https://livabl.s3.amazonaws.com/favicons/apple-touch-icon.png" />
35    <link rel="icon" type="image/png" sizes="32x32" href="https://livabl.s3.amazonaws.com/favicons/favicon-32x32.png" />
36    <link rel="icon" type="image/png" sizes="16x16" href="https://livabl.s3.amazonaws.com/favicons/favicon-16x16.png" />
37    <link rel="manifest" href="https://livabl.s3.amazonaws.com/favicons/site.webmanifest" />
38    <link rel="mask-icon" href="https://livabl.s3.amazonaws.com/favicons/safari-pinned-tab.svg" color="#000000" />
39    <link rel="shortcut icon" href="https://livabl.s3.amazonaws.com/favicons/favicon.ico" />
40    <meta name="msapplication-TileColor" content="#ffffff" />
41    <meta name="msapplication-config" content="https://livabl.s3.amazonaws.com/favicons/browserconfig.xml" />
42    <meta name="theme-color" content="#ffffff" />
43
44    <title>Livabl.com | New Construction Homes for Sale &amp; New Home Builders</title>
45    <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" />
46    <noscript><link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"></noscript>
47
48    <link rel="stylesheet" type="text/css" href="https://d1hsh3wswahchu.cloudfront.net/bundles/css/shared_55.0.0.css?r=D53CFC36DE41C119C6C1C61EF68A0ACE2A75BE68" />
49    
49<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/modernizrCustom_55.0.0.js?r=8812F9C2C9E84ADC8BB817780834CE118BDE5F00"></script>
49
50    
50<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/namespace_55.0.0.js?r=61C4B528BAED8E02793C680504B169AD7344782B"></script>
50
51    
51<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/moment_55.0.0.js?r=FDE7A0F6355E049CA6D968DE72EC8ADAEF451658"></script>
51
52    
52<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/utilfunc_55.0.0.js?r=E5FBE955535B6AECAF6CC76BA3CF8A012369D806"></script>
52
53    
54<!-- GTM -->
55<script>
56    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
57    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
58    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
59    'https://www.googletagmanager.com/gtm.js?id=' + i + dl + '';f.parentNode.insertBefore(j,f);
60    })(window,document,'script','dataLayer','GTM-NHXNK3K');
61</script>
61
62    
62<script src="/Scripts/Shared/waitForGoogleTag.js"></script>
62
63    
63<script>
64
65        var loadPreBid = function () {
66            let myScript = document.createElement("script");
67            myScript.setAttribute('async', 'async');
68            myScript.setAttribute('defer', 'defer');
69            myScript.setAttribute("src", "/Scripts/prebid6.3.0.js");
70            myScript.onload = InitPreBid;
71            document.body.appendChild(myScript);
72        }
73
74        var loadGPT = function () {
75            let myScript = document.createElement("script");
76            myScript.setAttribute('async', 'async');
77            myScript.setAttribute('defer', 'defer');
78            myScript.setAttribute("src", "https://securepubads.g.doubleclick.net/tag/js/gpt.js");
79            myScript.onload = loadPreBid;
80            document.body.appendChild(myScript);
81        }
82
83
84        var _onload = function () {
85            loadGPT();
86        }
87
88        if (window.addEventListener) {
89            window.addEventListener('load', _onload, false);
90        }
91        else { window.attachEvent('onload', _onload) }
92
93        function InitPreBid() {
94
95            var PREBID_TIMEOUT = 1250;
96            var FAILSAFE_TIMEOUT = 1750;
97
98            var adUnits = [{
99                code: 'BBH_DBA_Top_320x50_728x90_970x90_970x250_AllDevices',
100                mediaTypes: {
101                    banner: {
102                        sizeConfig: [{
103                            minViewPort: [0, 0],
104                            sizes: [[320, 50]]
105                        },
106                        {
107                            minViewPort: [767, 0],
108                            sizes: [[728, 90]]
109                        },
110                        {
111                            minViewPort: [1023, 0],
112                            sizes: [[728, 90], [970, 90]]
113                        }
114                        ]
115                    }
116                },
117                bids: [{
118                    bidder: 'ix',
119                    params: {
120                        siteId: '755407'
121                    },
122                    sizeConfig: [{
123                        minViewPort: [0, 0],
124                        relevantMediaTypes: ['none']
125                    },
126                    {
127                        minViewPort: [767, 0],
128                        relevantMediaTypes: ['banner']
129                    },
130                    {
131                        minViewPort: [1023, 0],
132                        relevantMediaTypes: ['banner']
133                    }
134                    ]
135                },
136                {
137                    bidder: 'ix',
138                    params: {
139                        'siteId': '755400'
140                    },
141                    sizeConfig: [{
142                        minViewPort: [0, 0],
143                        relevantMediaTypes: ['none']
144                    },
145                    {
146                        minViewPort: [767, 0],
147                        relevantMediaTypes: ['none']
148                    },
149                    {
150                        minViewPort: [1023, 0],
151                        relevantMediaTypes: ['banner']
152                    }
153                    ]
154                },
155                {
156                    bidder: 'rubicon',
157                    params: {
158                        accountId: 18596,
159                        siteId: 395882,
160                        zoneId: 2208726
161                    },
162                    sizeConfig: [{
163                        minViewPort: [0, 0],
164                        relevantMediaTypes: ['banner']
165                    },
166                    {
167                        minViewPort: [767, 0],
168                        relevantMediaTypes: ['banner']
169                    },
170                    {
171                        minViewPort: [1023, 0],
172                        relevantMediaTypes: ['banner']
173                    }
174                    ]
175                },
176
177                {
178                    bidder: 'sharethrough',
179                    params: {
180                        pkey: 'MRo3gU7RfDO3dKGjnVnPTfHa'
181                    },
182                    sizeConfig: [{
183                        minViewPort: [0, 0],
184                        relevantMediaTypes: ['banner']
185                    },
186                    {
187                        minViewPort: [767, 0],
188                        relevantMediaTypes: ['none']
189                    },
190                    {
191                        minViewPort: [1023, 0],
192                        relevantMediaTypes: ['none']
193                    }
194                    ]
195                }, {
196                    bidder: 'sharethrough',
197                    params: {
198                        pkey: 'WrLMYp6tGeDpgSQ0QqUN8qTw'
199                    },
200                    sizeConfig: [{
201                        minViewPort: [0, 0],
202                        relevantMediaTypes: ['none']
203                    },
204                    {
205                        minViewPort: [767, 0],
206                        relevantMediaTypes: ['banner']
207                    },
208                    {
209                        minViewPort: [1023, 0],
210                        relevantMediaTypes: ['none']
211                    }
212                    ]
213                }, {
214                    bidder: 'sharethrough',
215                    params: {
216                        pkey: 'qjyQLK5GU9czt2KTnLTQn2Sm'
217                    },
218                    sizeConfig: [{
219                        minViewPort: [0, 0],
220                        relevantMediaTypes: ['none']
221                    },
222                    {
223                        minViewPort: [767, 0],
224                        relevantMediaTypes: ['none']
225                    },
226                    {
227                        minViewPort: [1023, 0],
228                        relevantMediaTypes: ['banner']
229                    }
230                    ]
231                }, {
232                    bidder: 'sharethrough',
233                    params: {
234                        pkey: 'Cu1D3mRNGjqcccd7LftUANRA'
235                    },
236                    sizeConfig: [{
237                        minViewPort: [0, 0],
238                        relevantMediaTypes: ['none']
239                    },
240                    {
241                        minViewPort: [767, 0],
242                        relevantMediaTypes: ['none']
243                    },
244                    {
245                        minViewPort: [1023, 0],
246                        relevantMediaTypes: ['banner']
247                    }
248                    ]
249                }]
250
251            }
252            ]
253
254            var googletag = window.googletag || {};
255            googletag.cmd = googletag.cmd || [];
256
257            var pbjs = window.pbjs || {};
258            pbjs.que = pbjs.que || [];
259
260            pbjs.que.push(function () {
261                pbjs.addAdUnits(adUnits);
262                pbjs.setConfig({
263                    priceGranularity: "high",
264                    rubicon: { singleRequest: true }
265                });
266                pbjs.requestBids({
267                    bidsBackHandler: initAdserver,
268                    timeout: PREBID_TIMEOUT
269                });
270            });
271
272            function initAdserver() {
273                if (pbjs.initAdserverSet) return;
274                pbjs.initAdserverSet = true;
275                googletag.cmd.push(function () {
276                    pbjs.que.push(function () {
277                        pbjs.setTargetingForGPTAsync();
278                        googletag.pubads().refresh();
279                    });
280                });
281            }
282            // in case PBJS doesn't load
283            setTimeout(function () {
284                initAdserver();
285            }, FAILSAFE_TIMEOUT);
286        };
287    </script>
287
288
289    
290    <link rel="stylesheet" type="text/css" href="https://d1hsh3wswahchu.cloudfront.net/bundles/css/homepage_55.0.0.css?r=1467779E6530E8B93673B5B9CE3D53531E9DE7BC" />
291
292<!-- Begin comScore Tag -->
293<script>
294  var _comscore = _comscore || [];
295  _comscore.push({ c1: "2", c2: "18897611" });
296  (function() {
297    var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true;
298    s.src = (document.location.protocol == "https:" ? "https://sb" : "https://b") + ".scorecardresearch.com/beacon.js";
299    el.parentNode.insertBefore(s, el);
300  })();
301</script>
301
302<noscript>
303    <img src="https://b.scorecardresearch.com/p?c1=2&c2=18897611&cv=2.0&cj=1" />
304</noscript>
305<!-- End comScore Tag -->
306</head>
307<body>
308    
309<!-- GTM -->
vendor: 75 bytes, lines 309-311
309
310<noscript>
311    <iframe src="https://www.googletagmanager.com/ns.html?id=
311GTM-NHXNK3K
vendor: 103 bytes, lines 311-314
311"
312            height="0" width="0" style="display:none;visibility:hidden"></iframe>
313</noscript>
314    
314<!--[if IE 8]>
315        
316        
316<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
316
317        
318        <link href="//maxcdn.bootstrapcdn.com/respond-proxy.html" rel="respond-proxy" />
319        <link href="https://d1hsh3wswahchu.cloudfront.net/scripts/respond-proxy.html" rel="respond-proxy" />
320        <link href="/Scripts/ScriptsLib/IE8Support/respond.proxy.gif" id="respond-redirect" rel="respond-redirect" />
321        
321<script src="/Scripts/ScriptsLib/IE8Support/respond.proxy.js"></script>
321
322        
323        
323<script language="javascript" type="text/javascript" src="/Scripts/ScriptsLib/flot-graphapi/excanvas.min.js"></script>
323
324    <![endif]-->
325    
325<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js" type="text/javascript"></script>
325
326    <noscript style="color:red;position:fixed;top:112px;z-index:10000;background-color:white;">
327        It seems your browser does not support javascript! If you are experiencing issues browsing try switching to a browser that supports javascript.
328    </noscript>
329    <div class="container-fluid row-offcanvas">
330
331
332
333
334
335<script type="text/javascript">
336    Namespace("bbh.location", {
337        userLocation: {
338            Latitude: 41.8483,
339            Longitude: -87.6517,
340            City: 'Chicago',
341            State: 'Illinois',
342            Country: 'United States'
343        },
344    });
345</script>
345
346
347
348
349<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
349
350
351	<div class="container search-wrapper home-search">
352
353
354
355<div class="livabl-header-search search-input-container visible-sm-block visible-md-block visible-lg-block padding-search ">
356    <form class="navbar-form navbar-left " role="search" data-bbh-autocomplete="true" data-bbh-autocomplete-input-class="searchTermBox"
357          data-bbh-autocomplete-action="/bbhAjax/Search/MainSearchBar_AutoComplete" data-bbh-autocomplete-method="post" autocomplete="off" aria-label="Enter community, location or company">
358        <input Value="0" data-val="true" data-val-required="The SearchType field is required." name="SearchType" type="hidden" value="Default" />
359        <div class="col-md-12 col-lg-12 col-sm-12 col-xs-9 xs-fullsearch-box mr-10">
360
361            <input aria-label="Enter community, location or company" autocomplete="off" autofocus="autofocus" class="form-control searchTermBox" name="SearchTerm" type="text" value="" />
362            <button type="button" class="submit-search hidden-xs" aria-label="Search">
363                <span class="btn-label">
364                    <div class="search-button-font">
365                        Search
366                    </div>
367                    <div class="new-angle-arrow"></div>
368                </span>
369                <span class="submit-spinning-loader">
370                    
371        <svg class="spinning-loader" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="https://www.w3.org/2000/svg">
372            <g clip-path="url(#clip0_5762_23118)">
373                <path opacity="0.5" d="M6.26013 17.0391C5.65999 17.0391 5.15001 17.2491 4.72997 17.669C4.3101 18.0894 4.1 18.5993 4.1 19.1994C4.1 19.7996 4.30994 20.3095 4.72997 20.7298C5.15017 21.1498 5.66015 21.3598 6.26013 21.3598C6.85017 21.3598 7.35758 21.1498 7.78266 20.7298C8.20758 20.31 8.42005 19.7996 8.42005 19.1994C8.42005 18.5993 8.20764 18.0898 7.78266 17.669C7.35753 17.2494 6.85017 17.0391 6.26013 17.0391Z" fill="#1E1D21" />
374                <path opacity="0.6" d="M5.78045 12.4806C5.78045 11.8206 5.54555 11.2558 5.0755 10.7854C4.6055 10.3154 4.04041 10.0804 3.38043 10.0804C2.7204 10.0804 2.15542 10.3154 1.68536 10.7854C1.21542 11.2554 0.980469 11.8204 0.980469 12.4806C0.980469 13.1405 1.21536 13.7052 1.68536 14.1754C2.15542 14.6455 2.7204 14.8805 3.38043 14.8805C4.04041 14.8805 4.6055 14.6455 5.0755 14.1754C5.54555 13.7055 5.78045 13.1405 5.78045 12.4806Z" fill="#1E1D21" />
375                <path opacity="0.1" d="M19.7002 6.96114C20.0299 6.96114 20.3129 6.84346 20.5476 6.60856C20.7826 6.37346 20.9003 6.09086 20.9003 5.76092C20.9003 5.43083 20.7826 5.14844 20.5476 4.91349C20.3127 4.67839 20.0299 4.56091 19.7002 4.56091C19.3701 4.56091 19.0874 4.6786 18.8524 4.91349C18.6176 5.14849 18.5001 5.43083 18.5001 5.76092C18.5001 6.09102 18.6176 6.37346 18.8524 6.60856C19.0874 6.84367 19.3701 6.96114 19.7002 6.96114Z" fill="#1E1D21" />
376                <path opacity="0.7" d="M6.26193 3.11951C5.53182 3.11951 4.90935 3.37705 4.39433 3.89197C3.87925 4.40689 3.62187 5.0294 3.62187 5.75936C3.62187 6.48958 3.87925 7.11183 4.39433 7.62696C4.90951 8.14204 5.53198 8.39952 6.26193 8.39952C6.99189 8.39952 7.6144 8.14188 8.12932 7.62696C8.64424 7.11183 8.90178 6.48942 8.90178 5.75936C8.90178 5.0294 8.64424 4.40689 8.12932 3.89197C7.6144 3.37705 6.99189 3.11951 6.26193 3.11951Z" fill="#1E1D21" />
377                <path opacity="0.2" d="M23.6009 11.4589C23.321 11.1789 22.981 11.0391 22.5811 11.0391C22.1809 11.0391 21.8409 11.1789 21.561 11.4589C21.2813 11.739 21.1414 12.079 21.1414 12.4793C21.1414 12.8791 21.2813 13.2196 21.561 13.499C21.8411 13.7792 22.1809 13.919 22.5811 13.919C22.981 13.919 23.3212 13.7792 23.6009 13.499C23.881 13.2193 24.0207 12.8791 24.0207 12.4793C24.0207 12.0793 23.8812 11.7391 23.6009 11.4589Z" fill="#1E1D21" />
378                <path opacity="0.3" d="M19.6997 17.5195C19.2394 17.5195 18.8444 17.6844 18.5143 18.0145C18.1846 18.3442 18.0195 18.7394 18.0195 19.1997C18.0195 19.6596 18.1846 20.0548 18.5143 20.3849C18.8444 20.715 19.2394 20.8797 19.6997 20.8797C20.1596 20.8797 20.5546 20.7146 20.8847 20.3849C21.2147 20.0548 21.3797 19.6598 21.3797 19.1997C21.3797 18.7394 21.2147 18.3446 20.8847 18.0145C20.5546 17.6843 20.1596 17.5195 19.6997 17.5195Z" fill="#1E1D21" />
379                <path opacity="0.4" d="M12.9811 20.1586C12.4511 20.1586 11.9986 20.3464 11.6233 20.7215C11.2485 21.0966 11.0609 21.5489 11.0609 22.0789C11.0609 22.609 11.2483 23.0613 11.6233 23.4363C11.9986 23.8114 12.4509 23.9991 12.9811 23.9991C13.5112 23.9991 13.9635 23.8114 14.3386 23.4363C14.7136 23.0613 14.9012 22.609 14.9012 22.0789C14.9012 21.5489 14.7136 21.0966 14.3386 20.7215C13.9635 20.3464 13.5112 20.1586 12.9811 20.1586Z" fill="#1E1D21" />
380                <path d="M12.9802 0C12.1804 0 11.5001 0.279867 10.94 0.839864C10.3801 1.39991 10.1001 2.08006 10.1001 2.88C10.1001 3.67999 10.38 4.35982 10.94 4.91992C11.5001 5.47981 12.1802 5.75984 12.9802 5.75984C13.7805 5.75984 14.4603 5.47997 15.0202 4.91992C15.58 4.36008 15.86 3.67999 15.86 2.88C15.86 2.08012 15.58 1.40012 15.0202 0.839864C14.4603 0.280025 13.7805 0 12.9802 0Z" fill="#1E1D21" />
381            </g>
382            <defs>
383                <clipPath>
384                    <rect width="24" height="24" fill="white" transform="translate(0.5)" />
385                </clipPath>
386            </defs>
387        </svg>
388
389                </span>
390            </button>
391            <ul class="dropdown-menu search-categories hidden-xs " role="menu">
392                    <li>
393                        <div>
394                            <div class="header-icon search-all-icon"></div>
395                            All
396                        </div>
397                        <input type="hidden" name="categoryPlaceholder" value="City, Neighborhood, Community, etc" />
398                        <input type="hidden" name="categoryType" value="Default">
399                    </li>
400                    <li>
401                        <div>
402                            <div class="header-icon location-icon"></div>
403                            Locations
404                        </div>
405                        <input type="hidden" name="categoryPlaceholder" value="City, Neighborhood, or Address" />
406                        <input type="hidden" name="categoryType" value="Location">
407                    </li>
408                    <li>
409                        <div>
410                            <div class="header-icon community-icon"></div>
411                            Communities
412                        </div>
413                        <input type="hidden" name="categoryPlaceholder" value="Communities" />
414                        <input type="hidden" name="categoryType" value="Development">
415                    </li>
416                    <li>
417                        <div>
418                            <div class="header-icon company-icon"></div>
419                            Companies
420                        </div>
421                        <input type="hidden" name="categoryPlaceholder" value="Companies" />
422                        <input type="hidden" name="categoryType" value="Developer">
423                    </li>
424            </ul>
425        </div>
426
427        <div class="display-breakpoint ">
428                <div class="lbl-grey-bordered-btn cancel-search">
429                    <span>
430
431        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
432            <path fill-rule="evenodd" clip-rule="evenodd" d="M14.9491 3.70696C15.3397 3.31643 15.9728 3.31643 16.3633 3.70696C16.7539 4.09748 16.7539 4.73065 16.3633 5.12117L11.4142 10.0703L16.3646 15.0207C16.7551 15.4112 16.7551 16.0444 16.3646 16.4349C15.974 16.8254 15.3409 16.8254 14.9503 16.4349L9.99999 11.4845L5.04964 16.4349C4.65911 16.8254 4.02595 16.8254 3.63542 16.4349C3.2449 16.0444 3.2449 15.4112 3.63542 15.0207L8.58577 10.0703L3.63663 5.12117C3.24611 4.73065 3.24611 4.09748 3.63663 3.70696C4.02715 3.31643 4.66032 3.31643 5.05084 3.70696L9.99999 8.6561L14.9491 3.70696Z" fill="#1E1D21" />
433        </svg>
434</span>
435                </div>
436
437        </div>
438
439    </form>
440    <div id="autoCompleteList" class="container-parent">
441        <div class="category-container">
442            <div class="category-tabs">
443                <button class="category-tab-scroll left" id="leftCategoryTabArrow" style="display: none;">
444                    
445        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
446            <path d="M12 6L8 10L12 14" stroke-width="2" stroke-linecap="round" />
447        </svg>
448
449                </button>
450                <div id="allResults" class="category active allResult">All results</div>
451                <div id="communitiesResults" class="category">Communities</div>
452                <div id="locationResults" class="category">Locations</div>
453                <div id="articlesResults" class="category">Articles</div>
454                <div id="companiesResults" class="category">Companies</div>
455                <button class="category-tab-scroll right" id="rightCategoryTabArrow" style="display: none;">
456                    
457        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
458            <path d="M8 14L12 10L8 6" stroke-width="2" stroke-linecap="round" />
459        </svg>
460
461                </button>
462            </div>
463        </div>
464        <ul class="list-group search-autocomplete-list header-search-auto-complete ">
465            <li class="list-group-item current-location highlight visible-xs-block current-loc-src" style="display:none !important">
466                <div class="item-image">
467                    <div class="current-loc-gps">
468                    
469                    </div>
470                </div>
471                <div class="text-wrapper">
472                    <div class="item-name">Current Location</div>
473                    <div class="item-desc">Location</div>
474                </div>
475                <input type="hidden" class="autoListItemLink" />
476            </li>
477        </ul>
478        <div id="main-no-results" class="header-no-results-tablet-desktop" style="display:none">
479            <div class="icon-container">
480                
481        <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none">
482            <path d="M33.7897 20.3337V13.6582L19.5777 1.33374L5.8941 13.2398V31.6339C5.8941 32.7384 6.78953 33.6339 7.8941 33.6339H19.8419M1 17.4838L19.597 1.33374L38.1941 17.4838" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
483            <path d="M34.0004 34.3341L40.0004 40.3341M33.4837 20.1619C37.2545 23.9328 37.2545 30.0465 33.4837 33.8174C29.7128 37.5883 23.599 37.5883 19.8282 33.8174C16.0573 30.0465 16.0573 23.9328 19.8282 20.1619C23.599 16.391 29.7128 16.391 33.4837 20.1619Z" stroke="#1E1D21" stroke-width="2" stroke-linecap="square" />
484        </svg>
485
486            </div>
487            <div>
488                <h4>No results found for <span id="searchTermMain"></span>.</h4>
489            </div>
490        </div>
491    </div>
492
493</div>
494
495
496
497	</div>
498
499
500
501<div id="search-overlay" class="overlay-search">
502    <div class="search-bar">
503        <form class="navbar-form navbar-left" role="search" data-bbh-autocomplete="true" data-bbh-autocomplete-input-class="searchTermBox"
504              data-bbh-autocomplete-action="/bbhAjax/Search/MainSearchBar_AutoComplete" data-bbh-autocomplete-method="post" autocomplete="off" aria-label="Enter community, location or company">
505            <div class="search-bar-container">
506                <input autocomplete="off" class="form-control searchTermBox" name="SearchTerm" type="text" value="" placeholder="City, Neighborhood, Community, etc" data-gtm-form-interact-field-id="0">
507            </div>
508            <div id="close-search-overlay" class="lbl-grey-bordered-btn cancel-btn-non-community-page-search">
509                <span>
510
511        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
512            <path fill-rule="evenodd" clip-rule="evenodd" d="M6.7069 5.29269C6.31626 4.90228 5.6831 4.90246 5.29269 5.2931C4.90228 5.68374 4.90246 6.3169 5.2931 6.70731L8.58771 10L5.2931 13.2927C4.90246 13.6831 4.90228 14.3163 5.29269 14.7069C5.6831 15.0975 6.31626 15.0977 6.7069 14.7073L10.0023 11.4138L13.2978 14.7073C13.6884 15.0977 14.3216 15.0975 14.712 14.7069C15.1024 14.3163 15.1022 13.6831 14.7116 13.2927L11.417 10L14.7116 6.70731C15.1022 6.3169 15.1024 5.68374 14.712 5.2931C14.3216 4.90246 13.6884 4.90228 13.2978 5.29269L10.0023 8.5862L6.7069 5.29269Z" fill="#1E1D21" />
513        </svg>
514</span>
515            </div>
516        </form>
517        <div id="autoCompleteList" class="container-parent">
518            <div class="category-container">
519                <div class="category-tabs">
520                    <button class="category-tab-scroll left" id="leftCategoryTabArrow" style="display: none;">
521                        
522        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
523            <path d="M12 6L8 10L12 14" stroke-width="2" stroke-linecap="round" />
524        </svg>
525
526                    </button>
527                    <div id="allResults" class="category active allResult">All results</div>
528                    <div id="communitiesResults" class="category">Communities</div>
529                    <div id="locationResults" class="category">Locations</div>
530                    <div id="articlesResults" class="category">Articles</div>
531                    <div id="companiesResults" class="category">Companies</div>
532                    <button class="category-tab-scroll right" id="rightCategoryTabArrow" style="display: none;">
533                        
534        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
535            <path d="M8 14L12 10L8 6" stroke-width="2" stroke-linecap="round" />
536        </svg>
537
538                    </button>
539                </div>
540            </div>
541            <ul class="list-group search-autocomplete-list header-search-auto-complete">
542                <li class="list-group-item current-location highlight visible-xs-block current-loc-src" style="display:none !important">
543                    <div class="item-image">
544                        <div class="current-loc-gps">
545
546                        </div>
547                    </div>
548                    <div class="text-wrapper">
549                        <div class="item-name">Current Location</div>
550                        <div class="item-desc">Location</div>
551                    </div>
552                    <input type="hidden" class="autoListItemLink" />
553                </li>
554            </ul>
555        </div>
556    </div>
557    <div class="default-view">
558        <div class="body">
559            <div id="no-results" class="title">
560                <div class="icon-container">
561                    
562        <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none">
563            <path d="M33.7897 20.3337V13.6582L19.5777 1.33374L5.8941 13.2398V31.6339C5.8941 32.7384 6.78953 33.6339 7.8941 33.6339H19.8419M1 17.4838L19.597 1.33374L38.1941 17.4838" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
564            <path d="M34.0004 34.3341L40.0004 40.3341M33.4837 20.1619C37.2545 23.9328 37.2545 30.0465 33.4837 33.8174C29.7128 37.5883 23.599 37.5883 19.8282 33.8174C16.0573 30.0465 16.0573 23.9328 19.8282 20.1619C23.599 16.391 29.7128 16.391 33.4837 20.1619Z" stroke="#1E1D21" stroke-width="2" stroke-linecap="square" />
565        </svg>
566
567                </div>
568                <h4>No results found for <span id="searchTermNotFound"></span></h4>
569            </div>
570            <div id="search-default-view">
571                <div class="icon-container">
572                    
573        <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none">
574            <path d="M33.7897 20.3337V13.6582L19.5777 1.33374L5.8941 13.2398V31.6339C5.8941 32.7384 6.78953 33.6339 7.8941 33.6339H19.8419M1 17.4838L19.597 1.33374L38.1941 17.4838" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
575            <path d="M34.0004 34.3341L40.0004 40.3341M33.4837 20.1619C37.2545 23.9328 37.2545 30.0465 33.4837 33.8174C29.7128 37.5883 23.599 37.5883 19.8282 33.8174C16.0573 30.0465 16.0573 23.9328 19.8282 20.1619C23.599 16.391 29.7128 16.391 33.4837 20.1619Z" stroke="#1E1D21" stroke-width="2" stroke-linecap="square" />
576        </svg>
577
578                </div>
579                <div class="title">
580                    <h4>Begin your new home journey</h4>
581                </div>
582                <div class="info-text">
583                    <p>
584                        Search by location (cities, neighborhoods, counties, metros). Additionally, you can search for a community, master planned communities or companies by name.
585                    </p>
586                </div>
587                <div class="location-container">
588                    <button id="useMyLocation">Use current location <span>
589        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
590            <path d="M9.99951 7.24432C8.30434 7.24432 6.93133 8.61733 6.93133 10.3125C6.93133 12.0077 8.30434 13.3807 9.99951 13.3807C11.6947 13.3807 13.0677 12.0077 13.0677 10.3125C13.0677 8.61733 11.6947 7.24432 9.99951 7.24432ZM16.8569 9.54545C16.6832 7.98998 15.9857 6.53982 14.8789 5.43309C13.7722 4.32636 12.322 3.62886 10.7666 3.45511V1.875H9.23247V3.45511C7.67699 3.62886 6.22683 4.32636 5.1201 5.43309C4.01337 6.53982 3.31587 7.98998 3.14213 9.54545H1.56201V11.0795H3.14213C3.31587 12.635 4.01337 14.0852 5.1201 15.1919C6.22683 16.2986 7.67699 16.9961 9.23247 17.1699V18.75H10.7666V17.1699C12.322 16.9961 13.7722 16.2986 14.8789 15.1919C15.9857 14.0852 16.6832 12.635 16.8569 11.0795H18.437V9.54545H16.8569ZM9.99951 15.6818C7.03105 15.6818 4.63019 13.281 4.63019 10.3125C4.63019 7.34403 7.03105 4.94318 9.99951 4.94318C12.968 4.94318 15.3688 7.34403 15.3688 10.3125C15.3688 13.281 12.968 15.6818 9.99951 15.6818Z" fill="white" />
591        </svg>
592</span></button>
593                </div>
594            </div>
595        </div>
596    </div>
597</div>
598
599<header class="livabl-navbar navbar header" role="navigation">
600	<div class="header-container">
601		
602		<div class="livabl-logo-container navbar-header">
603			<a href="/" aria-label="view homepage">
604				<img class="logo" src="https://d1hsh3wswahchu.cloudfront.net/logos/header_logo.svg" alt="Livabl Logo" width="97" height="25" />
605			</a>
606			<div class="display-mobile header-search-container">
607					<button id="homeSearchButton" class="home-search-button no-display lbl-grey-bordered-btn" aria-label="Search">
608						<span class="header-icon search-icon-button"></span>
609					</button>
610			</div>
611			<div class="display-mobile header-burger-container">
612				<button type="button" class="header-burger lbl-grey-bordered-btn" data-toggle="offcanvas" data-target="#sidebar" aria-label="Main Menu">
613					<span class="header-burger-bar"></span>
614					<span class="header-burger-bar"></span>
615					<span class="header-burger-bar"></span>
616				</button>
617			</div>
618		</div>
619
620		<div class="display-desktop ">
621			<div class="">
622				<ul class="nav navbar-nav">
623					<li class="dropdown ">
624						<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-label="view new homes for sale">
625							<span>New Homes for Sale</span>
626							<span class="arrow-icon"></span>
627						</a>
628						<ul class="livabl-header-dropdown-menu dropdown-menu new-homes-header-links" role="menu">
629							<li>
630								<a href="/chicago-il/new-single-family-homes">
631									<span class="header-icon single-family-icon"></span>
632									<span>Single family homes</span>
633								</a>
634							</li>
635							<li>
636								<a href="/chicago-il/new-townhomes">
637									<span class="header-icon townhome-icon"></span>
638									<span>Townhomes</span>
639								</a>
640							</li>
641							<li>
642								<a href="/chicago-il/new-condos">
643									<span class="header-icon condo-icon"></span>
644									<span>Condos</span>
645								</a>
646							</li>
647							<li>
648								<a href="/chicago-il/new-quick-move-in-homes">
649									<span class="header-icon qmi-icon"></span>
650									<span>Quick move-in homes</span>
651								</a>
652							</li>
653						</ul>
654					</li>
655					<li class="dropdown ">
656						<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-label="views articles categories">
657							<span>Articles</span>
658							<span class="arrow-icon"></span>
659						</a>
660						<ul class="livabl-header-dropdown-menu dropdown-menu" role="menu">
661							<li>
662								<a href="/articles">
663									<span class="header-icon new-icon"></span>
664									<span>Latest</span>
665								</a>
666							</li>
667							<li>
668								<a href="/articles/guides">
669									<span class="header-icon guide-icon"></span>
670									<span>Guides</span>
671								</a>
672							</li>
673							<li>
674								<a href="/articles/design">
675									<span class="header-icon design-icon"></span>
676									<span>Design</span>
677								</a>
678							</li>
679							<li>
680								<a href="/articles/news">
681									<span class="header-icon news-icon"></span>
682									<span>News</span>
683								</a>
684							</li>
685						</ul>
686					</li>
687					<li class="dropdown ">
688						<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-label="view professional pages">
689							<span>Professionals</span>
690							<span class="arrow-icon"></span>
691						</a>
692						<ul class="livabl-header-dropdown-menu dropdown-menu" role="menu">
693							<li>
694								<a href="/professionals/advertising-for-new-construction-homebuilders">
695									<span class="header-icon advertize-icon"></span>
696									<span>Builder advertising</span>
697								</a>
698							</li>
699							<li>
700								<a href="/professionals/agent-referral-program-livabl-pro">
701									<span class="header-icon advertize-icon"></span>
702									<span>Agent advertising</span>
703								</a>
704							</li>
705							<li>
706								<a href="/professionals/add-your-new-construction-listing">
707									<span class="header-icon community-icon"></span>
708									<span>Add community</span>
709								</a>
710							</li>
711							<li>
712								<a href="/professionals/submit-a-feed">
713									<span class="header-icon feed-icon"></span>
714									<span>Submit feed</span>
715								</a>
716							</li>
717						</ul>
718					</li>
719					
720
721
722<li class="login-button login-links lbl-bordered-btn">
723    <a aria-label="log in to Livabl" data-ajax="true" data-ajax-begin="$(this).hide(); $(&#39;#login-loader&#39;).show();" data-ajax-complete="bbh.header.userPopupComplete(&#39;#loginPopupForm&#39;); $(this).show(); $(&#39;#login-loader&#39;).hide();" data-ajax-method="GET" data-ajax-mode="replace-with" data-ajax-update="#mdlUserAccountBody" href="/bbhA
723jax/UserAccount/LoginPopup?routeCountry=us" rel="nofollow">Log in</a>
724    <span id="login-loader" class="submit-spinning-loader">
725        
726        <svg class="spinning-loader" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="https://www.w3.org/2000/svg">
727            <g clip-path="url(#clip0_5762_23118)">
728                <path opacity="0.5" d="M6.26013 17.0391C5.65999 17.0391 5.15001 17.2491 4.72997 17.669C4.3101 18.0894 4.1 18.5993 4.1 19.1994C4.1 19.7996 4.30994 20.3095 4.72997 20.7298C5.15017 21.1498 5.66015 21.3598 6.26013 21.3598C6.85017 21.3598 7.35758 21.1498 7.78266 20.7298C8.20758 20.31 8.42005 19.7996 8.42005 19.1994C8.42005 18.5993 8.20764 18.0898 7.78266 17.669C7.35753 17.2494 6.85017 17.0391 6.26013 17.0391Z" fill="#1E1D21" />
729                <path opacity="0.6" d="M5.78045 12.4806C5.78045 11.8206 5.54555 11.2558 5.0755 10.7854C4.6055 10.3154 4.04041 10.0804 3.38043 10.0804C2.7204 10.0804 2.15542 10.3154 1.68536 10.7854C1.21542 11.2554 0.980469 11.8204 0.980469 12.4806C0.980469 13.1405 1.21536 13.7052 1.68536 14.1754C2.15542 14.6455 2.7204 14.8805 3.38043 14.8805C4.04041 14.8805 4.6055 14.6455 5.0755 14.1754C5.54555 13.7055 5.78045 13.1405 5.78045 12.4806Z" fill="#1E1D21" />
730                <path opacity="0.1" d="M19.7002 6.96114C20.0299 6.96114 20.3129 6.84346 20.5476 6.60856C20.7826 6.37346 20.9003 6.09086 20.9003 5.76092C20.9003 5.43083 20.7826 5.14844 20.5476 4.91349C20.3127 4.67839 20.0299 4.56091 19.7002 4.56091C19.3701 4.56091 19.0874 4.6786 18.8524 4.91349C18.6176 5.14849 18.5001 5.43083 18.5001 5.76092C18.5001 6.09102 18.6176 6.37346 18.8524 6.60856C19.0874 6.84367 19.3701 6.96114 19.7002 6.96114Z" fill="#1E1D21" />
731                <path opacity="0.7" d="M6.26193 3.11951C5.53182 3.11951 4.90935 3.37705 4.39433 3.89197C3.87925 4.40689 3.62187 5.0294 3.62187 5.75936C3.62187 6.48958 3.87925 7.11183 4.39433 7.62696C4.90951 8.14204 5.53198 8.39952 6.26193 8.39952C6.99189 8.39952 7.6144 8.14188 8.12932 7.62696C8.64424 7.11183 8.90178 6.48942 8.90178 5.75936C8.90178 5.0294 8.64424 4.40689 8.12932 3.89197C7.6144 3.37705 6.99189 3.11951 6.26193 3.11951Z" fill="#1E1D21" />
732                <path opacity="0.2" d="M23.6009 11.4589C23.321 11.1789 22.981 11.0391 22.5811 11.0391C22.1809 11.0391 21.8409 11.1789 21.561 11.4589C21.2813 11.739 21.1414 12.079 21.1414 12.4793C21.1414 12.8791 21.2813 13.2196 21.561 13.499C21.8411 13.7792 22.1809 13.919 22.5811 13.919C22.981 13.919 23.3212 13.7792 23.6009 13.499C23.881 13.2193 24.0207 12.8791 24.0207 12.4793C24.0207 12.0793 23.8812 11.7391 23.6009 11.4589Z" fill="#1E1D21" />
733                <path opacity="0.3" d="M19.6997 17.5195C19.2394 17.5195 18.8444 17.6844 18.5143 18.0145C18.1846 18.3442 18.0195 18.7394 18.0195 19.1997C18.0195 19.6596 18.1846 20.0548 18.5143 20.3849C18.8444 20.715 19.2394 20.8797 19.6997 20.8797C20.1596 20.8797 20.5546 20.7146 20.8847 20.3849C21.2147 20.0548 21.3797 19.6598 21.3797 19.1997C21.3797 18.7394 21.2147 18.3446 20.8847 18.0145C20.5546 17.6843 20.1596 17.5195 19.6997 17.5195Z" fill="#1E1D21" />
734                <path opacity="0.4" d="M12.9811 20.1586C12.4511 20.1586 11.9986 20.3464 11.6233 20.7215C11.2485 21.0966 11.0609 21.5489 11.0609 22.0789C11.0609 22.609 11.2483 23.0613 11.6233 23.4363C11.9986 23.8114 12.4509 23.9991 12.9811 23.9991C13.5112 23.9991 13.9635 23.8114 14.3386 23.4363C14.7136 23.0613 14.9012 22.609 14.9012 22.0789C14.9012 21.5489 14.7136 21.0966 14.3386 20.7215C13.9635 20.3464 13.5112 20.1586 12.9811 20.1586Z" fill="#1E1D21" />
735                <path d="M12.9802 0C12.1804 0 11.5001 0.279867 10.94 0.839864C10.3801 1.39991 10.1001 2.08006 10.1001 2.88C10.1001 3.67999 10.38 4.35982 10.94 4.91992C11.5001 5.47981 12.1802 5.75984 12.9802 5.75984C13.7805 5.75984 14.4603 5.47997 15.0202 4.91992C15.58 4.36008 15.86 3.67999 15.86 2.88C15.86 2.08012 15.58 1.40012 15.0202 0.839864C14.4603 0.280025 13.7805 0 12.9802 0Z" fill="#1E1D21" />
736            </g>
737            <defs>
738                <clipPath>
739                    <rect width="24" height="24" fill="white" transform="translate(0.5)" />
740                </clipPath>
741            </defs>
742        </svg>
743
744    </span>
745</li>
746<li class="signup-button login-links livabl-primary-btn">
747    <a aria-label="create Livabl account" data-ajax="true" data-ajax-begin="$(this).hide(); $(&#39;#sign-up-loader&#39;).show();" data-ajax-complete="bbh.header.userPopupComplete(&#39;#signUpPopupForm&#39;); $(this).show(); $(&#39;#sign-up-loader&#39;).hide();" data-ajax-method="GET" data-ajax-mode="replace-with" data-ajax-update="#mdlUserAccountBody" href="/bbhA
747jax/UserAccount/SignUpPopup?routeCountry=us" rel="nofollow">Sign up</a>
748    <span id="sign-up-loader" class="submit-spinning-loader">
749        
750        <svg class="spinning-loader" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="https://www.w3.org/2000/svg">
751            <g clip-path="url(#clip0_5762_23118)">
752                <path opacity="0.5" d="M6.26013 17.0391C5.65999 17.0391 5.15001 17.2491 4.72997 17.669C4.3101 18.0894 4.1 18.5993 4.1 19.1994C4.1 19.7996 4.30994 20.3095 4.72997 20.7298C5.15017 21.1498 5.66015 21.3598 6.26013 21.3598C6.85017 21.3598 7.35758 21.1498 7.78266 20.7298C8.20758 20.31 8.42005 19.7996 8.42005 19.1994C8.42005 18.5993 8.20764 18.0898 7.78266 17.669C7.35753 17.2494 6.85017 17.0391 6.26013 17.0391Z" fill="#1E1D21" />
753                <path opacity="0.6" d="M5.78045 12.4806C5.78045 11.8206 5.54555 11.2558 5.0755 10.7854C4.6055 10.3154 4.04041 10.0804 3.38043 10.0804C2.7204 10.0804 2.15542 10.3154 1.68536 10.7854C1.21542 11.2554 0.980469 11.8204 0.980469 12.4806C0.980469 13.1405 1.21536 13.7052 1.68536 14.1754C2.15542 14.6455 2.7204 14.8805 3.38043 14.8805C4.04041 14.8805 4.6055 14.6455 5.0755 14.1754C5.54555 13.7055 5.78045 13.1405 5.78045 12.4806Z" fill="#1E1D21" />
754                <path opacity="0.1" d="M19.7002 6.96114C20.0299 6.96114 20.3129 6.84346 20.5476 6.60856C20.7826 6.37346 20.9003 6.09086 20.9003 5.76092C20.9003 5.43083 20.7826 5.14844 20.5476 4.91349C20.3127 4.67839 20.0299 4.56091 19.7002 4.56091C19.3701 4.56091 19.0874 4.6786 18.8524 4.91349C18.6176 5.14849 18.5001 5.43083 18.5001 5.76092C18.5001 6.09102 18.6176 6.37346 18.8524 6.60856C19.0874 6.84367 19.3701 6.96114 19.7002 6.96114Z" fill="#1E1D21" />
755                <path opacity="0.7" d="M6.26193 3.11951C5.53182 3.11951 4.90935 3.37705 4.39433 3.89197C3.87925 4.40689 3.62187 5.0294 3.62187 5.75936C3.62187 6.48958 3.87925 7.11183 4.39433 7.62696C4.90951 8.14204 5.53198 8.39952 6.26193 8.39952C6.99189 8.39952 7.6144 8.14188 8.12932 7.62696C8.64424 7.11183 8.90178 6.48942 8.90178 5.75936C8.90178 5.0294 8.64424 4.40689 8.12932 3.89197C7.6144 3.37705 6.99189 3.11951 6.26193 3.11951Z" fill="#1E1D21" />
756                <path opacity="0.2" d="M23.6009 11.4589C23.321 11.1789 22.981 11.0391 22.5811 11.0391C22.1809 11.0391 21.8409 11.1789 21.561 11.4589C21.2813 11.739 21.1414 12.079 21.1414 12.4793C21.1414 12.8791 21.2813 13.2196 21.561 13.499C21.8411 13.7792 22.1809 13.919 22.5811 13.919C22.981 13.919 23.3212 13.7792 23.6009 13.499C23.881 13.2193 24.0207 12.8791 24.0207 12.4793C24.0207 12.0793 23.8812 11.7391 23.6009 11.4589Z" fill="#1E1D21" />
757                <path opacity="0.3" d="M19.6997 17.5195C19.2394 17.5195 18.8444 17.6844 18.5143 18.0145C18.1846 18.3442 18.0195 18.7394 18.0195 19.1997C18.0195 19.6596 18.1846 20.0548 18.5143 20.3849C18.8444 20.715 19.2394 20.8797 19.6997 20.8797C20.1596 20.8797 20.5546 20.7146 20.8847 20.3849C21.2147 20.0548 21.3797 19.6598 21.3797 19.1997C21.3797 18.7394 21.2147 18.3446 20.8847 18.0145C20.5546 17.6843 20.1596 17.5195 19.6997 17.5195Z" fill="#1E1D21" />
758                <path opacity="0.4" d="M12.9811 20.1586C12.4511 20.1586 11.9986 20.3464 11.6233 20.7215C11.2485 21.0966 11.0609 21.5489 11.0609 22.0789C11.0609 22.609 11.2483 23.0613 11.6233 23.4363C11.9986 23.8114 12.4509 23.9991 12.9811 23.9991C13.5112 23.9991 13.9635 23.8114 14.3386 23.4363C14.7136 23.0613 14.9012 22.609 14.9012 22.0789C14.9012 21.5489 14.7136 21.0966 14.3386 20.7215C13.9635 20.3464 13.5112 20.1586 12.9811 20.1586Z" fill="#1E1D21" />
759                <path d="M12.9802 0C12.1804 0 11.5001 0.279867 10.94 0.839864C10.3801 1.39991 10.1001 2.08006 10.1001 2.88C10.1001 3.67999 10.38 4.35982 10.94 4.91992C11.5001 5.47981 12.1802 5.75984 12.9802 5.75984C13.7805 5.75984 14.4603 5.47997 15.0202 4.91992C15.58 4.36008 15.86 3.67999 15.86 2.88C15.86 2.08012 15.58 1.40012 15.0202 0.839864C14.4603 0.280025 13.7805 0 12.9802 0Z" fill="#1E1D21" />
760            </g>
761            <defs>
762                <clipPath>
763                    <rect width="24" height="24" fill="white" transform="translate(0.5)" />
764                </clipPath>
765            </defs>
766        </svg>
767
768    </span>
769</li>
770
771    
771<script>
772
773       var action = '';
774
775        $(document).ready(function () {
776
777            if (window.location.href.indexOf('la=l') > 0) {
778                action = '/bbhAjax/UserAccount/LoginPopup';
779                window.history.replaceState({ turbolinks: {} }, window.title, window.location.href.split('?')[0]);
780            }
781            else if (window.location.href.indexOf('la=s') > 0) {
782                action = '/bbhAjax/UserAccount/SignUpPopup';
783                window.history.replaceState({ turbolinks: {} }, window.title, window.location.href.split('?')[0]);
784            }
785
786                
787                if (action) {
788
789                    $.ajax({
790                        type: 'GET',
791                        url: action,
792                        data: ({ returnUrl: window.location.href, routeCountry: 'us' })
793
794                    }).done(function (returnData) {
795
796
797                        var container = $('#mdlUserAccountBody');
798                        container.html(returnData);
799                        bbh.header.userPopupComplete('#loginPopupForm');
800                    });
801                }
802
803                
804        });
805
806    </script>
806
807
808				</ul>
809
810			</div>
811		</div>
812	</div>
813</header>
814
815<div class="display-mobile">
816	<div class="newhomes-for-sale-offcanvas navbar-collapse" id="newhomesForSaleSidebarOff" role="navigation" tabindex="41">
817		<ul class="nav navbar-nav remove-margin no-float new-homes-header-links">
818			<li class=" back">
819				<a data-toggle="newhomesForSaleSidebar" data-target="newhomesForSaleSidebarOff" class="backlink">
820					<span class="header-icon left-arrow-icon  back-arrow"></span>
821					<span>Back</span>
822				</a>
823			</li>
824			<li>
825				<div class="divider"></div>
826			</li>
827			<li class="icon-tab">
828				<a href="/chicago-il/new-single-family-homes" class="nav-a width100">
829					<span class="header-icon single-family-icon"></span>
830					<span>Single family homes</span>
831				</a>
832			</li>
833			<li class="icon-tab">
834				<a href="/chicago-il/new-townhomes" class="nav-a width100">
835					<span class="header-icon townhome-icon"></span>
836					<span>Townhomes</span>
837				</a>
838			</li>
839			<li class="icon-tab">
840				<a href="/chicago-il/new-condos" class="nav-a width100">
841					<span class="header-icon condo-icon"></span>
842					<span>Condos</span>
843				</a>
844			</li>
845			<li class="icon-tab">
846				<a href="/chicago-il/new-quick-move-in-homes" class="nav-a width100">
847					<span class="header-icon qmi-icon"></span>
848					<span>Quick move-in homes</span>
849				</a>
850			</li>
851		</ul>
852		<div class="overlay-transparent" data-toggle="newhomesForSaleSidebar" data-target="newhomesForSaleSidebarOff"></div>
853	</div>
854</div>
855
856
857<div class="display-mobile">
858	<div class="articlebar-offcanvas navbar-collapse" id="articlesSidebarOff" role="navigation" tabindex="41">
859		<ul class="nav navbar-nav remove-margin no-float">
860			<li class=" back">
861				<a data-toggle="articlesSidebar" data-target="articlesSidebarOff" class="backlink">
862					<span class="header-icon left-arrow-icon  back-arrow"></span>
863					<span>Back</span>
864				</a>
865			</li>
866			<li>
867				<div class="divider"></div>
868			</li>
869			<li class="icon-tab">
870				<a href="/articles" class="nav-a width100">
871					<span class="header-icon new-icon"></span>
872					<span>Latest</span>
873				</a>
874			</li>
875			<li class="icon-tab">
876				<a href="/articles/guides" class="nav-a width100">
877					<span class="header-icon guide-icon"></span>
878					<span>Guides</span>
879				</a>
880			</li>
881			<li class="icon-tab">
882				<a href="/articles/design" class="nav-a width100">
883					<span class="header-icon design-icon"></span>
884					<span>Design</span>
885				</a>
886			</li>
887			<li class="icon-tab">
888				<a href="/articles/news" class="nav-a width100">
889					<span class="header-icon news-icon"></span>
890					<span>News</span>
891				</a>
892			</li>
893		</ul>
894		<div class="overlay-transparent" data-toggle="articlesSidebar" data-target="articlesSidebarOff"></div>
895	</div>
896</div>
897
898
899<div class="display-mobile">
900	<div class="professionalbar-offcanvas navbar-collapse" id="professionalSidebarOff" role="navigation" tabindex="41">
901		<ul class="nav navbar-nav remove-margin no-float">
902			<li class=" back">
903				<a data-toggle="professionalSidebar" data-target="professionalSidebarOff" class="backlink">
904					<span class="header-icon left-arrow-icon  back-arrow"></span>
905					<span>Back</span>
906				</a>
907			</li>
908			<li>
909				<div class="divider"></div>
910			</li>
911			<li class="icon-tab">
912				<a href="/professionals/agent-referral-program-livabl-pro" class="nav-a width100">
913					<span class="header-icon advertize-icon"></span>
914					<span>Agent advertising</span>
915				</a>
916			</li>
917			<li class="icon-tab">
918				<a href="/professionals/advertising-for-new-construction-homebuilders" class="nav-a width100">
919					<span class="header-icon advertize-icon"></span>
920					<span>Builder advertising</span>
921				</a>
922			</li>
923			<li class="icon-tab">
924				<a href="/professionals/add-your-new-construction-listing" class="nav-a width100">
925					<span class="header-icon community-icon"></span>
926					<span>Add community</span>
927				</a>
928			</li>
929			<li class="icon-tab">
930				<a href="/professionals/submit-a-feed" class="nav-a width100">
931					<span class="header-icon feed-icon"></span>
932					<span>Submit feed</span>
933				</a>
934			</li>
935		</ul>
936		<div class="overlay-transparent" data-toggle="professionalSidebar" data-target="professionalSidebarOff"></div>
937	</div>
938</div>
939
940
941<div class="display-mobile">
942	<div class="sidebar-offcanvas navbar-collapse" id="sidebar" role="navigation" tabindex="40">
943		<div class="ul-flex">
944			<ul class="nav navbar-nav remove-margin no-float">
945				<li class="main-menu-sidenav">
946					<span>MAIN MENU</span>
947				</li>
948				<li class="icon-tab active">
949					<a linktype="location" class="nav-a width100" href="/">
950						<span class="header-icon">
951        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
952            <path d="M8.39024 14.9024V13.2927C8.39024 12.6865 8.88164 12.1951 9.4878 12.1951H10.3659C10.972 12.1951 11.4634 12.6865 11.4634 13.2927V14.9024C11.4634 15.5086 11.9548 16 12.561 16H14.9024C15.5086 16 16 15.5086 16 14.9024V8.06938C16 7.81422 15.8671 7.57749 15.6492 7.44465L10 4L4.35078 7.44465C4.13292 7.57749 4 7.81422 4 8.06938V14.9024C4 15.5086 4.49139 16 5.09756 16H7.29268C7.89885 16 8.39024 15.5086 8.39024 14.9024Z" fill="#1E1D21" />
953        </svg>
954</span>
955						<span class="nav-list-word">Home</span>
956					</a>
957				</li>
958				<li class="icon-tab">
959					<a data-toggle="newhomesForSaleSidebar" data-target="newhomesForSaleSidebarOff" class="nav-a width100" aria-label="view new homes for sale">
960						<span class="header-icon city-icon"></span>
961						<span class="nav-list-word">New Homes for Sale</span>
962						<span class="header-icon right-arrow-icon arrow-layout"></span>
963					</a>
964				</li>
965				<li class="icon-tab">
966					<a data-toggle="articlesSidebar" data-target="articlesSidebarOff" class="nav-a width100" aria-label="views articles categories">
967						<span class="header-icon article-icon"></span>
968						<span class="nav-list-word">Articles</span>
969						<span class="header-icon right-arrow-icon arrow-layout"></span>
970					</a>
971				</li>
972				<li class="icon-tab">
973					<a data-toggle="professionalSidebar" data-target="professionalSidebarOff" class="nav-a width100" aria-label="view professional pages">
974						<span class="header-icon company-icon"></span>
975						<span class="nav-list-word">Professionals</span>
976						<span class="header-icon right-arrow-icon arrow-layout"></span>
977					</a>
978				</li>
979
980
981
982
983    <li class="main-menu-sidenav border-top mt-10">
984        <span>YOUR ACCOUNT</span>
985    </li>
986    <li class="icon-tab a-no-padding" style="padding-top:10px">
987        <span class="header-icon sign-in-icon "></span>
988        <a aria-label="log in to Livabl" data-ajax="true" data-ajax-complete="bbh.header.userPopupComplete(&#39;#loginPopupForm&#39;);" data-ajax-method="GET" data-ajax-mode="replace-with" data-ajax-update="#mdlUserAccountBody" href="/bbhAjax/UserAccount/LoginPopup?routeCountry=us" rel="nofollow">Log in</a>
989    </li>
990    <li class="icon-tab a-no-padding">
991        <span class="header-icon sign-up-icon  "></span>
992        <a aria-label="create Livabl account" data-ajax="true" data-ajax-complete="bbh.header.userPopupComplete(&#39;#signUpPopupForm&#39;);" data-ajax-method="GET" data-ajax-mode="replace-with" data-ajax-update="#mdlUserAccountBody" href="/bbhAjax/UserAccount/SignUpPopup?routeCountry=us" rel="nofollow">Sign up</a>
993    </li>
994
995    
995<script>
996
997        var action = '';
998
999        $(document).ready(function () {
1000
1001            if (window.location.href.indexOf('la=l') > 0) {
1002                action = '/bbhAjax/UserAccount/LoginPopup';
1003                window.history.replaceState({ turbolinks: {} }, window.title, window.location.href.split('?')[0]);
1004            }
1005            else if (window.location.href.indexOf('la=s') > 0) {
1006                action = '/bbhAjax/UserAccount/SignUpPopup';
1007                window.history.replaceState({ turbolinks: {} }, window.title, window.location.href.split('?')[0]);
1008            }
1009
1010                
1011                if (action) {
1012
1013                    $.ajax({
1014                        type: 'GET',
1015                        url: action,
1016                        data: ({ returnUrl: window.location.href, routeCountry: 'us' })
1017
1018                    }).done(function (returnData) {
1019
1020
1021                        var container = $('#mdlUserAccountBody');
1022                        container.html(returnData);
1023                        bbh.header.userPopupComplete('#loginPopupForm');
1024                    });
1025                }
1026
1027                
1028        });
1029
1030    </script>
1030
1031
1032			</ul>
1033			<div class="overlay-transparent" data-toggle="offcanvas" data-target="#sidebar"></div>
1034		</div>
1035	</div>
1036</div>
1037
1038
1039<!-- ko stopBinding: true  -->
1040<div class="modal fade user-account-modal center-saved-search-modal" id="mdlSavedSearchesMain" tabindex="-1">
1041    <div class="modal-dialog">
1042        <div class="modal-content" style="font-size: 14px; line-height: 1.43;">
1043            <div class="modal-header">
1044                <div class="close-button-container">
1045                    <button id="searchSavedCloseID" type="button" data-dismiss="modal"></button>
1046                </div>
1047
1048                <div>
1049                    <p class="search-main-title">Saved searches</p>
1050                </div>
1051            </div>
1052            <div id="mdlSavedSearchesBody">
1053                <div id="mySearchesPopupContainer" class="modal-body my-searches scroller">
1054                    <div id="results" data-bind="visible: searchData().length > 0">
1055
1056                        <div style="overflow-y:auto;">
1057                            <div data-bind="foreach: search">
1058
1059                                <div class="saved-search-box">
1060                                    <div style="padding: 20px;">
1061                                        <div class="content-title" data-bind="text:Name"></div>
1062                                        <div class="content-text" data-bind="html:FilterText"></div>
1063                                        <div class="content-links">
1064                                            <div class="remove-btn button-text" data-bind="click: DeleteSearch">
1065                                                Remove
1066                                            </div>
1067                                            <div class="view-search-btn button-text" data-bind="click: CloseSearchsPopUp">
1068                                                View search
1069                                            </div>
1070                                        </div>
1071                                    </div>
1072                                </div>
1073
1074                            </div>
1075                        </div>
1076
1077                    </div>
1078                    <div id="noresults" data-bind="visible: searchData().length === 0">
1079
1080                        <div class="noresults-text">
1081                            You currently do not have any saved searches. You can add a saved search by pressing the ‘save search’ button on the <a data-bind="click: MapLinkCLick" linktype="location" href="/chicago-il/new-homes">map page</a>.
1082                        </div>
1083                        &nbsp;
1084                        <div class="noresults-text">
1085                            Once you’ve saved a search, we'll notify you whenever there are new or updated communities matching your search criteria.
1086                        </div>
1087                    </div>
1088                </div>
1089            </div>
1090            <div class="my-search-footer" data-bind="visible: searchData().length === 0">
1091                <button class="ok-button" type="button" data-dismiss="modal">Ok</button>
1092            </div>
1093        </div>
1094    </div>
1095</div>
1096<!-- /ko -->
1097<div class="modal fade user-account-modal" id="mdlUserAccount" tabindex="-1">
1098	<div class="modal-dialog">
1099		<div class="modal-content">
1100			<div id="mdlUserAccountBody">
1101			</div>
1102		</div>
1103	</div>
1104</div>
1105
1106
1107        
1108        
1109
1110
1111
1112
1113
1114<div class="home">
1115
1116<div id="hero-carousel" class="carousel slide" data-ride="carousel" data-interval="10000">
1117    <!-- Wrapper for slides -->
1118    <div class="carousel-inner hidden-xs" role="listbox" aria-label="Hero Carousel">
1119<div class="item active">
1120                    <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/639226443277825069_whispering_hills_model_interiors_-_cholla_036_final_high_res_fzwikshero.webp" loading="lazy">
1121                        <a id="communityLink" class="text-wrapper" href="/phoenix-az/atlas-collection-at-whispering-hills" data-bind="click: $root.trackReservedSpot" data-development-id="ef6b4332-76c0-438b-8131-5503de18c5dd">
1122                                <div class="hero-development-name-background">Atlas Collection at Whispering Hills</div>
1123                                <div class="hero-location-text-background">Phoenix</div>
1124                        </a>
1125                </div>
1126<div class="item">
1127                    <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/638385043627986872_bellavistahero.webp" loading="lazy">
1128                        <a id="communityLink" class="text-wrapper" href="/los-angeles-ca/bella-vista-at-porter-ranch--ridge-collection" data-bind="click: $root.trackReservedSpot" data-development-id="96946cf2-4c0e-4ce7-9142-66b6bb8a4d39">
1129                                <div class="hero-development-name-background">Bella Vista at Porter Ranch - Ridge Collection</div>
1130                                <div class="hero-location-text-background">Los Angeles</div>
1131                        </a>
1132                </div>
1133<div class="item">
1134                    <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/639226445430365778_southeasthero.webp" loading="lazy">
1135                        <a id="communityLink" class="text-wrapper" href="/austin-tx/traditional-homes-at-easton-park" data-bind="click: $root.trackReservedSpot" data-development-id="99b98acd-d312-49fd-bb8b-035ca07102a1">
1136                                <div class="hero-development-name-background">Traditional Homes at Easton Park</div>
1137                                <div class="hero-location-text-background">Austin</div>
1138                        </a>
1139                </div>
1140<div class="item">
1141                    <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/639226435361021973_atlanta-windance-lake-fairfield-1430-windance-kitchen-001.webp" loading="lazy">
1142                        <a id="communityLink" class="text-wrapper" href="/loganville-ga/windance-lake" data-bind="click: $root.trackReservedSpot" data-development-id="14124166-7893-4557-aa8e-72d76d872603">
1143                                <div class="hero-development-name-background">Windance Lake</div>
1144                                <div class="hero-location-text-background">Loganville</div>
1145                        </a>
1146                </div>
1147<div class="item">
1148                    <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/638475719770855015_emblem_ororidge.webp" loading="lazy">
1149                        <a id="communityLink" class="text-wrapper" href="/queen-creek-az/emblem-at-oro-ridge" data-bind="click: $root.trackReservedSpot" data-development-id="a3d7af6f-3ac0-417f-be91-527d6226344b">
1150                                <div class="hero-development-name-background">Emblem at Oro Ridge</div>
1151                                <div class="hero-location-text-background">Queen Creek</div>
1152                        </a>
1153                </div>
1154
1155    </div>
1156    <div class="carousel-xs visible-xs">
1157        <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/639226443277825069_whispering_hills_model_interiors_-_cholla_036_final_high_res_fzwikshero.webp" loading="lazy">
1158    </div>
1159
1160    <!-- Controls -->
1161        <a class="left carousel-control hidden-xs carousel-left" href="#hero-carousel" role="button" data-slide="prev" aria-label="Slide carousel left">
1162            <span class="arrow left arrow-background">
1163                
1164        <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="https://www.w3.org/2000/svg">
1165            <path d="M18 9L12 15L18 21" stroke="white" stroke-width="2" stroke-linecap="round" />
1166        </svg>
1167
1168            </span>
1169        </a>
1170        <a class="right carousel-control hidden-xs carousel-right" href="#hero-carousel" role="button" data-slide="next" aria-label="Slide carousel right">
1171            <span class="arrow right arrow-background ">
1172                
1173        <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="https://www.w3.org/2000/svg">
1174            <path d="M12 21L18 15L12 9" stroke="white" stroke-width="2" stroke-linecap="round" />
1175        </svg>
1176
1177            </span>
1178        </a>
1179</div>
1180
1181    <div class="hero-content hero-content-tint">
1182        <div class="title-wrapper">
1183            <div class="main-title main-title-text">
1184                <h2 style="padding:0;margin:0;font-weight:inherit;line-height: inherit;font-size:inherit">Building new home dreams<span>TM</span></h2>
1185                <h3 class="hero-title" style="margin: 0">Find your new construction home</h3>
1186            </div>
1187        </div>
1188        <a id="btnNearBy" class="nearby-button btn visible-xs" href="#">
1189            <div>
1190                <span class="current-loc-icon">
1191                    
1192        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1193            <path d="M9.99951 7.24432C8.30434 7.24432 6.93133 8.61733 6.93133 10.3125C6.93133 12.0077 8.30434 13.3807 9.99951 13.3807C11.6947 13.3807 13.0677 12.0077 13.0677 10.3125C13.0677 8.61733 11.6947 7.24432 9.99951 7.24432ZM16.8569 9.54545C16.6832 7.98998 15.9857 6.53982 14.8789 5.43309C13.7722 4.32636 12.322 3.62886 10.7666 3.45511V1.875H9.23247V3.45511C7.67699 3.62886 6.22683 4.32636 5.1201 5.43309C4.01337 6.53982 3.31587 7.98998 3.14213 9.54545H1.56201V11.0795H3.14213C3.31587 12.635 4.01337 14.0852 5.1201 15.1919C6.22683 16.2986 7.67699 16.9961 9.23247 17.1699V18.75H10.7666V17.1699C12.322 16.9961 13.7722 16.2986 14.8789 15.1919C15.9857 14.0852 16.6832 12.635 16.8569 11.0795H18.437V9.54545H16.8569ZM9.99951 15.6818C7.03105 15.6818 4.63019 13.281 4.63019 10.3125C4.63019 7.34403 7.03105 4.94318 9.99951 4.94318C12.968 4.94318 15.3688 7.34403 15.3688 10.3125C15.3688 13.281 12.968 15.6818 9.99951 15.6818Z" fill="white" />
1194        </svg>
1195
1196                </span>
1197                <span class="nearby-text">Nearby</span>
1198            </div>
1199        </a>
1200    </div>
1201
1202    <div class="hidden filters-group" id="filters-group">
1203        <button id="filter_buy" type="button" name="searchFilter" class="filter-btn btn-terminal-first" value="For Sale" data-vanityfilter="/new-homes">Buy</button>
1204        <!--
1205        -->
1206        <button id="filter_rent" type="button" name="searchFilter" class="filter-btn" value="For Rent" data-vanityfilter="/new-apartments">Rent</button>
1207        <!--
1208        -->
1209        <button id="filter_sold" type="button" name="searchFilter" class="filter-btn" value="Sold" data-vanityfilter="/sold">Sold</button>
1210        <!--
1211        -->
1212        <button id="filter_leased" type="button" name="searchFilter" class="filter-btn btn-terminal-last" value="Leased" data-vanityfilter="/leased">Leased</button>
1213    </div>
1214
1215    
1216
1217    <div class="featured-communities-section">
1218        <div class="container home">
1219            <div class="development-slider-block">
1220                <div class="container">
1221                    <div class="community-header-container">
1222                        <div class="title-container">
1223                            <img src="https://livabl.s3.amazonaws.com/icons/home-listing.svg" alt="home listing" />
1224                            <h2>Communities</h2>
1225                            <img src="https://livabl.s3.amazonaws.com/icons/line-9.svg" alt="line work" class="linework" />
1226                        </div>
1227                        <div>
1228                            <a class="view-all-link" linktype="location" href=/chicago-il/new-homes>VIEW ALL</a>
1229                        </div>
1230                    </div>
1231                    
1232<div id="td" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3">
1233    <div class="heading-container">
1234        <div>
1235            <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3>
1236        </div>
1237        <div class="arrows-container">
1238            <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left">
1239        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1240            <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" />
1241        </svg>
1242</button>
1243            <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right">
1244        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1245            <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 
124517.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" />
1246        </svg>
1247</button>
1248        </div>
1249    </div>
1250    <div class="itemArea">
1251        <div class="items" data-bind="foreach:data">
1252<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;">
1253    <div class="card" data-bind="attr:{dataId:id}">
1254        <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}">
1255            <div class="development-image-con">
1256                <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" />
1257                <div class="no-img-icon">
1258                    
1259        <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg">
1260            <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1261            <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1262            <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" />
1263        </svg>
1264
1265                </div>
1266                <div class="status">
1267                    <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span>
1268                </div>
1269                <div class="pre-launch-prices-container">
1270                    <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span>
1271                </div>
1272            </div>
1273        </div>
1274        <div class="development-details-slider">
1275            <div class="development-details-frame">
1276                <span class="devname" data-bind="text:name"></span>
1277                <span class="devprice" data-bind="html:$root.priceText($data)"></span>
1278                <span class="nh-city" data-bind="text:$root.loc($data)"></span>
1279            </div>
1280        </div>
1281    </div>
1282</a>        </div>
1283    </div>
1284</div>
1285
1286
1287
1288
1289
1290
1291                </div>
1292            </div>
1293        </div>
1294    </div>
1295
1296    <div class="livabl-container">
1297        <div class="container livabl-banner">
1298    <img title="Livabl brand signage." class="livabl-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/livabl_brand_signage.png"/>
1299    <div class="livabl-content">
1300        <h1>
1301            Livabl has the largest, most accurate catalog of new construction homes, backed by industry-leading technology and trusted expertise.
1302        </h1>
1303        <img title="Livabl Logo" src="https://d1hsh3wswahchu.cloudfront.net/logos/header_logo.svg"/>
1304    </div>
1305</div>
1306
1307
1308    </div>
1309
1310    <div class="communities-section">
1311        <div class="container home">
1312            <div class="development-slider-block">
1313				<div class="container">
1314					
1315<div id="fd" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3">
1316    <div class="heading-container">
1317        <div>
1318            <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3>
1319        </div>
1320        <div class="arrows-container">
1321            <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left">
1322        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1323            <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" />
1324        </svg>
1325</button>
1326            <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right">
1327        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1328            <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" />
1329        </svg>
1330</button>
1331        </div>
1332    </div>
1333    <div class="itemArea">
1334        <div class="items" data-bind="foreach:data">
1335<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;">
1336    <div class="card" data-bind="attr:{dataId:id}">
1337        <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}">
1338            <div class="development-image-con">
1339                <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" />
1340                <div class="no-img-icon">
1341                    
1342        <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg">
1343            <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1344            <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1345            <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" />
1346        </svg>
1347
1348                </div>
1349                <div class="status">
1350                    <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span>
1351                </div>
1352                <div class="pre-launch-prices-container">
1353                    <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span>
1354                </div>
1355            </div>
1356        </div>
1357        <div class="development-details-slider">
1358            <div class="development-details-frame">
1359                <span class="devname" data-bind="text:name"></span>
1360                <span class="devprice" data-bind="html:$root.priceText($data)"></span>
1361                <span class="nh-city" data-bind="text:$root.loc($data)"></span>
1362            </div>
1363        </div>
1364    </div>
1365</a>        </div>
1366    </div>
1367</div>
1368
1369
1370
1371
1372
1373
1374					
1375<div id="nh" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3">
1376    <div class="heading-container">
1377        <div>
1378            <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3>
1379        </div>
1380        <div class="arrows-container">
1381            <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left">
1382        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1383            <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" />
1384        </svg>
1385</button>
1386            <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right">
1387        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1388            <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" />
1389        </svg>
1390</button>
1391        </div>
1392    </div>
1393    <div class="itemArea">
1394        <div class="items" data-bind="foreach:data">
1395<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;">
1396    <div class="card" data-bind="attr:{dataId:id}">
1397        <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}">
1398            <div class="development-image-con">
1399                <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" />
1400                <div class="no-img-icon">
1401                    
1402        <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg">
1403            <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1404            <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1405            <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" />
1406        </svg>
1407
1408                </div>
1409                <div class="status">
1410                    <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span>
1411                </div>
1412                <div class="pre-launch-prices-container">
1413                    <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span>
1414                </div>
1415            </div>
1416        </div>
1417        <div class="development-details-slider">
1418            <div class="development-details-frame">
1419                <span class="devname" data-bind="text:name"></span>
1420                <span class="devprice" data-bind="html:$root.priceText($data)"></span>
1421                <span class="nh-city" data-bind="text:$root.loc($data)"></span>
1422            </div>
1423        </div>
1424    </div>
1425</a>        </div>
1426    </div>
1427</div>
1428
1429
1430
1431
1432
1433
1434					
1435<div id="ps" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3">
1436    <div class="heading-container">
1437        <div>
1438            <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3>
1439        </div>
1440        <div class="arrows-container">
1441            <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left">
1442        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1443            <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" />
1444        </svg>
1445</button>
1446            <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right">
1447        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1448            <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" />
1449        </svg>
1450</button>
1451        </div>
1452    </div>
1453    <div class="itemArea">
1454        <div class="items" data-bind="foreach:data">
1455<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;">
1456    <div class="card" data-bind="attr:{dataId:id}">
1457        <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}">
1458            <div class="development-image-con">
1459                <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" />
1460                <div class="no-img-icon">
1461                    
1462        <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg">
1463            <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1464            <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1465            <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" />
1466        </svg>
1467
1468                </div>
1469                <div class="status">
1470                    <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span>
1471                </div>
1472                <div class="pre-launch-prices-container">
1473                    <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span>
1474                </div>
1475            </div>
1476        </div>
1477        <div class="development-details-slider">
1478            <div class="development-details-frame">
1479                <span class="devname" data-bind="text:name"></span>
1480                <span class="devprice" data-bind="html:$root.priceText($data)"></span>
1481                <span class="nh-city" data-bind="text:$root.loc($data)"></span>
1482            </div>
1483        </div>
1484    </div>
1485</a>        </div>
1486    </div>
1487</div>
1488
1489
1490
1491
1492
1493
1494				</div>
1495            </div>
1496        </div>
1497    </div>
1498
1499    <div class="articles-section">
1500        <div class="container">
1501            <div class="article-header-container">
1502                <div class="title-container">
1503                    <div class="img-container">
1504                        
1505        <svg width="48" height="49" viewBox="0 0 48 49" fill="none" xmlns="https://www.w3.org/2000/svg">
1506            <path d="M8 38.333L32 38.333M8 32.333L32 32.333M8 26.333L32 26.333M25 14.333L32 14.333M25 20.333L32 20.333M25 8.33301H32M9 8.33301H22V20.333H9V8.33301Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1507            <path d="M35 26.333V4.33301H5V42.333C5 43.4376 5.89543 44.333 7 44.333H39M35 26.333H44V40.333C44 42.5421 42.2091 44.333 40 44.333H39M35 26.333V40.333C35 42.5421 36.7909 44.333 39 44.333" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1508        </svg>
1509
1510                    </div>
1511                    <h2>Articles</h2>
1512                    <img src="https://livabl.s3.amazonaws.com/icons/line-9.svg" alt="line work" class="linework" />
1513                </div>
1514                <div>
1515                    <a class="view-all-link" linktype="location" href="/articles">VIEW ALL</a>
1516                </div>
1517            </div>
1518
1519    <div class="article-container">
1520
1521<div class="article featured">
1522    <a href="https://www.livabl.com/articles/guides/7-reasons-to-buy-new-construction" target="_blank">
1523        <div class="article-img-container main-article-banner">
1524            <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp" alt="Why buy new? Seven reasons to buy a new construction home"/>
1525        </div>
1526            <h4>Why buy new? Seven reasons to buy a new construction home</h4>
1527    </a>
1528
1529        <a class="category_link" href="https://www.livabl.com/articles/guides" target="_blank">
1530            <span class="chip">Guides</span>
1531        </a>
1532</div>
1533
1534<div class="article featured">
1535    <a href="https://www.livabl.com/articles/design/what-should-i-look-for-in-a-floor-plan" target="_blank">
1536        <div class="article-img-container main-article-banner">
1537            <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/paint_colors.webp" alt="What should I look for in a floor plan?"/>
1538        </div>
1539            <h4>What should I look for in a floor plan?</h4>
1540    </a>
1541
1542        <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank">
1543            <span class="chip">Design</span>
1544        </a>
1545</div>
1546
1547<div class="article ">
1548    <a href="https://www.livabl.com/articles/design/how-to-create-a-productive-and-stylish-home-office" target="_blank">
1549        <div class="article-img-container main-article-banner">
1550            <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/productive_and_stylish.webp" alt="How to create a productive and stylish home office"/>
1551        </div>
1552            <h5>How to create a productive and stylish home office</h5>
1553    </a>
1554
1555        <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank">
1556            <span class="chip">Design</span>
1557        </a>
1558</div>
1559
1560<div class="article ">
1561    <a href="https://www.livabl.com/articles/design/preparing-to-visit-the-design-studio" target="_blank">
1562        <div class="article-img-container main-article-banner">
1563            <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/visit_the_design_studio.webp" alt="Preparing to visit the design studio"/>
1564        </div>
1565            <h5>Preparing to visit the design studio</h5>
1566    </a>
1567
1568        <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank">
1569            <span class="chip">Design</span>
1570        </a>
1571</div>
1572
1573<div class="article ">
1574    <a href="https://www.livabl.com/articles/design/here-are-the-paint-colors-of-the-year-for-2025" target="_blank">
1575        <div class="article-img-container main-article-banner">
1576            <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/mar_25-hp-article-5.webp" alt="Here are the big, bold Paint Colors of the Year for 2025"/>
1577        </div>
1578            <h5>Here are the big, bold Paint Colors of the Year for 2025</h5>
1579    </a>
1580
1581        <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank">
1582            <span class="chip">Design</span>
1583        </a>
1584</div>
1585
1586<div class="article ">
1587    <a href="https://www.livabl.com/articles/design/what-would-new-build-homeowners-do-differently" target="_blank">
1588        <div class="article-img-container main-article-banner">
1589            <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/new_build_homeowners.webp" alt="10 things new build homeowners wish they’d done differently"/>
1590        </div>
1591            <h5>10 things new build homeowners wish they’d done differently</h5>
1592    </a>
1593
1594        <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank">
1595            <span class="chip">Design</span>
1596        </a>
1597</div>
1598
1599<div class="article ">
1600    <a href="https://www.livabl.com/articles/design/what-are-the-best-home-design-features-for-kids" target="_blank">
1601        <div class="article-img-container main-article-banner">
1602            <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/mar_25-hp_article_7.webp" alt="What are the best home design features for kids?"/>
1603        </div>
1604            <h5>What are the best home design features for kids?</h5>
1605    </a>
1606
1607        <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank">
1608            <span class="chip">Design</span>
1609        </a>
1610</div>
1611
1612<div class="article ">
1613    <a href="https://www.livabl.com/articles/design/benefits-of-a-new-build-for-aging-in-place" target="_blank">
1614        <div class="article-img-container main-article-banner">
1615            <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/Benefits_of_a_new_build.webp" alt="Benefits of a new build for aging in place"/>
1616        </div>
1617            <h5>Benefits of a new build for aging in place</h5>
1618    </a>
1619
1620        <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank">
1621            <span class="chip">Design</span>
1622        </a>
1623</div>
1624
1625    </div>
1626
1627
1628        </div>
1629    </div>
1630
1631    <div class="more-communities-section nodisplay">
1632        <div class="container home">
1633            <div class="development-slider-block">
1634                <div class="container">
1635                    <div class="community-header-container">
1636                        <div class="title-container">
1637                            <img src="https://livabl.s3.amazonaws.com/icons/home-listing.svg" alt="home listing" />
1638                            <h2>More communities</h2>
1639                            <img src="https://livabl.s3.amazonaws.com/icons/line-9.svg" alt="line work" class="linework" />
1640                        </div>
1641                        <div>
1642                            <a class="view-all-link" linktype="location" href=/chicago-il/new-h
1642omes>VIEW ALL</a>
1643                        </div>
1644                    </div>
1645                    
1646<div id="mn" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3">
1647    <div class="heading-container">
1648        <div>
1649            <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3>
1650        </div>
1651        <div class="arrows-container">
1652            <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left">
1653        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1654            <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" />
1655        </svg>
1656</button>
1657            <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right">
1658        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1659            <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" />
1660        </svg>
1661</button>
1662        </div>
1663    </div>
1664    <div class="itemArea">
1665        <div class="items" data-bind="foreach:data">
1666<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;">
1667    <div class="card" data-bind="attr:{dataId:id}">
1668        <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}">
1669            <div class="development-image-con">
1670                <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" />
1671                <div class="no-img-icon">
1672                    
1673        <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg">
1674            <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1675            <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1676            <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" />
1677        </svg>
1678
1679                </div>
1680                <div class="status">
1681                    <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span>
1682                </div>
1683                <div class="pre-launch-prices-container">
1684                    <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span>
1685                </div>
1686            </div>
1687        </div>
1688        <div class="development-details-slider">
1689            <div class="development-details-frame">
1690                <span class="devname" data-bind="text:name"></span>
1691                <span class="devprice" data-bind="html:$root.priceText($data)"></span>
1692                <span class="nh-city" data-bind="text:$root.loc($data)"></span>
1693            </div>
1694        </div>
1695    </div>
1696</a>        </div>
1697    </div>
1698</div>
1699
1700
1701
1702
1703
1704
1705                    
1706<div id="pa" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3">
1707    <div class="heading-container">
1708        <div>
1709            <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3>
1710        </div>
1711        <div class="arrows-container">
1712            <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left">
1713        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1714            <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" />
1715        </svg>
1716</button>
1717            <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right">
1718        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1719            <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" />
1720        </svg>
1721</button>
1722        </div>
1723    </div>
1724    <div class="itemArea">
1725        <div class="items" data-bind="foreach:data">
1726<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;">
1727    <div class="card" data-bind="attr:{dataId:id}">
1728        <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}">
1729            <div class="development-image-con">
1730                <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" />
1731                <div class="no-img-icon">
1732                    
1733        <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg">
1734            <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1735            <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1736            <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" />
1737        </svg>
1738
1739                </div>
1740                <div class="status">
1741                    <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span>
1742                </div>
1743                <div class="pre-launch-prices-container">
1744                    <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span>
1745                </div>
1746            </div>
1747        </div>
1748        <div class="development-details-slider">
1749            <div class="development-details-frame">
1750                <span class="devname" data-bind="text:name"></span>
1751                <span class="devprice" data-bind="html:$root.priceText($data)"></span>
1752                <span class="nh-city" data-bind="text:$root.loc($data)"></span>
1753            </div>
1754        </div>
1755    </div>
1756</a>        </div>
1757    </div>
1758</div>
1759
1760
1761
1762
1763
1764
1765                </div>
1766            </div>
1767        </div>
1768    </div>
1769
1770    <div class="builders-section section-divider">
1771        <div class="container home">
1772            <div class="developer-slider-block">
1773                <div class="container">
1774                    <div class="community-header-container">
1775                        <div class="title-container">
1776                            <img src="https://livabl.s3.amazonaws.com/icons/builder.svg" alt="builders" />
1777                            <h2>Builders</h2>
1778                            <img src="https://livabl.s3.amazonaws.com/icons/line-9.svg" alt="line work" class="linework" />
1779                        </div>
1780                    </div>
1781                    
1782<div id="tb" class="sldr developerslider " draggable="false" style="display:none" data-bind="visible:data().length > 3">
1783    <div class="heading-container">
1784        <div>
1785            <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3>
1786        </div>
1787        <div class="arrows-container">
1788            <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left">
1789        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1790            <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" />
1791        </svg>
1792</button>
1793            <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right">
1794        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1795            <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" />
1796        </svg>
1797</button>
1798        </div>
1799    </div>
1800    <div class="itemArea">
1801        <div class="items" data-bind="foreach:data">
1802<a class="adeveloper-slider" data-bind="attr:{href:$root.devUrl($data)}" draggable="false" style="text-decoration: none !important;">
1803    <div class="devcon">
1804        <div class="developer-logo">
1805            <div class="developer-image-con">
1806                <div class="dev-img-slider" draggable="false" data-bind="style:{backgroundImage:'url('+$root.img($data)+')', visible: ($root.img($data) != '')}"></div>
1807                <div class="no-img-icon" data-bind="visible: $root.img($data) == ''">
1808                    
1809        <svg width="48" height="49" viewBox="0 0 48 49" fill="none" xmlns="https://www.w3.org/2000/svg">
1810            <g clip-path="url(#clip0_1424_271618)">
1811                <path d="M18.0039 17.7676L30.5754 30.3391L17.5117 43.4028L5.12951 43.2135L4.94016 30.8313L18.0039 17.7676Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" />
1812                <path d="M40.0045 8.3385L18.5105 29.8325M40.0045 8.3385L46.2903 14.6243M40.0045 8.3385L33.7188 2.05273" stroke="#1E1D21" stroke-width="2" />
1813            </g>
1814            <defs>
1815                <clipPath>
1816                    <rect width="48" height="48" fill="white" transform="translate(0 0.333008)" />
1817                </clipPath>
1818            </defs>
1819        </svg>
1820
1821                </div>
1822            </div>
1823        </div>
1824        <div class="developer-details-slider">
1825            <span class="developername" data-bind="text:name"></span>
1826            <div class="sm-separator"></div>
1827            <div data-bind="visible: !hidebuilderreviews">
1828                <span class="reviewscore score-container" data-bind="html:$root.stars($data)"></span>
1829            </div>
1830        </div>
1831    </div>
1832</a>        </div>
1833    </div>
1834</div>
1835
1836
1837
1838
1839
1840
1841                </div>
1842            </div>
1843        </div>
1844    </div>
1845
1846    
1846<script type="text/javascript">
1847        adroll_adv_id = "IAOCJYV6VJB4HK5OANHDZQ";
1848        adroll_pix_id = "3IQLEBVAZVCHFHXJMPMFR2";
1849
1850        (function() {
1851            var _onload = function() {
1852                if (document.readyState
1853                        && !/loaded|complete/.test(document.readyState)) {
1854                    setTimeout(_onload, 10);
1855                    return
1856                }
1857                if (!window.__adroll_loaded) {
1858                    __adroll_loaded = true;
1859                    setTimeout(_onload, 50);
1860                    return
1861                }
1862                var scr = document.createElement("script");
1863                var host = (("https:" == document.location.protocol) ? "https://s.adroll.com"
1864                        : "https://a.adroll.com");
1865                scr.setAttribute('async', 'true');
1866                scr.type = "text/javascript";
1867                scr.src = host + "/j/roundtrip.js";
1868                ((document.getElementsByTagName('head') || [ null ])[0] || document
1869                        .getElementsByTagName('script')[0].parentNode)
1870                        .appendChild(scr);
1871            };
1872            if (window.addEventListener) {
1873                window.addEventListener('load', _onload, false);
1874            } else {
1875                window.attachEvent('onload', _onload)
1876            }
1877        }());
1878    </script>
1878
1879
1880
1881
1882
1883</div>
1884
1885
1886
1887<div id="livablFooter">
1888
1889        <div class="top-home-location-container">
1890            <div class="top-home-location">
1891                <div id="arrowBreakPoint" class="grid-title" role="heading">Top new home locations in the U.S.</div>
1892                <div id="UsCities" class="top-home-grid country-max-height">
1893<div class='top-home-container '>                            <div class="top-home-text"><a href="/atlanta-ga/new-homes">Atlanta new homes</a></div>
1894                            <div class="top-home-text"><a href="/austin-tx/new-homes">Austin new homes</a></div>
1895                            <div class="top-home-text"><a href="/charlotte-nc/new-homes">Charlotte new homes</a></div>
1896                            <div class="top-home-text"><a href="/chicago-cook-county-il/new-homes">Chicago new homes</a></div>
1897</div><div class='top-home-container '>                            <div class="top-home-text"><a href="/dallas-tx/new-homes">Dallas new homes</a></div>
1898                            <div class="top-home-text"><a href="/fort-worth-tx/new-homes">Fort Worth new homes</a></div>
1899                            <div class="top-home-text"><a href="/houston-tx/new-homes">Houston new homes</a></div>
1900                            <div class="top-home-text"><a href="/jacksonville-fl/new-homes">Jacksonville new homes</a></div>
1901</div><div class='top-home-container '>                            <div class="top-home-text"><a href="/las-vegas-nv/new-homes">Las Vegas new homes</a></div>
1902                            <div class="top-home-text"><a href="/los-angeles-ca/new-homes">Los Angeles new homes</a></div>
1903                            <div class="top-home-text"><a href="/miami-fl/new-homes">Miami new homes</a></div>
1904                            <div class="top-home-text"><a href="/new-york-ny/new-homes">New York new homes</a></div>
1905</div><div class='top-home-container '>                            <div class="top-home-text"><a href="/philadelphia-pa/new-homes">Philadelphia new homes</a></div>
1906                            <div class="top-home-text"><a href="/phoenix-az/new-homes">Phoenix new homes</a></div>
1907                            <div class="top-home-text"><a href="/raleigh-nc/new-homes">Raleigh new homes</a></div>
1908                            <div class="top-home-text"><a href="/sacramento-ca/new-homes">Sacramento new homes</a></div>
1909</div><div class='top-home-container '>                            <div class="top-home-text"><a href="/san-antonio-tx/new-homes">San Antonio new homes</a></div>
1910                            <div class="top-home-text"><a href="/san-francisco-ca/new-homes">San Francisco new homes</a></div>
1911                            <div class="top-home-text"><a href="/seattle-wa/new-homes">Seattle new homes</a></div>
1912                            <div class="top-home-text"><a href="/washington-dc/new-homes">Washington DC new homes</a></div>
1913</div>                </div>
1914                <div id="showUsCities" class="show-more-container">
1915                    <div class="show-more-text">
1916                        Show more cities
1917                    </div>
1918                    <div class="show-more-icon">
1919                        
1920        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="https://www.w3.org/2000/svg">
1921            <path d="M4 6L8 10L12 6" stroke-width="2" stroke-linecap="round" />
1922        </svg>
1923
1924                    </div>
1925                </div>
1926
1927                <div class="grid-subtitle" role="heading">Browse new homes by state</div>
1928                <div id="UsStates" class="top-home-grid state-province-max-height">
1929<div class='top-home-container '>                                <div class="top-home-text"><a href="/state/alabama">Alabama new homes</a></div>
1930                                <div class="top-home-text top-home-disabled" aria-disabled="true">Alaska new homes</div>
1931                                <div class="top-home-text"><a href="/state/arizona">Arizona new homes</a></div>
1932                                <div class="top-home-text"><a href="/state/arkansas">Arkansas new homes</a></div>
1933</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/california">California new homes</a></div>
1934                                <div class="top-home-text"><a href="/state/colorado">Colorado new homes</a></div>
1935                                <div class="top-home-text"><a href="/state/connecticut">Connecticut new homes</a></div>
1936                                <div class="top-home-text"><a href="/state/delaware">Delaware new homes</a></div>
1937</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/district-of-columbia">District of Columbia new homes</a></div>
1938                                <div class="top-home-text"><a href="/state/florida">Florida new homes</a></div>
1939                                <div class="top-home-text"><a href="/state/georgia">Georgia new homes</a></div>
1940                                <div class="top-home-text"><a href="/state/hawaii">Hawaii new homes</a></div>
1941</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/idaho">Idaho new homes</a></div>
1942                                <div class="top-home-text"><a href="/state/illinois">Illinois new homes</a></div>
1943                                <div class="top-home-text"><a href="/state/indiana">Indiana new homes</a></div>
1944                                <div class="top-home-text"><a href="/state/iowa">Iowa new homes</a></div>
1945</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/kansas">Kansas new homes</a></div>
1946                                <div class="top-home-text"><a href="/state/kentucky">Kentucky new homes</a></div>
1947                                <div class="top-home-text"><a href="/state/louisiana">Louisiana new homes</a></div>
1948                                <div class="top-home-text top-home-disabled" aria-disabled="true">Maine new homes</div>
1949</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/maryland">Maryland new homes</a></div>
1950                                <div class="top-home-text"><a href="/state/massachusetts">Massachusetts new homes</a></div>
1951                                <div class="top-home-text"><a href="/state/michigan">Michigan new homes</a></div>
1952                                <div class="top-home-text"><a href="/state/minnesota">Minnesota new homes</a></div>
1953</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/mississippi">Mississippi new homes</a></div>
1954                                <div class="top-home-text"><a href="/state/missouri">Missouri new homes</a></div>
1955                                <div class="top-home-text"><a href="/state/montana">Montana new homes</a></div>
1956                                <div class="top-home-text"><a href="/state/nebraska">Nebraska new homes</a></div>
1957</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/nevada">Nevada new homes</a></div>
1958                                <div class="top-home-text"><a href="/state/new-hampshire">New Hampshire new homes</a></div>
1959                                <div class="top-home-text"><a href="/state/new-jersey">New Jersey new homes</a></div>
1960                                <div class="top-home-text"><a href="/state/new-mexico">New Mexico new homes</a></div>
1961</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/new-york">New York new homes</a></div>
1962                                <div class="top-home-text"><a href="/state/north-carolina">North Carolina new homes</a></div>
1963                                <div class="top-home-text top-home-disabled" aria-disabled="true">North Dakota new homes</div>
1964                                <div class="top-home-text"><a href="/state/ohio">Ohio new homes</a></div>
1965</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/oklahoma">Oklahoma new homes</a></div>
1966                                <div class="top-home-text"><a href="/state/oregon">Oregon new homes</a></div>
1967                                <div class="top-home-text"><a href="/state/pennsylvania">Pennsylvania new homes</a></div>
1968                                <div class="top-home-text"><a href="/state/rhode-island">Rhode Island new homes</a></div>
1969</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/south-carolina">South Carolina new homes</a></div>
1970                                <div class="top-home-text"><a href="/state/south-dakota">South Dakota new homes</a></div>
1971                                <div class="top-home-text"><a href="/state/tennessee">Tennessee new homes</a></div>
1972                                <div class="top-home-text"><a href="/state/texas">Texas new homes</a></div>
1973</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/utah">Utah new homes</a></div>
1974                                <div class="top-home-text top-home-disabled" aria-disabled="true">Vermont new homes</div>
1975                                <div class="top-home-text"><a href="/state/virginia">Virginia new homes</a></div>
1976                                <div class="top-home-text"><a href="/state/washington">Washington new homes</a></div>
1977</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/state/west-virginia">West Virginia new homes</a></div>
1978                                <div class="top-home-text"><a href="/state/wisconsin">Wisconsin new homes</a></div>
1979                                <div class="top-home-text top-home-disabled" aria-disabled="true">Wyoming new homes</div>
1980</div>                </div>
1981                <div id="showStates" class="show-more-container">
1982                    <div class="show-more-text">
1983                        Show more states
1984                    </div>
1985                    <div class="show-more-icon">
1986                        
1987        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="https://www.w3.org/2000/svg">
1988            <path d="M4 6L8 10L12 6" stroke-width="2" stroke-linecap="round" />
1989        </svg>
1990
1991                    </div>
1992                </div>
1993                <div class="footer-divider"></div>
1994
1995                <div class="grid-title" role="heading">Top new home locations in Canada</div>
1996                <div id="CanCities" class="top-home-grid country-max-height">
1997<div class='top-home-container '>                            <div class="top-home-text"><a href="/barrie-on/new-homes">Barrie new homes</a></div>
1998                            <div class="top-home-text"><a href="/brampton-on/new-homes">Brampton new homes</a></div>
1999                            <div class="top-home-text"><a href="/burnaby-bc/new-homes">Burnaby new homes</a></div>
2000                            <div class="top-home-text"><a href="/calgary-ab/new-homes">Calgary new homes</a></div>
2001</div><div class='top-home-container '>                            <div class="top-home-text"><a href="/coquitlam-bc/new-homes">Coquitlam new homes</a></div>
2002                            <div class="top-home-text"><a href="/edmonton-ab/new-homes">Edmonton new homes</a></div>
2003                            <div class="top-home-text"><a href="/hamilton-on/new-homes">Hamilton new homes</a></div>
2004                            <div class="top-home-text"><a href="/kitchener-on/new-homes">Kitchener new homes</a></div>
2005</div><div class='top-home-container '>                            <div class="top-home-text"><a href="/london-on/new-homes">London new homes</a></div>
2006                            <div class="top-home-text"><a href="/milton-on/new-homes">Milton new homes</a></div>
2007                            <div class="top-home-text"><a href="/mississauga-on/new-homes">Mississauga new homes</a></div>
2008                            <div class="top-home-text"><a href="/montreal-qc/new-homes">Montreal new homes</a></div>
2009</div><div class='top-home-container '>                            <div class="top-home-text"><a href="/ottawa-on/new-homes">Ottawa new homes</a></div>
2010                            <div class="top-home-text"><a href="/richmond-bc/new-homes">Richmond new homes</a></div>
2011                            <div class="top-home-text"><a href="/richmond-hill-on/new-homes">Richmond Hill new homes</a></div>
2012                            <div class="top-home-text"><a href="/surrey-bc/new-homes">Surrey new homes</a></div>
2013</div><div class='top-home-container '>                            <div class="top-home-text"><a href="/toronto-on/new-homes">Toronto new homes</a></div>
2014                            <div class="top-home-text"><a href="/vancouver-bc/new-homes">Vancouver new homes</a></div>
2015                            <div class="top-home-text"><a href="/vaughan-on/new-homes">Vaughan new homes</a></div>
2016                            <div class="top-home-text"><a href="/winnipeg-mb/new-homes">Winnipeg new homes</a></div>
2017</div>                </div>
2018                <div id="showCanCities" class="show-more-container">
2019                    <div class="show-more-text">
2020                        Show more cities
2021                    </div>
2022                    <div class="show-more-icon">
2023                        
2024        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="https://www.w3.org/2000/svg">
2025            <path d="M4 6L8 10L12 6" stroke-width="2" stroke-linecap="round" />
2026        </svg>
2027
2028                    </div>
2029                </div>
2030
2031                <div class="grid-subtitle" role="heading">Browse new homes by province</div>
2032                <div id="CanProvinces" class="top-home-grid state-province-max-height">
2033<div class='top-home-container '>                                <div class="top-home-text"><a href="/province/alberta">Alberta new homes</a></div>
2034                                <div class="top-home-text"><a href="/province/british-columbia">British Columbia new homes</a></div>
2035                                <div class="top-home-text"><a href="/province/manitoba">Manitoba new homes</a></div>
2036                                <div class="top-home-text top-home-disabled" aria-disabled="true">New Brunswick new homes</div>
2037</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/province/newfoundland-and-labrador">Newfoundland and Labrador new homes</a></div>
2038                                <div class="top-home-text top-home-disabled" aria-disabled="true">Northwest Territories new homes</div>
2039                                <div class="top-home-text"><a href="/province/nova-scotia">Nova Scotia new homes</a></div>
2040                                <div class="top-home-text top-home-disabled" aria-disabled="true">Nunavut new homes</div>
2041</div><div class='top-home-container '>                                <div class="top-home-text"><a href="/province/ontario">Ontario new homes</a></div>
2042                                <div class="top-home-text top-home-disabled" aria-disabled="true">Prince Edward Island new homes</div>
2043                                <div class="top-home-text top-home-disabled" aria-disabled="true">
2043Quebec new homes</div>
2044                                <div class="top-home-text"><a href="/province/saskatchewan">Saskatchewan new homes</a></div>
2045</div><div class='top-home-container '>                                <div class="top-home-text top-home-disabled" aria-disabled="true">Yukon new homes</div>
2046</div>                </div>
2047                <div id="showProvince" class="show-more-container no-bottom-margin">
2048                    <div class="show-more-text">
2049                        Show more provinces
2050                    </div>
2051                    <div class="show-more-icon">
2052                        
2053        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="https://www.w3.org/2000/svg">
2054            <path d="M4 6L8 10L12 6" stroke-width="2" stroke-linecap="round" />
2055        </svg>
2056
2057                    </div>
2058                </div>
2059            </div>
2060        </div>
2061
2062    <div class="livabl-footer-container">
2063        <div class="footer-title-container">
2064            <div class="footer-title">
2065                Livabl by Zonda<span class="title-trademark">TM</span>
2066            </div>
2067            <button onclick="footer.scroll.goToTop()">
2068                
2069        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
2070            <path d="M8.89464 16.2616L8.89464 5.96296L4.39532 10.4623C4.03574 10.8219 3.44567 10.8219 3.08609 10.4623C2.72651 10.1027 2.72651 9.52184 3.08609 9.16227L9.16201 3.08634C9.24731 3.00087 9.34863 2.93306 9.46016 2.88679C9.5717 2.84052 9.69127 2.81671 9.81202 2.81671C9.93277 2.81671 10.0523 2.84052 10.1639 2.88679C10.2754 2.93306 10.3767 3.00087 10.462 3.08634L16.5472 9.15305C16.6325 9.23841 16.7002 9.33974 16.7464 9.45127C16.7926 9.5628 16.8164 9.68233 16.8164 9.80305C16.8164 9.92377 16.7926 10.0433 16.7464 10.1548C16.7002 10.2664 16.6325 10.3677 16.5472 10.4531C16.4618 10.5384 16.3605 10.6061 16.2489 10.6523C16.1374 10.6985 16.0179 10.7223 15.8972 10.7223C15.7764 10.7223 15.6569 
207010.6985 15.5454 10.6523C15.4339 10.6061 15.3325 10.5384 15.2472 10.4531L10.7386 5.96296L10.7386 16.2616C10.7386 16.7687 10.3237 17.1836 9.81663 17.1836C9.30953 17.1836 8.89464 16.7687 8.89464 16.2616Z" fill="#1E1D21" />
2071        </svg>
2072
2073            </button>
2074        </div>
2075
2076        <div class="social-icons-sm-md">
2077            <div class="social-icons">
2078                <a href="https://twitter.com/Livabl_" rel="nofollow" target="_blank" aria-label="view Livabl twitter page">
2079                    
2080        <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2081            <circle cx="20" cy="20" r="20" fill="#1E1D21" />
2082            <g clip-path="url(#clip0_5287_650919)">
2083                <path d="M21.7124 18.7893L28.4133 11H26.8254L21.0071 17.7633L16.3599 11H11L18.0274 21.2273L11 29.3955H12.588L18.7324 22.2533L23.6401 29.3955H29L21.7121 18.7893H21.7124ZM19.5375 21.3174L18.8255 20.299L13.1602 12.1954H15.5992L20.1712 18.7353L20.8832 19.7537L26.8262 28.2545H24.3871L19.5375 21.3178V21.3174Z" fill="white" />
2084            </g>
2085            <defs>
2086                <clipPath id="clip0_5287_650919">
2087                    <rect width="18" height="18.405" fill="white" transform="translate(11 11)" />
2088                </clipPath>
2089            </defs>
2090        </svg>
2091
2092
2093                </a>
2094
2095                <a href="https://www.instagram.com/livabl_/" rel="nofollow" target="_blank" aria-label="view Livabl instagram page">
2096                    
2097        <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="https://www.w3.org/2000/svg">
2098            <circle cx="20" cy="20" r="20" fill="#1E1D21" />
2099            <path d="M20.0007 9C17.0133 9 16.6384 9.01306 15.465 9.06646C14.294 9.12008 13.4946 9.30548 12.7952 9.5775C12.0717 9.85846 11.458 10.2343 10.8466 10.8459C10.2348 11.4574 9.85892 12.0711 9.57704 12.7943C9.30433 13.494 9.11871 14.2935 9.066 15.4641C9.01375 16.6374 9 17.0126 9 20C9 22.9874 9.01329 23.3612 9.06646 24.5345C9.12031 25.7056 9.30571 26.5049 9.5775 27.2043C9.85869 27.9278 10.2345 28.5415 10.8462 29.1529C11.4574 29.7648 12.0711 30.1415 12.7941 30.4225C13.494 30.6945 14.2935 30.8799 15.4643 30.9335C16.6377 30.9869 17.0124 31 19.9995 31C22.9872 31 23.361 30.9869 24.5343 30.9335C25.70
209953 30.8799 26.5056 30.6945 27.2055 30.4225C27.9287 30.1415 28.5415 29.7648 29.1527 29.1529C29.7646 28.5415 30.1404 27.9278 30.4223 27.2045C30.6927 26.5049 30.8783 25.7053 30.9333 24.5348C30.986 23.3614 30.9998 22.9874 30.9998 20C30.9998 17.0126 30.986 16.6377 30.9333 15.4643C30.8783 14.2933 30.6927 13.494 30.4223 12.7945C30.1404 12.0711 29.7646 11.4574 29.1527 10.8459C28.5408 10.2341 27.9289 9.85823 27.2048 9.5775C26.5035 9.30548 25.7037 9.12008 24.5327 9.06646C23.3594 9.01306 22.9858 9 19.9975 9H20.0007ZM19.0139 10.9823C19.3068 10.9818 19.6336 10.9823 20.0007 10.9823C22.9377 10.9823 23.2858 10.9928 24.4456 11.0455C25.5181 11.0946 26.1002 11.2738 26.4879 11.4244C27.0013 11.6237 27.3672 11.8621 27.752 12.2471C28.137 12.6321 28.3754 12.9987 28.5752 13.5121C28.7257 13.8994 28.9052 14.4814 28.954 15.5539C29.0067 16.7135 29.0182 17.0619 29.0182 19.9975C29.0182 22.9331 29.0067 23.2814 28.954 24.441C28.905 25.5135 28.7257 26.0956 28.5752 26.4829C28.3758 26.9962 28.137 27.3618 27.752 27.7465C27.367 28.1315 27.0015 28.3699 26.4879 28.5692C26.1006 28.7205 25.5181 28.8992 24.4456 28.9483C23.286 29.001 22.9377 29.0124 20.0007 29.0124C17.0635 29.0124 16.7154 29.001 15.5558 28.9483C14.4833 28.8988 13.9012 28.7196 13.5132 28.569C12.9999 28.3696 12.6332 28.1313 12.2482 27.7463C11.8632 27.3613 11.6249 26.9955 11.425 26.482C11.2745 26.0947 11.095 25.5126 11.0462 24.4401C10.9935 23.2805 10.983 22.9322 10.983 19.9947C10.983 17.0573 10.9935 16.7108 11.0462 15.5512C11.0953 14.4787 11.2745 13.8966 11.425 13.5089C11.6244 12.9955 11.8632 12.6289 12.2482 12.2439C12.6332 11.8589 12.9999 11.6205 13.5132 11.4207C13.901 11.2694 14.4833 11.0907 15.5558 11.0414C16.5705 10.9956 16.9638 10.9818 19.0139 10.9795V10.9823ZM25.8724 12.8087C25.6113 12.8087 25.3561 12.8862 25.139 13.0312C24.9219 13.1763 24.7527 13.3825 24.6528 13.6237C24.5529 13.8649 24.5268 14.1304 24.5778 14.3864C24.6288 14.6425 24.7545 14.8777 24.9392 15.0623C25.1238 15.2469 25.3591 15.3726 25.6152 15.4234C25.8712 15.4743 26.1367 15.4481 26.3779 15.3481C26.619 15.2482 26.8252 15.0789 26.9702 14.8618C27.1151 14.6446 27.1925 14.3894 27.1924 14.1283C27.1924 13.3995 26.6011 12.8083 25.8724 12.8083V12.8087ZM20.0007 14.351C16.881 14.351 14.3517 16.8804 14.3517 20C14.3517 23.1196 16.881 25.6478 20.0007 25.6478C23.1203 25.6478 25.649 23.1196 25.649 20C25.649 16.8804 23.1203 14.351 20.0007 14.351ZM20.0007 16.3333C22.0256 16.3333 23.6674 17.9749 23.6674 20C23.6674 22.0249 22.0256 23.6667 20.0007 23.6667C17.9755 23.6667 16.334 22.0249 16.334 20C16.334 17.9749 17.9755 16.3333 20.0007 16.3333Z" fill="white" />
2100        </svg>
2101
2102
2103                </a>
2104
2105                <a href="https://www.facebook.com/Livabldotcom/" rel="nofollow" target="_blank" aria-label="view Livabl facebook page">
2106                    
2107        <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="https://www.w3.org/2000/svg">
2108            <path d="M40 20C40 31.0457 31.0457 40 20 40C8.9543 40 0 31.0457 0 20C0 8.9543 8.9543 0 20 0C31.0457 0 40 8.9543 40 20Z" fill="#1E1D21" />
2109            <path d="M17.2333 29V20.5539H15V17.5129H17.2333V14.9154C17.2333 12.8744 18.5526 11 21.5924 11C22.8231 11 23.7332 11.118 23.7332 11.118L23.6615 13.9578C23.6615 13.9578 22.7334 13.9487 21.7205 13.9487C20.6243 13.9487 20.4487 14.4539 20.4487 15.2924V17.5129H23.7487L23.6051 20.5539H20.4487V29H17.2333Z" fill="white" />
2110        </svg>
2111
2112
2113                </a>
2114
2115                <a href="https://www.pinterest.com/livabl/" rel="nofollow" target="_blank" aria-label="view Livabl pinterest page">
2116                    
2117        <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="https://www.w3.org/2000/svg">
2118            <circle cx="20" cy="20" r="20" fill="#1E1D21" />
2119            <path d="M18.3962 23.2274C17.8702 25.9814 17.2292 28.6214 15.3282 30.0004C14.7422 25.8384 16.1892 22.7134 16.8622 19.3954C15.7152 17.4654 17.0002 13.5834 19.4172 14.5404C22.3922 15.7164 16.8412 21.7124 20.5672 22.4624C24.4582 23.2434 26.0462 15.7124 23.6332 13.2634C20.1482 9.72543 13.4872 13.1804 14.3072 18.2454C14.5062 19.4834 15.7852 19.8584 14.8182 21.5674C12.5872 21.0734 11.9212 19.3134 12.0072 16.9674C12.1452 13.1274 15.4562 10.4404 18.7782 10.0674C22.9792 9.59643 26.9222 11.6104 27.4672 15.5614C28.0802 20.0224 25.5712 24.8544 21.0782 24.5064C19.8602 24.4114 19.3502 23.8
2119074 18.3962 23.2274Z" fill="white" />
2120        </svg>
2121
2122
2123                </a>
2124            </div>
2125        </div>
2126
2127        <div class="content-container-us">
2128            <div>
2129                <a href="/about" aria-label="View About">About</a>
2130            </div>
2131            <div>
2132                <a href="/about/careers" aria-label="View Careers">Careers</a>
2133            </div>
2134            <div>
2135                <a href=" https://zondahome.com/legal/accessibility-statement/" target="_blank" rel="nofollow" aria-label="View Accessibility">Accessibility</a>
2136            </div>
2137                <div class="non-mobile-display">
2138                    <a target="_blank" href="https://www.zondahome.com/legal/privacy-policy/united-states/" aria-label="View Privacy Policy">Privacy policy</a>
2139                </div>
2140                <div>
2141                    <a href="/legal" aria-label="View Terms & conditions">Terms & conditions</a>
2142                </div>
2143                <div class="mobile-display">
2144                    <a target="_blank" href="https://www.zondahome.com/legal/privacy-policy/united-states/" aria-label="View Privacy Policy">Privacy policy</a>
2145                </div>
2146
2147            <div>
2148                <div class="social-icons">
2149                    <a href="https://twitter.com/Livabl_" rel="nofollow" target="_blank" aria-label="view Livabl twitter page">
2150                        
2151        <svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" fill="none">
2152            <g clip-path="url(#clip0_15545_10431)">
2153                <path d="M11.4058 7.78926L18.1067 0H16.5188L10.7004 6.7633L6.05328 0H0.693359L7.72074 10.2273L0.693359 18.3955H2.28135L8.42572 11.2533L13.3334 18.3955H18.6934L11.4054 7.78926H11.4058ZM9.23083 10.3174L8.51881 9.29901L2.85352 1.19542H5.29258L9.86454 7.73527L10.5766 8.75368L16.5196 17.2545H14.0805L9.23083 10.3178V10.3174Z" fill="white" />
2154            </g>
2155            <defs>
2156                <clipPath id="clip0_15545_10431">
2157                    <rect width="18" height="18.405" fill="white" transform="translate(0.693359)" />
2158                </clipPath>
2159            </defs>
2160        </svg>
2161
2162
2163                    </a>
2164
2165                    <a href="https://www.instagram.com/livabl_/" rel="nofollow" target="_blank" aria-label="view Livabl instagram page">
2166                        
2167        <svg xmlns="http://www.w3.org/2000/svg" width="23" height="22" viewBox="0 0 23 22" fill="none">
2168            <path d="M11.694 0C8.70663 0 8.33171 0.0130627 7.15838 0.0664585C5.98734 0.120084 5.188 0.305479 4.48859 0.5775C3.76511 0.858458 3.1514 1.23429 2.53998 1.84594C1.92811 2.45735 1.55228 3.07106 1.2704 3.79431C0.997693 4.49396 0.812068 5.29352 0.759359 6.4641C0.707109 7.63744 0.693359 8.01258 0.693359 11C0.693359 13.9874 0.706651 14.3612 0.759818 15.5345C0.813672 16.7056 0.999068 17.5049 1.27086 18.2043C1.55205 18.9278 1.92788 19.5415 2.53953 20.1529C3.15071 20.7648 3.76442 21.1415 4.48744 21.4225C5.18732 21.6945 5.98688 21.8799 7.15769 21.9335C8.33103 21.9869 8.70571 22 11.6929 22C14.6805 22 15.0543 21.9869 16.2276 21.9335C17.3987 21.8799 18.1989 21.6945 18.8988 21.4225C19.6221 21.1415 20.2349 20.7648 20.846 20.1529C21.4579 19.5415 21.8338 18.9278 22.1156 18.2045C22.386 17.5049 22.5717 16.7053 22.6267 15.5348C22.6794 14.3614 22.6931 13.9874 22.6931 11C22.6931 8.01258 22.6794 7.63767 22.6267 6.46433C22.5717 5.29329 22.386 4.49396 22.1156 3.79454C21.8338 3.07106 21.4579 2.45735 20.846 1.84594C20.2342 1.23406 19.6223 0.858229 18.8981 0.5775C18.1969 0.305479 17.3971 0.120084 16.226 0.0664585C15.0527 0.0130627 14.6792 0 11.6908 0H11.694ZM10.7073 1.98229C11.0001 1.98183 11.3269 1.98229 11.694 1.98229C14.631 1.98229 14.9791 1.99283 16.139 2.04554C17.2115 2.09458 17.7935 2.27379 18.1813 2.42435C18.6946 2.62373 19.0606 2.86206 19.4454 3.24706C19.8304 3.63206 20.0687 3.99873 20.2685 4.51206C20.4191 4.89935 20.5985 5.48144 20.6474 6.55394C20.7001 7.71352 20.7115 8.06185 20.7115 10.9975C20.7115 13.9331 20.7001 14.2814 20.6474 15.441C20.5983 16.5135 20.4191 17.0956 20.2685 17.4829C20.0692 17.9962 19.8304 18.3618 19.4454 18.7465C19.0604 19.1315 18.6949 19.3699 18.1813 19.5692C17.794 19.7205 17.2115 19.8992 16.139 19.9483C14.9794 20.001 14.631 20.0124 11.694 20.0124C8.75682 20.0124 8.40871 20.001 7.24913 19.9483C6.17663 19.8988 5.59455 19.7196 5.20657 19.569C4.69323 19.3696 4.32657 19.1313 3.94157 18.7463C3.55657 18.3613 3.31823 17.9955 3.1184 17.482C2.96784 17.0947 2.7884 16.5126 2.73959 15.4401C2.68688 14.2805 2.67634 13.9322 2.67634 10.9947C2.67634 8.05727 2.68688 7.71077 2.73959 6.55119C2.78863 5.47869 2.96784 4.8966 3.1184 4.50885C3.31778 3.99552 3.55657 3.62885 3.94157 3.24385C4.32657 2.85885 4.69323 2.62052 5.20657 2.42069C5.59432 2.26944 6.17663 2.09069 7.24913 2.04142C8.26388 1.99558 8.65713 1.98183 10.7073 
21681.97954V1.98229ZM17.5658 3.80875C17.3047 3.80875 17.0494 3.88618 16.8324 4.03124C16.6153 4.17631 16.4461 4.38249 16.3462 4.62371C16.2463 4.86494 16.2202 5.13037 16.2712 5.38644C16.3221 5.64251 16.4479 5.87771 16.6325 6.06229C16.8172 6.24688 17.0524 6.37256 17.3085 6.42344C17.5646 6.47432 17.83 6.44812 18.0712 6.34814C18.3124 6.24816 18.5185 6.0789 18.6635 5.86177C18.8085 5.64464 18.8858 5.38938 18.8858 5.12829C18.8858 4.39954 18.2945 3.80829 17.5658 3.80829V3.80875ZM11.694 5.35104C8.5744 5.35104 6.04509 7.88035 6.04509 11C6.04509 14.1196 8.5744 16.6478 11.694 16.6478C14.8137 16.6478 17.3423 14.1196 17.3423 11C17.3423 7.88035 14.8137 5.35104 11.694 5.35104ZM11.694 7.33333C13.719 7.33333 15.3607 8.97485 15.3607 11C15.3607 13.0249 13.719 14.6667 11.694 14.6667C9.6689 14.6667 8.02738 13.0249 8.02738 11C8.02738 8.97485 9.6689 7.33333 11.694 7.33333Z" fill="white" />
2169        </svg>
2170
2171
2172                    </a>
2173
2174                    <a href="https://www.facebook.com/Livabldotcom/" rel="nofollow" target="_blank" aria-label="view Livabl facebook page">
2175                        
2176        <svg xmlns="http://www.w3.org/2000/svg" width="10" height="18" viewBox="0 0 10 18" fill="none">
2177            <path d="M2.92669 18V9.55388H0.693359V6.51287H2.92669V3.91545C2.92669 1.87438 4.24593 0 7.28573 0C8.5165 0 9.4266 0.11799 9.4266 0.11799L9.35489 2.95778C9.35489 2.95778 8.42674 2.94874 7.41389 2.94874C6.31769 2.94874 6.14207 3.45391 6.14207 4.29237V6.51287H9.44203L9.29844 9.55388H6.14207V18H2.92669Z" fill="white" />
2178        </svg>
2179
2180
2181                    </a>
2182
2183                    <a href="https://www.pinterest.com/livabl/" rel="nofollow" target="_blank" aria-label="view Livabl pinterest page">
2184                        
2185        <svg xmlns="http://www.w3.org/2000/svg" width="16" height="20" viewBox="0 0 16 20" fill="none">
2186            <path d="M6.83764 13.2274C6.31164 15.9814 5.67064 18.6214 3.76964 20.0004C3.18364 15.8384 4.63064 12.7134 5.30364 9.39543C4.15664 7.46543 5.44164 3.58343 7.85864 4.54043C10.8336 5.71643 5.28264 11.7124 9.00864 12.4624C12.8996 13.2434 14.4876 5.71243 12.0746 3.26343C8.58964 -0.274572 1.92864 3.18043 2.74864 8.24543C2.94764 9.48343 4.22664 9.85843 3.25964 11.5674C1.02864 11.0734 0.362637 9.31343 0.448637 6.96743C0.586637 3.12743 3.89764 0.440428 7.21964 0.0674279C11.4206 -0.403572 15.3636 1.61043 15.9086 5.56143C16.5216 10.0224 14.0126 14.8544 9.51964 14.5064C8.30164 14.4114 7.79164 13.8074 6.83764 13.2274Z" fill="white" />
2187        </svg>
2188
2189
2190                    </a>
2191                </div>
2192            </div>
2193        </div>
2194
2195        <div class="partner-site-container">
2196            <div class="title">Partner sites</div>
2197            <div class="partner-site">
2198                <div class="partner-site-links">
2199                    <a href="https://www.newhomesource.com/" target="_blank">
2200                        NewHomeSource
2201                    </a>
2202                    <a href="https://www.houseplans.com/" target="_blank">
2203                        Houseplans.com
2204                    </a>
2205                </div>
2206                <div class="copywrite">© 2026 livabl.com</div>
2207            </div>
2208        </div>
2209    </div>
2210</div>
2211
2212    </div>
2213    
2214<input id="region-route-code" name="region-route-code" type="hidden" value="us" />
2215
2216
2217    
2218    
2218<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
2218
2219    
2219<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"></script>
2219
2220    
2220<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" type="text/javascript"></script>
2220
2221    
2221<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/jqueryui/ui-datepicker_55.0.0.js?r=29A91640DFF916E9AD9A4B544DC7A98BBF581C91"></script>
2221
2222    
2222<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/shared_55.0.0.js?r=1EC19C24B827DACF711F619FB7410F765BBC22F9"></script>
2222
2223    
2224    
2224<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/regionRouting_55.0.0.js?r=F06686DA05A8E9F38A89C62CB23A8AA40811724C"></script>
vendor: 2 bytes, line 2224
2224
2225<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/jqueryval_55.0.0.js?r=3254496E44CF3CAC73335EB6B7C1DCAC597CD885"></script>
vendor: 2 bytes, line 2225
2225
2226<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/jsrender_55.0.0.js?r=8B0397FCF82E5DECE203E86CA21756E84670F7F1"></script>
vendor: 2 bytes, line 2226
2226
2227<script id="tmplSearchAutoCompleteListItem" type="text/x-jsrender">
2228    <li class="list-group-item location">
2229        <div class="text-wrapper">
2230            <div class="item-name">{{:ItemName}}</div>
2231            <div class="item-desc">{{:ItemDesc}}</div>
2232        </div>
2233        <input type="hidden" class="autoListItemLink" value="{{:UrlString}}">
2234    </li>
2235</script>
2235
2236
2237<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/location_55.0.0.js?r=C5DBF7C6765B01F741229EE091A75F74E60E9F09"></script>
vendor: 2 bytes, line 2237
2237
2238<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/homepage_55.0.0.js?r=8E134688DF4C6BB559D3A17EB7FB0FEE033F12AF"></script>
vendor: 2 bytes, line 2238
2238
2239<script type="text/javascript">
2240    (function () {
2241        var self = {};
2242        window["td"] = self;
2243
2244        // slider setup
2245        self.id = "td";
2246        self.slider = $("#td .items");
2247        self.left = $("#td .leftArrow");
2248        self.right = $("#td .rightArrow");
2249        self.scrolling = false;
2250        self.newDrag = false;
2251        self.dragging = false;
2252        self.totDrag = 0;
2253        self.allowClicks = true;
2254        self.atEdge;
2255        self.trans = 0;
2256        self.transAtDrag = 0;
2257        self.img = $("#td .img-slider");
2258        self.transType = "transform"; //may need to replace with specific prefix for other platforms
2259
2260        //setup vm
2261        var vm = self.vm = {};
2262        vm.title = ko.observable();
2263        vm.data = ko.observable([]);
2264        vm.fDevs = [];
2265
2266        var gapBetweenSliderItems = 30;
2267        var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3;
2268
2269        var location = bbh.location.getUserLocation();
2270
2271        if (self.id === 'fd') {
2272            $.ajax({
2273                url: "/bbhAjax/home/slider/fd",
2274                type: "POST",
2275                dataType: "json",
2276                data: {
2277                    city: encodeURI(location.City),
2278                    state: encodeURI(location.State),
2279                    country: encodeURI(location.Country),
2280                    lat: encodeURI(location.Latitude),
2281                    lng: encodeURI(location.Longitude),
2282                    country: encodeURI(location.Country),
2283                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
2284                },
2285                success: function (d) {
2286                    vm.data(d);
2287                    vm.title("Featured new home communities");
2288                    trackVisibleImpression(d);
2289                    if (d.length > maxSlidersItems) {
2290                        self.right.removeClass('arrow-btn-disabled');
2291                    }
2292                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
2293                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
2294                }
2295            });
2296        }
2297        else {
2298            $.ajax({
2299                url: "/bbhAjax/home/slider/td",
2300                type: "POST",
2301                dataType: "json",
2302                data: {
2303                    city: encodeURI(location.City),
2304                    state: encodeURI(location.State),
2305                    country: encodeURI(location.Country),
2306                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
2307                },
2308                success: function (d) {
2309                    vm.data(d);
2310                    if (d.length > maxSlidersItems) {
2311                        self.right.removeClass('arrow-btn-disabled');
2312                    }
2313                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
2314                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
2315                    switch (self.id) {
2316                        case "td":
2317                            if (d !== undefined && d != null && d.length > 0)
2318                                vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city));
2319                            break;
2320                        case "pa":
2321                            vm.title("Pre-launch VIP pricing access");
2322                            if (d.length > 3) {
2323                                $('.more-communities-section').removeClass('nodisplay');
2324                                $('.builders-section').removeClass('section-divider');
2325                            }
2326                            break;
2327                        case "nh":
2328                            vm.title("New homes recently added");
2329                            break;
2330                        case "ps":
2331                            vm.title("New communities launching soon");
2332                            break;
2333                        case "mn":
2334                            vm.title("Move-in-ready homes");
2335                            if (d.length > 3) {
2336                                $('.more-communities-section').removeClass('nodisplay');
2337                                $('.builders-section').removeClass('section-divider');
2338                            }
2339                            break;
2340                        case "tb":
2341                            vm.title("Top new construction builders");
2342                            break;
2343                        default:
2344                            break;
2345                    }
2346                }
2347            });
2348
2349        }
2350        //functions to interpret bits and bytes
2351        vm.expand = function (flags) {
2352            return {
2353                isBuyNow: flags & 1,
2354                isPreLaunch: flags & 2,
2355                isVerified: flags & 4,
2356                isFeatured: flags & 8
2357            }
2358        };
2359
2360        vm.loc = function (item) {
2361            return item.hood === undefined ? item.city : item.hood + ', ' + item.city;
2362        }
2363
2364        vm.money = function (num) {
2365            if (isNaN(num)) return num;
2366            return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,');
2367        };
2368
2369        vm.priceText = function (item) {
2370
2371            var l1, l2;
2372            var oj1 = false, oj2 = false;
2373
2374            if(item.saleId !== undefined) switch (item.saleId) {
2375                case 1: l1 = "Register now"; break;
2376                case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break;
2377                case 3: l1 = "Developer sold out"; oj1 = true; break;
2378                case 4: l1 = "Pending"; break;
2379                default: break;
2380            }
2381
2382            if (item.rentId !== undefined) switch (item.rentId) {
2383                case 1: l2 = "Register Now (Rentals)"; break;
2384                case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break;
2385                case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break;
2386                case 4: l2 = "Rentals Pending"; break;
2387                default: break;
2388            }
2389
2390            if (l1 !== undefined && oj1) {
2391                l1 = '<span class="oj">' + l1 + '</span>';
2392            }
2393            if (l2 !== undefined && oj2) {
2394                l2 = '<span class="oj">' + l2 + '</span>';
2395            }
2396
2397            return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2));
2398        };
2399
2400        vm.ribbonText = function (item) {
2401            var f = vm.expand(item.flags);
2402
2403            if (f.isBuyNow) return "BUY ONLINE NOW";
2404            else if (f.isPreLaunch) return "PRE-LAUNCH PRICES";
2405            return "";
2406        }
2407
2408        vm.tagText = function (item) {
2409            var r = "";
2410
2411            var f = vm.expand(item.flags);
2412            if (f.isFeatured) r += "FEATURED";
2413            if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED";
2414
2415            return r;
2416        }
2417
2418        vm.stars = function (item) {
2419            var c = false;
2420            var o = "";
2421            for (var i = 1; i <= 5; i++) {
2422                if (i <= item.score) {
2423                    o += `<span>
2424        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
2425            <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 
242517.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
2426        </svg>
2427</span>`;
2428                }
2429                else if (item.score % 1 != 0 && !c) {
2430                    o += `<span>
2431        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
2432            <g clip-path="url(#clip0_3090_268795)">
2433                <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
2434                <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14">
2435                    <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
2436                </mask>
2437                <g mask="url(#mask0_3090_268795)">
2438                    <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" />
2439                </g>
2440            </g>
2441            <defs>
2442                <clipPath>
2443                    <rect width="20" height="20" fill="white" />
2444                </clipPath>
2445            </defs>
2446        </svg>
2447</span>`;
2448                    c = true;
2449                }
2450                else {
2451                    o += `<span>
2452        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
2453            <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
2454        </svg>
2455</span>`;
2456                }
2457            }
2458
2459            o += " " + item.cnt;
2460
2461            return o;
2462        }
2463
2464        vm.img = function (item) {
2465            if (self.id == "tb") {
2466                if (item.logo === undefined || item.logo == null || item.logo == "")
2467                    return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png";
2468
2469                return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo);
2470            }
2471            else {
2472                if (item.logo === undefined || item.logo == null || item.logo == "") {
2473                    return "";
2474                }
2475
2476                return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo);
2477            }
2478        };
2479
2480
2481        vm.preventclick = false;
2482
2483        vm.devUrl = function (item) {
2484            return "/" + item.url;
2485        }
2486
2487        vm.trackReservedSpot = function (obj) {
2488            if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) {
2489                window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' });
2490            }
2491            window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' });
2492            return true;
2493        }
2494
2495        ko.applyBindings(vm, document.getElementById("td"));
2496
2497        self.checks = function () {
2498
2499            var scrolled = $("#td .itemArea")[0].scrollLeft;
2500
2501            if (scrolled === 0) {
2502                self.left.addClass('arrow-btn-disabled');
2503            } else {
2504                self.left.removeClass('arrow-btn-disabled');
2505            }
2506
2507            var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width();
2508
2509            if (scrolled >= max) {
2510                self.right.addClass('arrow-btn-disabled');
2511            }
2512            else {
2513                self.right.removeClass('arrow-btn-disabled');
2514            }
2515
2516            $.each(self.slider.children(), function (i, item) {
2517                isElementVisible($(item), false, false);
2518            });
2519        }
2520
2521         // start drag
2522         self.drgS = function (event) {
2523             self.dragging = true;
2524             self.allowClicks = true;
2525
2526             self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX;
2527             self.transAtDrag = self.trans;
2528
2529             self.totDrag = 0;
2530         }
2531
2532
2533        // move drag
2534         self.drgM = function (event) {
2535             if (!self.dragging) return false;
2536
2537             self.trans = $("#td .itemArea")[0].scrollLeft;
2538
2539             self.checks();
2540         }
2541
2542        // end drag
2543         self.drgE = function (event) {
2544
2545             if (self.dragAtX === undefined) {
2546                 return false;
2547             }
2548
2549             self.dragging = false;
2550
2551             self.checks();
2552         }
2553
2554        // event handler
2555         self.drg = function (event) {
2556
2557             switch (event.data.action) {
2558                 case 'start':
2559                     self.drgS(event.originalEvent || event);
2560                     break;
2561                 case 'move':
2562                     self.drgM(event.originalEvent || event);
2563                     break;
2564                 case 'end':
2565                     self.drgE(event.originalEvent || event);
2566                     break;
2567             }
2568         }
2569
2570    // click handler
2571        self.clickLeft = function () {
2572        var container = $("#td .itemArea");
2573        self.trans = container[0].scrollLeft;
2574        var iw = self.slider.children().width() + gapBetweenSliderItems;
2575        var r = self.trans % iw;
2576        var pastHalf = Math.abs(r) / iw >= 0.5;
2577
2578        if (pastHalf) {
2579            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r;
2580        }
2581        else {
2582            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw);
2583        }
2584
2585            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
2586    }
2587    self.left.on('click', self.clickLeft);
2588
2589            // click handler
2590        self.clickRight = function () {
2591            var container = $("#td .itemArea");
2592            self.trans = container[0].scrollLeft;
2593            var iw = self.slider.children().width() + gapBetweenSliderItems;
2594            var r = self.trans % iw;
2595            var pastHalf = Math.abs(r) / iw >= 0.5;
2596
2597            if (pastHalf) {
2598                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw);
2599            }
2600            else {
2601                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r);
2602                }
2603
2604            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
2605        }
2606        self.right.on('click', self.clickRight);
2607
2608            // attach slider events
2609        self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg);
2610        self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg);
2611        self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
2612        self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg);
2613
2614        function trackVisibleImpression(d) {//on load depending on device size we track the items
2615            var devIds = [];
2616            d.map(function (item, i) {
2617                if ($(window).width() > 768) {
2618                    var num = 4;
2619                    if ($(window).width() > 768 && $(window).width() < 992) {
2620                        num = 3;
2621                    }
2622                    if (i < num) {
2623                        item.imp = 1;
2624                        devIds.push(item.id);
2625                    }
2626                    else {
2627                        item.imp = 0;
2628                    }
2629                }
2630                else {
2631                    if (i == 0) {
2632                        item.imp = 1;
2633                        devIds.push(item.id);
2634                    }
2635                    else {
2636                        item.imp = 0;
2637                    }
2638                }
2639                vm.fDevs.push(item);
2640            });
2641
2642            if (devIds.length > 0) {
2643                $.ajax({
2644                    type: "POST",
2645                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
2646                    data: {
2647                        devIDs: devIds
2648                    }
2649                });
2650            }
2651        }
2652        function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track
2653            var pRect = $("#fd")[0].getBoundingClientRect();
2654            var rect = el[0].getBoundingClientRect();
2655            if (isClick != true) {//for drag event
2656                if (rect.right + rect.width <= pRect.right) {
2657                    var id = el.next().find(".devcon").attr("dataid");
2658                    vm.fDevs.map(function (item) {
2659                        if (item.id == id) {
2660                            if (item.imp != 1) {
2661                                item.imp = 1;
2662                                $.ajax({
2663                                    type: "POST",
2664                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
2665                                    data: {
2666                                        devIDs: id
2667                                    }
2668                                });
2669                            }
2670                        }
2671
2672                    });
2673                }
2674            } else {//for click on arrow
2675                if (rect.right <= pRect.right) {
2676                    var id = el.next().find(".devcon").attr("dataid");
2677                    vm.fDevs.map(function (item) {
2678                        if (item.id == id) {
2679                            if (item.imp != 1) {
2680                                item.imp = 1;
2681                                $.ajax({
2682                                    type: "POST",
2683                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
2684                                    data: {
2685                                        devIDs: id
2686                                    }
2687                                });
2688                            }
2689                        }
2690
2691                    });
2692                }
2693            }
2694
2695        }
2696        })()
2697</script>
vendor: 2 bytes, line 2697
2697
2698<script type="text/javascript">
2699    (function () {
2700        var self = {};
2701        window["fd"] = self;
2702
2703        // slider setup
2704        self.id = "fd";
2705        self.slider = $("#fd .items");
2706        self.left = $("#fd .leftArrow");
2707        self.right = $("#fd .rightArrow");
2708        self.scrolling = false;
2709        self.newDrag = false;
2710        self.dragging = false;
2711        self.totDrag = 0;
2712        self.allowClicks = true;
2713        self.atEdge;
2714        self.trans = 0;
2715        self.transAtDrag = 0;
2716        self.img = $("#fd .img-slider");
2717        self.transType = "transform"; //may need to replace with specific prefix for other platforms
2718
2719        //setup vm
2720        var vm = self.vm = {};
2721        vm.title = ko.observable();
2722        vm.data = ko.observable([]);
2723        vm.fDevs = [];
2724
2725        var gapBetweenSliderItems = 30;
2726        var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3;
2727
2728        var location = bbh.location.getUserLocation();
2729
2730        if (self.id === 'fd') {
2731            $.ajax({
2732                url: "/bbhAjax/home/slider/fd",
2733                type: "POST",
2734                dataType: "json",
2735                data: {
2736                    city: encodeURI(location.City),
2737                    state: encodeURI(location.State),
2738                    country: encodeURI(location.Country),
2739                    lat: encodeURI(location.Latitude),
2740                    lng: encodeURI(location.Longitude),
2741                    country: encodeURI(location.Country),
2742                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
2743                },
2744                success: function (d) {
2745                    vm.data(d);
2746                    vm.title("Featured new home communities");
2747                    trackVisibleImpression(d);
2748                    if (d.length > maxSlidersItems) {
2749                        self.right.removeClass('arrow-btn-disabled');
2750                    }
2751                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
2752                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
2753                }
2754            });
2755        }
2756        else {
2757            $.ajax({
2758                url: "/bbhAjax/home/slider/fd",
2759                type: "POST",
2760                dataType: "json",
2761                data: {
2762                    city: encodeURI(location.City),
2763                    state: encodeURI(location.State),
2764                    country: encodeURI(location.Country),
2765                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
2766                },
2767                success: function (d) {
2768                    vm.data(d);
2769                    if (d.length > maxSlidersItems) {
2770                        self.right.removeClass('arrow-btn-disabled');
2771                    }
2772                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
2773                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
2774                    switch (self.id) {
2775                        case "td":
2776                            if (d !== undefined && d != null && d.length > 0)
2777                                vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city));
2778                            break;
2779                        case "pa":
2780                            vm.title("Pre-launch VIP pricing access");
2781                            if (d.length > 3) {
2782                                $('.more-communities-section').removeClass('nodisplay');
2783                                $('.builders-section').removeClass('section-divider');
2784                            }
2785                            break;
2786                        case "nh":
2787                            vm.title("New homes recently added");
2788                            break;
2789                        case "ps":
2790                            vm.title("New communities launching soon");
2791                            break;
2792                        case "mn":
2793                            vm.title("Move-in-ready homes");
2794                            if (d.length > 3) {
2795                                $('.more-communities-section').removeClass('nodisplay');
2796                                $('.builders-section').removeClass('section-divider');
2797                            }
2798                            break;
2799                        case "tb":
2800                            vm.title("Top new construction builders");
2801                            break;
2802                        default:
2803                            break;
2804                    }
2805                }
2806            });
2807
2808        }
2809        //functions to interpret bits and bytes
2810        vm.expand = function (flags) {
2811            return {
2812                isBuyNow: flags & 1,
2813                isPreLaunch: flags & 2,
2814                isVerified: flags & 4,
2815                isFeatured: flags & 8
2816            }
2817        };
2818
2819        vm.loc = function (item) {
2820            return item.hood === undefined ? item.city : item.hood + ', ' + item.city;
2821        }
2822
2823        vm.money = function (num) {
2824            if (isNaN(num)) return num;
2825            return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,');
2826        };
2827
2828        vm.priceText = function (item) {
2829
2830            var l1, l2;
2831            var oj1 = false, oj2 = false;
2832
2833            if(item.saleId !== undefined) switch (item.saleId) {
2834                case 1: l1 = "Register now"; break;
2835                case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break;
2836                case 3: l1 = "Developer sold out"; oj1 = true; break;
2837                case 4: l1 = "Pending"; break;
2838                default: break;
2839            }
2840
2841            if (item.rentId !== undefined) switch (item.rentId) {
2842                case 1: l2 = "Register Now (Rentals)"; break;
2843                case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break;
2844                case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break;
2845                case 4: l2 = "Rentals Pending"; break;
2846                default: break;
2847            }
2848
2849            if (l1 !== undefined && oj1) {
2850                l1 = '<span class="oj">' + l1 + '</span>';
2851            }
2852            if (l2 !== undefined && oj2) {
2853                l2 = '<span class="oj">' + l2 + '</span>';
2854            }
2855
2856            return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2));
2857        };
2858
2859        vm.ribbonText = function (item) {
2860            var f = vm.expand(item.flags);
2861
2862            if (f.isBuyNow) return "BUY ONLINE NOW";
2863            else if (f.isPreLaunch) return "PRE-LAUNCH PRICES";
2864            return "";
2865        }
2866
2867        vm.tagText = function (item) {
2868            var r = "";
2869
2870            var f = vm.expand(item.flags);
2871            if (f.isFeatured) r += "FEATURED";
2872            if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED";
2873
2874            return r;
2875        }
2876
2877        vm.stars = function (item) {
2878            var c = false;
2879            var o = "";
2880            for (var i = 1; i <= 5; i++) {
2881                if (i <= item.score) {
2882                    o += `<span>
2883        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
2884            <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 
288417.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
2885        </svg>
2886</span>`;
2887                }
2888                else if (item.score % 1 != 0 && !c) {
2889                    o += `<span>
2890        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
2891            <g clip-path="url(#clip0_3090_268795)">
2892                <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
2893                <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14">
2894                    <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
2895                </mask>
2896                <g mask="url(#mask0_3090_268795)">
2897                    <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" />
2898                </g>
2899            </g>
2900            <defs>
2901                <clipPath>
2902                    <rect width="20" height="20" fill="white" />
2903                </clipPath>
2904            </defs>
2905        </svg>
2906</span>`;
2907                    c = true;
2908                }
2909                else {
2910                    o += `<span>
2911        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
2912            <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
2913        </svg>
2914</span>`;
2915                }
2916            }
2917
2918            o += " " + item.cnt;
2919
2920            return o;
2921        }
2922
2923        vm.img = function (item) {
2924            if (self.id == "tb") {
2925                if (item.logo === undefined || item.logo == null || item.logo == "")
2926                    return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png";
2927
2928                return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo);
2929            }
2930            else {
2931                if (item.logo === undefined || item.logo == null || item.logo == "") {
2932                    return "";
2933                }
2934
2935                return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo);
2936            }
2937        };
2938
2939
2940        vm.preventclick = false;
2941
2942        vm.devUrl = function (item) {
2943            return "/" + item.url;
2944        }
2945
2946        vm.trackReservedSpot = function (obj) {
2947            if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) {
2948                window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' });
2949            }
2950            window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' });
2951            return true;
2952        }
2953
2954        ko.applyBindings(vm, document.getElementById("fd"));
2955
2956        self.checks = function () {
2957
2958            var scrolled = $("#fd .itemArea")[0].scrollLeft;
2959
2960            if (scrolled === 0) {
2961                self.left.addClass('arrow-btn-disabled');
2962            } else {
2963                self.left.removeClass('arrow-btn-disabled');
2964            }
2965
2966            var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width();
2967
2968            if (scrolled >= max) {
2969                self.right.addClass('arrow-btn-disabled');
2970            }
2971            else {
2972                self.right.removeClass('arrow-btn-disabled');
2973            }
2974
2975            $.each(self.slider.children(), function (i, item) {
2976                isElementVisible($(item), false, false);
2977            });
2978        }
2979
2980         // start drag
2981         self.drgS = function (event) {
2982             self.dragging = true;
2983             self.allowClicks = true;
2984
2985             self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX;
2986             self.transAtDrag = self.trans;
2987
2988             self.totDrag = 0;
2989         }
2990
2991
2992        // move drag
2993         self.drgM = function (event) {
2994             if (!self.dragging) return false;
2995
2996             self.trans = $("#fd .itemArea")[0].scrollLeft;
2997
2998             self.checks();
2999         }
3000
3001        // end drag
3002         self.drgE = function (event) {
3003
3004             if (self.dragAtX === undefined) {
3005                 return false;
3006             }
3007
3008             self.dragging = false;
3009
3010             self.checks();
3011         }
3012
3013        // event handler
3014         self.drg = function (event) {
3015
3016             switch (event.data.action) {
3017                 case 'start':
3018                     self.drgS(event.originalEvent || event);
3019                     break;
3020                 case 'move':
3021                     self.drgM(event.originalEvent || event);
3022                     break;
3023                 case 'end':
3024                     self.drgE(event.originalEvent || event);
3025                     break;
3026             }
3027         }
3028
3029    // click handler
3030        self.clickLeft = function () {
3031        var container = $("#fd .itemArea");
3032        self.trans = container[0].scrollLeft;
3033        var iw = self.slider.children().width() + gapBetweenSliderItems;
3034        var r = self.trans % iw;
3035        var pastHalf = Math.abs(r) / iw >= 0.5;
3036
3037        if (pastHalf) {
3038            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r;
3039        }
3040        else {
3041            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw);
3042        }
3043
3044            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
3045    }
3046    self.left.on('click', self.clickLeft);
3047
3048            // click handler
3049        self.clickRight = function () {
3050            var container = $("#fd .itemArea");
3051            self.trans = container[0].scrollLeft;
3052            var iw = self.slider.children().width() + gapBetweenSliderItems;
3053            var r = self.trans % iw;
3054            var pastHalf = Math.abs(r) / iw >= 0.5;
3055
3056            if (pastHalf) {
3057                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw);
3058            }
3059            else {
3060                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r);
3061                }
3062
3063            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
3064        }
3065        self.right.on('click', self.clickRight);
3066
3067            // attach slider events
3068        self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg);
3069        self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg);
3070        self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
3071        self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg);
3072
3073        function trackVisibleImpression(d) {//on load depending on device size we track the items
3074            var devIds = [];
3075            d.map(function (item, i) {
3076                if ($(window).width() > 768) {
3077                    var num = 4;
3078                    if ($(window).width() > 768 && $(window).width() < 992) {
3079                        num = 3;
3080                    }
3081                    if (i < num) {
3082                        item.imp = 1;
3083                        devIds.push(item.id);
3084                    }
3085                    else {
3086                        item.imp = 0;
3087                    }
3088                }
3089                else {
3090                    if (i == 0) {
3091                        item.imp = 1;
3092                        devIds.push(item.id);
3093                    }
3094                    else {
3095                        item.imp = 0;
3096                    }
3097                }
3098                vm.fDevs.push(item);
3099            });
3100
3101            if (devIds.length > 0) {
3102                $.ajax({
3103                    type: "POST",
3104                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
3105                    data: {
3106                        devIDs: devIds
3107                    }
3108                });
3109            }
3110        }
3111        function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track
3112            var pRect = $("#fd")[0].getBoundingClientRect();
3113            var rect = el[0].getBoundingClientRect();
3114            if (isClick != true) {//for drag event
3115                if (rect.right + rect.width <= pRect.right) {
3116                    var id = el.next().find(".devcon").attr("dataid");
3117                    vm.fDevs.map(function (item) {
3118                        if (item.id == id) {
3119                            if (item.imp != 1) {
3120                                item.imp = 1;
3121                                $.ajax({
3122                                    type: "POST",
3123                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
3124                                    data: {
3125                                        devIDs: id
3126                                    }
3127                                });
3128                            }
3129                        }
3130
3131                    });
3132                }
3133            } else {//for click on arrow
3134                if (rect.right <= pRect.right) {
3135                    var id = el.next().find(".devcon").attr("dataid");
3136                    vm.fDevs.map(function (item) {
3137                        if (item.id == id) {
3138                            if (item.imp != 1) {
3139                                item.imp = 1;
3140                                $.ajax({
3141                                    type: "POST",
3142                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
3143                                    data: {
3144                                        devIDs: id
3145                                    }
3146                                });
3147                            }
3148                        }
3149
3150                    });
3151                }
3152            }
3153
3154        }
3155        })()
3156</script>
vendor: 2 bytes, line 3156
3156
3157<script type="text/javascript">
3158    (function () {
3159        var self = {};
3160        window["nh"] = self;
3161
3162        // slider setup
3163        self.id = "nh";
3164        self.slider = $("#nh .items");
3165        self.left = $("#nh .leftArrow");
3166        self.right = $("#nh .rightArrow");
3167        self.scrolling = false;
3168        self.newDrag = false;
3169        self.dragging = false;
3170        self.totDrag = 0;
3171        self.allowClicks = true;
3172        self.atEdge;
3173        self.trans = 0;
3174        self.transAtDrag = 0;
3175        self.img = $("#nh .img-slider");
3176        self.transType = "transform"; //may need to replace with specific prefix for other platforms
3177
3178        //setup vm
3179        var vm = self.vm = {};
3180        vm.title = ko.observable();
3181        vm.data = ko.observable([]);
3182        vm.fDevs = [];
3183
3184        var gapBetweenSliderItems = 30;
3185        var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3;
3186
3187        var location = bbh.location.getUserLocation();
3188
3189        if (self.id === 'fd') {
3190            $.ajax({
3191                url: "/bbhAjax/home/slider/fd",
3192                type: "POST",
3193                dataType: "json",
3194                data: {
3195                    city: encodeURI(location.City),
3196                    state: encodeURI(location.State),
3197                    country: encodeURI(location.Country),
3198                    lat: encodeURI(location.Latitude),
3199                    lng: encodeURI(location.Longitude),
3200                    country: encodeURI(location.Country),
3201                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
3202                },
3203                success: function (d) {
3204                    vm.data(d);
3205                    vm.title("Featured new home communities");
3206                    trackVisibleImpression(d);
3207                    if (d.length > maxSlidersItems) {
3208                        self.right.removeClass('arrow-btn-disabled');
3209                    }
3210                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
3211                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
3212                }
3213            });
3214        }
3215        else {
3216            $.ajax({
3217                url: "/bbhAjax/home/slider/nh",
3218                type: "POST",
3219                dataType: "json",
3220                data: {
3221                    city: encodeURI(location.City),
3222                    state: encodeURI(location.State),
3223                    country: encodeURI(location.Country),
3224                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
3225                },
3226                success: function (d) {
3227                    vm.data(d);
3228                    if (d.length > maxSlidersItems) {
3229                        self.right.removeClass('arrow-btn-disabled');
3230                    }
3231                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
3232                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
3233                    switch (self.id) {
3234                        case "td":
3235                            if (d !== undefined && d != null && d.length > 0)
3236                                vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city));
3237                            break;
3238                        case "pa":
3239                            vm.title("Pre-launch VIP pricing access");
3240                            if (d.length > 3) {
3241                                $('.more-communities-section').removeClass('nodisplay');
3242                                $('.builders-section').removeClass('section-divider');
3243                            }
3244                            break;
3245                        case "nh":
3246                            vm.title("New homes recently added");
3247                            break;
3248                        case "ps":
3249                            vm.title("New communities launching soon");
3250                            break;
3251                        case "mn":
3252                            vm.title("Move-in-ready homes");
3253                            if (d.length > 3) {
3254                                $('.more-communities-section').removeClass('nodisplay');
3255                                $('.builders-section').removeClass('section-divider');
3256                            }
3257                            break;
3258                        case "tb":
3259                            vm.title("Top new construction builders");
3260                            break;
3261                        default:
3262                            break;
3263                    }
3264                }
3265            });
3266
3267        }
3268        //functions to interpret bits and bytes
3269        vm.expand = function (flags) {
3270            return {
3271                isBuyNow: flags & 1,
3272                isPreLaunch: flags & 2,
3273                isVerified: flags & 4,
3274                isFeatured: flags & 8
3275            }
3276        };
3277
3278        vm.loc = function (item) {
3279            return item.hood === undefined ? item.city : item.hood + ', ' + item.city;
3280        }
3281
3282        vm.money = function (num) {
3283            if (isNaN(num)) return num;
3284            return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,');
3285        };
3286
3287        vm.priceText = function (item) {
3288
3289            var l1, l2;
3290            var oj1 = false, oj2 = false;
3291
3292            if(item.saleId !== undefined) switch (item.saleId) {
3293                case 1: l1 = "Register now"; break;
3294                case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break;
3295                case 3: l1 = "Developer sold out"; oj1 = true; break;
3296                case 4: l1 = "Pending"; break;
3297                default: break;
3298            }
3299
3300            if (item.rentId !== undefined) switch (item.rentId) {
3301                case 1: l2 = "Register Now (Rentals)"; break;
3302                case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break;
3303                case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break;
3304                case 4: l2 = "Rentals Pending"; break;
3305                default: break;
3306            }
3307
3308            if (l1 !== undefined && oj1) {
3309                l1 = '<span class="oj">' + l1 + '</span>';
3310            }
3311            if (l2 !== undefined && oj2) {
3312                l2 = '<span class="oj">' + l2 + '</span>';
3313            }
3314
3315            return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2));
3316        };
3317
3318        vm.ribbonText = function (item) {
3319            var f = vm.expand(item.flags);
3320
3321            if (f.isBuyNow) return "BUY ONLINE NOW";
3322            else if (f.isPreLaunch) return "PRE-LAUNCH PRICES";
3323            return "";
3324        }
3325
3326        vm.tagText = function (item) {
3327            var r = "";
3328
3329            var f = vm.expand(item.flags);
3330            if (f.isFeatured) r += "FEATURED";
3331            if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED";
3332
3333            return r;
3334        }
3335
3336        vm.stars = function (item) {
3337            var c = false;
3338            var o = "";
3339            for (var i = 1; i <= 5; i++) {
3340                if (i <= item.score) {
3341                    o += `<span>
3342        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
3343            <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 
334317.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
3344        </svg>
3345</span>`;
3346                }
3347                else if (item.score % 1 != 0 && !c) {
3348                    o += `<span>
3349        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
3350            <g clip-path="url(#clip0_3090_268795)">
3351                <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
3352                <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14">
3353                    <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
3354                </mask>
3355                <g mask="url(#mask0_3090_268795)">
3356                    <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" />
3357                </g>
3358            </g>
3359            <defs>
3360                <clipPath>
3361                    <rect width="20" height="20" fill="white" />
3362                </clipPath>
3363            </defs>
3364        </svg>
3365</span>`;
3366                    c = true;
3367                }
3368                else {
3369                    o += `<span>
3370        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
3371            <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
3372        </svg>
3373</span>`;
3374                }
3375            }
3376
3377            o += " " + item.cnt;
3378
3379            return o;
3380        }
3381
3382        vm.img = function (item) {
3383            if (self.id == "tb") {
3384                if (item.logo === undefined || item.logo == null || item.logo == "")
3385                    return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png";
3386
3387                return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo);
3388            }
3389            else {
3390                if (item.logo === undefined || item.logo == null || item.logo == "") {
3391                    return "";
3392                }
3393
3394                return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo);
3395            }
3396        };
3397
3398
3399        vm.preventclick = false;
3400
3401        vm.devUrl = function (item) {
3402            return "/" + item.url;
3403        }
3404
3405        vm.trackReservedSpot = function (obj) {
3406            if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) {
3407                window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' });
3408            }
3409            window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' });
3410            return true;
3411        }
3412
3413        ko.applyBindings(vm, document.getElementById("nh"));
3414
3415        self.checks = function () {
3416
3417            var scrolled = $("#nh .itemArea")[0].scrollLeft;
3418
3419            if (scrolled === 0) {
3420                self.left.addClass('arrow-btn-disabled');
3421            } else {
3422                self.left.removeClass('arrow-btn-disabled');
3423            }
3424
3425            var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width();
3426
3427            if (scrolled >= max) {
3428                self.right.addClass('arrow-btn-disabled');
3429            }
3430            else {
3431                self.right.removeClass('arrow-btn-disabled');
3432            }
3433
3434            $.each(self.slider.children(), function (i, item) {
3435                isElementVisible($(item), false, false);
3436            });
3437        }
3438
3439         // start drag
3440         self.drgS = function (event) {
3441             self.dragging = true;
3442             self.allowClicks = true;
3443
3444             self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX;
3445             self.transAtDrag = self.trans;
3446
3447             self.totDrag = 0;
3448         }
3449
3450
3451        // move drag
3452         self.drgM = function (event) {
3453             if (!self.dragging) return false;
3454
3455             self.trans = $("#nh .itemArea")[0].scrollLeft;
3456
3457             self.checks();
3458         }
3459
3460        // end drag
3461         self.drgE = function (event) {
3462
3463             if (self.dragAtX === undefined) {
3464                 return false;
3465             }
3466
3467             self.dragging = false;
3468
3469             self.checks();
3470         }
3471
3472        // event handler
3473         self.drg = function (event) {
3474
3475             switch (event.data.action) {
3476                 case 'start':
3477                     self.drgS(event.originalEvent || event);
3478                     break;
3479                 case 'move':
3480                     self.drgM(event.originalEvent || event);
3481                     break;
3482                 case 'end':
3483                     self.drgE(event.originalEvent || event);
3484                     break;
3485             }
3486         }
3487
3488    // click handler
3489        self.clickLeft = function () {
3490        var container = $("#nh .itemArea");
3491        self.trans = container[0].scrollLeft;
3492        var iw = self.slider.children().width() + gapBetweenSliderItems;
3493        var r = self.trans % iw;
3494        var pastHalf = Math.abs(r) / iw >= 0.5;
3495
3496        if (pastHalf) {
3497            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r;
3498        }
3499        else {
3500            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw);
3501        }
3502
3503            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
3504    }
3505    self.left.on('click', self.clickLeft);
3506
3507            // click handler
3508        self.clickRight = function () {
3509            var container = $("#nh .itemArea");
3510            self.trans = container[0].scrollLeft;
3511            var iw = self.slider.children().width() + gapBetweenSliderItems;
3512            var r = self.trans % iw;
3513            var pastHalf = Math.abs(r) / iw >= 0.5;
3514
3515            if (pastHalf) {
3516                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw);
3517            }
3518            else {
3519                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r);
3520                }
3521
3522            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
3523        }
3524        self.right.on('click', self.clickRight);
3525
3526            // attach slider events
3527        self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg);
3528        self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg);
3529        self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
3530        self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg);
3531
3532        function trackVisibleImpression(d) {//on load depending on device size we track the items
3533            var devIds = [];
3534            d.map(function (item, i) {
3535                if ($(window).width() > 768) {
3536                    var num = 4;
3537                    if ($(window).width() > 768 && $(window).width() < 992) {
3538                        num = 3;
3539                    }
3540                    if (i < num) {
3541                        item.imp = 1;
3542                        devIds.push(item.id);
3543                    }
3544                    else {
3545                        item.imp = 0;
3546                    }
3547                }
3548                else {
3549                    if (i == 0) {
3550                        item.imp = 1;
3551                        devIds.push(item.id);
3552                    }
3553                    else {
3554                        item.imp = 0;
3555                    }
3556                }
3557                vm.fDevs.push(item);
3558            });
3559
3560            if (devIds.length > 0) {
3561                $.ajax({
3562                    type: "POST",
3563                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
3564                    data: {
3565                        devIDs: devIds
3566                    }
3567                });
3568            }
3569        }
3570        function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track
3571            var pRect = $("#fd")[0].getBoundingClientRect();
3572            var rect = el[0].getBoundingClientRect();
3573            if (isClick != true) {//for drag event
3574                if (rect.right + rect.width <= pRect.right) {
3575                    var id = el.next().find(".devcon").attr("dataid");
3576                    vm.fDevs.map(function (item) {
3577                        if (item.id == id) {
3578                            if (item.imp != 1) {
3579                                item.imp = 1;
3580                                $.ajax({
3581                                    type: "POST",
3582                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
3583                                    data: {
3584                                        devIDs: id
3585                                    }
3586                                });
3587                            }
3588                        }
3589
3590                    });
3591                }
3592            } else {//for click on arrow
3593                if (rect.right <= pRect.right) {
3594                    var id = el.next().find(".devcon").attr("dataid");
3595                    vm.fDevs.map(function (item) {
3596                        if (item.id == id) {
3597                            if (item.imp != 1) {
3598                                item.imp = 1;
3599                                $.ajax({
3600                                    type: "POST",
3601                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
3602                                    data: {
3603                                        devIDs: id
3604                                    }
3605                                });
3606                            }
3607                        }
3608
3609                    });
3610                }
3611            }
3612
3613        }
3614        })()
3615</script>
vendor: 2 bytes, line 3615
3615
3616<script type="text/javascript">
3617    (function () {
3618        var self = {};
3619        window["ps"] = self;
3620
3621        // slider setup
3622        self.id = "ps";
3623        self.slider = $("#ps .items");
3624        self.left = $("#ps .leftArrow");
3625        self.right = $("#ps .rightArrow");
3626        self.scrolling = false;
3627        self.newDrag = false;
3628        self.dragging = false;
3629        self.totDrag = 0;
3630        self.allowClicks = true;
3631        self.atEdge;
3632        self.trans = 0;
3633        self.transAtDrag = 0;
3634        self.img = $("#ps .img-slider");
3635        self.transType = "transform"; //may need to replace with specific prefix for other platforms
3636
3637        //setup vm
3638        var vm = self.vm = {};
3639        vm.title = ko.observable();
3640        vm.data = ko.observable([]);
3641        vm.fDevs = [];
3642
3643        var gapBetweenSliderItems = 30;
3644        var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3;
3645
3646        var location = bbh.location.getUserLocation();
3647
3648        if (self.id === 'fd') {
3649            $.ajax({
3650                url: "/bbhAjax/home/slider/fd",
3651                type: "POST",
3652                dataType: "json",
3653                data: {
3654                    city: encodeURI(location.City),
3655                    state: encodeURI(location.State),
3656                    country: encodeURI(location.Country),
3657                    lat: encodeURI(location.Latitude),
3658                    lng: encodeURI(location.Longitude),
3659                    country: encodeURI(location.Country),
3660                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
3661                },
3662                success: function (d) {
3663                    vm.data(d);
3664                    vm.title("Featured new home communities");
3665                    trackVisibleImpression(d);
3666                    if (d.length > maxSlidersItems) {
3667                        self.right.removeClass('arrow-btn-disabled');
3668                    }
3669                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
3670                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
3671                }
3672            });
3673        }
3674        else {
3675            $.ajax({
3676                url: "/bbhAjax/home/slider/ps",
3677                type: "POST",
3678                dataType: "json",
3679                data: {
3680                    city: encodeURI(location.City),
3681                    state: encodeURI(location.State),
3682                    country: encodeURI(location.Country),
3683                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
3684                },
3685                success: function (d) {
3686                    vm.data(d);
3687                    if (d.length > maxSlidersItems) {
3688                        self.right.removeClass('arrow-btn-disabled');
3689                    }
3690                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
3691                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
3692                    switch (self.id) {
3693                        case "td":
3694                            if (d !== undefined && d != null && d.length > 0)
3695                                vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city));
3696                            break;
3697                        case "pa":
3698                            vm.title("Pre-launch VIP pricing access");
3699                            if (d.length > 3) {
3700                                $('.more-communities-section').removeClass('nodisplay');
3701                                $('.builders-section').removeClass('section-divider');
3702                            }
3703                            break;
3704                        case "nh":
3705                            vm.title("New homes recently added");
3706                            break;
3707                        case "ps":
3708                            vm.title("New communities launching soon");
3709                            break;
3710                        case "mn":
3711                            vm.title("Move-in-ready homes");
3712                            if (d.length > 3) {
3713                                $('.more-communities-section').removeClass('nodisplay');
3714                                $('.builders-section').removeClass('section-divider');
3715                            }
3716                            break;
3717                        case "tb":
3718                            vm.title("Top new construction builders");
3719                            break;
3720                        default:
3721                            break;
3722                    }
3723                }
3724            });
3725
3726        }
3727        //functions to interpret bits and bytes
3728        vm.expand = function (flags) {
3729            return {
3730                isBuyNow: flags & 1,
3731                isPreLaunch: flags & 2,
3732                isVerified: flags & 4,
3733                isFeatured: flags & 8
3734            }
3735        };
3736
3737        vm.loc = function (item) {
3738            return item.hood === undefined ? item.city : item.hood + ', ' + item.city;
3739        }
3740
3741        vm.money = function (num) {
3742            if (isNaN(num)) return num;
3743            return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,');
3744        };
3745
3746        vm.priceText = function (item) {
3747
3748            var l1, l2;
3749            var oj1 = false, oj2 = false;
3750
3751            if(item.saleId !== undefined) switch (item.saleId) {
3752                case 1: l1 = "Register now"; break;
3753                case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break;
3754                case 3: l1 = "Developer sold out"; oj1 = true; break;
3755                case 4: l1 = "Pending"; break;
3756                default: break;
3757            }
3758
3759            if (item.rentId !== undefined) switch (item.rentId) {
3760                case 1: l2 = "Register Now (Rentals)"; break;
3761                case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break;
3762                case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break;
3763                case 4: l2 = "Rentals Pending"; break;
3764                default: break;
3765            }
3766
3767            if (l1 !== undefined && oj1) {
3768                l1 = '<span class="oj">' + l1 + '</span>';
3769            }
3770            if (l2 !== undefined && oj2) {
3771                l2 = '<span class="oj">' + l2 + '</span>';
3772            }
3773
3774            return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2));
3775        };
3776
3777        vm.ribbonText = function (item) {
3778            var f = vm.expand(item.flags);
3779
3780            if (f.isBuyNow) return "BUY ONLINE NOW";
3781            else if (f.isPreLaunch) return "PRE-LAUNCH PRICES";
3782            return "";
3783        }
3784
3785        vm.tagText = function (item) {
3786            var r = "";
3787
3788            var f = vm.expand(item.flags);
3789            if (f.isFeatured) r += "FEATURED";
3790            if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED";
3791
3792            return r;
3793        }
3794
3795        vm.stars = function (item) {
3796            var c = false;
3797            var o = "";
3798            for (var i = 1; i <= 5; i++) {
3799                if (i <= item.score) {
3800                    o += `<span>
3801        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
3802            <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 
380217.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
3803        </svg>
3804</span>`;
3805                }
3806                else if (item.score % 1 != 0 && !c) {
3807                    o += `<span>
3808        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
3809            <g clip-path="url(#clip0_3090_268795)">
3810                <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
3811                <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14">
3812                    <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
3813                </mask>
3814                <g mask="url(#mask0_3090_268795)">
3815                    <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" />
3816                </g>
3817            </g>
3818            <defs>
3819                <clipPath>
3820                    <rect width="20" height="20" fill="white" />
3821                </clipPath>
3822            </defs>
3823        </svg>
3824</span>`;
3825                    c = true;
3826                }
3827                else {
3828                    o += `<span>
3829        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
3830            <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
3831        </svg>
3832</span>`;
3833                }
3834            }
3835
3836            o += " " + item.cnt;
3837
3838            return o;
3839        }
3840
3841        vm.img = function (item) {
3842            if (self.id == "tb") {
3843                if (item.logo === undefined || item.logo == null || item.logo == "")
3844                    return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png";
3845
3846                return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo);
3847            }
3848            else {
3849                if (item.logo === undefined || item.logo == null || item.logo == "") {
3850                    return "";
3851                }
3852
3853                return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo);
3854            }
3855        };
3856
3857
3858        vm.preventclick = false;
3859
3860        vm.devUrl = function (item) {
3861            return "/" + item.url;
3862        }
3863
3864        vm.trackReservedSpot = function (obj) {
3865            if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) {
3866                window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' });
3867            }
3868            window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' });
3869            return true;
3870        }
3871
3872        ko.applyBindings(vm, document.getElementById("ps"));
3873
3874        self.checks = function () {
3875
3876            var scrolled = $("#ps .itemArea")[0].scrollLeft;
3877
3878            if (scrolled === 0) {
3879                self.left.addClass('arrow-btn-disabled');
3880            } else {
3881                self.left.removeClass('arrow-btn-disabled');
3882            }
3883
3884            var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width();
3885
3886            if (scrolled >= max) {
3887                self.right.addClass('arrow-btn-disabled');
3888            }
3889            else {
3890                self.right.removeClass('arrow-btn-disabled');
3891            }
3892
3893            $.each(self.slider.children(), function (i, item) {
3894                isElementVisible($(item), false, false);
3895            });
3896        }
3897
3898         // start drag
3899         self.drgS = function (event) {
3900             self.dragging = true;
3901             self.allowClicks = true;
3902
3903             self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX;
3904             self.transAtDrag = self.trans;
3905
3906             self.totDrag = 0;
3907         }
3908
3909
3910        // move drag
3911         self.drgM = function (event) {
3912             if (!self.dragging) return false;
3913
3914             self.trans = $("#ps .itemArea")[0].scrollLeft;
3915
3916             self.checks();
3917         }
3918
3919        // end drag
3920         self.drgE = function (event) {
3921
3922             if (self.dragAtX === undefined) {
3923                 return false;
3924             }
3925
3926             self.dragging = false;
3927
3928             self.checks();
3929         }
3930
3931        // event handler
3932         self.drg = function (event) {
3933
3934             switch (event.data.action) {
3935                 case 'start':
3936                     self.drgS(event.originalEvent || event);
3937                     break;
3938                 case 'move':
3939                     self.drgM(event.originalEvent || event);
3940                     break;
3941                 case 'end':
3942                     self.drgE(event.originalEvent || event);
3943                     break;
3944             }
3945         }
3946
3947    // click handler
3948        self.clickLeft = function () {
3949        var container = $("#ps .itemArea");
3950        self.trans = container[0].scrollLeft;
3951        var iw = self.slider.children().width() + gapBetweenSliderItems;
3952        var r = self.trans % iw;
3953        var pastHalf = Math.abs(r) / iw >= 0.5;
3954
3955        if (pastHalf) {
3956            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r;
3957        }
3958        else {
3959            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw);
3960        }
3961
3962            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
3963    }
3964    self.left.on('click', self.clickLeft);
3965
3966            // click handler
3967        self.clickRight = function () {
3968            var container = $("#ps .itemArea");
3969            self.trans = container[0].scrollLeft;
3970            var iw = self.slider.children().width() + gapBetweenSliderItems;
3971            var r = self.trans % iw;
3972            var pastHalf = Math.abs(r) / iw >= 0.5;
3973
3974            if (pastHalf) {
3975                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw);
3976            }
3977            else {
3978                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r);
3979                }
3980
3981            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
3982        }
3983        self.right.on('click', self.clickRight);
3984
3985            // attach slider events
3986        self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg);
3987        self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg);
3988        self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
3989        self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg);
3990
3991        function trackVisibleImpression(d) {//on load depending on device size we track the items
3992            var devIds = [];
3993            d.map(function (item, i) {
3994                if ($(window).width() > 768) {
3995                    var num = 4;
3996                    if ($(window).width() > 768 && $(window).width() < 992) {
3997                        num = 3;
3998                    }
3999                    if (i < num) {
4000                        item.imp = 1;
4001                        devIds.push(item.id);
4002                    }
4003                    else {
4004                        item.imp = 0;
4005                    }
4006                }
4007                else {
4008                    if (i == 0) {
4009                        item.imp = 1;
4010                        devIds.push(item.id);
4011                    }
4012                    else {
4013                        item.imp = 0;
4014                    }
4015                }
4016                vm.fDevs.push(item);
4017            });
4018
4019            if (devIds.length > 0) {
4020                $.ajax({
4021                    type: "POST",
4022                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
4023                    data: {
4024                        devIDs: devIds
4025                    }
4026                });
4027            }
4028        }
4029        function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track
4030            var pRect = $("#fd")[0].getBoundingClientRect();
4031            var rect = el[0].getBoundingClientRect();
4032            if (isClick != true) {//for drag event
4033                if (rect.right + rect.width <= pRect.right) {
4034                    var id = el.next().find(".devcon").attr("dataid");
4035                    vm.fDevs.map(function (item) {
4036                        if (item.id == id) {
4037                            if (item.imp != 1) {
4038                                item.imp = 1;
4039                                $.ajax({
4040                                    type: "POST",
4041                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
4042                                    data: {
4043                                        devIDs: id
4044                                    }
4045                                });
4046                            }
4047                        }
4048
4049                    });
4050                }
4051            } else {//for click on arrow
4052                if (rect.right <= pRect.right) {
4053                    var id = el.next().find(".devcon").attr("dataid");
4054                    vm.fDevs.map(function (item) {
4055                        if (item.id == id) {
4056                            if (item.imp != 1) {
4057                                item.imp = 1;
4058                                $.ajax({
4059                                    type: "POST",
4060                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
4061                                    data: {
4062                                        devIDs: id
4063                                    }
4064                                });
4065                            }
4066                        }
4067
4068                    });
4069                }
4070            }
4071
4072        }
4073        })()
4074</script>
vendor: 2 bytes, line 4074
4074
4075<script type="text/javascript">
4076    (function () {
4077        var self = {};
4078        window["mn"] = self;
4079
4080        // slider setup
4081        self.id = "mn";
4082        self.slider = $("#mn .items");
4083        self.left = $("#mn .leftArrow");
4084        self.right = $("#mn .rightArrow");
4085        self.scrolling = false;
4086        self.newDrag = false;
4087        self.dragging = false;
4088        self.totDrag = 0;
4089        self.allowClicks = true;
4090        self.atEdge;
4091        self.trans = 0;
4092        self.transAtDrag = 0;
4093        self.img = $("#mn .img-slider");
4094        self.transType = "transform"; //may need to replace with specific prefix for other platforms
4095
4096        //setup vm
4097        var vm = self.vm = {};
4098        vm.title = ko.observable();
4099        vm.data = ko.observable([]);
4100        vm.fDevs = [];
4101
4102        var gapBetweenSliderItems = 30;
4103        var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3;
4104
4105        var location = bbh.location.getUserLocation();
4106
4107        if (self.id === 'fd') {
4108            $.ajax({
4109                url: "/bbhAjax/home/slider/fd",
4110                type: "POST",
4111                dataType: "json",
4112                data: {
4113                    city: encodeURI(location.City),
4114                    state: encodeURI(location.State),
4115                    country: encodeURI(location.Country),
4116                    lat: encodeURI(location.Latitude),
4117                    lng: encodeURI(location.Longitude),
4118                    country: encodeURI(location.Country),
4119                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
4120                },
4121                success: function (d) {
4122                    vm.data(d);
4123                    vm.title("Featured new home communities");
4124                    trackVisibleImpression(d);
4125                    if (d.length > maxSlidersItems) {
4126                        self.right.removeClass('arrow-btn-disabled');
4127                    }
4128                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
4129                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
4130                }
4131            });
4132        }
4133        else {
4134            $.ajax({
4135                url: "/bbhAjax/home/slider/mn",
4136                type: "POST",
4137                dataType: "json",
4138                data: {
4139                    city: encodeURI(location.City),
4140                    state: encodeURI(location.State),
4141                    country: encodeURI(location.Country),
4142                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
4143                },
4144                success: function (d) {
4145                    vm.data(d);
4146                    if (d.length > maxSlidersItems) {
4147                        self.right.removeClass('arrow-btn-disabled');
4148                    }
4149                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
4150                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
4151                    switch (self.id) {
4152                        case "td":
4153                            if (d !== undefined && d != null && d.length > 0)
4154                                vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city));
4155                            break;
4156                        case "pa":
4157                            vm.title("Pre-launch VIP pricing access");
4158                            if (d.length > 3) {
4159                                $('.more-communities-section').removeClass('nodisplay');
4160                                $('.builders-section').removeClass('section-divider');
4161                            }
4162                            break;
4163                        case "nh":
4164                            vm.title("New homes recently added");
4165                            break;
4166                        case "ps":
4167                            vm.title("New communities launching soon");
4168                            break;
4169                        case "mn":
4170                            vm.title("Move-in-ready homes");
4171                            if (d.length > 3) {
4172                                $('.more-communities-section').removeClass('nodisplay');
4173                                $('.builders-section').removeClass('section-divider');
4174                            }
4175                            break;
4176                        case "tb":
4177                            vm.title("Top new construction builders");
4178                            break;
4179                        default:
4180                            break;
4181                    }
4182                }
4183            });
4184
4185        }
4186        //functions to interpret bits and bytes
4187        vm.expand = function (flags) {
4188            return {
4189                isBuyNow: flags & 1,
4190                isPreLaunch: flags & 2,
4191                isVerified: flags & 4,
4192                isFeatured: flags & 8
4193            }
4194        };
4195
4196        vm.loc = function (item) {
4197            return item.hood === undefined ? item.city : item.hood + ', ' + item.city;
4198        }
4199
4200        vm.money = function (num) {
4201            if (isNaN(num)) return num;
4202            return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,');
4203        };
4204
4205        vm.priceText = function (item) {
4206
4207            var l1, l2;
4208            var oj1 = false, oj2 = false;
4209
4210            if(item.saleId !== undefined) switch (item.saleId) {
4211                case 1: l1 = "Register now"; break;
4212                case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break;
4213                case 3: l1 = "Developer sold out"; oj1 = true; break;
4214                case 4: l1 = "Pending"; break;
4215                default: break;
4216            }
4217
4218            if (item.rentId !== undefined) switch (item.rentId) {
4219                case 1: l2 = "Register Now (Rentals)"; break;
4220                case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break;
4221                case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break;
4222                case 4: l2 = "Rentals Pending"; break;
4223                default: break;
4224            }
4225
4226            if (l1 !== undefined && oj1) {
4227                l1 = '<span class="oj">' + l1 + '</span>';
4228            }
4229            if (l2 !== undefined && oj2) {
4230                l2 = '<span class="oj">' + l2 + '</span>';
4231            }
4232
4233            return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2));
4234        };
4235
4236        vm.ribbonText = function (item) {
4237            var f = vm.expand(item.flags);
4238
4239            if (f.isBuyNow) return "BUY ONLINE NOW";
4240            else if (f.isPreLaunch) return "PRE-LAUNCH PRICES";
4241            return "";
4242        }
4243
4244        vm.tagText = function (item) {
4245            var r = "";
4246
4247            var f = vm.expand(item.flags);
4248            if (f.isFeatured) r += "FEATURED";
4249            if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED";
4250
4251            return r;
4252        }
4253
4254        vm.stars = function (item) {
4255            var c = false;
4256            var o = "";
4257            for (var i = 1; i <= 5; i++) {
4258                if (i <= item.score) {
4259                    o += `<span>
4260        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
4261            <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 
426117.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
4262        </svg>
4263</span>`;
4264                }
4265                else if (item.score % 1 != 0 && !c) {
4266                    o += `<span>
4267        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
4268            <g clip-path="url(#clip0_3090_268795)">
4269                <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
4270                <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14">
4271                    <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
4272                </mask>
4273                <g mask="url(#mask0_3090_268795)">
4274                    <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" />
4275                </g>
4276            </g>
4277            <defs>
4278                <clipPath>
4279                    <rect width="20" height="20" fill="white" />
4280                </clipPath>
4281            </defs>
4282        </svg>
4283</span>`;
4284                    c = true;
4285                }
4286                else {
4287                    o += `<span>
4288        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
4289            <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
4290        </svg>
4291</span>`;
4292                }
4293            }
4294
4295            o += " " + item.cnt;
4296
4297            return o;
4298        }
4299
4300        vm.img = function (item) {
4301            if (self.id == "tb") {
4302                if (item.logo === undefined || item.logo == null || item.logo == "")
4303                    return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png";
4304
4305                return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo);
4306            }
4307            else {
4308                if (item.logo === undefined || item.logo == null || item.logo == "") {
4309                    return "";
4310                }
4311
4312                return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo);
4313            }
4314        };
4315
4316
4317        vm.preventclick = false;
4318
4319        vm.devUrl = function (item) {
4320            return "/" + item.url;
4321        }
4322
4323        vm.trackReservedSpot = function (obj) {
4324            if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) {
4325                window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' });
4326            }
4327            window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' });
4328            return true;
4329        }
4330
4331        ko.applyBindings(vm, document.getElementById("mn"));
4332
4333        self.checks = function () {
4334
4335            var scrolled = $("#mn .itemArea")[0].scrollLeft;
4336
4337            if (scrolled === 0) {
4338                self.left.addClass('arrow-btn-disabled');
4339            } else {
4340                self.left.removeClass('arrow-btn-disabled');
4341            }
4342
4343            var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width();
4344
4345            if (scrolled >= max) {
4346                self.right.addClass('arrow-btn-disabled');
4347            }
4348            else {
4349                self.right.removeClass('arrow-btn-disabled');
4350            }
4351
4352            $.each(self.slider.children(), function (i, item) {
4353                isElementVisible($(item), false, false);
4354            });
4355        }
4356
4357         // start drag
4358         self.drgS = function (event) {
4359             self.dragging = true;
4360             self.allowClicks = true;
4361
4362             self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX;
4363             self.transAtDrag = self.trans;
4364
4365             self.totDrag = 0;
4366         }
4367
4368
4369        // move drag
4370         self.drgM = function (event) {
4371             if (!self.dragging) return false;
4372
4373             self.trans = $("#mn .itemArea")[0].scrollLeft;
4374
4375             self.checks();
4376         }
4377
4378        // end drag
4379         self.drgE = function (event) {
4380
4381             if (self.dragAtX === undefined) {
4382                 return false;
4383             }
4384
4385             self.dragging = false;
4386
4387             self.checks();
4388         }
4389
4390        // event handler
4391         self.drg = function (event) {
4392
4393             switch (event.data.action) {
4394                 case 'start':
4395                     self.drgS(event.originalEvent || event);
4396                     break;
4397                 case 'move':
4398                     self.drgM(event.originalEvent || event);
4399                     break;
4400                 case 'end':
4401                     self.drgE(event.originalEvent || event);
4402                     break;
4403             }
4404         }
4405
4406    // click handler
4407        self.clickLeft = function () {
4408        var container = $("#mn .itemArea");
4409        self.trans = container[0].scrollLeft;
4410        var iw = self.slider.children().width() + gapBetweenSliderItems;
4411        var r = self.trans % iw;
4412        var pastHalf = Math.abs(r) / iw >= 0.5;
4413
4414        if (pastHalf) {
4415            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r;
4416        }
4417        else {
4418            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw);
4419        }
4420
4421            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
4422    }
4423    self.left.on('click', self.clickLeft);
4424
4425            // click handler
4426        self.clickRight = function () {
4427            var container = $("#mn .itemArea");
4428            self.trans = container[0].scrollLeft;
4429            var iw = self.slider.children().width() + gapBetweenSliderItems;
4430            var r = self.trans % iw;
4431            var pastHalf = Math.abs(r) / iw >= 0.5;
4432
4433            if (pastHalf) {
4434                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw);
4435            }
4436            else {
4437                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r);
4438                }
4439
4440            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
4441        }
4442        self.right.on('click', self.clickRight);
4443
4444            // attach slider events
4445        self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg);
4446        self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg);
4447        self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
4448        self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg);
4449
4450        function trackVisibleImpression(d) {//on load depending on device size we track the items
4451            var devIds = [];
4452            d.map(function (item, i) {
4453                if ($(window).width() > 768) {
4454                    var num = 4;
4455                    if ($(window).width() > 768 && $(window).width() < 992) {
4456                        num = 3;
4457                    }
4458                    if (i < num) {
4459                        item.imp = 1;
4460                        devIds.push(item.id);
4461                    }
4462                    else {
4463                        item.imp = 0;
4464                    }
4465                }
4466                else {
4467                    if (i == 0) {
4468                        item.imp = 1;
4469                        devIds.push(item.id);
4470                    }
4471                    else {
4472                        item.imp = 0;
4473                    }
4474                }
4475                vm.fDevs.push(item);
4476            });
4477
4478            if (devIds.length > 0) {
4479                $.ajax({
4480                    type: "POST",
4481                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
4482                    data: {
4483                        devIDs: devIds
4484                    }
4485                });
4486            }
4487        }
4488        function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track
4489            var pRect = $("#fd")[0].getBoundingClientRect();
4490            var rect = el[0].getBoundingClientRect();
4491            if (isClick != true) {//for drag event
4492                if (rect.right + rect.width <= pRect.right) {
4493                    var id = el.next().find(".devcon").attr("dataid");
4494                    vm.fDevs.map(function (item) {
4495                        if (item.id == id) {
4496                            if (item.imp != 1) {
4497                                item.imp = 1;
4498                                $.ajax({
4499                                    type: "POST",
4500                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
4501                                    data: {
4502                                        devIDs: id
4503                                    }
4504                                });
4505                            }
4506                        }
4507
4508                    });
4509                }
4510            } else {//for click on arrow
4511                if (rect.right <= pRect.right) {
4512                    var id = el.next().find(".devcon").attr("dataid");
4513                    vm.fDevs.map(function (item) {
4514                        if (item.id == id) {
4515                            if (item.imp != 1) {
4516                                item.imp = 1;
4517                                $.ajax({
4518                                    type: "POST",
4519                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
4520                                    data: {
4521                                        devIDs: id
4522                                    }
4523                                });
4524                            }
4525                        }
4526
4527                    });
4528                }
4529            }
4530
4531        }
4532        })()
4533</script>
vendor: 2 bytes, line 4533
4533
4534<script type="text/javascript">
4535    (function () {
4536        var self = {};
4537        window["pa"] = self;
4538
4539        // slider setup
4540        self.id = "pa";
4541        self.slider = $("#pa .items");
4542        self.left = $("#pa .leftArrow");
4543        self.right = $("#pa .rightArrow");
4544        self.scrolling = false;
4545        self.newDrag = false;
4546        self.dragging = false;
4547        self.totDrag = 0;
4548        self.allowClicks = true;
4549        self.atEdge;
4550        self.trans = 0;
4551        self.transAtDrag = 0;
4552        self.img = $("#pa .img-slider");
4553        self.transType = "transform"; //may need to replace with specific prefix for other platforms
4554
4555        //setup vm
4556        var vm = self.vm = {};
4557        vm.title = ko.observable();
4558        vm.data = ko.observable([]);
4559        vm.fDevs = [];
4560
4561        var gapBetweenSliderItems = 30;
4562        var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3;
4563
4564        var location = bbh.location.getUserLocation();
4565
4566        if (self.id === 'fd') {
4567            $.ajax({
4568                url: "/bbhAjax/home/slider/fd",
4569                type: "POST",
4570                dataType: "json",
4571                data: {
4572                    city: encodeURI(location.City),
4573                    state: encodeURI(location.State),
4574                    country: encodeURI(location.Country),
4575                    lat: encodeURI(location.Latitude),
4576                    lng: encodeURI(location.Longitude),
4577                    country: encodeURI(location.Country),
4578                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
4579                },
4580                success: function (d) {
4581                    vm.data(d);
4582                    vm.title("Featured new home communities");
4583                    trackVisibleImpression(d);
4584                    if (d.length > maxSlidersItems) {
4585                        self.right.removeClass('arrow-btn-disabled');
4586                    }
4587                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
4588                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
4589                }
4590            });
4591        }
4592        else {
4593            $.ajax({
4594                url: "/bbhAjax/home/slider/pa",
4595                type: "POST",
4596                dataType: "json",
4597                data: {
4598                    city: encodeURI(location.City),
4599                    state: encodeURI(location.State),
4600                    country: encodeURI(location.Country),
4601                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
4602                },
4603                success: function (d) {
4604                    vm.data(d);
4605                    if (d.length > maxSlidersItems) {
4606                        self.right.removeClass('arrow-btn-disabled');
4607                    }
4608                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
4609                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
4610                    switch (self.id) {
4611                        case "td":
4612                            if (d !== undefined && d != null && d.length > 0)
4613                                vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city));
4614                            break;
4615                        case "pa":
4616                            vm.title("Pre-launch VIP pricing access");
4617                            if (d.length > 3) {
4618                                $('.more-communities-section').removeClass('nodisplay');
4619                                $('.builders-section').removeClass('section-divider');
4620                            }
4621                            break;
4622                        case "nh":
4623                            vm.title("New homes recently added");
4624                            break;
4625                        case "ps":
4626                            vm.title("New communities launching soon");
4627                            break;
4628                        case "mn":
4629                            vm.title("Move-in-ready homes");
4630                            if (d.length > 3) {
4631                                $('.more-communities-section').removeClass('nodisplay');
4632                                $('.builders-section').removeClass('section-divider');
4633                            }
4634                            break;
4635                        case "tb":
4636                            vm.title("Top new construction builders");
4637                            break;
4638                        default:
4639                            break;
4640                    }
4641                }
4642            });
4643
4644        }
4645        //functions to interpret bits and bytes
4646        vm.expand = function (flags) {
4647            return {
4648                isBuyNow: flags & 1,
4649                isPreLaunch: flags & 2,
4650                isVerified: flags & 4,
4651                isFeatured: flags & 8
4652            }
4653        };
4654
4655        vm.loc = function (item) {
4656            return item.hood === undefined ? item.city : item.hood + ', ' + item.city;
4657        }
4658
4659        vm.money = function (num) {
4660            if (isNaN(num)) return num;
4661            return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,');
4662        };
4663
4664        vm.priceText = function (item) {
4665
4666            var l1, l2;
4667            var oj1 = false, oj2 = false;
4668
4669            if(item.saleId !== undefined) switch (item.saleId) {
4670                case 1: l1 = "Register now"; break;
4671                case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break;
4672                case 3: l1 = "Developer sold out"; oj1 = true; break;
4673                case 4: l1 = "Pending"; break;
4674                default: break;
4675            }
4676
4677            if (item.rentId !== undefined) switch (item.rentId) {
4678                case 1: l2 = "Register Now (Rentals)"; break;
4679                case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break;
4680                case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break;
4681                case 4: l2 = "Rentals Pending"; break;
4682                default: break;
4683            }
4684
4685            if (l1 !== undefined && oj1) {
4686                l1 = '<span class="oj">' + l1 + '</span>';
4687            }
4688            if (l2 !== undefined && oj2) {
4689                l2 = '<span class="oj">' + l2 + '</span>';
4690            }
4691
4692            return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2));
4693        };
4694
4695        vm.ribbonText = function (item) {
4696            var f = vm.expand(item.flags);
4697
4698            if (f.isBuyNow) return "BUY ONLINE NOW";
4699            else if (f.isPreLaunch) return "PRE-LAUNCH PRICES";
4700            return "";
4701        }
4702
4703        vm.tagText = function (item) {
4704            var r = "";
4705
4706            var f = vm.expand(item.flags);
4707            if (f.isFeatured) r += "FEATURED";
4708            if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED";
4709
4710            return r;
4711        }
4712
4713        vm.stars = function (item) {
4714            var c = false;
4715            var o = "";
4716            for (var i = 1; i <= 5; i++) {
4717                if (i <= item.score) {
4718                    o += `<span>
4719        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
4720            <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 
472017.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
4721        </svg>
4722</span>`;
4723                }
4724                else if (item.score % 1 != 0 && !c) {
4725                    o += `<span>
4726        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
4727            <g clip-path="url(#clip0_3090_268795)">
4728                <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
4729                <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14">
4730                    <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
4731                </mask>
4732                <g mask="url(#mask0_3090_268795)">
4733                    <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" />
4734                </g>
4735            </g>
4736            <defs>
4737                <clipPath>
4738                    <rect width="20" height="20" fill="white" />
4739                </clipPath>
4740            </defs>
4741        </svg>
4742</span>`;
4743                    c = true;
4744                }
4745                else {
4746                    o += `<span>
4747        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
4748            <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
4749        </svg>
4750</span>`;
4751                }
4752            }
4753
4754            o += " " + item.cnt;
4755
4756            return o;
4757        }
4758
4759        vm.img = function (item) {
4760            if (self.id == "tb") {
4761                if (item.logo === undefined || item.logo == null || item.logo == "")
4762                    return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png";
4763
4764                return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo);
4765            }
4766            else {
4767                if (item.logo === undefined || item.logo == null || item.logo == "") {
4768                    return "";
4769                }
4770
4771                return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo);
4772            }
4773        };
4774
4775
4776        vm.preventclick = false;
4777
4778        vm.devUrl = function (item) {
4779            return "/" + item.url;
4780        }
4781
4782        vm.trackReservedSpot = function (obj) {
4783            if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) {
4784                window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' });
4785            }
4786            window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' });
4787            return true;
4788        }
4789
4790        ko.applyBindings(vm, document.getElementById("pa"));
4791
4792        self.checks = function () {
4793
4794            var scrolled = $("#pa .itemArea")[0].scrollLeft;
4795
4796            if (scrolled === 0) {
4797                self.left.addClass('arrow-btn-disabled');
4798            } else {
4799                self.left.removeClass('arrow-btn-disabled');
4800            }
4801
4802            var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width();
4803
4804            if (scrolled >= max) {
4805                self.right.addClass('arrow-btn-disabled');
4806            }
4807            else {
4808                self.right.removeClass('arrow-btn-disabled');
4809            }
4810
4811            $.each(self.slider.children(), function (i, item) {
4812                isElementVisible($(item), false, false);
4813            });
4814        }
4815
4816         // start drag
4817         self.drgS = function (event) {
4818             self.dragging = true;
4819             self.allowClicks = true;
4820
4821             self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX;
4822             self.transAtDrag = self.trans;
4823
4824             self.totDrag = 0;
4825         }
4826
4827
4828        // move drag
4829         self.drgM = function (event) {
4830             if (!self.dragging) return false;
4831
4832             self.trans = $("#pa .itemArea")[0].scrollLeft;
4833
4834             self.checks();
4835         }
4836
4837        // end drag
4838         self.drgE = function (event) {
4839
4840             if (self.dragAtX === undefined) {
4841                 return false;
4842             }
4843
4844             self.dragging = false;
4845
4846             self.checks();
4847         }
4848
4849        // event handler
4850         self.drg = function (event) {
4851
4852             switch (event.data.action) {
4853                 case 'start':
4854                     self.drgS(event.originalEvent || event);
4855                     break;
4856                 case 'move':
4857                     self.drgM(event.originalEvent || event);
4858                     break;
4859                 case 'end':
4860                     self.drgE(event.originalEvent || event);
4861                     break;
4862             }
4863         }
4864
4865    // click handler
4866        self.clickLeft = function () {
4867        var container = $("#pa .itemArea");
4868        self.trans = container[0].scrollLeft;
4869        var iw = self.slider.children().width() + gapBetweenSliderItems;
4870        var r = self.trans % iw;
4871        var pastHalf = Math.abs(r) / iw >= 0.5;
4872
4873        if (pastHalf) {
4874            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r;
4875        }
4876        else {
4877            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw);
4878        }
4879
4880            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
4881    }
4882    self.left.on('click', self.clickLeft);
4883
4884            // click handler
4885        self.clickRight = function () {
4886            var container = $("#pa .itemArea");
4887            self.trans = container[0].scrollLeft;
4888            var iw = self.slider.children().width() + gapBetweenSliderItems;
4889            var r = self.trans % iw;
4890            var pastHalf = Math.abs(r) / iw >= 0.5;
4891
4892            if (pastHalf) {
4893                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw);
4894            }
4895            else {
4896                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r);
4897                }
4898
4899            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
4900        }
4901        self.right.on('click', self.clickRight);
4902
4903            // attach slider events
4904        self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg);
4905        self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg);
4906        self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
4907        self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg);
4908
4909        function trackVisibleImpression(d) {//on load depending on device size we track the items
4910            var devIds = [];
4911            d.map(function (item, i) {
4912                if ($(window).width() > 768) {
4913                    var num = 4;
4914                    if ($(window).width() > 768 && $(window).width() < 992) {
4915                        num = 3;
4916                    }
4917                    if (i < num) {
4918                        item.imp = 1;
4919                        devIds.push(item.id);
4920                    }
4921                    else {
4922                        item.imp = 0;
4923                    }
4924                }
4925                else {
4926                    if (i == 0) {
4927                        item.imp = 1;
4928                        devIds.push(item.id);
4929                    }
4930                    else {
4931                        item.imp = 0;
4932                    }
4933                }
4934                vm.fDevs.push(item);
4935            });
4936
4937            if (devIds.length > 0) {
4938                $.ajax({
4939                    type: "POST",
4940                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
4941                    data: {
4942                        devIDs: devIds
4943                    }
4944                });
4945            }
4946        }
4947        function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track
4948            var pRect = $("#fd")[0].getBoundingClientRect();
4949            var rect = el[0].getBoundingClientRect();
4950            if (isClick != true) {//for drag event
4951                if (rect.right + rect.width <= pRect.right) {
4952                    var id = el.next().find(".devcon").attr("dataid");
4953                    vm.fDevs.map(function (item) {
4954                        if (item.id == id) {
4955                            if (item.imp != 1) {
4956                                item.imp = 1;
4957                                $.ajax({
4958                                    type: "POST",
4959                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
4960                                    data: {
4961                                        devIDs: id
4962                                    }
4963                                });
4964                            }
4965                        }
4966
4967                    });
4968                }
4969            } else {//for click on arrow
4970                if (rect.right <= pRect.right) {
4971                    var id = el.next().find(".devcon").attr("dataid");
4972                    vm.fDevs.map(function (item) {
4973                        if (item.id == id) {
4974                            if (item.imp != 1) {
4975                                item.imp = 1;
4976                                $.ajax({
4977                                    type: "POST",
4978                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
4979                                    data: {
4980                                        devIDs: id
4981                                    }
4982                                });
4983                            }
4984                        }
4985
4986                    });
4987                }
4988            }
4989
4990        }
4991        })()
4992</script>
vendor: 2 bytes, line 4992
4992
4993<script type="text/javascript">
4994    (function () {
4995        var self = {};
4996        window["tb"] = self;
4997
4998        // slider setup
4999        self.id = "tb";
5000        self.slider = $("#tb .items");
5001        self.left = $("#tb .leftArrow");
5002        self.right = $("#tb .rightArrow");
5003        self.scrolling = false;
5004        self.newDrag = false;
5005        self.dragging = false;
5006        self.totDrag = 0;
5007        self.allowClicks = true;
5008        self.atEdge;
5009        self.trans = 0;
5010        self.transAtDrag = 0;
5011        self.img = $("#tb .img-slider");
5012        self.transType = "transform"; //may need to replace with specific prefix for other platforms
5013
5014        //setup vm
5015        var vm = self.vm = {};
5016        vm.title = ko.observable();
5017        vm.data = ko.observable([]);
5018        vm.fDevs = [];
5019
5020        var gapBetweenSliderItems = 30;
5021        var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3;
5022
5023        var location = bbh.location.getUserLocation();
5024
5025        if (self.id === 'fd') {
5026            $.ajax({
5027                url: "/bbhAjax/home/slider/fd",
5028                type: "POST",
5029                dataType: "json",
5030                data: {
5031                    city: encodeURI(location.City),
5032                    state: encodeURI(location.State),
5033                    country: encodeURI(location.Country),
5034                    lat: encodeURI(location.Latitude),
5035                    lng: encodeURI(location.Longitude),
5036                    country: encodeURI(location.Country),
5037                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
5038                },
5039                success: function (d) {
5040                    vm.data(d);
5041                    vm.title("Featured new home communities");
5042                    trackVisibleImpression(d);
5043                    if (d.length > maxSlidersItems) {
5044                        self.right.removeClass('arrow-btn-disabled');
5045                    }
5046                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
5047                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
5048                }
5049            });
5050        }
5051        else {
5052            $.ajax({
5053                url: "/bbhAjax/home/slider/tb",
5054                type: "POST",
5055                dataType: "json",
5056                data: {
5057                    city: encodeURI(location.City),
5058                    state: encodeURI(location.State),
5059                    country: encodeURI(location.Country),
5060                    routeCountry: bbh.urls.regions.GetRouteCountryCode()
5061                },
5062                success: function (d) {
5063                    vm.data(d);
5064                    if (d.length > maxSlidersItems) {
5065                        self.right.removeClass('arrow-btn-disabled');
5066                    }
5067                    self.slider.width((self.slider.children().width() + 2) * self.slider.children().length);
5068                    $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); });
5069                    switch (self.id) {
5070                        case "td":
5071                            if (d !== undefined && d != null && d.length > 0)
5072                                vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city));
5073                            break;
5074                        case "pa":
5075                            vm.title("Pre-launch VIP pricing access");
5076                            if (d.length > 3) {
5077                                $('.more-communities-section').removeClass('nodisplay');
5078                                $('.builders-section').removeClass('section-divider');
5079                            }
5080                            break;
5081                        case "nh":
5082                            vm.title("New homes recently added");
5083                            break;
5084                        case "ps":
5085                            vm.title("New communities launching soon");
5086                            break;
5087                        case "mn":
5088                            vm.title("Move-in-ready homes");
5089                            if (d.length > 3) {
5090                                $('.more-communities-section').removeClass('nodisplay');
5091                                $('.builders-section').removeClass('section-divider');
5092                            }
5093                            break;
5094                        case "tb":
5095                            vm.title("Top new construction builders");
5096                            break;
5097                        default:
5098                            break;
5099                    }
5100                }
5101            });
5102
5103        }
5104        //functions to interpret bits and bytes
5105        vm.expand = function (flags) {
5106            return {
5107                isBuyNow: flags & 1,
5108                isPreLaunch: flags & 2,
5109                isVerified: flags & 4,
5110                isFeatured: flags & 8
5111            }
5112        };
5113
5114        vm.loc = function (item) {
5115            return item.hood === undefined ? item.city : item.hood + ', ' + item.city;
5116        }
5117
5118        vm.money = function (num) {
5119            if (isNaN(num)) return num;
5120            return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,');
5121        };
5122
5123        vm.priceText = function (item) {
5124
5125            var l1, l2;
5126            var oj1 = false, oj2 = false;
5127
5128            if(item.saleId !== undefined) switch (item.saleId) {
5129                case 1: l1 = "Register now"; break;
5130                case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break;
5131                case 3: l1 = "Developer sold out"; oj1 = true; break;
5132                case 4: l1 = "Pending"; break;
5133                default: break;
5134            }
5135
5136            if (item.rentId !== undefined) switch (item.rentId) {
5137                case 1: l2 = "Register Now (Rentals)"; break;
5138                case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break;
5139                case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break;
5140                case 4: l2 = "Rentals Pending"; break;
5141                default: break;
5142            }
5143
5144            if (l1 !== undefined && oj1) {
5145                l1 = '<span class="oj">' + l1 + '</span>';
5146            }
5147            if (l2 !== undefined && oj2) {
5148                l2 = '<span class="oj">' + l2 + '</span>';
5149            }
5150
5151            return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2));
5152        };
5153
5154        vm.ribbonText = function (item) {
5155            var f = vm.expand(item.flags);
5156
5157            if (f.isBuyNow) return "BUY ONLINE NOW";
5158            else if (f.isPreLaunch) return "PRE-LAUNCH PRICES";
5159            return "";
5160        }
5161
5162        vm.tagText = function (item) {
5163            var r = "";
5164
5165            var f = vm.expand(item.flags);
5166            if (f.isFeatured) r += "FEATURED";
5167            if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED";
5168
5169            return r;
5170        }
5171
5172        vm.stars = function (item) {
5173            var c = false;
5174            var o = "";
5175            for (var i = 1; i <= 5; i++) {
5176                if (i <= item.score) {
5177                    o += `<span>
5178        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
5179            <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 
517917.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
5180        </svg>
5181</span>`;
5182                }
5183                else if (item.score % 1 != 0 && !c) {
5184                    o += `<span>
5185        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
5186            <g clip-path="url(#clip0_3090_268795)">
5187                <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
5188                <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14">
5189                    <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" />
5190                </mask>
5191                <g mask="url(#mask0_3090_268795)">
5192                    <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" />
5193                </g>
5194            </g>
5195            <defs>
5196                <clipPath>
5197                    <rect width="20" height="20" fill="white" />
5198                </clipPath>
5199            </defs>
5200        </svg>
5201</span>`;
5202                    c = true;
5203                }
5204                else {
5205                    o += `<span>
5206        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
5207            <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" />
5208        </svg>
5209</span>`;
5210                }
5211            }
5212
5213            o += " " + item.cnt;
5214
5215            return o;
5216        }
5217
5218        vm.img = function (item) {
5219            if (self.id == "tb") {
5220                if (item.logo === undefined || item.logo == null || item.logo == "")
5221                    return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png";
5222
5223                return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo);
5224            }
5225            else {
5226                if (item.logo === undefined || item.logo == null || item.logo == "") {
5227                    return "";
5228                }
5229
5230                return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo);
5231            }
5232        };
5233
5234
5235        vm.preventclick = false;
5236
5237        vm.devUrl = function (item) {
5238            return "/" + item.url;
5239        }
5240
5241        vm.trackReservedSpot = function (obj) {
5242            if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) {
5243                window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' });
5244            }
5245            window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' });
5246            return true;
5247        }
5248
5249        ko.applyBindings(vm, document.getElementById("tb"));
5250
5251        self.checks = function () {
5252
5253            var scrolled = $("#tb .itemArea")[0].scrollLeft;
5254
5255            if (scrolled === 0) {
5256                self.left.addClass('arrow-btn-disabled');
5257            } else {
5258                self.left.removeClass('arrow-btn-disabled');
5259            }
5260
5261            var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width();
5262
5263            if (scrolled >= max) {
5264                self.right.addClass('arrow-btn-disabled');
5265            }
5266            else {
5267                self.right.removeClass('arrow-btn-disabled');
5268            }
5269
5270            $.each(self.slider.children(), function (i, item) {
5271                isElementVisible($(item), false, false);
5272            });
5273        }
5274
5275         // start drag
5276         self.drgS = function (event) {
5277             self.dragging = true;
5278             self.allowClicks = true;
5279
5280             self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX;
5281             self.transAtDrag = self.trans;
5282
5283             self.totDrag = 0;
5284         }
5285
5286
5287        // move drag
5288         self.drgM = function (event) {
5289             if (!self.dragging) return false;
5290
5291             self.trans = $("#tb .itemArea")[0].scrollLeft;
5292
5293             self.checks();
5294         }
5295
5296        // end drag
5297         self.drgE = function (event) {
5298
5299             if (self.dragAtX === undefined) {
5300                 return false;
5301             }
5302
5303             self.dragging = false;
5304
5305             self.checks();
5306         }
5307
5308        // event handler
5309         self.drg = function (event) {
5310
5311             switch (event.data.action) {
5312                 case 'start':
5313                     self.drgS(event.originalEvent || event);
5314                     break;
5315                 case 'move':
5316                     self.drgM(event.originalEvent || event);
5317                     break;
5318                 case 'end':
5319                     self.drgE(event.originalEvent || event);
5320                     break;
5321             }
5322         }
5323
5324    // click handler
5325        self.clickLeft = function () {
5326        var container = $("#tb .itemArea");
5327        self.trans = container[0].scrollLeft;
5328        var iw = self.slider.children().width() + gapBetweenSliderItems;
5329        var r = self.trans % iw;
5330        var pastHalf = Math.abs(r) / iw >= 0.5;
5331
5332        if (pastHalf) {
5333            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r;
5334        }
5335        else {
5336            if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw);
5337        }
5338
5339            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
5340    }
5341    self.left.on('click', self.clickLeft);
5342
5343            // click handler
5344        self.clickRight = function () {
5345            var container = $("#tb .itemArea");
5346            self.trans = container[0].scrollLeft;
5347            var iw = self.slider.children().width() + gapBetweenSliderItems;
5348            var r = self.trans % iw;
5349            var pastHalf = Math.abs(r) / iw >= 0.5;
5350
5351            if (pastHalf) {
5352                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw);
5353            }
5354            else {
5355                if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r);
5356                }
5357
5358            container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks);
5359        }
5360        self.right.on('click', self.clickRight);
5361
5362            // attach slider events
5363        self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg);
5364        self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg);
5365        self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
5366        self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg);
5367
5368        function trackVisibleImpression(d) {//on load depending on device size we track the items
5369            var devIds = [];
5370            d.map(function (item, i) {
5371                if ($(window).width() > 768) {
5372                    var num = 4;
5373                    if ($(window).width() > 768 && $(window).width() < 992) {
5374                        num = 3;
5375                    }
5376                    if (i < num) {
5377                        item.imp = 1;
5378                        devIds.push(item.id);
5379                    }
5380                    else {
5381                        item.imp = 0;
5382                    }
5383                }
5384                else {
5385                    if (i == 0) {
5386                        item.imp = 1;
5387                        devIds.push(item.id);
5388                    }
5389                    else {
5390                        item.imp = 0;
5391                    }
5392                }
5393                vm.fDevs.push(item);
5394            });
5395
5396            if (devIds.length > 0) {
5397                $.ajax({
5398                    type: "POST",
5399                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
5400                    data: {
5401                        devIDs: devIds
5402                    }
5403                });
5404            }
5405        }
5406        function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track
5407            var pRect = $("#fd")[0].getBoundingClientRect();
5408            var rect = el[0].getBoundingClientRect();
5409            if (isClick != true) {//for drag event
5410                if (rect.right + rect.width <= pRect.right) {
5411                    var id = el.next().find(".devcon").attr("dataid");
5412                    vm.fDevs.map(function (item) {
5413                        if (item.id == id) {
5414                            if (item.imp != 1) {
5415                                item.imp = 1;
5416                                $.ajax({
5417                                    type: "POST",
5418                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
5419                                    data: {
5420                                        devIDs: id
5421                                    }
5422                                });
5423                            }
5424                        }
5425
5426                    });
5427                }
5428            } else {//for click on arrow
5429                if (rect.right <= pRect.right) {
5430                    var id = el.next().find(".devcon").attr("dataid");
5431                    vm.fDevs.map(function (item) {
5432                        if (item.id == id) {
5433                            if (item.imp != 1) {
5434                                item.imp = 1;
5435                                $.ajax({
5436                                    type: "POST",
5437                                    url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions",
5438                                    data: {
5439                                        devIDs: id
5440                                    }
5441                                });
5442                            }
5443                        }
5444
5445                    });
5446                }
5447            }
5448
5449        }
5450        })()
5451</script>
vendor: 2 bytes, line 5451
5451
5452<script>
5453	 //custom scroller for sidebar
5454	 $('#sidebar').on('mousewheel DOMMouseScroll', function (e) {
5455		 var scrollTo = null;
5456		 if (e.type === 'mousewheel') {
5457			 scrollTo = (e.originalEvent.wheelDelta * -1);
5458		 }
5459		 else if (e.type === 'DOMMouseScroll') {
5460			 scrollTo = 40 * e.originalEvent.detail;
5461		 }
5462		 if (scrollTo) {
5463			 e.preventDefault();
5464			 $(this).scrollTop(scrollTo + $(this).scrollTop());
5465		 }
5466	 });
5467
5468	 var startx = 0;
5469	 var scrollStartPos = 0;
5470	 $('#sidebar').on('touchstart', function (e) {
5471		 var touchobj = e.originalEvent.changedTouches[0];
5472		 startx = parseInt(touchobj.clientX);
5473		 scrollStartPos = this.scrollTop + e.originalEvent.touches[0].pageY;
5474	 });
5475	 $('#sidebar').on('touchmove', function (e) {
5476		 var initialY = e.originalEvent.pageY;
5477		 var touchobj = e.originalEvent.changedTouches[0];
5478		 if (!$('.scroll').has($(e.target)).length) {
5479			 e.preventDefault();
5480		 }
5481		 this.scrollTop = scrollStartPos - e.originalEvent.touches[0].pageY;
5482	 });
5483</script>
5483
5484
5485<script>
5486     let tabletBreakPoint = 991;
5487
5488     $(document.body).on('scroll', footerScrollEvent); // for mobile
5489     $(document).on('scroll', footerScrollEvent); // for tablet
5490
5491     var scrollTimeout;
5492     var scrollLock = false;
5493
5494     function footerScrollEvent() {
5495         clearTimeout(scrollTimeout);
5496         if (scrollLock == false) {
5497             scrollTimeout = setTimeout(footer.scroll.onScroll(true), 30);
5498         }
5499     }
5500
5501     function scrollToParent(parentId) {
5502         if ($(window).width() <= tabletBreakPoint) {
5503             let offSet = $(window).width() < 787 ? 100 : 150;
5504             $([document.documentElement, document.body]).animate({
5505                 scrollTop: document.getElementById(parentId).offsetTop - offSet
5506             }, 500);
5507         }
5508     }
5509
5510     (function () {
5511         $(window).on('resize', function () {
5512             var win = $(this); //this = window
5513             $('#footerArrow').css('bottom', '85px');
5514             if (win.width() >= tabletBreakPoint) {
5515                 if (!$('#footerArrow').hasClass('hide')) {
5516                     $('#footerArrow').addClass('hide');
5517                 }
5518             }
5519         });
5520
5521         $('#showUsCities').on('click', function () {
5522             if ($('#UsCities').hasClass('country-max-height')) {
5523                 $('#UsCities').removeClass('country-max-height');
5524                 $('#showUsCities').find('.show-more-text').text('Show less cities');
5525                 $('#showUsCities').find('.show-more-icon').addClass('rotate-icon');
5526             }
5527             else {
5528                 $('#UsCities').addClass('country-max-height');
5529                 $('#showUsCities').find('.show-more-text').text('Show more cities');
5530                 $('#showUsCities').find('.show-more-icon').removeClass('rotate-icon');
5531                 scrollToParent('UsCities');
5532             }
5533
5534         });
5535         $('#showStates').on('click', function () {
5536             if ($('#UsStates').hasClass('state-province-max-height')) {
5537                 $('#UsStates').removeClass('state-province-max-height');
5538                 $('#showStates').find('.show-more-text').text('Show less states');
5539                 $('#showStates').find('.show-more-icon').addClass('rotate-icon');
5540             }
5541             else {
5542                 $('#UsStates').addClass('state-province-max-height');
5543                 $('#showStates').find('.show-more-text').text('Show more states');
5544                 $('#showStates').find('.show-more-icon').removeClass('rotate-icon');
5545                 scrollToParent('UsStates');
5546             }
5547         });
5548         $('#showCanCities').on('click', function () {
5549             if ($('#CanCities').hasClass('country-max-height')) {
5550                 $('#CanCities').removeClass('country-max-height');
5551                 $('#showCanCities').find('.show-more-text').text('Show less cities');
5552                 $('#showCanCities').find('.show-more-icon').addClass('rotate-icon');
5553             }
5554             else {
5555                 $('#CanCities').addClass('country-max-height');
5556                 $('#showCanCities').find('.show-more-text').text('Show more cities');
5557                 $('#showCanCities').find('.show-more-icon').removeClass('rotate-icon');
5558                 scrollToParent('CanCities');
5559             }
5560         });
5561         $('#showProvince').on('click', function () {
5562             if ($('#CanProvinces').hasClass('state-province-max-height')) {
5563                 $('#CanProvinces').removeClass('state-province-max-height');
5564                 $('#showProvince').find('.show-more-text').text('Show less provinces');
5565                 $('#showProvince').find('.show-more-icon').addClass('rotate-icon');
5566             }
5567             else {
5568                 $('#CanProvinces').addClass('state-province-max-height');
5569                 $('#showProvince').find('.show-more-text').text('Show more provinces');
5570                 $('#showProvince').find('.show-more-icon').removeClass('rotate-icon');
5571                 scrollToParent('CanProvinces');
5572             }
5573         });
5574
5575     }());
5576</script>
5576
5577
5578
5579        <!-- Modal -->
5580<div class="modal fade" id="ieNotSupportedModal" role="dialog">
5581    <div class="modal-dialog">
5582
5583        <!-- Modal content-->
5584        <div class="modal-content">
5585            
5586            <div class="modal-body">
5587                <p>Livabl no longer supports Internet Explorer ahead of it’s retirement in 2023. Please consider using Microsoft Edge for the best new home search experience</p>
5588            </div>
5589            <div class="modal-footer">
5590                <button type="button" class="btn btn-default" data-dismiss="modal" onclick="updateLocalStorageEntry()">Close</button>
5591            </div>
5592        </div>
5593
5594    </div>
5595</div>
5596
5597<script>
5598    var showIENotSupportedModal = localStorage.getItem('IEMessageShowed');
5599    if (window.document.documentMode && !JSON.parse(showIENotSupportedModal)) {
5600        $("#ieNotSupportedModal").modal("show");
5601        localStorage.setItem('IEMessageShowed', false);
5602    }
5603
5604    function updateLocalStorageEntry() {
5605        localStorage.setItem('IEMessageShowed', true);
5606    }
5607</script>
5607
5608
5609    <div class="livabl-toast-message">
5610    <div class="toast-message-text"></div>
5611    <a class="toast-message-close" href="javascript:void(0)" onclick="return bbh.toastMessageModule.hideToast();">
5612        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
5613            <path fill-rule="evenodd" clip-rule="evenodd" d="M6.7069 5.29269C6.31626 4.90228 5.6831 4.90246 5.29269 5.2931C4.90228 5.68374 4.90246 6.3169 5.2931 6.70731L8.58771 10L5.2931 13.2927C4.90246 13.6831 4.90228 14.3163 5.29269 14.7069C5.6831 15.0975 6.31626 15.0977 6.7069 14.7073L10.0023 11.4138L13.2978 14.7073C13.6884 15.0977 14.3216 15.0975 14.712 14.7069C15.1024 14.3163 15.1022 13.6831 14.7116 13.2927L11.417 10L14.7116 6.70731C15.1022 6.3169 15.1024 5.68374 14.712 5.2931C14.3216 4.90246 13.6884 4.90228 13.2978 5.29269L10.0023 8.5862L6.7069 5.29269Z" fill="white" />
5614        </svg>
5615    </a>
5616</div>
5617
5618</body>
5619</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.