PageSourceSearch

https://realtyofmaine.com/user/register/

html realtyofmaine.com collected 2026-09-30 18:29:21 UTC 116,084 bytes, 1,397 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-us">
3	<head>
4	<link rel="preconnect" href="https://www.googletagmanager.com">
5<link rel="preconnect" href="https://d1nn5t56all1qd.cloudfront.net">
5<script>
6                document.addEventListener("DOMContentLoaded", function(event) {
7                    function usmPageRenderUtil(){var e=this;e.pageCategory="",e.heroElements=[],e.fpTime=null,e.fmpTime=null,e.fmpToTti=null,e.ttiTime=null,e.checker=null,e.waitTime=5e3,e.debug=!1,e.run=function(t){var n=t.heroElementIdentifiers||[".page-hero-element"];return e.pageCategory=t.pageCategory,e.debug=t.debug||!1,new Promise(function(t,r){e.observePaint().then(function(){e.observeHeroElements(n).then(function(){e.observeLongTasks().then(function(){e.fmpToTti=e.ttiTime-e.fmpTime,e.debug&&(console.log("FP: "+e.fpTime),console.log("FMP: "+e.fmpTime),console.log("FMP to TTI: "+e.fmpToTti),console.log("TTI: "+e.ttiTime)),t(e)})})})})},e.observePaint=function(){return new Promise(function(t,n){if(PerformanceObserver===null||PerformanceObserver===undefined)return n(),!1;var r=new PerformanceObserver(function(n){var r=n.getEntries();for(var i in r){var s=r[i],o=s.name;e.fpTime=performance.now();if("first-paint"===s.name){e.debug&&(console.log(s),console.log("metricName"),console.log(o)),t();return}}});r.observe({entryTypes:["paint"]})})},e.observeHeroElements=function(t){return new Promise(function(n,r){t=t.join(),e.debug&&console.log("Hero elements: "+t),e.heroElements=[].slice.call(document.querySelectorAll(t)),e.debug&&console.log("Hero elements count: ["+e.heroElements.length+"]");var i=new MutationObserver(function(t){for(var r=0;r<e.heroElements.length;r++){var s=e.heroElements[r];document.contains(s)&&e.heroElements.splice(r,1)}e.heroElements.length<=0&&(i.disconnect(),e.fmpTime=performance.now(),e.debug&&console.log("Hero observer disconnected. ["+e.getCurrentTime(!0)+"] Unix: ["+e.getCurrentTime()+"]"),n()),e.debug&&console.log("Hero elements not displayed. ["+e.heroElements.length+"].")});i.observe(document,{attributes:!0,childList:!0,characterData:!1,subtree:!0})})},e.observeLongTasks=function(){return new Promise(function(t,n){if(PerformanceObserver===null||PerformanceObserver===undefined)return n(),!1;var r=new PerformanceObserver(function(n){var i=n.getEntries();for(var s in i){var o=i[s];o instanceof PerformanceLongTaskTiming&&(e.debug&&console.log(o),e.scheduleCheck(r,t))}});r.observe({entryTypes:["longtask"]})})},this.scheduleCheck=function(e,t){var n=this,r=performance.now();clearTimeout(this.checker),this.checker=setTimeout(function(){n.ttiTime=r,e.disconnect(),t(),n.debug&&console.log("Performance observer disconnected. ["+n.getCurrentTime(!0)+"] Unix: ["+n.getCurrentTime()+"]")},n.waitTime)},e.getCurrentTime=function(e){return e===!0?(new Date).toUTCString():(new Date).getTime()},e.getPayload=function(){return{"Time to Interactive":e.formatTime(e.ttiTime),"First Paint":e.formatTime(e.fpTime),"First Meaningful Paint":e.formatTime(e.fmpTime),"FMP to TTI":e.formatTime(e.fmpToTti),"Page Category":e.pageCategory}},e.formatTime=function(e){e/=1e3;var t=Math.pow(10,1);return Math.round(e*t)/t}};
8                    var renderUtil = new usmPageRenderUtil();
9                    var debug = false;
10                    renderUtil.run({heroElementIdentifiers: ["#register-form",".facebook-wrapper"], pageCategory: "User Register", debug: debug}).then(function (renderUtil) {
11                        if (debug) {
12                            console.log(renderUtil.getPayload());
13                        }
14                    });
15                });
16            </script>
16<script>
17window.dataLayer = window.dataLayer || [];
18window.dataLayer.push({"hasSEO":"UA-73987-39","hasGlobalRE":"UA-73987-25","hasPremium":"UA-73987-27","hasCompassV2":"UA-73987-51","NumberOfAgents":150,"NumberOfAgentWebsites":0,"MLS":["ME_MAINE_API"],"CallTracking":false,"MapSearchV2":true,"OffMarketProperty":false,"VendorsPage":false,"Blog":true,"LuxuryBuildings":false,"TownPages":true,"MarketReportTool":true,"AVMTool":true,"LeadRouter":true});
19</script>
19
20�<!-- Google Tag Manager -->
21�
21<script>
vendor: 317 bytes, line 21
21(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','
21GTM-NR38L3C
vendor: 3 bytes, line 21
21');
21</script>
21
22�<!-- End Google Tag Manager -->
23�<title>Realty of Maine</title>
24	<meta name="description" content="" />
25	<meta name="author" content="Realty of Maine" />
26	<link rel="canonical" href="https://realtyofmaine.com/user/register/"/>
27	<link rel="copyright" href="https://d.usmre.com/UnionStreetMediaTermsofUse.pdf"/><meta property="fb:app_id" content="372025886539584" />
28	<meta property="og:title" content="Realty of Maine" />
29	<meta property="og:description" content="" />
30	<meta property="og:url" content="https://realtyofmaine.com/user/register/" />
31	<meta property="og:type" content="website" />
32	<meta property="og:site_name" content="Realty of Maine" />
33	<meta name="twitter:card" content="summary" />
34	<meta name="twitter:title" content="Realty of Maine" />
35	<meta name="twitter:description" content="" />
36	<meta name="google-site-verification" content="P9mjE_lN852pGExOE3gfh7g_lc118j74s18f0cET8WI" />
37	<meta name="msvalidate.01" content="7AFB407F61E561ABD1320A24E73E1F9A" />
38	<link rel="shortcut icon" href="https://s3.amazonaws.com/files.usmre.com/8625/i/favicon.png?t=1672339491" />
39<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
40<meta name="viewport" content="width=device-width, initial-scale=1">
41<link rel="stylesheet" type="text/css" href="https://d1nn5t56all1qd.cloudfront.net/8625/styles.min.css?version=1790366294" media="screen" /><link rel="stylesheet" type="text/css" href="https://d1nn5t56all1qd.cloudfront.net/layouts/46/print.css?version=1740650949" media="print" />
41<script src="https://kit.fontawesome.com/c7bcd66c3f.js" crossorigin="anonymous"></script>
41<script>/** vim: et:ts=4:sw=4:sts=4
42 * @license RequireJS 2.3.3 Copyright jQuery Foundation and other contributors.
43 * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
44 */
45var requirejs,require,define;!function(global,setTimeout){function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){if(e){var i;for(i=0;i<e.length&&(!e[i]||!t(e[i],i,e));i+=1);}}function eachReverse(e,t){if(e){var i;for(i=e.length-1;i>-1&&(!e[i]||!t(e[i],i,e));i-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var i;for(i in e)if(hasProp(e,i)&&t(e[i],i))break}function mixin(e,t,i,r){return t&&eachProp(t,function(t,n){!i&&hasProp(e,n)||(!r||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[n]=t:(e[n]||(e[n]={}),mixin(e[n],t,i,r)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,i,r){var n=new Error(t+"\nhttp://requirejs.org/docs/errors.html#"+e);return n.requireType=e,n.requireModules=r,i&&(n.originalError=i),n}function newContext(e){function t(e){var t,i;for(t=0;t<e.length;t++)if(i=e[t],"."===i)e.splice(t,1),t-=1;else if(".."===i){if(0===t||1===t&&".."===e[2]||".."===e[t-1])continue;t>0&&(e.splice(t-1,2),t-=2)}}function i(e,i,r){var n,o,a,s,u,c,d,p,f,l,h,m,g=i&&i.split("/"),v=y.map,x=v&&v["*"];if(e&&(e=e.split("/"),d=e.length-1,y.nodeIdCompat&&jsSuffixRegExp.test(e[d])&&(e[d]=e[d].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&g&&(m=g.slice(0,g.length-1),e=m.concat(e)),t(e),e=e.join("/")),r&&v&&(g||x)){a=e.split("/");e:for(s=a.length;s>0;s-=1){if(c=a.slice(0,s).join("/"),g)for(u=g.length;u>0;u-=1)if(o=getOwn(v,g.slice(0,u).join("/")),o&&(o=getOwn(o,c))){p=o,f=s;break e}!l&&x&&getOwn(x,c)&&(l=getOwn(x,c),h=s)}!p&&l&&(p=l,f=h),p&&(a.splice(0,f,p),e=a.join("/"))}return n=getOwn(y.pkgs,e),n?n:e}function r(e){isBrowser&&each(scripts(),function(t){if(t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===q.contextName)return t.parentNode.removeChild(t),!0})}function n(e){var t=getOwn(y.paths,e);if(t&&isArray(t)&&t.length>1)return t.shift(),q.require.undef(e),q.makeRequire(null,{skipMap:!0})([e]),!0}function o(e){var t,i=e?e.indexOf("!"):-1;return i>-1&&(t=e.substring(0,i),e=e.substring(i+1,e.length)),[t,e]}function a(e,t,r,n){var a,s,u,c,d=null,p=t?t.name:null,f=e,l=!0,h="";return e||(l=!1,e="_@r"+(T+=1)),c=o(e),d=c[0],e=c[1],d&&(d=i(d,p,n),s=getOwn(j,d)),e&&(d?h=r?e:s&&s.normalize?s.normalize(e,function(e){return i(e,p,n)}):e.indexOf("!")===-1?i(e,p,n):e:(h=i(e,p,n),c=o(h),d=c[0],h=c[1],r=!0,a=q.nameToUrl(h))),u=!d||s||r?"":"_unnormalized"+(A+=1),{prefix:d,name:h,parentMap:t,unnormalized:!!u,url:a,originalName:f,isDefine:l,id:(d?d+"!"+h:h)+u}}function s(e){var t=e.id,i=getOwn(S,t);return i||(i=S[t]=new q.Module(e)),i}function u(e,t,i){var r=e.id,n=getOwn(S,r);!hasProp(j,r)||n&&!n.defineEmitComplete?(n=s(e),n.error&&"error"===t?i(n.error):n.on(t,i)):"defined"===t&&i(j[r])}function c(e,t){var i=e.requireModules,r=!1;t?t(e):(each(i,function(t){var i=getOwn(S,t);i&&(i.error=e,i.events.error&&(r=!0,i.emit("error",e)))}),r||req.onError(e))}function d(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(q.defQueueMap[t]=!0),O.push(e)}),globalDefQueue=[])}function p(e){delete S[e],delete k[e]}function f(e,t,i){var r=e.map.id;e.error?e.emit("error",e.error):(t[r]=!0,each(e.depMaps,function(r,n){var o=r.id,a=getOwn(S,o);!a||e.depMatched[n]||i[o]||(getOwn(t,o)?(e.defineDep(n,j[o]),e.check()):f(a,t,i))}),i[r]=!0)}function l(){var e,t,i=1e3*y.waitSeconds,o=i&&q.startTime+i<(new Date).getTime(),a=[],s=[],u=!1,d=!0;if(!x){if(x=!0,eachProp(k,function(e){var i=e.map,c=i.id;if(e.enabled&&(i.isDefine||s.push(e),!e.error))if(!e.inited&&o)n(c)?(t=!0,u=!0):(a.push(c),r(c));else if(!e.inited&&e.fetched&&i.isDefine&&(u=!0,!i.prefix))return d=!1}),o&&a.length)return e=makeError("timeout","Load timeout for modules: "+a,null,a),e.contextName=q.contextName,c(e);d&&each(s,function(e){f(e,{},{})}),o&&!t||!u||!isBrowser&&!isWebWorker||w||(w=setTimeout(function(){w=0,l()},50)),x=!1}}function h(e){hasProp(j,e[0])||s(a(e[0],null,!0)).init(e[1],e[2])}function m(e,t,i,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(i,t,!1)}function g(e){var t=e.currentTarget||e.srcElement;return m(t,q.onScriptLoad,"load","onreadystatechange"),m(t,q.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function v(){var e;
45for(d();O.length;){if(e=O.shift(),null===e[0])return c(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));h(e)}q.defQueueMap={}}var x,b,q,E,w,y={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},S={},k={},M={},O=[],j={},P={},R={},T=1,A=1;return E={require:function(e){return e.require?e.require:e.require=q.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?j[e.map.id]=e.exports:e.exports=j[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(y.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},b=function(e){this.events=getOwn(M,e.id)||{},this.map=e,this.shim=getOwn(y.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},b.prototype={init:function(e,t,i,r){r=r||{},this.inited||(this.factory=t,i?this.on("error",i):this.events.error&&(i=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=i,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,q.startTime=(new Date).getTime();var e=this.map;return this.shim?void q.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()})):e.prefix?this.callPlugin():this.load()}},load:function(){var e=this.map.url;P[e]||(P[e]=!0,q.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var e,t,i=this.map.id,r=this.depExports,n=this.exports,o=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(o)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{n=q.execCb(i,o,r,n)}catch(t){e=t}else n=q.execCb(i,o,r,n);if(this.map.isDefine&&void 0===n&&(t=this.module,t?n=t.exports:this.usingExports&&(n=this.exports)),e)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",c(this.error=e)}else n=o;if(this.exports=n,this.map.isDefine&&!this.ignore&&(j[i]=n,req.onResourceLoad)){var a=[];each(this.depMaps,function(e){a.push(e.normalizedMap||e)}),req.onResourceLoad(q,this.map,a)}p(i),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(q.defQueueMap,i)||this.fetch()}},callPlugin:function(){var e=this.map,t=e.id,r=a(e.prefix);this.depMaps.push(r),u(r,"defined",bind(this,function(r){var n,o,d,f=getOwn(R,this.map.id),l=this.map.name,h=this.map.parentMap?this.map.parentMap.name:null,m=q.makeRequire(e.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(r.normalize&&(l=r.normalize(l,function(e){return i(e,h,!0)})||""),o=a(e.prefix+"!"+l,this.map.parentMap,!0),u(o,"defined",bind(this,function(e){this.map.normalizedMap=o,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),d=getOwn(S,o.id),void(d&&(this.depMaps.push(o),this.events.error&&d.on("error",bind(this,function(e){this.emit("error",e)})),d.enable()))):f?(this.map.url=q.nameToUrl(f),void this.load()):(n=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})}),n.error=bind(this,function(e){this.inited=!0,this.error=e,e.requireModules=[t],eachProp(S,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&p(e.map.id)}),c(e)}),n.fromText=bind(this,function(i,r){var o=e.name,u=a(o),d=useInteractive;r&&(i=r),d&&(useInteractive=!1),s(u),hasProp(y.config,t)&&(y.config[o]=y.config[t]);try{req.exec(i)}catch(e){return c(makeError("fromtexteval","fromText eval for "+t+" failed: "+e,e,[t]))}d&&(useInteractive=!0),this.depMaps.push(u),q.completeLoad(o),m([o],n)}),void r.load(e.name,m,n,y))})),q.enable(r,this),this.pluginMaps[r.id]=r},enable:function(){k[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var i,r,n;if("string"==typeof e){if(e=a(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,n=getOwn(E,e.id))return void(this.depExports[t]=n(this));this.depCount+=1,u(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?u(e,"error",bind(this,this.errback)):this.events.error&&u(e,"error",bind(this,function(e){this.emit
45("error",e)}))}i=e.id,r=S[i],hasProp(E,i)||!r||r.enabled||q.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(S,e.id);t&&!t.enabled&&q.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var i=this.events[e];i||(i=this.events[e]=[]),i.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},q={config:y,contextName:e,registry:S,defined:j,urlFetched:P,defQueue:O,defQueueMap:{},Module:b,makeModuleMap:a,nextTick:req.nextTick,onError:c,configure:function(e){if(e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/"),"string"==typeof e.urlArgs){var t=e.urlArgs;e.urlArgs=function(e,i){return(i.indexOf("?")===-1?"?":"&")+t}}var i=y.shim,r={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){r[t]?(y[t]||(y[t]={}),mixin(y[t],e,!0,!0)):y[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(R[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=q.makeShimExports(e)),i[t]=e}),y.shim=i),e.packages&&each(e.packages,function(e){var t,i;e="string"==typeof e?{name:e}:e,i=e.name,t=e.location,t&&(y.paths[i]=e.location),y.pkgs[i]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(S,function(e,t){e.inited||e.map.unnormalized||(e.map=a(t,null,!0))}),(e.deps||e.callback)&&q.require(e.deps||[],e.callback)},makeShimExports:function(e){function t(){var t;return e.init&&(t=e.init.apply(global,arguments)),t||e.exports&&getGlobal(e.exports)}return t},makeRequire:function(t,n){function o(i,r,u){var d,p,f;return n.enableBuildCallback&&r&&isFunction(r)&&(r.__requireJsBuild=!0),"string"==typeof i?isFunction(r)?c(makeError("requireargs","Invalid require call"),u):t&&hasProp(E,i)?E[i](S[t.id]):req.get?req.get(q,i,t,o):(p=a(i,t,!1,!0),d=p.id,hasProp(j,d)?j[d]:c(makeError("notloaded",'Module name "'+d+'" has not been loaded yet for context: '+e+(t?"":". Use require([])")))):(v(),q.nextTick(function(){v(),f=s(a(null,t)),f.skipMap=n.skipMap,f.init(i,r,u,{enabled:!0}),l()}),o)}return n=n||{},mixin(o,{isBrowser:isBrowser,toUrl:function(e){var r,n=e.lastIndexOf("."),o=e.split("/")[0],a="."===o||".."===o;return n!==-1&&(!a||n>1)&&(r=e.substring(n,e.length),e=e.substring(0,n)),q.nameToUrl(i(e,t&&t.id,!0),r,!0)},defined:function(e){return hasProp(j,a(e,t,!1,!0).id)},specified:function(e){return e=a(e,t,!1,!0).id,hasProp(j,e)||hasProp(S,e)}}),t||(o.undef=function(e){d();var i=a(e,t,!0),n=getOwn(S,e);n.undefed=!0,r(e),delete j[e],delete P[i.url],delete M[e],eachReverse(O,function(t,i){t[0]===e&&O.splice(i,1)}),delete q.defQueueMap[e],n&&(n.events.defined&&(M[e]=n.events),p(e))}),o},enable:function(e){var t=getOwn(S,e.id);t&&s(e).enable()},completeLoad:function(e){var t,i,r,o=getOwn(y.shim,e)||{},a=o.exports;for(d();O.length;){if(i=O.shift(),null===i[0]){if(i[0]=e,t)break;t=!0}else i[0]===e&&(t=!0);h(i)}if(q.defQueueMap={},r=getOwn(S,e),!t&&!hasProp(j,e)&&r&&!r.inited){if(!(!y.enforceDefine||a&&getGlobal(a)))return n(e)?void 0:c(makeError("nodefine","No define call for "+e,null,[e]));h([e,o.deps||[],o.exportsFn])}l()},nameToUrl:function(e,t,i){var r,n,o,a,s,u,c,d=getOwn(y.pkgs,e);if(d&&(e=d),c=getOwn(R,e))return q.nameToUrl(c,t,i);if(req.jsExtRegExp.test(e))s=e+(t||"");else{for(r=y.paths,n=e.split("/"),o=n.length;o>0;o-=1)if(a=n.slice(0,o).join("/"),u=getOwn(r,a)){isArray(u)&&(u=u[0]),n.splice(0,o,u);break}s=n.join("/"),s+=t||(/^data\:|^blob\:|\?/.test(s)||i?"":".js"),s=("/"===s.charAt(0)||s.match(/^[\w\+\.\-]+:/)?"":y.baseUrl)+s}return y.urlArgs&&!/^blob\:/.test(s)?s+y.urlArgs(e,s):s},load:function(e,t){req.load(q,e,t)},execCb:function(e,t,i,r){return t.apply(r,i)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=g(e);q.completeLoad(t.id)}},onScriptError:function(e){var t=g(e);if(!n(t.id)){var i=[];return eachProp(S,function(e,r){0!==r.indexOf("_@r")&&each(e.depMaps,function(e){if(e.id===t.id)return i.push(r),!0})}),c(makeError("scripterror",'Script error for "'+t.id+(i.length?'", needed by: '+i.join(", "):'"'),e,[t.id]))}}},q.require=q.makeRequire(),q}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(e){if("interactive"===e.readyState)return interactiveScript=e}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.3",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,i,r){var n,o,a=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=i,i=r):e=[]),o&&o.context&&(a=o.context),n=getOwn(contexts,a),n||(n=contexts[a]=req.s.newContext(a)),o&&n.configure(o),n.require(e,t,i)},req.config=function(e){return req(e)},req.nextTick="undefined"!=typeof setTimeout?function(e){setTimeout(e,4)}:function(e){e()}
45,require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,i){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,i){var r,n=e&&e.config||{};if(isBrowser)return r=req.createNode(n,t,i),r.setAttribute("data-requirecontext",e.contextName),r.setAttribute("data-requiremodule",t),!r.attachEvent||r.attachEvent.toString&&r.attachEvent.toString().indexOf("[native code")<0||isOpera?(r.addEventListener("load",e.onScriptLoad,!1),r.addEventListener("error",e.onScriptError,!1)):(useInteractive=!0,r.attachEvent("onreadystatechange",e.onScriptLoad)),r.src=i,n.onNodeCreated&&n.onNodeCreated(r,n,t,i),currentlyAddingScript=r,baseElement?head.insertBefore(r,baseElement):head.appendChild(r),currentlyAddingScript=null,r;if(isWebWorker)try{setTimeout(function(){},0),importScripts(i),e.completeLoad(t)}catch(r){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+i,r,[t]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||mainScript.indexOf("!")!==-1||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,i){var r,n;"string"!=typeof e&&(i=t,t=e,e=null),isArray(t)||(i=t,t=null),!t&&isFunction(i)&&(t=[],i.length&&(i.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,i){t.push(i)}),t=(1===i.length?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),n=contexts[r.getAttribute("data-requirecontext")])),n?(n.defQueue.push([e,t,i]),n.defQueueMap[e]=!0):globalDefQueue.push([e,t,i])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this,"undefined"==typeof setTimeout?void 0:setTimeout);</script>
45<script type="text/javascript">
46            var requireConfig = {"waitSeconds":20,"baseUrl":"https:\/\/d1mlo4htassgww.cloudfront.net\/shipyard\/build\/","paths":{"async":"profiles\/default","bootstrap":"profiles\/default","goog":"profiles\/default","jquery":"profiles\/default","jquery.browser":"profiles\/default","jquery.deparam":"profiles\/default","jquery.dropdownchecklist":"profiles\/default","jquery.form":"profiles\/default","jquery.history":"profiles\/default","jquery.html5-placeholder-shim":"profiles\/default","jquery.inview":"profiles\/default","jquery.usmNlsShipyard":"profiles\/default","jquery.pageitems":"profiles\/default","jquery.usmajaxtogglebutton":"profiles\/default","jquery.usmmortgageestimate":"profiles\/default","jquery.usmtruncate":"profiles\/default","jquery.validation":"profiles\/default","jquery.validation-extensions-usm":"profiles\/default","jqueryui":"profiles\/default","knockout":"knockout-2.3.0","owlcarousel":"profiles\/default","picturefill.min":"profiles\/default","propertyParser":"profiles\/default","shim.polyfills":"profiles\/default","captcha":"profiles\/default","shipyard":"profiles\/default","static-map-search":"profiles\/default","usm":"profiles\/default","usm.analytics":"profiles\/default","usm.cookie":"profiles\/default","usm.url":"profiles\/default","usm.user":"profiles\/default","usm.favorite":"profiles\/default","usm.savesearch":"profiles\/default","usm.modalform":"profiles\/default","usm.dynamicsearch":"profiles\/default","LLSDKsJS":"https:\/\/sdk.locallogic.co\/sdks-js\/1.19.30\/index.umd","webfontloader":"\/\/ajax.googleapis.com\/ajax\/libs\/webfont\/1\/webfont","Leaflet":"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.0.1\/leaflet","mapboxgl":"https:\/\/api.tiles.mapbox.com\/mapbox-gl-js\/v0.42.0\/mapbox-gl","plunk":"plunkComponents.min","emblaCarousel":"https:\/\/unpkg.com\/[email protected]\/embla-carousel.umd","emblaCarouselAutoplay":"https:\/\/unpkg.com\/[email protected]\/embla-carousel-autoplay.umd","emblaCarouselClassNames":"https:\/\/unpkg.com\/[email protected]\/embla-carousel-class-names.umd","emblaCarouselFade":"https:\/\/unpkg.com\/[email protected]\/embla-carousel-fade.umd","emblaCarouselPlugins":"emblaCarouselPlugins","map.regions":"\/realestate\/regions\/?json","jquery.validationextensionsusm":"\/data\/shipyard\/js\/jquery.validation-extensions-usm"}};
47            requireConfig.urlArgs = function(id, url) {
48                var args = "";
49                if (url.indexOf("d1nn5t56all1qd") <= 0 && url.indexOf("dy0meowegjlo2") <= 0) {
50                    args = "version=1790777761";
51                    return (url.indexOf("?") === -1 ? "?" : "&") + args;
52                }
53
54                return "";
55            };
56
57            require.config(requireConfig);
58            </script>
58
59            
59<script type="text/javascript">require(["profiles/default", "usm", "usm.calltracking", "usm.goscript"], function    (listing, usm) {
60                if (usm.touchSupport) { require(["profiles/touch"]); }
61            });</script>
vendor: 73 bytes, line 61
61<script async src="https://www.google.com/recaptcha/enterprise.js?render=
616Ld4ApEpAAAAACsg0ljxwxjJvWQf85-Zxz7WBOSS
vendor: 24 bytes, lines 61-62
61"></script>
62            
62<link rel="preconnect" href="https://www.google.com">
63            <link rel="preconnect" href="https://www.gstatic.com" crossorigin>
64</head>
65�<body class="register array1-user array1-register fall" data-site-type="shipyard" data-re-captcha-site-key="6Ld4ApEpAAAAACsg0ljxwxjJvWQf85-Zxz7WBOSS">
66�<!-- Google Tag Manager (noscript) -->
vendor: 63 bytes, lines 66-67
66
67�<noscript><iframe src="//www.googletagmanager.com/ns.html?id=
67GTM-NR38L3C
vendor: 84 bytes, lines 67-68
67" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
68�
68<!-- End Google Tag Manager (noscript) -->
69�<header class="utilBarWrap">
70    <div id="sidebar3"><div id="codewidget-154632" class="widget code codewidget container"><div class="widget-inner">
71  <a href="/">
72    <img
73   src="https://s3.amazonaws.com/files.usmre.com/8625/hor-white-logo.png"
74      alt="Realty of Maine Logo"
75      fetchpriority="high"
76    />
77  </a>
78</div>
79</div><div id="codewidget-154470" class="widget code codewidget container"><div class="numbers">
80    <div class="phone-dropdown offices">
81      <span style="display: none;"><i class="fas fa-map-marker-alt"></i><a href="#">Offices</a></span>
82      <div class="dropdown dropdown1 collapse">
83        <span>Bangor</span>
84        <p><a href="tel:+12079426310">(207) 942-6310</a></p>
85        <span>Belfast</span>
86        <p><a href="tel:+12073386800">(207) 338-6800</a></p>
87        <span>Brunswick</span>
88        <p><a href="tel:+12074062084">(207) 406-2084</a></p>
89        <span>Dover Foxcroft</span>
90        <p><a href="tel:+12079426310">(207) 942-6310</a></p>
91        <span>Ellsworth</span>
92        <p><a href="tel:+12076672300">(207) 667-2300</a></p>
93        <span>Greenville</span>
94        <p><a href="tel:+12076956073">(207) 695-6073</a></p>
95        <span>Lincoln</span>
96        <p><a href="tel:+12079426310">(207) 942-6310</a></p>
97        <span>South China</span>
98        <p><a href="tel:+12074454027">(207) 445-4027</a></p>
99        <span>Winter Harbor</span>
100        <p><a href="tel:+12079637927">(207) 963-7927</a></p>
101      </div>
102    </div>
103    <div class="email">
104      <span><i class="fa fa-envelope"></i> <a href="/contact-us/">[email protected]</a></span>
105    </div>  
106    <div class="header-user"> 
107        <span class="header-user-logged-out">
108            <div class="header-user-login">
109                <div class="login-link">
110                    <a href="/user/login/" rel="nofollow">Log In</a>
111                </div>
112            </div>
113            <div class="header-user-register">
114                <div class="register-link">
115                    <span>or</span> 
116                    <a href="/user/register/" rel="nofollow">Sign Up</a>
117                </div>
118            </div>
119        </span>
120        <span class="header-user-logged-in">
121            <a href="/user/">ACCOUNT</a>
122        </span>
123    </div>
124</div></div><div id="menuwidget-154472" class="widget menu menuwidget default-nav container"><h3 class="widget-title">Header Navigation</h3><div class="widget-inner"><div class="desktop-nav"><div class="navbar-wrapper"><nav class="navbar navbar-default" role="navigation"><div id="navbar-154472"><ul class="nav navbar-nav site-nav" role="menubar"><li role="presentation" class="has-children menu-item-129720"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-129720" class="dropdown-toggle" role="menuitem">Search<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-129720" role="menu"><li role="presentation" class=" menu-item-129720-clone"><a href="/listings/" target="_self" role="menuitem">Search</a></li><li role="presentation" class=" menu-item-129721"><a href="/listings/?status=Closed" target="_self" role="menuitem">Sold Search</a></li><li role="presentation" class=" menu-item-134446"><a href="/rentals/" target="_self" role="menuitem">Rentals</a></li></ul></li><li role="presentation" class="has-children menu-item-129674"><a target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-129674" class="dropdown-toggle" role="menuitem">Communities<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-129674" role="menu"><li role="presentation" class=" menu-item-129889"><a href="/by-location/bangor/" target="_self" role="menuitem">Bangor</a></li><li role="presentation" class=" menu-item-134722"><a href="/by-location/near-belfast/" target="_self" role="menuitem">Belfast</a></li><li role="presentation" class=" menu-item-129890"><a href="/by-location/near-brunswick/" target="_self" role="menuitem">Brunswick</a></li><li role="presentation" class=" menu-item-134725"><a href="/by-location/near-dover-foxcroft/" target="_self" role="menuitem">Dover-Foxcroft</a></li><li role="presentation" class=" menu-item-129891"><a href="/by-location/near-ellsworth/" target="_self" role="menuitem">Ellsworth</a></li><li role="presentation" class=" menu-item-134723"><a href="/by-location/near-moosehead-lake-region/" target="_self" role="menuitem">Greenville</a></li><li role="presentation" class=" menu-item-134724"><a href="/by-location/near-lincoln/" target="_self" role="menuitem">Lincoln</a></li><li role="presentation" class=" menu-item-129892"><a href="/by-location/near-south-china/" target="_self" role="menuitem">South China</a></li><li role="presentation" class=" menu-item-129893"><a href="/by-location/near-winter-harbor/" target="_self" role="menuitem">Winter Harbor</a></li></ul></li><li role="presentation" class=" menu-item-131753"><a href="/home/relocation-services/" target="_self" role="menuitem">Relocation</a></li><li role="presentation" class="has-children menu-item-135105"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu
124-135105" class="dropdown-toggle" role="menuitem">Buy<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-135105" role="menu"><li role="presentation" class=" menu-item-129879"><a href="/buyers/" target="_self" role="menuitem">Buying with ROM</a></li><li role="presentation" class=" menu-item-129881"><a href="/by-type/commercial/" target="_self" role="menuitem">Commercial</a></li><li role="presentation" class=" menu-item-129882"><a href="/by-type/log-homes/" target="_self" role="menuitem">Luxury Log Homes</a></li><li role="presentation" class=" menu-item-129883"><a href="/bangor/vacation-homes/" target="_self" role="menuitem">Vacation Properties</a></li><li role="presentation" class=" menu-item-139675"><a href="/about-realty-of-maine/wire-fraud-awareness/" target="_self" role="menuitem">Wire Fraud Awareness</a></li></ul></li><li role="presentation" class="has-children menu-item-135106"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-135106" class="dropdown-toggle" role="menuitem">Sell<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-135106" role="menu"><li role="presentation" class=" menu-item-129885"><a href="/sellers/" target="_self" role="menuitem">Selling with ROM</a></li><li role="presentation" class=" menu-item-129886"><a href="/sellers/preparing-to-sell/" target="_self" role="menuitem">Selling Process</a></li><li role="presentation" class=" menu-item-129887"><a href="/realestate/market-report/" target="_self" role="menuitem">Current Market Report</a></li><li role="presentation" class=" menu-item-129888"><a href="/home-worth/" target="_self" role="menuitem">What&#39;s My Home Worth</a></li><li role="presentation" class=" menu-item-139362"><a href="/about-realty-of-maine/wire-fraud-awareness/" target="_self" role="menuitem">Wire Fraud Awareness</a></li></ul></li><li role="presentation" class="has-children menu-item-135107"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-135107" class="dropdown-toggle" role="menuitem">About Us<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-135107" role="menu"><li role="presentation" class=" menu-item-147533"><a href="/rss-feed/" target="_self" role="menuitem">Blog</a></li><li role="presentation" class=" menu-item-129894"><a href="/realestate/agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-129896"><a href="/realty-of-maine-cares/" target="_self" role="menuitem">ROM Cares</a></li><li role="presentation" class=" menu-item-129897"><a href="/about-realty-of-maine/" target="_self" role="menuitem">ROM History</a></li><li role="presentation" class=" menu-item-163336"><a href="/testimonials/" target="_self" role="menuitem">Testimonials</a></li><li role="presentation" class=" menu-item-129901"><a href="/careers-with-realty-of-maine/" target="_self" role="menuitem">Join ROM Team</a></li><li role="presentation" class=" menu-item-167901"><a href="https://wefacethefight.org/" target="_blank" rel="noopener" role="menuitem">Support Veterans in Crisis</a></li></ul></li><li role="presentation" class=" menu-item-129679"><a href="/contact/#group4" target="_self" role="menuitem">Contact</a></li><li role="presentation" class=" menu-item-163337"><a href="/careers-with-realty-of-maine/" target="_self" role="menuitem">Careers</a></li></ul></div></nav></div></div><div class="mobile-nav"><button type="button" class="navbar-toggle" data-target="#navbar-mobile-154472" aria-label="Toggle navigation"><span>Menu</span><span class="fa fa-bar"></span><span class="fa fa-bar"></span><span class="fa fa-bar"></span></button><div class="navbar-wrapper"><nav class="navbar navbar-default" role="navigation"><div id="navbar-mobile-154472"><a href="#" class="menu-close"><i class="fa fa-times-circle-o"></i><span class="sr-only">Close Button</span></a><div class="menu-sign-on"><a class="usm-btn nav-login" href="/user/login/" rel="nofollow">Log In</a><a class="usm-btn nav-register" href="/user/register/" rel="nofollow">Sign Up</a><a class="usm-btn nav-account" href="/user/" rel="nofollow">My Account</a></div><ul class="nav navbar-nav site-nav" role="menubar"><li role="presentation" class="has-children menu-item-129720"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-129720" class="dropdown-toggle" role="menuitem">Search<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-129720" role="menu"><li role="presentation" class=" menu-item-129720-clone"><a href="/listings/" target="_self" role="menuitem">Search</a></li><li role="presentation" class=" menu-item-129721"><a href="/listings/?status=Closed" target="_self" role="menuitem">Sold Search</a></li><li role="presentation" class=" menu-item-134446"><a href="/rentals/" target="_self" role="menuitem">Rentals</a></li></ul></li>
124<li role="presentation" class="has-children menu-item-129674"><a target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-129674" class="dropdown-toggle" role="menuitem">Communities<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-129674" role="menu"><li role="presentation" class=" menu-item-129889"><a href="/by-location/bangor/" target="_self" role="menuitem">Bangor</a></li><li role="presentation" class=" menu-item-134722"><a href="/by-location/near-belfast/" target="_self" role="menuitem">Belfast</a></li><li role="presentation" class=" menu-item-129890"><a href="/by-location/near-brunswick/" target="_self" role="menuitem">Brunswick</a></li><li role="presentation" class=" menu-item-134725"><a href="/by-location/near-dover-foxcroft/" target="_self" role="menuitem">Dover-Foxcroft</a></li><li role="presentation" class=" menu-item-129891"><a href="/by-location/near-ellsworth/" target="_self" role="menuitem">Ellsworth</a></li><li role="presentation" class=" menu-item-134723"><a href="/by-location/near-moosehead-lake-region/" target="_self" role="menuitem">Greenville</a></li><li role="presentation" class=" menu-item-134724"><a href="/by-location/near-lincoln/" target="_self" role="menuitem">Lincoln</a></li><li role="presentation" class=" menu-item-129892"><a href="/by-location/near-south-china/" target="_self" role="menuitem">South China</a></li><li role="presentation" class=" menu-item-129893"><a href="/by-location/near-winter-harbor/" target="_self" role="menuitem">Winter Harbor</a></li></ul></li><li role="presentation" class=" menu-item-131753"><a href="/home/relocation-services/" target="_self" role="menuitem">Relocation</a></li><li role="presentation" class="has-children menu-item-135105"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-135105" class="dropdown-toggle" role="menuitem">Buy<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-135105" role="menu"><li role="presentation" class=" menu-item-129879"><a href="/buyers/" target="_self" role="menuitem">Buying with ROM</a></li><li role="presentation" class=" menu-item-129881"><a href="/by-type/commercial/" target="_self" role="menuitem">Commercial</a></li><li role="presentation" class=" menu-item-129882"><a href="/by-type/log-homes/" target="_self" role="menuitem">Luxury Log Homes</a></li><li role="presentation" class=" menu-item-129883"><a href="/bangor/vacation-homes/" target="_self" role="menuitem">Vacation Properties</a></li><li role="presentation" class=" menu-item-139675"><a href="/about-realty-of-maine/wire-fraud-awareness/" target="_self" role="menuitem">Wire Fraud Awareness</a></li></ul></li><li role="presentation" class="has-children menu-item-135106"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-135106" class="dropdown-toggle" role="menuitem">Sell<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-135106" role="menu"><li role="presentation" class=" menu-item-129885"><a href="/sellers/" target="_self" role="menuitem">Selling with ROM</a></li><li role="presentation" class=" menu-item-129886"><a href="/sellers/preparing-to-sell/" target="_self" role="menuitem">Selling Process</a></li><li role="presentation" class=" menu-item-129887"><a href="/realestate/market-report/" target="_self" role="menuitem">Current Market Report</a></li><li role="presentation" class=" menu-item-129888"><a href="/home-worth/" target="_self" role="menuitem">What&#39;s My Home Worth</a></li><li role="presentation" class=" menu-item-139362"><a href="/about-realty-of-maine/wire-fraud-awareness/" target="_self" role="menuitem">Wire Fraud Awareness</a></li></ul></li><li role="presentation" class="has-children menu-item-135107"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-135107" class="dropdown-toggle" role="menuitem">About Us<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-135107" role="menu"><li role="presentation" class=" menu-item-147533"><a href="/rss-feed/" target="_self" role="menuitem">Blog</a></li><li role="presentation" class=" menu-item-129894"><a href="/realestate/agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-129896"><a href="/realty-of-maine-cares/" target="_self" role="menuitem">ROM Cares</a></li><li role="presentation" class=" menu-item-129897"><a href="/about-realty-of-maine/" target="_self" role="menuitem">ROM History</a></li><li role="presentation" class=" menu-item-163336"><a href="/testimonials/" target="_self" role="menuitem">Testimonials</a></li><li role="presentation" class=" menu-item-129901"><a href="/careers-with-realty-of-maine/" target="_self" role="menuitem">Join ROM Team</a></li><li role="presentation" class=" menu-item-167901"><a href="https://wefacethefight.org/" target="_blank" rel="noopener" role="menuitem">Support Veterans in Crisis</a></li></ul></li>
124<li role="presentation" class=" menu-item-129679"><a href="/contact/#group4" target="_self" role="menuitem">Contact</a></li><li role="presentation" class=" menu-item-163337"><a href="/careers-with-realty-of-maine/" target="_self" role="menuitem">Careers</a></li></ul><ul class="nav navbar-nav user-nav"><li class="menu-item-saved-search" role="presentation"><a href="/realestate/searches/" rel="nofollow">Saved Searches</a></li><li class="menu-item-favorites" role="presentation"><a href="/realestate/favorites/view/" rel="nofollow">Favorites</a></li></ul></div></nav></div></div></div></div></div>
125</header>
126<div class="topWrap">
127    <div id="top"><div id="autosuggestionsearch-159646" class="widget autosuggestionsearch container"><div class="autosuggest widget-autosuggest"><div class="widget-inner"><form action="/listings/" method="get"><div class="autosuggest-title" id="autosuggest-title"><h3 class="widget-title">It&#39;s Time To Move!</h3></div><div class="autosuggest-searchbar"><input type="search" placeholder="City, Address, Zip, Neighborhood, MLS Number, High School..." aria-label="&#10;                                Search: City, Address, Zip, Neighborhood, MLS Number, High School...&#10;                                Use Up and Down to choose options,&#10;                                press Enter to select the currently focused option,&#10;                                press Escape to exit the menu,&#10;                                press Tab to select the option and exit the menu.&#10;                            " autocomplete="off" name="autosuggest-search-query" id="autosuggest-search-query-159646" maxlength="200" class="search-input form-control"/><div class="buttons"><div class="autosuggest-loader"></div><button class="usm-btn btn-search" id="autosuggest-search-button" role="button" aria-label="Search"><span>Search</span><i class="fa fa-search"></i></button></div></div><div class="autosuggest-links"><div class="col-links"><a href="/realestate/mlssearch/" class="usm-btn btn-link advanced-search" id="autosuggest-advanced-search">Advanced Search</a></div></div></form></div></div></div><div id="slideshow-156253" class="widget slideshow container"><div class="slideshow-wrapper" id="carousel-156253"><div class="carousel slide"><div class="carousel-inner"><div class="item active"><img alt="Rocky Shore on Maine Coast" src="https://d3w216np43fnr4.cloudfront.net/8625/156253/1-original.jpg?version=1611933484" srcset="https://d3w216np43fnr4.cloudfront.net/8625/156253/1-original.jpg?version=1611933484 1920w,https://d3w216np43fnr4.cloudfront.net/1170x1170/8625/156253/1.jpg?version=1611933489 1170w,https://d3w216np43fnr4.cloudfront.net/970x970/8625/156253/1.jpg?version=1611933493 970w,https://d3w216np43fnr4.cloudfront.net/750x750/8625/156253/1.jpg?version=1611933498 750w,https://d3w216np43fnr4.cloudfront.net/320x320/8625/156253/1.jpg?version=1611933501 320w"/></div></div></div></div></div></div>
128</div>
129<div class="sub1Wrap">
130    <div id="group1"></div>
131</div>
132<div class="sub2Wrap">
133    <div id="group2"></div>
134</div>
135<section id="wrapper">
136    <div class="content-row">
137        <div class="contentWrap">
138            <main>
139
140<section class="register-wrap">
141    <div class="register-header">
142        <div class="register-header-left">
143            <h1>Register With Us</h1>
144        </div>
145        <div class="register-header-right">
146            <div class="register-info-items">
147                <div class="register-info-item">
148                    <span class="info-icon">
149                        <i class="fa fa-home"></i>
150                        <i class="fa fa-check"></i>
151                    </span>
152                    <span class="info-text">
153                        Get Tailored <br>
154                        Listing Updates
155                    </span>
156                </div>
157                <div class="register-info-item">
158                    <span class="info-icon">
159                        <i class="fa fa-heart"></i>
160                        <i class="fa fa-check"></i>
161                    </span>
162                    <span class="info-text">
163                        Save Your <br>
164                        Favorite Listings
165                    </span>
166                </div>
167                <div class="register-info-item">
168                    <span class="info-icon">
169                        <i class="fa fa-sliders"></i>
170                        <i class="fa fa-check"></i>
171                    </span>
172                    <span class="info-text">
173                        Save Your <br>
174                        Search Criteria
175                    </span>
176                </div>
177                <div class="register-info-item">
178                    <span class="info-icon">
179                        <i class="fa fa-bar-chart"></i>
180                        <i class="fa fa-check"></i>
181                    </span>
182                    <span class="info-text">
183                        Local Insights <br>
184                        & More
185                    </span>
186                </div>
187            </div>
188        </div>
189    </div>
190    <div class="register-left-wrap">
191        <div class="register-group">
192            <div id="register-cta">
193                
194                Save time! Join now by creating a FREE account to save your favorite listings, create custom searches, and get tailored listing notifications. Found your dream home? Opt out of notifications at any time.
195                
196            </div>
197        </div>
198
199        
200        <div class="social-opt-in-scope" data-opt-in-mode="required">
201            <div class="register-group">
202                <div class="social-opt-in-consent form-group" style="display:none;">
203                    <div class="checkbox form-group">
204                        <label>
205                            <input type="checkbox" class="social-opt-in-checkbox" id="SocialOptIn">
206                            I agree to receive marketing and customer service calls and text messages from Realty of Maine. To opt out, you can reply 'stop' at any time or click the unsubscribe link in the emails. Consent is not a condition of purchase. Msg/data rates may apply. Msg frequency varies. <a href="/privacy-policy/">Privacy Policy</a>.
207                        </label>
208                    </div>
209                    <p class="help-block social-opt-in-hint">Check the box above to continue.</p>
210                    <div class="alert alert-danger social-opt-in-alert" style="display:none;">Please subscribe to create an account.</div>
211                </div>
212            </div>
213            <div class="register-group">
214                <div class="google-login social-login-gated" data-provider="google">
215                    
216                            <style type="text/css">
217            .google-auth {
218                margin-bottom: 15px;
219            }
220            .google-auth iframe,
221            .google-auth div div div {
222                margin: 0 auto !important;
223            }
224            .question-merge-google-account {
225                text-align: center;
226            }
227            .question-merge-google-account .alert-title {
228                margin-bottom: 15px;
229            }
230            .question-merge-google-account form {
231                display: inline-block;
232                margin-right: 15px;
233            }
234        </style>
235                
235<script src="https://accounts.google.com/gsi/client" async defer></script>
235
236        
236<script type="text/javascript">
237            require(["jquery", "usm", "usm.modalform"], function ($, usm) {
238                // Dynamic protocol instead of hardcoded https: - the button only renders
239                // when SSL is on in production, but hardcoding https would break plain-http
240                // local/dev domains.
241                var loginUri = window.location.protocol + "//realtyofmaine.com/user/register/";
242
243                function submitCredentialForm(credential) {
244                    var $form = $("<form>", {method: "POST", action: loginUri})
245                        .append($("<input>", {type: "hidden", name: "credential", value: credential}));
246                    $("body").append($form);
247                    $form.trigger("submit");
248                }
249
250                function handleCredentialResponse(response) {
251                    var $button = $("#googleAuth8604");
252                    var $loginPopup = $button.closest(".login-popup");
253
254                    if (!$loginPopup.length) {
255                        submitCredentialForm(response.credential);
256                        return;
257                    }
258
259                    $.ajax({
260                        type: "POST",
261                        url: loginUri,
262                        data: {credential: response.credential},
263                        dataType: "json"
264                    }).done(function (data) {
265                        if (data && data.action === "html") {
266                            usm.modalForm.showSocialOptIn($loginPopup, data.html);
267                        } else if (data && data.action === "redirect") {
268                            submitCredentialForm(response.credential);
269                        } else {
270                            usm.modalForm.revealSuccess($loginPopup);
271                        }
272                    }).fail(function (xhr) {
273                        usm.modalForm.showSocialError($loginPopup, xhr);
274                    });
275                }
276
277                function googleAuthInit() {
278                    google.accounts.id.initialize({
279                        client_id: "48717643037-nj7p1pq7kpl1dprvuj2lvnh6h782ovau.apps.googleusercontent.com",
280                        context: "signup",
281                        callback: handleCredentialResponse
282                    });
283                    google.accounts.id.prompt();
284                    google.accounts.id.renderButton(document.getElementById("googleAuth8604"), {
285                        type: "standard",
286                        shape: "pill",
287                        theme: "outline",
288                        text: "signup_with",
289                        size: "large",
290                        locale: "en-US",
291                        logo_alignment: "left",
292                        width: 288
293                    });
294                }
295
296                // onGoogleLibraryLoad only fires once per page; if GSI already loaded
297                // (e.g. the modal opened after a full page load), assigning it here
298                // would never fire, so init directly instead.
299                if (window.google && window.google.accounts && window.google.accounts.id) {
300                    googleAuthInit();
301                } else {
302                    window.onGoogleLibraryLoad = googleAuthInit;
303                }
304            });
305        </script>
305
306        <div class="google-wrapper"><div class="button-wrapper"><div id="googleAuth8604" class="google-auth"></div></div></div>
307                </div>
308            </div>
309            <div class="register-group">
310                <div class="facebook-login social-login-gated" data-provider="facebook">
311                    
311<script type="text/javascript">require(["jquery", "jqueryui", "usm", "usm.modalform"], function ($, jqueryui, usm) {
312                var appId = 372025886539584;
313                /* Init FB */
314                window.fbAsyncInit = function() {
315                    FB.init({
316                        appId      : appId,
317                        cookie     : true,  // enable cookies to allow the server to access the session
318                        xfbml      : true,  // parse social plugins on this page
319                        version    : "v2.5" // use graph api version 2.5
320                    });
321                };
322
323                // Load the SDK asynchronously
324                (function(d, s, id) {
325                    var js, fjs = d.getElementsByTagName(s)[0];
326                    if (d.getElementById(id)) return;
327                    js = d.createElement(s); js.id = id;
328                    js.src = "//connect.facebook.net/en_US/sdk.js";
329                    fjs.parentNode.insertBefore(js, fjs);
330                }(document, "script", "facebook-jssdk"));
331
332                $(".facebook-action").on("click", function (e) {
333                    var $this = $(this);
334
335                    /* Find closest facebook form to submit. */
336                    var $fbForm = $this.closest(".facebook-wrapper").find(".facebook-form");
337
338                    FB.login(function (response) {
339                        FB.getLoginStatus(function (response) {
340                            statusChangeCallback(response, $fbForm);
341                        });
342                    }, {scope: "public_profile,email"});
343                });
344
345                function statusChangeCallback(response, facebookForm) {
346                    if (response.status === "connected") {
347                        var $loginPopup = facebookForm.closest(".login-popup");
348
349                        if ($loginPopup.length) {
350                            facebookForm.ajaxSubmit({
351                                dataType: "json",
352                                success: function (data) {
353                                    if (data && data.action === "html") {
354                                        usm.modalForm.showSocialOptIn($loginPopup, data.html);
355                                    } else if (data && data.action === "redirect") {
356                                        facebookForm.get(0).submit();
357                                    } else {
358                                        usm.modalForm.revealSuccess($loginPopup);
359                                    }
360                                },
361                                error: function (xhr) {
362                                    usm.modalForm.showSocialError($loginPopup, xhr);
363                                }
364                            });
365                        } else {
366                            facebookForm.submit();
367                        }
368                    } else {
369                        $(".facebook-info").html("Something went wrong. Please try again.");
370                    }
371                }
372            });
373        </script>
373<div class="facebook-wrapper"><div class="button-wrapper"><div><a class="btn btn-block btn-social btn-facebook facebook-action"><span class="social-icon"><i class="fa fa-facebook-official"></i></span><span class="button-text">Sign In with Facebook</span><i class="fa fa-angle-right"></i></a></div><br/><div class="or-text"><p>Or Sign Up with your info below</p></div></div><div class="fields-wrapper" style="display: none"><form method="post" action="/user/register/" class="facebook-form social-login-form"><input name="SocialLogin" id="SocialLogin" value="Facebook" type="hidden" class="form-control"/><div class="form-group"><label for="Email">Email Address</label><input name="Email" id="Email" type="email" class="form-control"/></div><div class="form-group"><label for="FirstName">First Name</label><input name="FirstName" id="FirstName" type="text" class="form-control"/></div><div class="form-group"><label for="LastName">Last Name</label><input name="LastName" id="LastName" type="text" class="form-control"/></div><input type="submit" name="Submit" id="Submit" value="Submit" class="submit"/></form></div><div class="facebook-info"></div></div>
374                </div>
375            </div>
376            <div class="register-group">
377                <div class="social-opt-in-back-wrapper form-group" style="display:none;">
378                    <button type="button" class="btn btn-link social-opt-in-back"><i class="fa fa-angle-left" aria-hidden="true"></i> Back</button>
379                </div>
380            </div>
381        </div>
382        <div class="register-group">
383            <form method="post" action="/user/register/" id="register-form" class="bootstrap-validate">
384                
385                <input type="hidden" name="g-recaptcha-response" class="g-recaptcha-response" value="initalize" />
386                <input type="hidden" name="RedirectURL" value="/registered/" />
387                <input type="hidden" name="FormKey" value="a9cc64cc2d774b8f3aee3f020257c118" />
388                <input type="hidden" name="Sent_Form" id="Sent_Form" value="Registration">
389                <input type="hidden" name="RefURL" value="https://realtyofmaine.com/user/register/" />
390                <input type="hidden" name="Sent From" value="" />
391                <input type="hidden" name="mailformid" value="registration_form" />
392                <div class="fields-section">
393                    <div class="user-edit-form">
394                        <div class="user-primary-group">
395                            <div class="form-group email-group">
396                                <label for="Email">Email Address<span class="required">*</span></label>
397                                <input type="text" name="Email" value="" class="email required form-control" />
398                            </div>
399                            <div class="form-group alt-email-group">
400                                <label for="Email2">Alternate Email Address</label>
401                                <input type="text" name="Email2" value="" class="email form-control" />
402                            </div>
403
404                            <div class="form-group first-name-group">
405                                <label for="FirstName">First Name <span class="required">*</span></label>
406                                <input type="text" name="FirstName" value="" id="FirstName" class="required form-control" />
407                            </div>
408
409                            <div class="form-group last-name-group">
410                                <label for="FirstName">Last Name <span class="required">*</span></label>
411                                <input type="text" name="LastName" value="" id="LastName" class="required form-control" />
412                            </div>
413
414                            <div class="form-group password-group">
415                                <label for="Password">Password <span class="required">*</span></label>
416                                <input type="password" name="Password" id="Password" class="form-control new-password required"/>
417                            </div>
418                            <div class="form-group confirm-password-group">
419                                <label for="VerifyPassword">Confirm Password <span class="required">*</span></label>
420                                <input type="password" name="VerifyPassword" class="form-control verify-password required" equalto="#Password"/>
421                            </div>
422                        </div>
423
424                        <div class="user-secondary-group">
425                            
426                            <div class="form-group phone-group home-phone-group">
427                                <label for="Phone">Home Phone</label>
428                                
429                                
430                                <input type="text" name="HomePhone" value="" class="form-control phone"/>
431                                
432                            </div>
433                            <div class="form-group phone-group work-phone-group">
434                                <label for="WorkPhone">Work Phone</label>
435                                <input type="text" size="20" name="WorkPhone" value="" class="form-control phone"/>
436                            </div>
437                            <div class="form-group phone-group cell-phone-group">
438                                <label for="CellPhone">Cell Phone</label>
439                                <input type="text" size="20" name="CellPhone" value="" class="form-control phone"/>
440                            </div>
441                            
442
443                            
444                            
445                            
446                            <div class="form-group address-group">
447                                <label for="Street1">Address</label>
448                                <input type="text" name="Street1" value="" class="form-control"/>
449                            </div>
450
451                            <div class="form-group address2-group">
452                                <label for="Street2">Address 2</label>
453                                <input type="text" name="Street2" value="" class="form-control"/>
454                            </div>
455
456                        <div class="form-group city-group">
457                            <label for="City">City</label>
458                            <input type="text" name="City" value="" class="form-control"/>
459                        </div>
460
461                        <div class="form-group state-group">
462                            <label for="State">State</label>
463                            <input type="text" name="State" value="" class="form-control"/>
464                        </div>
465
466                        <div class="form-group zip-group">
467                            <label for="Zip">Zip</label>
468                            <input type="text" name="Zip" value="" class="digits form-control"/>
469                        </div>
470                        
471                        
472
473                        
474                        <div class="form-group buy-or-sell">
475                            
476                            <label>I am looking to <span class="required">*</span></label>
477
478                            <div class="checkbox">
479                                <label>
480                                    <input type="checkbox" name="BuyOrSell[]" value="Buy"  class="required" />
481                                    <span><i class="fa fa-check" aria-hidden="true"></i></span>
482                                    Buy
483                                </label>
484                            </div>
485
486                            <div class="checkbox">
487                                <label>
488                                    <input type="checkbox" name="BuyOrSell[]" value="Sell"  class="required" />
489                                    <span><i class="fa fa-check" aria-hidden="true"></i></span>
490                                    Sell
491                                </label>
492                            </div>
493
494                            <div class="checkbox">
495                                <label>
496                                    <input type="checkbox" name="BuyOrSell[]" value="Relocate"  class="required" />
497                                    <span><i class="fa fa-check" aria-hidden="true"></i></span>
498                                    Relocate
499                                </label>
500                            </div>
501
502                            <div class="checkbox">
503                                <label>
504                                    <input type="checkbox" name="BuyOrSell[]" value="Rent"  class="required" />
505                                    <span><i class="fa fa-check" aria-hidden="true"></i></span>
506                                    Rent
507                                </label>
508                            </div>
509                            
510                            
511                        </div>
512
513                        
514
515                        
516                        <div class="form-group rent-or-own-group">
517                            
518                            
519                            <label>Currently I</label>
520
521                            <div class="radio">
522                                <label>
523                                    <input type="radio" name="RentOrOwn" value="Rent"  class="" />
524                                    <span><i class="fa fa-check-circle" aria-hidden="true"></i></span>
525                                    Rent
526                                </label>
527                            </div>
528
529                            <div class="radio">
530                                <label>
531                                    <input type="radio" name="RentOrOwn" value="Own"  class="" />
532                                    <span><i class="fa fa-check-circle" aria-hidden="true"></i></span>
533                                    Own
534                                </label>
535                            </div>
536                            
537                        </div>
538                        
539
540                            <div class="form-group realtors">
541                                
542                            </div>
543                        </div>
544                    </div>
545
546                    
547
548                    
549                    <div style="display:none;">Do not fill in this field: <input type="text" name="topyenoh" /></div>
550
551                    
552                    <div class="form-group opt-in-group">
553                        <input type="checkbox" name="OptIn" id="OptIn" class="opt-in required" required>
554                        <label for="OptIn">Opt in</label>
555                        <p>I agree to receive marketing and customer service calls and text messages from Realty of Maine. To opt out, you can reply 'stop' at any time or click the unsubscribe link in the emails. Consent is not a condition of purchase. Msg/data rates may apply. Msg frequency varies. <a href="/privacy-policy/">Privacy Policy</a>.</p>
556                    </div>
557                    
558
559                </div>
560                <div class="submit-section">
561                    <div class="form-group register-submit-group">
562                        <button name="send" id="user-registration" type="submit" class="btn usm-btn btn-default submit" tabindex="10" value="Sign Up"><i class="fa fa-user"></i> Sign Up <i class="fa fa-angle-right"></i></button>
563                    </div>
564                    <div class="register-group existing-account-group">
565                        <p>Already have an account? <a href="/user/login/?RedirectURL=" class="text-center login-link">Log In!</a></p>
566                    </div>
567                    <div class="recaptcha-notice">
567This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy">Privacy Policy</a> and <a href="https://policies.google.com/terms">Terms of Service</a> apply.</div>
568                </div>
569            </form>
570        </div>
571    </div>
572</section>
573<script type="text/javascript">
574    require(["jquery", "shipyard", "usm", "usm.analytics"], function($, shipyard, usm) {
575        var options = {
576            successCallback: function () {
577                usm.analytics.pageView('/complete/registered/new-customer/');
578            }
579        };
580        shipyard.validateForm($('.bootstrap-validate'), options);
581        shipyard.gateSocialSignup($(document));
582        
583    });
584</script>
584
585
586</main>
587            <aside id="sidebar1"><div id="widget-ask-165127" class="widget askaquestion niceform container"><div class="widget-inner"><h3 class="widget-title">Contact Us</h3><div class="error-message-container"></div><form method="POST" action="/mail/send/sidebar_ask_a_question/" id="aaq-165127" data-pageview="/complete/ask-a-question/"><div><h4></h4><div class="contact-info"></div></div><div class="form-group form-group-name"><label class="sr-only" for="ask-165127-name">Full Name</label><input type="text" name="Name" class="required form-control" placeholder="*Full Name" id="ask-165127-name" required="required"/></div><div class="form-group form-group-email"><label class="sr-only" for="ask-165127-email">Email</label><input type="text" name="Email" class="required form-control email" placeholder="*Email Address" id="ask-165127-email" required="required"/></div><div class="form-group form-group-phone"><label class="sr-only" for="ask-165127-phone">Phone</label><input type="text" name="Phone" class="form-control phone " placeholder="Phone" id="ask-165127-phone"/></div><div class="form-group form-group-comments"><label class="sr-only" for="ask-165127-question">Questions or Comments?</label><textarea name="Comments" id="ask-165127-question" class="form-control required" placeholder="*Questions or Comments" cols="12" rows="7"></textarea></div><div style="display:none;">Do not fill in this field:<input type="text" name="topyenoh" id="topyenoh"/></div><input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response" value="initalize" class="g-recaptcha-response"/><input type="hidden" name="FormKey" id="FormKey" value="a9cc64cc2d774b8f3aee3f020257c118"/><input type="hidden" name="Sent From" id="Sent From" value="https://realtyofmaine.com/user/register/"/><input type="hidden" name="mailformid" id="mailformid" value="sidebar_ask_a_question"/><input type="hidden" name="Sent_Form" id="Sent_Form" value="sidebar_ask_a_question"/><div class="form-group opt-in-block"><label class="show"><input type="checkbox" name="OptIn" value="1" class="required" required="required"/><span class="control-label">Opt in</span></label><p>I agree to receive marketing and customer service calls and text messages from Realty of Maine. To opt out, you can reply 'stop' at any time or click the unsubscribe link in the emails. Consent is not a condition of purchase. Msg/data rates may apply. Msg frequency varies. <a href="/privacy-policy/">Privacy Policy</a>.</p></div><div class="submit-btn"><button type="submit" name="send" class="usm-btn">Send</button></div><div class="recaptcha-notice">This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy">Privacy Policy</a> and <a href="https://policies.google.com/terms">Terms of Service</a> apply.</div></form></div></div></aside>
588        </div>
589    </div>
590</section>
591<div class="sub3Wrap">
592    <div id="group3"></div>
593</div>
594<div class="sub4Wrap">
595    <div id="group4"></div>
596</div>
597<div class="footWrap">
598    <div id="footer"></div>
599</div>
600<footer class="usmWrap">
601    <div id="group5"><div id="codewidget-154655" class="widget code codewidget container"><div class = "widget-inner">
602<span></span>
603<span></span>
604<span></span>
605<span></span>
606</div></div><div id="codewidget-154656" class="widget code codewidget container"><div class="widget-inner">
607	<img src = "https://s3.amazonaws.com/files.usmre.com/8625/hor-dark-logo.png" alt = "Walkable Suburb Real Estate Logo">
608<a href = "https://www.leadingre.com/">
609<img src = "https://s3.amazonaws.com/files.usmre.com/8625/Tagline.png" alt = "Leading RE Logos" class = "lazyload" /></a>
610<a href="http://realtyofmainenew.clone.unionstmedia.com/realty-of-maine-cares/"><img src = "https://s3.amazonaws.com/files.usmre.com/8625/ROM%20Cares.png" alt = "Realty of Maine Cares Logo" class = "cares-logo lazyload" /></a>
611</div></div><div id="codewidget-154657" class="widget code codewidget container"><!-- <div class = "widget-inner">
612  <a href = "tel:207-942-6310">207-942-6310 </a>
613  <a href = "/contact-us/"> [email protected] </a>
614</div>
615--></div><div class = "mid-footer-container">
616   <div class="office-wrapper">
617      <div class="inner">
618        <div class="office office1 bangor">
619          <h4>Bangor Office</h4>
620          <a href="https://www.google.com/maps/place/458+Main+St,+Bangor,+ME+04401,+USA/@44.7906285,-68.7786601,17z/data=!3m1!4b1!4m5!3m4!1s0x4cae4b66716dadd1:0x1ec9532ef118daf!8m2!3d44.7906285!4d-68.7764714" target="_blank"><p class="address"><span>458 Main Street </span>Bangor, ME 04401</p></a>
621          <p class="phone">P: <a href="tel:+12079426310">1-207-942-6310</a></p>
622          <p class="phone">T: <a href="tel:+18006392162">1-800-639-2162</a></p>
623          <p class="fax">F: 207-942-8099</p>
624          <p class="email"><a href="/contact-us/">[email protected]</a></p>
625        </div>
626        <div class="office office2 belfast">
627          <h4>Belfast</h4>
628          <a href="https://www.google.com/maps/place/107+Main+St,+Belfast,+ME+04915,+USA/@44.4258429,-69.0095178,17z/data=!3m1!4b1!4m5!3m4!1s0x4cae6e5b1c05839b:0x98791d541323c11c!8m2!3d44.4258429!4d-69.0073291" target="_blank"><p class="address"><span>107 Main Street</span>Belfast, ME 04915</p></a>
629          <p class="phone">P: <a href="tel:+12073386800">1-207-338-6800</a></p>
630          <p class="phone">T: <a href="tel:+18006392162">1-800-639-2162</a></p>
631          <p class="fax">F: 207-338-3060</p>
632          <p class="email"><a href="/contact-us/">[email protected]</a></p>
633        </div>
634        <!--div class="office office3 brunswick">
635          <h4>Brunswick</h4>
636          <a href="https://www.google.com/maps/place/155+Bath+Rd,+Brunswick,+ME+04011,+USA/@43.9073299,-69.9222848,17z/data=!3m1!4b1!4m5!3m4!1s0x4cad86efb81274f1:0xcc83a417bd17e655!8m2!3d43.9073299!4d-69.9200961" target="_blank"><p class="address"><span>155 Bath Rd</span>Brunswick, ME 04011</p></a>
637          <p class="phone">P: <a href="tel:+12079426310">1-207-942-6310</a></p>
638          <p class="email"><a href="/contact-us/">[email protected]</a></p>
639        </div>-->
640        <div class="office office4 dover-foxcroft">
641          <h4>Dover Foxcroft</h4>
642          <a href="https://www.google.com/maps/place/64+E+Main+St+Suite+G,+Dover-Foxcroft,+ME+04426,+USA/@45.1837281,-69.2305715,17z/data=!3m1!4b1!4m5!3m4!1s0x4cb022ef81055b03:0xc551585df96992a2!8m2!3d45.1837281!4d-69.2283828" target="_blank"><p class="address"><span>
64264 E Main St Suite G</span>Dover Foxcroft, ME 04426</p></a>
643          <p class="phone">P: <a href="tel:+12073386800">1-207-942-6310</a></p>
644          <p class="fax">F: 207-942-8099</p>
645          <p class="email"><a href="/contact-us/">[email protected]</a></p>
646        </div>
647        <div class="office office5 ellsworth">
648          <h4>Ellsworth</h4>
649          <a href="https://www.google.com/maps/place/185+State+St,+Ellsworth,+ME+04605,+USA/@44.5495886,-68.428522,17z/data=!4m5!3m4!1s0x4caef1ac59b1815f:0xb6d1ebaf6b6b9de4!8m2!3d44.5495886!4d-68.4263333" target="_blank"><p class="address"><span>185 State Street</span>Ellsworth, ME 04605</p></a>
650          <p class="phone">P: <a href="tel:+12076672300">1-207-667-2300</a></p>
651          <p class="phone">T: <a href="tel:+18006392162">1-800-639-2162</a></p>
652          <p class="fax">F: 207-667-7544</p>
653          <p class="email"><a href="/contact-us/">[email protected]</a></p>
654        </div>
655        <div class="office office6 greenville">
656          <h4>Greenville</h4>
657          <a href="https://www.google.com/maps/place/32+Pritham+Ave,+Greenville,+ME+04441,+USA/@45.4595737,-69.6099207,17z/data=!3m1!4b1!4m5!3m4!1s0x4cb07b3ff0d42119:0x462d62f03e3c2a05!8m2!3d45.4595737!4d-69.607732" target="_blank"><p class="address"><span>32 Pritham Ave</span>Greenville, ME 04441</p></a>
658          <p class="phone">P: <a href="tel:+12076956073">1-207-695-6073</a></p>
659          <p class="email"><a href="/contact-us/">[email protected]</a></p>
660        </div>
661        <!--div class="office office7 lincoln">
662          <h4>Lincoln</h4>
663          <a href="https://www.google.com/maps/place/154+W+Broadway+%231,+Lincoln,+ME+04457,+USA/@45.3608389,-68.5218807,17z/data=!4m5!3m4!1s0x4caff5b822c8a879:0x31e50ed2ef44a56b!8m2!3d45.3608389!4d-68.519692" target="_blank"><p class="address"><span>154 West Broadway Suite 1</span>Lincoln, ME 04457</p></a>
664          <p class="phone">P: <a href="tel:+1207-942-6310">1-207-942-6310</a></p>
665          <p class="email"><a href="/contact-us/">[email protected]</a></p>
666        </div-->
667        <div class="office office8 south-china">
668          <h4>South China</h4>
669          <a href="https://www.google.com/maps/place/177+ME-3,+South+China,+ME+04358,+USA/@44.4005429,-69.4786385,17z/data=!3m1!4b1!4m5!3m4!1s0x4cae069ae1ddcf53:0x9d054c0154d7ac62!8m2!3d44.4005429!4d-69.4764498" target="_blank"><p class="address"><span>177 US Route 3</span>South China, ME 04358</p></a>
670          <p class="phone">P: <a href="tel:+12074454027">1-207-445-4027</a></p>
671          <p class="phone">T: <a href="tel:+18006392162">1-800-639-2162</a></p>
672          <p class="fax">F: 207-445-3027</p>
673          <p class="email"><a href="/contact-us/">[email protected]</a></p>
674        </div>
675
676        <div class="office office9 winter-harbor">
677          <h4> Realty of Maine Winter Harbor Office</h4>
678          <a href="https://www.google.com/maps/place/280+Main+St,+Winter+Harbor,+ME+04693,+EE.+UU./@44.3940898,-68.0885462,17z/data=!3m1!4b1!4m6!3m5!1s0x4caec7a4cf529e35:0x82568e3d945a6eca!8m2!3d44.3940898!4d-68.0859659!16s%2Fg%2F11c43thrld?entry=ttu&g_ep=EgoyMDI1MTIwMi4wIKXMDSoASAFQAw%3D%3D" target="_blank"><p class="address"><span>280 Main Street</span>Winter Harbor, ME 04693</p></a>
679          <p class="phone">P: <a href="tel:+12079637927">1-207-460-1458</a></p>
680          <p class="email"><a href="/contact-us/">[email protected]</a></p>
681        </div>
682      </div>
683    </div><div id="menuwidget-154665" class="widget menu menuwidget bare container"><h3 class="widget-title">Quick Links</h3><div class="widget-inner"><ul role="menubar"><li role="presentation" class=" menu-item-129723"><a href="/listings/?map-view=1" target="_self" role="menuitem">Listing Search</a></li><li role="presentation" class=" menu-item-129725"><a href="/buyers/" target="_self" role="menuitem">Buy</a></li><li role="presentation" class=" menu-item-129726"><a href="/sellers/" target="_self" role="menuitem">Sell</a></li><li role="presentation" class=" menu-item-129728"><a href="/our-agents/" target="_self" role="menuitem">About Us</a></li></ul></div></div>
683<div id="codewidget-154664" class="widget code codewidget container"><h3 class="widget-title">Contact Us</h3>
684<div class="widget-inner">
685    <ul>
686        <li><a href="/contact-us/" target="_self">Contact Us</a></li>
687        <li class="logged-out"><a href="/user/" target="_self">Log In</a></li>
688        <li class="logged-in"><a href="/user/" target="_self">Account</a></li>
689    </ul>
690</div></div><div id="sociallinks-154658" class="widget sociallinks socialinkswidget flat container"><ul class="fa-social-links sm30"><li><a target="_blank" title="Facebook" href="https://www.facebook.com/RealtyofMaine/" class="fa-social-links fsml-facebook" rel="noopener nofollow"><i class="fa fa-facebook"></i><span class="sr-only">Facebook</span></a></li><li><a target="_blank" title="Instagram" href="https://www.instagram.com/realtyofmaine/" class="fa-social-links fsml-instagram" rel="noopener nofollow"><i class="fa fa-instagram"></i><span class="sr-only">Instagram</span></a></li><li><a target="_blank" title="Twitter" href="https://twitter.com/RealtyofMaine/" class="fa-social-links fsml-twitter" rel="noopener nofollow"><i class="fa fa-twitter"></i><span class="sr-only">Twitter</span></a></li><li><a target="_blank" title="Linkedin" href="https://www.linkedin.com/company/622555/admin/" class="fa-social-links fsml-linkedin" rel="noopener nofollow"><i class="fa fa-linkedin"></i><span class="sr-only">Linkedin</span></a></li></ul></div><div id="codewidget-154666" class="widget code codewidget container"><div class = "widget-inner">
691<a href = "/protected-agent-intranet/">Agent Sign In</a>
692</div></div></div>
693<div class = "privacy-container">
694<p><p class="mreislogowrapper"><img alt="MREIS logo" id="mreislogo" src="https://s3.amazonaws.com/files.usmre.com/mreis-logo.jpg" style="width: 100px;" /></p>
695
696<p class="mreisdisclaimertext">Listing data is derived in whole or in part from the Maine IDX &amp; is for consumers&#39; personal, non commercial use only. Dimensions are approximate and not guaranteed. All data should be independently verified. &copy;2026 Maine Real Estate Information System, Inc. All Rights Reserved. <img alt="equal opportunity housing logo" src="https://s3.amazonaws.com/files.usmre.com/equal_housing.png" style="width: 24px; height: 20px;" /> &nbsp; <a href="/privacy-policy/" id="policylink">Privacy Policy</a><br />
697<br />
698Realty of Maine participates in &copy;2026 Maine Listings Internet Data Exchange program, allowing us to display other Maine IDX Participants&#39; listings. This website does not display complete listings. Certain listings of other real estate brokerage firms have been excluded.&nbsp;Mortgage figures are estimates. Check with your bank or proposed mortgage company for actual interest rates. This product uses the FRED&reg; API but is not endorsed or certified by the Federal Reserve Bank of St. Louis.</p>
699</p>
700</div></div> <div class = "footer-sub"><div id="associations-154662" class="widget associations container"><div id="footer-logos" style="width: 100%"><div id="footer-logos-left-assoc"></div><div id="footer-logos-right-accred"></div><div id="footer-logos-right-custom"><img src="https://d3w216np43fnr4.cloudfront.net/8625/154662/1.png?version=1611171369" title="Association logos" alt="Association logos"/></div></div></div><div id="codewidget-154660" class="widget code codewidget container"><div class = "widget-inner">
701<a href = "/privacy-policy/"> Privacy Policy </a>
702</div></div><div id="usmlogo-154661" class="widget usmlogo container"><a href="https://www.unionstreetmedia.com/?utm_campaign=passive&#38;utm_medium=usm-badge&#38;utm_source=www.realtyofmaine.com&#38;utm_content=real-estate" rel="nofollow noopener" title="VT NH Real Estate Web Design" target="_blank"><img src="https://d3w216np43fnr4.cloudfront.net/8625/154661/1.webp?version=1760887186" alt="Union Street Media Logo"/></a></div></div></div>
703</footer><div id="progress"><i class="fa fa-spinner fa-spin"></i></div>
703<script type="text/javascript">
704            require(["jquery"], function ($) {
705                var $navbarToggle = $("#menuwidget-154472 .navbar-toggle");
706
707                $navbarToggle.click(function () {
708                    var target = $(this).data("target");
709                    $(target).parent("nav").toggleClass("active");
710                    if ($(target).parent("nav").hasClass("active")) {
711                        $("body").addClass("modal-open");
712                    } else {
713                        $("body.modal-open").removeClass("modal-open");
714                    }
715                });
716
717                $("#menuwidget-154472 .menu-close").click(function (e) {
718                    $navbarToggle.click();
719                    e.preventDefault();
720                });
721
722                $("#menuwidget-154472 li.has-children ul li").click(function (event) {
723                    event.stopPropagation();
724                });
725            });
726        
727            // Searchable suggestions with a label values for the suggestion.
728            var SEARCHABLE_SUGGESTIONS_OPTIONS = {
729                usmCityAndState: '',
730                county: ' - County',
731                stateOrProvince: '',
732                usmNeighborhood: ' - Neighborhood',
733                postalCode: ' - Zip Code',
734                listingId: ' - MLS Number',
735                usmNonMlsId: ' - Internal ID',
736                elementarySchool: ' - Elementary School',
737                middleOrJuniorSchool: ' - Middle Or Junior High School',
738                usmArea: ' - Area',
739                address: ' - Address',
740                highSchool: ' - High School',
741                highSchoolDistrict: ' - School District',
742                usmVillage: ' - Village',
743                usmSubdivision: ' - Subdivision',
744                streetName: ' - Street',
745                usmComplex: ' - Complex',
746                usmPropertyName: ' - Property Name',
747                mlsAreaMinor: ' - MLS Area Minor',
748                mlsAreaMajor: ' - MLS Area Major',
749                offMarketData: ' - Off Market',
750                title: 'title',
751                agent: ' - Agent',
752                team: ' - Team',
753            }
754
755            var displayWaterBodyNameSuggestions = '';
756            var showAgentsSearch = '0';
757
758            if (displayWaterBodyNameSuggestions) {
759                SEARCHABLE_SUGGESTIONS_OPTIONS.waterBodyName = ' - Water Body Name';
760            }
761
762            var suggestionResponse = null;
763            require(['jquery'], function($) {
764                /**
765                 * Get current search mode based on active button
766                 */
767                function getCurrentSearchMode() {
768                    if (showAgentsSearch === '1' && $('#agents-159646').hasClass('active')) {
769                        return 'agents';
770                    } else if ($('#rentals-property-types-159646').hasClass('active')) {
771                        return 'rentals';
772                    } else {
773                        return 'sales';
774                    }
775                }
776
777                /**
778                 * Filter out not supported suggestions.
779                 *
780                 * @param suggestions
781                 * @returns {[]}
782                 */
783                function sanitizeSuggestions(suggestions) {
784                    const sanitizedSuggestions = [];
785                    if (suggestions && Array.isArray(suggestions)) {
786                        for (var suggestionIndex in suggestions) {
787                            var suggestion = suggestions[suggestionIndex];
788
789                            var suggestionType = suggestion.type;
790                            // Filter out suggestions that are not currently supported
791                            if (!SEARCHABLE_SUGGESTIONS_OPTIONS.hasOwnProperty(suggestionType)) {
792                                continue;
793                            }
794
795                            sanitizedSuggestions.push(suggestion);
796                        }
797                        return sanitizedSuggestions;
798                    }
799
800                    return [];
801                }
802
803                /**
804                 * Transform agents API response to suggestions format
805                 */
806                function transformAgentsToSuggestions(responseData) {
807                    if (!Array.isArray(responseData?.agents) || !Array.isArray(responseData?.teams)) {
808                        return [];
809                    }
810                    const data = [
811                      ...responseData.agents.map(agent => ({ ...agent, type: 'agent' })),
812                      ...responseData.teams.map(team => ({ ...team, type: 'team' }))
813                    ];
814
815                    return data.map((item) => ({
816                        label: item.name,
817                        value: item.name,
818                        type: item.type,
819                        id: item.id,
820                        slug: item.slug,
821                    }));
822                }
823
824                /**
825                 * Check if the parameter looks like an address (starts with digits followed by words)
826                 */
827                function shouldReduceByAddress(value) {
828                    var addressPattern = /^\d+\s+\w+/i;
829                    return addressPattern.test(value.trim());
830                }
831
832                function fetchSuggestions(request, response) {
833                    var param = request.term;
834                    var requestPrefix = '';
835                    var isOMPEnabled = requestPrefix === 'OMP:';
836                    var searchMode = getCurrentSearchMode();
837
838                    // Restrict search length to minimum 2 characters before sending the request.
839                    if (param.length < 2) {
840                        // We do not store and show recent searches if OMP is enabled or in agents mode
841                        var isRecentSearchesDisabled = isOMPEnabled || searchMode === 'agents';
842                        var recentSearches = isRecentSearchesDisabled ? [] : JSON.parse(window.localStorage.getItem('lastSearches'));
843
844                        if (recentSearches && recentSearches.length > 0) {
845                          recentSearches.unshift({label: 'Recent Searches', value: 'Recent Searches', type: 'title'})
846                          response(recentSearches);
847                        } else {
848                          response([{label: 'The search word must be at least 3 characters long.', noResults: true}]);
849                        }
850                    } else {
851                        // Different API endpoints based on search mode
852                       var baseUrl = '';
853                       var requestData = {};
854
855                        if (searchMode === 'agents') {
856                            baseUrl = '/api/suggestions/teams/';
857                            requestData = {
858                                q: param,
859                            };
860                        } else {
861                            baseUrl = '/api/suggestions/';
862                            requestData = {
863                                q: requestPrefix + param
864                            };
865
866                            if (shouldReduceByAddress(param)) {
867                                requestData.reduce = 'usmFullAddress';
868                            }
869                        }
870
871                        $.ajax({
872                            dataType: 'json',
873                            url: baseUrl,
874                            data: requestData,
875                            type: 'GET',
876                            timeout: 10000,
877                            success: function(data) {
878                                var suggestions = [];
879
880                                if (searchMode === 'agents') {
881                                    // Transform agents response
882                                    suggestions = transformAgentsToSuggestions(data);
883                                } else {
884                                    // Regular suggestions
885                                    if (data.suggestions && data.suggestions.length > 0) {
886                                        suggestions = sanitizeSuggestions(data.suggestions);
887                                    }
888                                }
889
890                                if (suggestions.length > 0) {
891                                    // Set the suggestion response to the first suggestion
892                                    suggestionResponse = suggestions[0];
893                                    response(suggestions);
894                                } else {
895                                    // No results from API
896                                    var noResultsMessage = searchMode === 'agents' ? 'No agents found.' : 'Enter another region.';
897                                    response([{label: noResultsMessage, noResults: true}]);
898                                }
899                            },
900                            error: function() {
901                                response([{label: 'Problem contacting server, please refresh and try again.', noResults: true}]);
902                                $('.autosuggest-loader').removeClass('fal fa-spinner fa-pulse');
903                                $('.autosuggest-loader').addClass('fal fa-exclamation-triangle');
904                            }
905                        });
906                    }
907                }
908
909                $('#autosuggest-search-query-159646').autocomplete({
910                    source: function(request, response) {
911                      fetchSuggestions(request, response);
912                    },
913                    minLength: 0,
914                    open: function() {
915                        inputWidth = $('#autosuggest-search-query-159646').outerWidth();
916                        $('ul.ui-menu').css( 'width', inputWidth );
917                    },
918                    search: function(event, ui) {
919                        $('.autosuggest-loader').addClass('fal fa-spinner fa-pulse');
920                    },
921                    response: function(event, ui) {
922                        $('.autosuggest-loader').removeClass('fal fa-spinner fa-pulse');
923                    },
924                    position: {
925                        offset: '0 -6'
926                    },
927                    autoFocus: true,
928                    messages: {
929                        //These messages are for accessability and are not visible in the UI (with proper styling).
930                        noResults: 'No options found.',
931                        results: function(amount) {
932                            return amount + (amount > 1 ? ' results ' : ' result ') + 'found.'
933                        }
934                    },
935                    delay: 300
936                }).focus(function() {
937                  $(this).autocomplete('search', $(this).val());
938                }).data('ui-autocomplete')._renderItem = function(ul, item) {
939                    let txt = String(item.label);
940
941                    if (item.type) {
942                        txt = txt.replace(new RegExp(this.term, 'gi'),'<b>$&</b>');
943                    }
944
945                    var type = item.type;
946
947                    if (SEARCHABLE_SUGGESTIONS_OPTIONS.hasOwnProperty(type)) {
948                        type = SEARCHABLE_SUGGESTIONS_OPTIONS[type];
949
950                        if (type == 'listingId') {
951                            txt = txt.toUpperCase();
952                        }
953                    } else {
954                        type = '';
955                    }
956
957                    if (type === 'title') {
958                        return $('<li></li>')
959                            .append('<div class="item-title"><b>' + txt + '</b></div>')
960                            .appendTo(ul);
961                    }
962
963                    var status = '';
964                    if (item.standardStatus && item.standardStatus.length === 1 && item.standardStatus[0] === 'Closed') {
965                        status = ' <span class="ui-status">Sold</span>';
966                    }
967
968                    const itemNoResultsClassName = !!item?.noResults ? 'autosuggest-item-no-result' : '';
969
970                    return $(`<li class='${itemNoResultsClassName}'></li>`)
971                        .data('ui-autocomplete-item', item)
972                        .append('<a>' + txt + '<span>' + type + '</span>' + status + '</a>')
973                        .appendTo(ul);
974                };
975            });
976        
977            require(['jquery'], function($) {
978                var stateMap = JSON.parse('{"Alabama":"AL","Alaska":"AK","Arizona":"AZ","Arkansas":"AR","Bahamas":"BS","California":"CA","Colorado":"CO","Connecticut":"CT","Delaware":"DE","D.C.":"DC","Florida":"FL","Georgia":"GA","Hawaii":"HI","Idaho":"ID","Illinois":"IL","Indiana":"IN","Iowa":"IA","Kansas":"KS","Kentucky":"KY","Louisiana":"LA","Maine":"ME","Maryland":"MD","Massachusetts":"MA","Michigan":"MI","Minnesota":"MN","Mississippi":"MS","Missouri":"MO","Montana":"MT","Nebraska":"NE","Nevada":"NV","New Hampshire":"NH","New Jersey":"NJ","New Mexico":"NM","New York":"NY","North Carolina":"NC","North Dakota":"ND","Ohio":"OH","Oklahoma":"OK","Oregon":"OR","Pennsylvania":"PA","Rhode Island":"RI","South Carolina":"SC","South Dakota":"SD","Tennessee":"TN","Texas":"TX","Utah":"UT","Vermont":"VT","Virginia":"VA","Washington":"WA","West Virginia":"WV","Wisconsin":"WI","Wyoming":"WY","Alberta":"AB","British Columbia":"BC","Manitoba":"MB","New Brunswick":"NB","Newfoundland and Labrador":"NL","Nova Scotia":"NS","Ontario":"ON","Prince Edward Island":"PE","Quebec":"QC","Saskatchewan":"SK"}');
979                const MAX_RECENT_SEARCHES_CACHED = 5;
980                var showAgentsSearch = '0';
981
982                function getCurrentSearchMode() {
983                    if (showAgentsSearch === '1' && $('#agents-159646').hasClass('active')) {
984                        return 'agents';
985                    } else if ($('#rentals-property-types-159646').hasClass('active')) {
986                        return 'rentals';
987                    } else {
988                        return 'sales';
989                    }
990                }
991
992                /**
993                 * Update placeholder based on current search mode
994                 */
995                function updatePlaceholder() {
996                    var searchMode = getCurrentSearchMode();
997                    var searchInput = $('#autosuggest-search-query-159646');
998                    var placeholder = '';
999
1000                    switch(searchMode) {
1001                        case 'agents':
1002                            placeholder = 'Search for agents by name';
1003                            break;
1004                        case 'rentals':
1005                        case 'sales':
1006                        default:
1007                            placeholder = `City, Address, Zip, Neighborhood, MLS Number, High School...`;
1008                            break;
1009                    }
1010
1011                    searchInput.attr('placeholder', placeholder);
1012                }
1013
1014                function getStateAbbreviation(stateName) {
1015                    if (!stateName) {
1016                        return null;
1017                    }
1018
1019                    if (!stateMap.hasOwnProperty(stateName)) {
1020                        return null;
1021                    }
1022
1023                    return stateMap[stateName];
1024                }
1025
1026                function goToDetailView(filter) {
1027                    var baseUrl = '/api/listings/';
1028                    // We should use this replace in order to divide params into array in the ListingSearch.php in the V2
1029                    filter =  filter.replace(/\S&\S/g, function (tmpVal) {
1030                      return tmpVal.replace(/&/g, '#');
1031                    });
1032                    filter = encodeURIComponent(filter);
1033                    $.ajax({
1034                        dataType: 'json',
1035                        url: baseUrl + '?suggestionFilter=' + filter,
1036                        type: 'GET',
1037                        success: function(data) {
1038                            if (!Array.isArray(data.listings)) {
1039                                return;
1040                            }
1041
1042                            if (data.listings.length === 1) {
1043                                window.location.href = data.listings[0].usmDetailPath;
1044
1045                                return;
1046                            }
1047
1048                            if (data.listings.length > 1) {
1049                                window.location.href = '/listings/' + '?suggestionFilter=' + filter;
1050
1051                                return;
1052                            }
1053                        }
1054                    });
1055                }
1056
1057                function getCityAndStatePath(value) {
1058                    var array = value.split(' ');
1059
1060                    const state = array.pop().toLowerCase();
1061                    const city = array.join('-').toLowerCase();
1062
1063                    return state + '/' + city + '/';
1064                }
1065
1066                function parseFilterString(filterString) {
1067                    var filters = {};
1068                    if (!filterString) {
1069                        return filters;
1070                    }
1071                    filterString.split('&').forEach(function(f) {
1072                        var parts = f.split('=');
1073                        if (parts.length >= 2) {
1074                            var name = parts[0].match(/\[(.*?)\]/)?.[1];
1075                            if (name) {
1076                                filters[name] = decodeURIComponent(parts.slice(1).join('='));
1077                            }
1078                        }
1079                    });
1080                    return filters;
1081                }
1082
1083                function getStateAbbrFromFilterValue(stateValue) {
1084                    if (!stateValue) {
1085                        return null;
1086                    }
1087                    var abbr = getStateAbbreviation(stateValue);
1088                    if (abbr) {
1089                        return abbr.toLowerCase();
1090                    }
1091                    if (stateValue.length === 2) {
1092                        return stateValue.toLowerCase();
1093                    }
1094                    return null;
1095                }
1096
1097                /**
1098                 * Build url with path based on the selected suggestion.
1099                 *
1100                 */
1101                function getUrlPath(suggestion) {
1102                    let path = '';
1103                    switch (suggestion.type) {
1104                        case 'cityAndState':
1105                            path += getCityAndStatePath(suggestion.value);
1106
1107                            return path;
1108                        case 'stateOrProvince':
1109                            var stateAbbreviation = getStateAbbreviation(suggestion.value);
1110
1111                            if (stateAbbreviation && stateAbbreviation.length == 2) {
1112                                path += stateAbbreviation.toLowerCase() + '/';
1113                            }
1114
1115                            return path;
1116                        case 'neighborhood':
1117                        case 'village':
1118                            path += convertFilterString(suggestion.filter);
1119
1120                            return path;
1121                        case 'county': {
1122                            var filters = parseFilterString(suggestion.filter);
1123                            var county = filters.county;
1124                            var stateAbbr = getStateAbbrFromFilterValue(filters.stateOrProvince);
1125                            if (county && stateAbbr) {
1126                                var countySlug = county.replace(/\s+county$/i, '').toLowerCase().replace(/\s+/g, '-') + '-county';
1127                                path = stateAbbr + '/' + countySlug + '/';
1128                            }
1129                            return path;
1130                        }
1131                        case 'postalCode': {
1132                            var filters = parseFilterString(suggestion.filter);
1133                            var postalCode = filters.postalCode;
1134                            var stateAbbr = getStateAbbrFromFilterValue(filters.stateOrProvince);
1135                            if (postalCode && stateAbbr) {
1136                                path = stateAbbr + '/' + postalCode + '/';
1137                            }
1138                            return path;
1139                        }
1140                        default:
1141                            return path;
1142                    }
1143                }
1144
1145                function convertFilterString(filterString) {
1146                  if (!filterString) {
1147                    return '';
1148                  }
1149
1150                  const filters = filterString.split('&');
1151                  const suggestionFilters = filters.map(filter => {
1152                    const filterPart = filter.split('=');
1153
1154                    if (filterPart.length !== 2) {
1155                       return null;
1156                    }
1157
1158                    const [key, value] = filterPart;
1159                    const name = key.match(/\[(.*?)\]/)?.[1];
1160
1161                    if (!name) return null;
1162
1163                    return name === 'cityAndState' || name === 'usmCityAndState'
1164                    ? getCityAndStatePath(value) + '?'
1165                    : name + '=' + value ;
1166                  });
1167
1168                  return getPathFromFilters(suggestionFilters);
1169                }
1170
1171                function getPathFromFilters(suggestionFilters) {
1172                  if (!suggestionFilters || suggestionFilters.length === 0) {
1173                    return '';
1174                  }
1175
1176                  const cityAndStateItem = suggestionFilters.find(item => item.includes('/?'));
1177
1178                  if (!cityAndStateItem) {
1179                    return '?' + suggestionFilters.join('&');
1180                  }
1181
1182                  const filtersWithoutCityAndState = suggestionFilters.filter(item => item !== cityAndStateItem);
1183
1184                  return cityAndStateItem + filtersWithoutCityAndState.join('&');
1185                }
1186
1187                function getPropertyDetailPathFromOffMarketSuggestion(suggestion) {
1188                    if (!suggestion) {
1189                        return '';
1190                    }
1191
1192                    const { value, filter } = suggestion;
1193                    const startIndex = filter?.indexOf('=') + 1;
1194                    const usmPid = filter?.substring(startIndex);
1195
1196                    const address = value?.split(' ')
1197                        ?.map(function(word) { return word.toLowerCase() })
1198                        ?.join('-') || '';
1199
1200                    return '/property/' + address + '/' + usmPid + '/';
1201                };
1202
1203                function submitSearch(e, item) {
1204                    e.preventDefault();
1205
1206                    if (!item) {
1207                        return;
1208                    }
1209
1210                    // If the item has no type, it's an error message and shouldn't send anywhere
1211                    if (!item.type) {
1212                        return;
1213                    }
1214
1215                    var searchMode = getCurrentSearchMode();
1216
1217                    // Finish the input in case a selection was made without completing it
1218                    $('#autosuggest-search-query').val(item.type === 'listingId' ? item.value.toUpperCase() : item.label);
1219
1220                    if (item.type === 'agent' || item.type === 'team') {
1221                        window.location.href = `/realestate/${item.type}/${item.slug}/`;
1222
1223                        return;
1224                    }
1225
1226                    // Send to detail view if MLS Number
1227                    if (item.type === 'listingId' || item.type === 'address' || item.type === 'usmPropertyName' || item.type === 'usmNonMlsId') {
1228                        var filter = item.filter;
1229
1230                        if (item.standardStatus && item.standardStatus.length > 0) {
1231                            var statusList = Array.isArray(item.standardStatus)
1232                                ? item.standardStatus
1233                                : [item.standardStatus];
1234                            // It is very common for listings other than 'Active 'to being filtered out, so we need to add this filter to ensure that they are returned by the listings api
1235                            filter += (filter !== '' ? '&' : '') + 'filter[standardStatus]=' + statusList.join(',');
1236                        }
1237                        goToDetailView(filter);
1238
1239                        return;
1240                    } else if (item.type === 'offMarketData') {
1241                        const propertyPath = getPropertyDetailPathFromOffMarketSuggestion(item);
1242
1243                        window.location.href = propertyPath;
1244
1245                        return;
1246                    }
1247
1248                    item.type = item.type.replace('usmCityAndState', 'cityAndState')
1249                        .replace('usmNeighborhood', 'neighborhood')
1250                        .replace('usmVillage', 'village')
1251                        .replace('usmSubdivision', 'subdivision')
1252                        .replace('usmComplex', 'complex');
1253
1254                    if (item.type === 'cityAndState') {
1255                        item.value = item.value.replace(', ', ' ');
1256                    }
1257
1258                    path = getUrlPath(item);
1259
1260                    // Don't save agents to recent searches
1261                    if (searchMode !== 'agents') {
1262                        var searches = [Object.assign({}, item)];
1263                        var storedSearches = JSON.parse(localStorage.getItem('lastSearches'));
1264
1265                        if (storedSearches) {
1266                            searches = storedSearches.filter(function(storedSearch) {
1267                                storedSearch.value !== item.value
1268                            });
1269                            storedSearches = searches.length <= (MAX_RECENT_SEARCHES_CACHED - 1)
1270                              ? searches
1271                              : searches.slice(0,-1);
1272                            searches = [Object.assign({}, item), ...storedSearches];
1273                        }
1274
1275                        localStorage.setItem('lastSearches', JSON.stringify(searches));
1276                    }
1277
1278                    var propertyTypeFilter = '';
1279                    var displaySalesRentalsToggle = '';
1280
1281                    if (displaySalesRentalsToggle && searchMode !== 'agents') {
1282                        var forSalePropertyTypes = '';
1283                        var rentalsPropertyTypes = '';
1284                        var forSaleLabel = 'Sales';
1285                        var rentalsLabel = 'Rentals';
1286                        var agentsLabel = '';
1287                        var propertyTypes = $('#sales-property-types-159646').hasClass('active') ? forSalePropertyTypes : rentalsPropertyTypes;
1288
1289                        if (propertyTypes) {
1290                            var urlPathTypes = ['cityAndState', 'county', 'postalCode'];
1291                            if (urlPathTypes.indexOf(item.type) !== -1 && !propertyTypes.includes(',')) {
1292                                path = path + propertyTypes.toLowerCase() + '/';
1293                            } else {
1294                                propertyTypeFilter = 'propertyTypes=' + propertyTypes;
1295                            }
1296                        }
1297                    }
1298
1299                    var fullPath = '';
1300                    if (path.length > 0) {
1301                        var separator = path.indexOf('?') !== -1 ? '&' : '?';
1302                        fullPath = '/listings/' + path + separator +'' + propertyTypeFilter;
1303                    } else {
1304                        fullPath = '/listings/?' + item.type + '=' + encodeURIComponent(item.value) + '&' + propertyTypeFilter;
1305                    }
1306
1307                    // Remove trailing ? or &
1308                    const lastChar = fullPath.charAt(fullPath.length - 1);
1309                    if (lastChar === '?' || lastChar === '&') {
1310                        fullPath = fullPath.slice(0, -1);
1311                    }
1312
1313                    window.location.href = fullPath;
1314                }
1315
1316                $('.widget-autosuggest').on('submit', function(e) {
1317                    submitSearch(e, suggestionResponse);
1318                });
1319
1320                $('.widget-autosuggest').on('autocompleteselect', function(e, ui) {
1321                    submitSearch(e, ui.item);
1322                });
1323
1324                var salesPropertyTypesButton = $('#sales-property-types-159646');
1325                var rentalPropertyTypesButton = $('#rentals-property-types-159646');
1326                var agentsButton = $('#agents-159646');
1327
1328                // Function to clear search and refresh autocomplete
1329                function clearSearchAndRefresh() {
1330                    $('#autosuggest-search-query-159646').val('').autocomplete('search', '');
1331                }
1332
1333                const buttons = [salesPropertyTypesButton, rentalPropertyTypesButton];
1334                if (showAgentsSearch === '1') {
1335                    buttons.push(agentsButton);
1336                }
1337
1338                function setActiveButton(activeButton, buttons) {
1339                    $.each(buttons, function(index, btn) {
1340                        btn.removeClass('active');
1341                    });
1342                    activeButton.addClass('active');
1343                    updatePlaceholder();
1344                    clearSearchAndRefresh();
1345                }
1346
1347                salesPropertyTypesButton.on('click', function() {
1348                    setActiveButton(salesPropertyTypesButton, buttons);
1349                });
1350
1351                rentalPropertyTypesButton.on('click', function() {
1352                    setActiveButton(rentalPropertyTypesButton, buttons);
1353                });
1354
1355                // Only add event handler if agents search is enabled
1356                if (showAgentsSearch === '1') {
1357                    agentsButton.on('click', function() {
1358                        setActiveButton(agentsButton, buttons);
1359                    });
1360                }
1361
1362                // Initialize placeholder on document ready
1363                $(document).ready(function() {
1364                    updatePlaceholder();
1365                });
1366            });
1367        
1368            require(["jquery", "bootstrap"], function ($) {
1369                if ($.fn.carousel === undefined && jQuery.fn.carousel !== undefined) {
1370                    $ = jQuery;
1371                }
1372                $("#carousel-156253 .carousel").carousel({
1373                    "interval": 10000
1374                });
1375                $("#carousel-156253 .carousel-inner .item").each(function() {
1376                        this.style["-webkit-transition-duration"] = "0s"; 
1377                        this.style["-moz-transition-duration"] = "0s"; 
1378                        this.style["-o-transition-duration"] = "0s"; 
1379                        this.style["transition-duration"] = "0s"; 
1380                });
1381            });
1382        
1383            require(["jquery", "usm", "usm.modalform", "usm.analytics"], function($, usm) {
1384                var $form = $('form#aaq-165127');
1385
1386                var options = {
1387                    postSuccess: function (e) {
1388                                                if (typeof dataLayer !== 'undefined') {
1389                            dataLayer.push({"event":"Contact_Form","form_name":"Ask A Question - General"});
1390                        }
1391                                            }
1392                };
1393
1394                usm.modalForm.addValidation($form, options);
1395            });
1396        var URI = "/user/register/";require(['usm', 'usm.user'], function (usm) { usm.user.setModal(true); });require(["jquery"], function ($) { $("body").addClass("js"); });</script>
1396<script type="text/javascript">require(["https://d1nn5t56all1qd.cloudfront.net/8625/js/custom.js?version=1690400801"]);</script>
1396</body>
1397</html><!-- You're on: Some other server - 172.18.22.9 - realtyofmaine.com   Time: 1.049 -->

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.