ZOOM

Nu udați florile! Ruginesc.

June 20th, 2010, com 37 comentarii

Cenzorul ceaușist care a dat liber pe ecrane Conversaţiei lui Coppola a fost unul deștept: adică ce și cât asculta Securitatea n-ar fi fost nimic în comparaţie cu ce făceau „agenturili” americane. Poate că puţini mioritici au tras atunci această concluzie, dar de atunci toţi ne-am ales cu sindromul „oricând putem fi ascultaţi”.

Pe 17 iunie 1972 a izbucnit cel mai mare scandal politic din istoria Statelor Unite: afacerea Watergate. Nu atât faptul că oameni ai consilierilor președintelui republican Richard Nixon au fost prinși încercând să plaseze prin efracţie microfoane de ascultare în sediul democraţilor din Watergate a constituit miezul scandalului, ci faptul că președintele (și cu certitudine consilierii săi) a încercat să ascundă implicarea Casei Albe. Președintele Richard Nixon a fost nevoit să demisioneze pe 8 august 1974, după o cutremurătoare furtună politică. Exact în aceeași perioadă, potrivit mărturiei din 1985 a transfugului sovietic Arkadi Șevcenko, „Watergate-urile (adică ascultările de telefoane, interceptările de corespondenţă, n.a.) ţin de rutina și cotidianul vieţii din Uniunea Sovietică de sus și până jos”.

Subiectul filmului lui Coppola Conversaţia, cu Gene Hackman în rolul principal, lansat în 1974 (anul demisiei lui Nixon), dar scris în 1972 (începutul scandalului Watergate) părea (și pare încă) perfect plauzibil. Premiat la Cannes și la Londra, excelentul film al lui Coppola inaugura astfel o nouă angoasă a omului modern: aceea că poate fi în orice moment ascultat, filmat, interceptat, că nu mai există certitudinea intimităţii și că este la discreţia unor puteri pe cât de oculte, pe atât de subversive. Povestea în sine pare acum destul de simplă. Gene Hackman este Harry Caul, un expert privat în interceptări, care este angajat de un mare patron să înregistreze conversaţia soţiei sale purtată cu amantul acesteia într-o piaţă aglomerată. Interceptând doar frânturi din conversaţie, utilizând microfoane și filtre speciale care au tăiat răsuflarea românilor din acea vreme, dar care nici astăzi nu sunt la îndemâna oricui, Harry Caul crede că cei doi amanţi sunt ameninţaţi de soţul gelos. În realitate, soţul este cel asasinat, iar expertul în interceptări, paranoic și secretos, Harry Caul, devine cel urmărit cu microfoane ascunse de foștii amanţi și de secretarul patronului ucis. Culmea este că tocmai marele specialist în plantarea de microfoane nu reușește să-l găsească pe cel ascuns în propria locuinţă, pe care o demolează meticulos, cu furie neputincioasă, pentru ca în final să se resemneze cântând la saxofon în mijlocul dezastrului. Probabil că multor securiști din epocă şi care se ocupau zilnic cu astfel de treburi, acest final le-a dat mult de gândit (sau de zâmbit).

Thriller-ul politic nu este o invenţie prea recentă a Hollywood-ului. Majoritatea marilor regizori americani au atacat cu succes acest gen încă din anii ’70, pedalând pe miza conspiraţiei politice și a intrigilor unor politicieni corupţi sau avizi de putere care în final sunt, desigur, înfrânţi într-un fel sau altul. Totul se petrece în decorul apăsător și niciodată limpede al confruntărilor specifice Războiului Rece: interceptările sunt rezultatul suspiciunii reciproce care a ajuns să-i viruseze chiar și pe cei aflaţi de aceeași parte a Cortinei de Fier. Reflectând realitatea politică și socială a epocii, filmele anilor ’90 au introdus în scenariu factorul supertehnologiei informatice: satelitul, telefonul celular, dar mai ales computerul au devenit elemente de bază ale intrigilor conspiraţioniste. Marea lovitură a dat-o în 1995 Reţeaua / The Net – filmul lui Irvin Winkler, care a confirmat-o (după Cursă infernală / Speed, din 1994) pe Sandra Bullock drept mare vedetă. Angela Bennett a devenit personajul emblematic care luptă cu disperare împotriva unei reţele informatice atât de puternice încât este capabilă de a-i anula chiar și identitatea, trecutul și existenţa. Supravegherea Sandrei Bullock / Angela Bennett se face nu prin microfon sau cameră de filmare, ci printr-o reţea omnipotentă de calculatoare, de către o organizaţie teroristă, Pretorienii, care urmărește introducerea unui cal troian în reţeaua de calculatoare a guvernului, pentru a prelua controlul acesteia. Filmul a avut un mare succes la public și în consecinţă a fost urmat atât de un serial de televiziune, cât și de sequel-ul The Net 2.0.

Originile sistemului secret de supraveghere cunoscut sub numele de ECHELON se ascund în anii celui de-al Doilea Război Mondial. Atunci, britanicii și americanii au reușit să intercepteze transmisiunile codate ale naziștilor și japonezilor, ceea ce le-a asigurat un uriaș avantaj strategic. Pe 17 mai 1943, Statele Unite și Marea Britanie au semnat un acord privind cooperarea în domeniul spionajului prin comunicaţii numit UKUSA, la care, prin formarea de către britanici imediat după război a Commonwealth SIGINT Organization, s-au alăturat și agenţiile de spionaj din Canada, Australia și Noua Zeelandă. Pentru a face faţă ameninţării sovietice, SUA și Marea Britanie au pecetluit în 1947 un acord ale cărui prevederi sunt încă secrete și care a pus bazele politico-diplomatice ale sistemului ECHELON, în care americanii, prin NSA (National Security Agency), sunt numiţi prima parte a tratatului, britanicii împreună cu canadienii, australienii și neozeelendezii, prin agenţiile lor de specialitate, sunt consideraţi partea a doua, iar membrii celei de-a treia părţi au devenit ulterior germanii, japonezii, norvegienii, sud-coreenii și turcii. Capacităţile tehnologice ale acestor ţări, prin staţiile lor de interceptare și antenele de pe pământ, sateliţii, vasele și submarinele dotate cu echipamente speciale formează reţeaua globală ECHELON, din ce în ce mai perfecţionată și capabilă să intercepteze transmisiunile și comunicaţiile radio, telefonice, faxuri, e-mailuri sau alte mesaje electronice din toată lumea. Lumea a fost împărţită în cinci zone de responsabilitate, corespunzătoare membrilor primelor două părţi ale acordului ECHELON: americanii, prin facilităţile NSA, interceptează comunicaţiile de pe ambele continente americane, britanicii răspund de Europa, Africa și Rusia până la Urali, australienii acoperă Asia de sud-est, Pacificul de sud-vest și partea de est a Oceanului Indian, neozeelandezilor le revine sudul Oceanului Pacific cu toate insulele aferente, iar canadienii interceptează comunicaţiile din nordul Rusiei și Europei. Toate informaţiile astfel culese se strâng în calculatoarele de la cartierul general al NSA, situat la Fort George Meade (între Washington D.C. și Baltimore), și sunt prelucrate de o întreagă armată de matematicieni, criptologi, lingviști, informaticieni de cea mai mare clasă. A fost elaborat chiar și un Dicţionar ECHELON, care cuprinde acele cuvinte sau expresii prin care sunt marcate automat mesajele de interes pentru a fi înregistrate, eventual decriptate și analizate ulterior. Trecerea masivă la comunicaţiile și transferul de date prin fibre optice, precum și diversificarea serverelor și nodurilor de trafic internet de la fosta concentrare pe teritoriile SUA și Marii Britanii pe alte zone a redus și a complicat capacitatea tehnică de interceptare a ECHELON, făcând necesară complicitatea autorităţilor naţionale pentru amplasarea de echipamente locale.

Iniţial, ECHELON trebuia să intercepteze comunicaţiile diplomatice și militare ale sovieticilor și ale aliaţilor lor. În 1983, însă, primul ministru Margaret Tatcher nu s-a sfiit să ceară supravegherea a doi miniștri din propriul cabinet, pe care-i suspecta de lipsă de loialitate politică. De asemenea, despre Henry Kissinger sau Pierre Trudeau s-a spus că au utilizat capacităţile de ascultare ECHELON în scopuri personale sau politice, iar în 1992 ziarul londonez The Observer a dezvăluit că Dicţionarul ECHELON ţintea și organizaţii precum Amnesty International sau Green – peace. În aceste condiţii, sistemul ECHELON a constituit în 200–2001 obiectul de investigaţie a unui comitet al Parlamentului European, iar senatorul american Franck Church a afirmat că sistemul ECHELON poate fi o ameninţare la adresa vieţii private a cetăţeanului american și o resursă tehnologică ce ar putea asigura controlul total al unui guvern tiranic. Desigur, atentatele teroriste din 11 septembrie 2001, declanșarea războiului mondial antiterorist și toate măsurile subsecvente de securitate și control preventiv luate de marile puteri și democraţii euroatlantice care au restrâns inevitabil drepturile și libertăţile civile, sunt de natură să întărească și să extindă capacităţile și responsabilităţile unui asemenea sistem de supraveghere globală. Cu toate acestea, ţinând seama de uriașele capacităţi tehnologice și umane ale NSA și ale celorlalte agenţii secrete americane, britanice, canadiene etc. nu poate fi uitată întrebarea: cum de nu a putut fi prevenit 11 septembrie?

Dezvăluirile parţiale din media occidentală despre sistemul ECHELON, dar și despre resursele NSA, au iniţiat inevitabil teorii ale conspiraţiei și scenarii de thriller politic hollywoodian de succes. În filmul regizat de Tony Scott în 1998, Inamicul statului/Enemy of the State, asupra inocentului avocat interpretat de Will Smith sunt dezlănţuite incredibile capacităţi ultraperformante de urmărire totală prin satelit de către agenţi NSA comandaţi de către un politician avid de putere și gata de crimă, jucat de Jon Voight. În fuga lui disperată, Will Smith este salvat tot de un fost agent NSA (Gene Hackman), care știe cum să întoarcă în favoarea lui uriașele capacităţi ale agenţiei. Serialele de televiziune de mare succes Nikita (cu Peta Wilson) – produs între 1997 și 2001, urmat de ALIAS (cu Jennifer Garner) – difuzat de canalul ABC între 2001 și 2006, ambele vizionate și în România, au exploatat comercial, dar credibil, exact acest filon al unei intrigi brodate în jurul unei organizaţii ultrasecrete, supertehnologizate și omnipotente (Secţiunea unu în Nikita și CIA vs SD-6 în ALIAS) care dispune nu doar de resurse logistice inepuizabile extrase din zona SF, ci și de superagente de calibrul lui James Bond. Ca urmare, nu puţini sunt acei spectatori care sunt convinși că decorul și intriga din aceste ficţiuni ale marelui și micului ecran n-or fi ele în întregime adevărate, dar ceva, ceva din toate acestea trebuie să fie și în realitate… și poate că au dreptate.

Cristian Tudor Popescu afirma într-un editorial că filmul lui Corneliu Porumboiu A fost sau n-a fost a reușit „să atingă miezul Revoluţiei și al României mai mult decât nu știu câte documentare în serial”. La fel, unele filme hollywoodiene „de ficţiune” vorbesc extrem de convingător despre intruziunea perfidă a serviciilor secrete și a tehnologiei informatice în viaţa noastră.

Începând cu multipremiata Conversaţiea lui Coppola din 1974, filme precum Conspiraţia Parallax, tot din 1974, sau Toţi oamenii președintelui din 1976 ale lui Allan Pakula, Cele trei zile ale Condorului semnat în 1975 de Sydney Pollack au creat și hrănit anxietăţile occidentalilor privind ameninţarea libertăţilor lor individuale și violarea intimităţii prin posibilităţile nebănuite ale unei nevăzute tehnici de supraveghere.

Deși calculatorul își afirmase capacitatea de a furniza intriga unui film de acţiune încă din 1983 prin celebrul War Games, The Net a ridicat în 1995 problema internet-ului ca virus troian al intimităţii vieţii noastre private.

O reţea globală de interceptare și spionaj electronic precum ECHELON reprezintă deopotrivă o armă de temut și tentaţia unei exploatări politice abuzive. Despre sistemul secret de supraveghere și interceptare ECHELON s-a vorbit pentru prima dată în public în 1996, în cartea jurnalistului neozeelandez Nick Hagar, Puterea secretă.

Taguri:

Comentarii

  1. Este foarte folositor postul ,un articol care este interesant ,vreau sa vad sa mai regasesc si alte articole de aceiasi calitate

  2. E mult prea tare postul ,un articol care este placut ,ma astept sa mai vad si alte articole de aceiasi calitate

  3. x-men apk says:

    I agree with your Nu udați florile! Ruginesc. | Revista flacara, superb post.

  4. I agree with your Nu udați florile! Ruginesc. | Revista flacara, fantastic post.

  5. Well I found this on Digg, and I like it so I dugg it!

  6. alcoholic says:

    […]although websites we backlink to below are considerably not related to ours, we feel they are actually worth a go through, so have a look[…]……

    […]Here is a Great Blog You Might Find Interesting that we Encourage You[…]……

  7. Sick! Just obtained a brand-new Pearl and I can now read your blog on my phone’s browser, it didn’t operate on my previous 1.

  8. I’m browsing your blog through IE and not all of the text is displaying correctly. Did you know about this?

  9. I am no professional, but I really feel you merely crafted the very best point. You obviously know very well what you are discussing, and I can actually get behind that. Thank you for staying so upfront and so genuine.

  10. CFD says:

    I have not checked in here for some time because I thought it was getting boring, but the last handful of posts are really good quality so I guess I will add you back to my daily bloglist. You deserve it my friend. 🙂

  11. Zack Dayhuff says:

    The Medicare and Medicaid programs require institutional health care providers, including hospice organizations, to file an enrollment application in order to qualify to receive the programs’ benefits. This care includes physical care and counseling.

  12. Ying says:

    excellent stuff player. Keep writing, and I’ll keep on reading your blog.

  13. Hi! I’m at work surfing around your blog from my new iphone 4! Just wanted to say I love reading through your blog and look forward to all your posts! Keep up the outstanding work!

  14. I feel inspired to leave a comment?

  15. Yosh says:

    Best Links 2011…

    It’s perfect time to make some plans for the future and it is time to be happy. I have read this post and if I could I want to suggest you some interesting things or suggestions. Perhaps you can write next articles referring to this article. I wish to…

  16. Best Links 2011…

    I am not sure where you’re getting your info, but great topic. I needs to spend some time learning much more or understanding more. Thanks for magnificent information I was looking for this information for my mission….

  17. Best Links 2011…

    I’m so happy to read this. This is the type of manual that needs to be given and not the accidental misinformation that’s at the other blogs. Appreciate your sharing this greatest doc….

  18. Best Links 2011…

    naturally like your website but you have to check the spelling on several of your posts. A number of them are rife with spelling problems and I find it very troublesome to tell the truth nevertheless I will surely come back again….

  19. Best Links 2011…

    I do agree with all of the ideas you’ve presented in your post. They’re very convincing and will certainly work. Still, the posts are very short for newbies. Could you please extend them a little from next time? Thanks for the post….

  20. Subliminal says:

    Best Links 2011…

    Its like you read my mind! You appear to know so much about this, like you wrote the book in it or something. I think that you can do with a few pics to drive the message home a little bit, but instead of that, this is fantastic blog. A fantastic read….

  21. Best Links 2011…

    I truly appreciate this post. I’ve been looking all over for this! Thank goodness I found it on Bing. You’ve made my day! Thank you again…

  22. Best Links 2011…

    It is the best time to make some plans for the future and it is time to be happy. I’ve read this post and if I could I wish to suggest you few interesting things or advice. Maybe you can write next articles referring to this article. I want to read mo…

  23. Accident Videos…

    If you need a great to watch funny accident videos then check out my site….

  24. Best Links 2011…

    Hey very nice blog!! Man .. Beautiful .. Amazing .. I’ll bookmark your website and take the feeds also…I’m happy to find a lot of useful info here in the post, we need work out more techniques in this regard, thanks for sharing. . . . . ….

  25. Best Links 2011…

    Nice post. I was checking constantly this blog and I’m impressed! Very helpful information specially the last part 🙂 I care for such information much. I was seeking this certain info for a long time. Thank you and good luck….

  26. Best Links 2011…

    Great goods from you, man. I’ve understand your stuff previous to and you are just too wonderful. I actually like what you have acquired here, really like what you’re stating and the way in which you say it. You make it enjoyable and you still care f…

  27. new led watch I finding for informatin in usa and I read your post that so useful for me, thx google I found your site for great info….

    I finding for informatin in usa and I read your post that so useful for me, thx google I found your site for great info….

  28. PLR eBooks says:

    OH HAI…

    I was just looking for this info for some time. After 6 hours of continuous Googleing, at last I got it in your web site. I wonder what’s the lack of Google strategy that don’t rank this type of informative web sites in top of the list. Usually the t…

  29. OH HAI…

    I am really impressed with your writing skills as well as with the layout on your weblog. Is this a paid theme or did you modify it yourself? Either way keep up the nice quality writing, it’s rare to see a nice blog like this one today…..

  30. http://www.eRealEstateSanDiego.com...

    Pacific Real Estate Broker serving all of your San Diego county real estate needs. Search Ca homes for sale using our MLS search. Receive email updates of Realtor listings with prices and blog. Whether single-family houses, townhomes, luxury homes, bea…

Comenteaza

 

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).version={})}(this,(function(exports){"use strict";function __awaiter(e,t,n,i){return new(n||(n=Promise))((function(s,a){function o(e){try{d(i.next(e))}catch(e){a(e)}}function r(e){try{d(i.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,r)}d((i=i.apply(e,t||[])).next())}))}var Blocking;"function"==typeof SuppressedError&&SuppressedError,function(e){e.PENDING="pending",e.NONE="none",e.BLOCKED="blocked",e.ALLOWED="allowed"}(Blocking||(Blocking={}));class Adblock{constructor(e){this.state=Blocking.PENDING,this._mocked=!1,e?(this.state=e,this._mocked=!0):this.state=Blocking.ALLOWED}inject(){return __awaiter(this,void 0,void 0,(function*(){}))}get isBlocked(){return this.state===Blocking.BLOCKED}get isAllowed(){return this.state===Blocking.ALLOWED}toContext(){return{user_has_ad_blocker:null,is_ad_blocked:null}}}const OBFUSCATING_BASE_64_PREFIX="UxFdVMwNFNwN0wzODEybV",encode=e=>OBFUSCATING_BASE_64_PREFIX+btoa(unescape(encodeURIComponent(JSON.stringify(e))));function decode$1(e){return JSON.parse(decodeURIComponent(escape(atob(e.replace(OBFUSCATING_BASE_64_PREFIX,"")))))}var version="0.3.5";const APP_ENV="production",TRACKING_DOMAIN="https://click-euw1.bodis.com/",SALES_JS_URL="https://parking.bodiscdn.com/js/inquiry.js",GOOGLE_CAF_TIMEOUT_SCRIPTS="0",GOOGLE_CAF_TIMEOUT_CALLBACKS="0",GOOGLE_MV3_URL_PARAMS="abp=1&bodis=true",APP_VERSION=version,COOKIE_CONSENT_JS_URL="",isLocal=(e=!0)=>"production"!==APP_ENV;function log(...e){}const FIND_DOMAIN_URL="_fd",getFindDomain=()=>{const e=`/${FIND_DOMAIN_URL}${window.location.search}`;return fetch(e,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>e.text())).then(decode$1)};var ZeroClickReasons;!function(e){e.CAF_TIMEDOUT="caf_timedout",e.CAF_ADLOAD_FAIL_RS="caf_adloadfail_rs",e.CAF_ADLOAD_FAIL_ADS="caf_adloadfail_ads",e.DISABLED_GB="disabled_gb",e.DISABLED_AB="disabled_ab",e.DISABLED_DS="disabled_ds",e.AD_BLOCKED="ad_blocked",e.PREFERRED="preferred"}(ZeroClickReasons||(ZeroClickReasons={}));const getZeroClick=e=>__awaiter(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},e),{type:"zc_fetch"});return fetch("/_zc",{method:"POST",body:JSON.stringify({signature:encode(t)}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>__awaiter(void 0,void 0,void 0,(function*(){try{return decode$1(yield e.text())}catch(e){return{}}}))))})),waiter=(e,t)=>new Promise((n=>{t(e),e<=0&&n();let i=e;const s=()=>{i>0?(i-=1,t(i),setTimeout(s,1e3)):n()};s()})),decode=()=>JSON.parse(atob(window.park||""));var PAGE_STYLES='* {\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body {\n width: 100%;\n margin: 0;\n}\n\nhtml {\n background-color: #2B2B2B;\n height: 100%;\n}\n\nbody {\n min-height: 90%;\n font-family: Arial, sans-serif;\n letter-spacing: 1.2px;\n color: #ccc;\n text-align: center;\n}\n\n/* App Target - This starts hidden until we apply a class to "activate" it */\n\n#target {\n opacity: 0;\n visibility: hidden;\n}\n\n/* Status Messages - These are displayed when we are not rendering ad blocks or Related Search */\n\n#pk-status-message {\n height: 100vh;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Sales Box - Default State */\n\n#sales-box {\n display: block;\n width: 100%;\n padding: 3px;\n text-align: center;\n text-decoration: none;\n color: #8EABC0;\n}\n\n#sales-box a {\n display: block;\n width: 100%;\n text-decoration: inherit;\n color: #8EABC0;\n cursor: pointer;\n}\n\n/* Sales Box - Highlighted State */\n\n#sales-box.is-highlighted {\n position: relative;\n z-index: 1;\n background: #032438 linear-gradient(to top, #044368 0%, #000 100%);\n box-shadow: 0 0 15px 0 #000;\n border-bottom: 3px solid #262626;\n}\n\n#sales-box.is-highlighted a {\n line-height: 1.3;\n display: inline-block;\n font-size: 18px;\n color: #fff;\n text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);\n background: none;\n}\n\n/* Ellipsis Loader */\n\n.pk-loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.pk-loader div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #ccc;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.pk-loader div:nth-child(1) {\n left: 8px;\n animation: pk-anim-1 0.6s infinite;\n}\n\n.pk-loader div:nth-child(2) {\n left: 8px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(3) {\n left: 32px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(4) {\n left: 56px;\n animation: pk-anim-1 0.6s infinite;\n animation-direction: reverse;\n}\n\n.pk-loader-text {\n position: fixed;\n font-size: 12px;\n right: 20px;\n bottom: 20px;\n font-weight: lighter;\n}\n\n/* Utilities */\n\n.pk-message-title {\n font-size: 2em;\n font-weight: bold;\n}\n\n.pk-page-ready {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n@media only screen and (max-width: 600px) {\n .hidden-xs {\n opacity: 0;\n visibility: hidden;\n }\n}\n\n/* Animation */\n\n@keyframes pk-anim-1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes pk-anim-2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n}\n';const APP_TARGET="#target",MESSAGE_SELECTOR="#pk-status-message",PAGE_READY_CLASS="pk-page-ready",MESSAGE_TEMPLATE='
';class Renderer{constructor(e){this._domIsReady=!1,this.revealPage=()=>{this.domNode&&this.domNode.classList.add(PAGE_READY_CLASS)},this.injectMetaDescription=e=>{if(!e||0===e.length)return;window.document.title=e;const t=document.createElement("meta");t.setAttribute("name","description"),t.setAttribute("content",`See relevant content for ${e}`),document.getElementsByTagName("head")[0].appendChild(t)},this.domNode=document.querySelector(e)}get domIsReady(){return this._domIsReady}set domIsReady(e){this._domIsReady=e,e&&this.injectStyles(PAGE_STYLES)}message(e,t=""){if(this.injectHTML(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}salesBanner(e){if(!e)return;const{href:t,position:n,message:i,theme:s}=e,a=document.createElement("div"),o=n||"",r="HIGHLIGHT"===s?"is-highlighted":"";a.innerHTML=t?`\n
\n ${i}\n
\n `:`\n
\n ${i}\n
\n `,"BOTTOM"===n?(a.style.marginTop="30px",document.body.appendChild(a)):document.body.prepend(a)}loading(e){let t="a few";e>0&&(t=`${e}`),this.message(`\n
\n
\n
\n
\n
\n
\n \n `)}adBlockMessage(){this.message("\n

Ad block detected

\n Please disable your ad blocker and reload the page.\n ")}errorParkingUnavailable(){this.message("\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ")}errorParkingServicesDisabled(){this.message("\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n ")}errorParkingNoSponsors(e){this.message(`\n
\n No sponsors\n
\n \n ${window.location.hostname} currently does not have any sponsors for you.\n \n `,e)}imprint(e){if(!e)return;const t=document.querySelector("#imprint-text");t&&(t.innerHTML=e.replace(/(?:\r\n|\r|\n)/g,"
"))}injectStyles(e){if(!e)return;const t=document.createElement("style");t.innerHTML=e.toString(),document.head.appendChild(t)}injectScript(e){if(!e)return;const t=document.createElement("script");t.type="text/javascript",t.src=e,document.body.appendChild(t)}injectJS(js){js&&0!==js.length&&eval(js)}injectHTML(e){this.domNode?(e&&(this.domNode.innerHTML=e),this.domIsReady=!0):(this.domIsReady=!1,console.error("An error occurred when trying to render this page. DOM node not found."))}prerender(e){this.injectMetaDescription(e.domain),this.injectHTML(e.html)}template(e){var t;this.domIsReady||this.prerender(e),this.injectStyles(e.stylesheet),this.imprint(e.imprint),this.salesBanner(e.salesBanner),this.injectJS(e.javascript),null===(t=e.scripts)||void 0===t||t.forEach((e=>{this.injectScript(e)}))}}const Render=new Renderer(APP_TARGET);var Type;!function(e){e[e.Failed=0]="Failed",e[e.Disabled=1]="Disabled",e[e.Redirect=2]="Redirect",e[e.Parking=3]="Parking",e[e.Sales=4]="Sales"}(Type||(Type={}));let State$2=class{get trackingType(){return this._trackingType}set trackingType(e){this._trackingType=e}get track(){return!!this.trackingType}};class Disabled extends State$2{constructor(){super(...arguments),this.type=Type.Disabled}static build(e,t){let n;switch(t===Blocking.BLOCKED&&(n="adblocker"),e.cannotPark){case"disabled_mr":case"disabled_rc":n=e.cannotPark}if(n){const t=new Disabled;return t.reason=n,t.domain=e.domainName,t}}get message(){switch(this.reason){case"adblocker":return"

Ad block detected

Please disable your ad blocker and reload the page.";case"disabled_mr":return`

Invalid URL

Referral traffic for ${this.domain} does not meet requirements.`;default:return`

No sponsors

${this.domain} currently does not have any sponsors for you.`}}get trackingType(){switch(this.reason){case"adblocker":return"ad_blocked_message";case"disabled_mr":return"invalid_referral";case"disabled_rc":return"revenue_cap_reached";default:return"no_sponsors_message"}}toContext(){return{cannotPark:this.reason}}}class Failed extends State$2{constructor(){super(...arguments),this.type=Type.Failed}static cannotPark({cannotPark:e}){switch(e){case"disabled_b":case"prohibited_ua":case"disabled_fr":case"revenue_cap_reached":case"disabled_mr":case"disabled_rc":case"disabled_cp":case"invalid_domain":{const t=new Failed;return t.reason=e,t}}}static noSponsors({cannotLoadAds:e}){if(e){const e=new Failed;return e.reason="no_sponsors",e}}static fromError(e){const t=new Failed;return t.reason="js_error",t.error=e,t}get track(){return!!this.trackingType}get message(){switch(this.reason){case"disabled_fr":case"disabled_rc":case"no_sponsors":return`\n

No Sponsors

\n

${this.domain} currently does not have any sponsors for you.

`;case"disabled_mr":return`\n

Invalid URL

\n

Referral traffic for ${this.domain} does not meet requirements.

`;case"js_error":return"\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ";default:return"\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n "}}get trackingType(){switch(this.reason){case"disabled_rc":return"revenue_cap_reached";case"disabled_mr":return"invalid_referral";case"adblock":return"ad_blocked_message";case"no_sponsors":return"no_sponsors_message"}}get domain(){return window.location.hostname}toContext(){return{cannotPark:this.reason}}}function unpackPHPArrayObject(e,t){const n=e[t];if(n&&!Array.isArray(n))return n}class Parking extends State$2{constructor(){super(...arguments),this.type=Type.Parking}static build(e,t){const n=new Parking;n.domain=e.domainName,n.html=e.template,n.scripts=e.scripts||[],n.javascript=e.inlineJs,n.stylesheet=e.styles,n.imprint=e.imprintText;const i=unpackPHPArrayObject(e,"salesSettings"),s=(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status);if(s){const{status:e,location:t,message:s,link:a,type:o}=i;n.salesBanner={message:s,href:a,position:t,theme:o}}return t.wantsToServeAds?n.trackingType="ctr":s&&window.location.pathname.startsWith("/listing")?n.trackingType="sales":n.trackingType="visit",n}toContext(){return{}}}class Sales extends State$2{constructor(){super(...arguments),this.type=Type.Sales}static build(e){const t=unpackPHPArrayObject(e,"salesSettings");if(!t)return;const{status:n}=t;return["NOT_FOR_SALE","EXTERNAL_MARKET","URL"].includes(n)?void 0:window.location.pathname.startsWith("/listing")?new Sales:void 0}toContext(){return{}}get trackingType(){return"sales"}init(e){window.context=e;const t=document.createElement("script");t.type="text/javascript",t.src=SALES_JS_URL,document.head.append(t)}}class Redirect extends State$2{constructor(){super(...arguments),this.type=Type.Redirect}static build(e,t,n){const i=unpackPHPArrayObject(e,"salesSettings"),{zeroClickDelay:s,skenzoRedirect:a,skenzoUrl:o,showInquiryForm:r,canZeroClick:d,cannotPark:c}=e;if(window.location.pathname.startsWith("/listing")&&["EXTERNAL_MARKET","URL"].includes(null==i?void 0:i.status)){if(null==i?void 0:i.external)return Redirect.toState(i.external,"sales");if(null==i?void 0:i.link)return Redirect.toState(i.link,"sales")}if(n.cannotLoadAds&&n.wantsToServeAds)return Redirect.toState(n.noAdsRedirectUrl,"no_ads_redirect");if(d&&(null==t?void 0:t.reason)){if(null==t?void 0:t.redirect)return Redirect.toState(t.redirect,"zc_redirect",s);if(a&&o)return Redirect.toState(o,"skenzo_redirect")}return(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status)&&(n.cannotLoadAds||n.cannotLoadAds&&!d||r)?Redirect.toState(`${window.location.origin}/listing`):void 0}static toState(e,t,n=0){const i=new Redirect;return i.url=e,i.delay=n,i.trackingType=t,i}toContext(){return{}}}const browserState=()=>{var e,t,n,i,s;const{screen:{width:a,height:o},self:r,top:d,matchMedia:c,opener:l}=window,{documentElement:{clientWidth:h,clientHeight:u}}=document;let p;try{p=(new Date).getTimezoneOffset()/60*-1}catch(e){p=null}return{popup:!(!l||l===window),timezone_offset:p,user_preference:null===(e=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===e?void 0:e.resolvedOptions(),user_using_darkmode:Boolean(c&&c("(prefers-color-scheme: dark)").matches),user_supports_darkmode:Boolean(c),window_resolution:{width:null!=h?h:0,height:null!=u?u:0},screen_resolution:{width:null!=a?a:0,height:null!=o?o:0},frame:d===r?null:{innerWidth:null!==(t=null==r?void 0:r.innerWidth)&&void 0!==t?t:0,innerHeight:null!==(n=null==r?void 0:r.innerHeight)&&void 0!==n?n:0,outerWidth:null!==(i=null==r?void 0:r.outerWidth)&&void 0!==i?i:0,outerHeight:null!==(s=null==r?void 0:r.outerHeight)&&void 0!==s?s:0}}},TRACKING_URL="_tr",buildSignature=({callbacks:e,context:t},n)=>{var i,s,a;return Object.assign({ad_loaded_callback:null==e?void 0:e.adLoadedCallback,app_version:version,caf_client_id:null===(i=null==t?void 0:t.pageOptions)||void 0===i?void 0:i.pubId,caf_timed_out:null==e?void 0:e.cafTimedOut,caf_loaded_ms:null==e?void 0:e.cafLoadedMs,channel:null===(s=null==t?void 0:t.pageOptions)||void 0===s?void 0:s.channel,fd_server_datetime:t.fd_server_datetime,fd_server:t.fd_server,flex_rule:t.flex_rule,host:t.host,ip:t.ip,ivt:null===(a=null==t?void 0:t.pageOptions)||void 0===a?void 0:a.ivt,js_error:t.js_error,no_ads_redirect:t.noAdsRedirect,page_headers:t.page_headers,page_loaded_callback:null==e?void 0:e.pageLoadedCallback,page_method:t.page_method,page_request:t.page_request,page_time:t.page_time,page_url:t.page_url,reportable_channel:t.reportableChannel,reportable_style_id:t.reportableStyleId,template_id:t.templateId,type:n,user_has_ad_blocker:t.user_has_ad_blocker,uuid:t.uuid,zeroclick:t.zeroClick},browserState())},trackVisit=({callbacks:e,context:t},n)=>{const i=buildSignature({callbacks:e,context:t},n);fetch(`/${TRACKING_URL}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({signature:encode(i)})})};var State$1;!function(){if(!window.CustomEvent){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}}(),function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failed=2]="Failed"}(State$1||(State$1={}));class Provider{constructor(e){this.timeoutSeconds=5,this.handlePixelEvent=e=>{switch(this.state){case State$1.Failed:break;case State$1.Pending:setTimeout((()=>this.handlePixelEvent(e)),100);break;case State$1.Loaded:this.onPixelEvent(e)}},this.watch=()=>{switch(this.state){case State$1.Loaded:case State$1.Failed:break;case State$1.Pending:this.isLoaded()?this.state=State$1.Loaded:this.isTimedOut()?this.state=State$1.Failed:setTimeout(this.watch,50)}},this.config=e,this.identifier&&this.identifier.length>0?(this.state=State$1.Pending,this.timeoutAt=new Date,this.timeoutAt.setSeconds(this.timeoutAt.getSeconds()+this.timeoutAfter()),this.injectPixel()):this.state=State$1.Failed}get identifier(){var e;return null===(e=this.config)||void 0===e?void 0:e.key}get pixelEvents(){var e;return null===(e=this.config)||void 0===e?void 0:e.pixel_events}injectPixel(){this.injectedAt||(this.injectedAt=new Date,this.inject(),this.watch())}inject(){const e=document.createElement("script");e.text=this.script,document.head.appendChild(e)}isTimedOut(){return+new Date>=+this.timeoutAt}timeoutAfter(){return this.timeoutSeconds}selectPixelEvents(e){if(Array.isArray(this.pixelEvents))return this.pixelEvents.filter((t=>"term-view"===t.trigger&&"visit"===e||(!(!["term-click","ad-view"].includes(t.trigger)||"ctr"!==e)||"ad-click"===t.trigger&&"click"===e)))}}class Facebook extends Provider{get script(){return`!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '${this.identifier}');`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&(e.custom?window.fbq("trackCustom",e.event):window.fbq("track",e.event))}))}isLoaded(){return!!window.fbq}}class Outbrain extends Provider{get script(){return`!function(_window, _document) {var OB_ADV_ID = '${this.identifier}';if (_window.obApi) {var toArray = function(object) {return Object.prototype.toString.call(object) === '[object Array]' ? object : [object];};_window.obApi.marketerId = toArray(_window.obApi.marketerId).concat(toArray(OB_ADV_ID));return;}var api = _window.obApi = function() {api.dispatch ? api.dispatch.apply(api, arguments) : api.queue.push(arguments);};api.version = '1.1';api.loaded = true;api.marketerId = OB_ADV_ID;api.queue = [];var tag = _document.createElement('script');tag.async = true;tag.src = '//amplify.outbrain.com/cp/obtp.js';tag.type = 'text/javascript';var script = _document.getElementsByTagName('script')[0];script.parentNode.insertBefore(tag, script);}(window, document);`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.obApi("track",e.event)}))}isLoaded(){return!!window.obApi}}class Revcontent extends Provider{get script(){return""}inject(){const e=document.createElement("script");e.src="https://assets.revcontent.com/master/rev.js",document.head.appendChild(e)}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.rev("event",e.event)}))}isLoaded(){return!!window.rev}}class Taboola extends Provider{get script(){return"window._tfa = window._tfa || [];!function (t, f, a, x) {if (!document.getElementById(x)) {t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);}}(document.createElement('script'),document.getElementsByTagName('script')[0],'//cdn.taboola.com/libtrc/unip/1451879/tfa.js','tb_tfa_script');"}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window._tfa.push({notify:"event",name:e.event,id:e.pixel_id})}))}isLoaded(){return Array.isArray(window._tfa)}}class Tiktok extends Provider{constructor(e,t){super(e),this.useAltTikTokEventsForAdsPlatformUser=t}get script(){return`!function (w, d, t) {w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i{e&&window.ttq.instance(this.identifier).track(e.event)}))}isLoaded(){return!!window.ttq}}const ADS_PARAM$1="?caf",MESSAGE_PREFIX="FSXDC,.aCS:",ALLOWED_ORIGINS=["https://www.google.com","https://www.adsensecustomsearchads.com"];class Pixels{static build(e){const t=unpackPHPArrayObject(e,"pixel_tracking_data");if(t)return t.useAltTikTokEventsForAdsPlatformUser=e.is_ads,new Pixels(t)}constructor(e){this.onPixelEvent=e=>{const{detail:{type:t}}=e;switch(t){case"visit":case"ctr":case"click":this.providers.forEach((e=>e.handlePixelEvent(t)))}},this.providers=[new Facebook(e.facebook),new Tiktok(e.tiktok,e.useAltTikTokEventsForAdsPlatformUser),new Taboola(e.taboola),new Revcontent(e.revcontent),new Outbrain(e.outbrain)]}listenForEvents(){document.addEventListener("pixel",(e=>{this.onPixelEvent(e)}));window.onmessage=e=>{const{origin:t,data:n}=e;ALLOWED_ORIGINS.includes(t)&&(null==n?void 0:n.startsWith(MESSAGE_PREFIX))&&window.location.search.startsWith(ADS_PARAM$1)&&document.dispatchEvent(new CustomEvent("pixel",{detail:{type:"click"}}))}}dispatchEvent(e){document.dispatchEvent(new CustomEvent("pixel",{detail:e}))}}var State;!function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failure=2]="Failure",e[e.TimedOut=3]="TimedOut",e[e.Errored=4]="Errored"}(State||(State={}));const CAF_SCRIPT_SRC=`https://www.google.com/adsense/domains/caf.js?${GOOGLE_MV3_URL_PARAMS}`,TIMEOUT_SCRIPTS=Number(GOOGLE_CAF_TIMEOUT_SCRIPTS),TIMEOUT_CALLBACKS=Number(GOOGLE_CAF_TIMEOUT_CALLBACKS);class StateMachine{constructor(){this.state=State.Pending}transitionTo(e){this.state=e}transitionFromPendingTo(e){this.done||(this.state=e)}get loaded(){return this.state===State.Loaded}get timedOut(){return this.state===State.TimedOut}get done(){return this.state!==State.Pending}}class Ads{constructor(e,t){this.state={script:new StateMachine,blocks:new StateMachine},this.blocksLoaded=[],this.injectScriptTags=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.type="text/javascript",t.src=CAF_SCRIPT_SRC,t.addEventListener("load",(()=>e(!0))),t.addEventListener("error",(()=>e(!1))),document.body.appendChild(t),TIMEOUT_SCRIPTS>0&&setTimeout((()=>e(!1)),TIMEOUT_SCRIPTS)}))})),this.onPageLoaded=(e,t)=>{if(this.pageLoaded={requestAccepted:e,status:t},this.state.script.done)return;const n=null==t?void 0:t.error_code;n?(this.state.script.transitionTo(State.Failure),this.failureReason=`caf_pageloaderror_${n}`):this.state.script.transitionTo(State.Loaded)},this.onBlockLoaded=(e,t,n,i)=>{this.blocksLoaded.push({containerName:e,adsLoaded:t,isExperimentVariant:n,callbackOptions:i}),this.state.blocks.done||(t?this.state.blocks.transitionTo(State.Loaded):this.blocksLoaded.length>=this.blocks.length&&(this.state.blocks.transitionTo(State.Failure),this.failureReason=`caf_adloadfail_${e}`))},this.onTimeout=()=>{this.state.script.transitionFromPendingTo(State.TimedOut),this.state.blocks.transitionFromPendingTo(State.TimedOut)},this.blocks=e,this.options=t}get loaded(){return this.state.script.loaded&&!this.blocksLoaded.map((e=>e.adsLoaded)).includes(!1)}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=()=>{const n=performance.now();if(this.state.blocks.done)return this.cafLoadTime=Math.round(n-this.cafStartTime),void e();const i=this.blocksLoaded.map((e=>e.adsLoaded));i.includes(!1)||i.length>=this.blocks.length?e():setTimeout(t,50)};t()}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield this.injectScriptTags();return this.cafStartTime=performance.now(),e&&void 0!==window.google?(new window.google.ads.domains.Caf(Object.assign(Object.assign({},this.options),{pageLoadedCallback:this.onPageLoaded,adLoadedCallback:this.onBlockLoaded}),...this.blocks),TIMEOUT_CALLBACKS>0&&setTimeout(this.onTimeout,TIMEOUT_CALLBACKS),yield new Promise((e=>{const t=()=>{this.state.script.done?e():setTimeout(t,10)};t()}))):void this.state.script.transitionTo(State.Failure)}catch(e){return void(this.error=e.toString())}}))}toCallbacks(){return{adLoadedCallback:this.blocksLoaded.slice(-1)[0],pageLoadedCallback:this.pageLoaded,cafTimedOut:this.state.script.timedOut||this.state.blocks.timedOut,cafLoadedMs:this.cafLoadTime,googleAdsFailure:!!this.failureReason}}toContext(){const e={cafScriptWasLoaded:this.state.script.loaded,cafScriptLoadTime:this.cafLoadTime,callbacks:this.toCallbacks};return this.error&&(e.js_error={message:this.error}),this.state.script.loaded||(e.zeroclick={reason:"googleAdsFailure"}),e}mockFailedState(){this.state.blocks.transitionTo(State.Failure),this.state.script.transitionTo(State.Failure)}}class TagManager{constructor(e){this.injected=!1,this.identifier=e}inject(){if(this.injected)return;if(!this.identifier)return;if("TEST"===this.identifier)return;const e=document.createElement("script");e.setAttribute("src",`https://www.googletagmanager.com/gtag/js?id=${this.identifier}`),document.head.appendChild(e),this.track(),this.injected=!0}track(){this.push("js",new Date),this.push("config",this.identifier)}push(e,t){window.dataLayer||(window.dataLayer=[]),window.dataLayer.push(arguments)}}const ADS_PARAM="caf",ADS_TRACKING_URL="_tr",BLOCKS_TYPE="ads",BLOCKS_CONTAINER="rs",KNOWN_CAF_PARAMS=["caf","query","afdToken","pcsa","nb","nm","nx","ny","is","clkt"];class Google{static build({pageOptions:e,preferredLanguage:t,blocks:n,googleAnalytics:i},s,a,o){let r={};e&&(r=Object.assign({},e),r.hl||(r.hl=t));let d=null==e?void 0:e.resultsPageBaseUrl;d||(d=window.location.origin);return new Google(s.uuid,n,r,i,d,o)}constructor(e,t,n,i,s,a){this._blocks=t,this._pageOptions=n,this.uuid=e,this._baseURL=new URL(s),this._signature=a,this.ads=new Ads(this.blocks,this.pageOptions),this.tagManager=new TagManager(i)}injectTagManager(){this.tagManager.inject()}injectAds(){return __awaiter(this,void 0,void 0,(function*(){yield this.ads.inject()}))}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return this.ads.waitForBlocks()}))}get blocks(){return(this._blocks||[]).filter((e=>this.wantsToServeAds?e.type===BLOCKS_TYPE:e.container===BLOCKS_CONTAINER)).map((e=>{const t=this.baseURL,n=new URLSearchParams(window.location.search);n.forEach(((e,n)=>{t.searchParams.has(n)||t.searchParams.append(n,e)}));const i=Object.assign({},e);return i.resultsPageBaseUrl=t.toString(),this.wantsToServeAds&&(n.append("click","true"),n.append("session",this.uuid),i.clicktrackUrl=`${TRACKING_DOMAIN}${ADS_TRACKING_URL}?${n.toString()}`),i}))}get baseURL(){const e=new URL(this._baseURL.origin);return e.searchParams.append(ADS_PARAM,"1"),this._baseURL.searchParams.forEach(((t,n)=>{e.searchParams.append(n,t)})),e}get pageOptions(){const e=Object.assign({},this._pageOptions);return Object.keys(this._pageOptions).forEach((t=>{t.startsWith("bodis")&&delete e[t]})),e}get cannotLoadAds(){return!this.ads.loaded}get wantsToServeAds(){return new URLSearchParams(window.location.search).has(ADS_PARAM)}get adsMode(){return this.ads.loaded&&this.wantsToServeAds}get adsReady(){return this.wantsToServeAds&&!this.cannotLoadAds}get noAdsRedirectUrl(){const e=new URLSearchParams(window.location.search);return KNOWN_CAF_PARAMS.forEach((t=>e.delete(t))),`${window.location.origin}?${e.toString()}`}get callbacks(){return this.ads.toCallbacks()}toContext(){return Object.assign({blocks:this.blocks,pageOptions:this.pageOptions},this.ads.toContext())}}class CookieConsentManager{constructor(){this.injectScriptTag=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.setAttribute("src",COOKIE_CONSENT_JS_URL),t.addEventListener("load",(()=>this.awaitConsent(e))),t.addEventListener("error",(()=>e(!1))),document.head.appendChild(t)}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){this.injected||!COOKIE_CONSENT_JS_URL||isLocal()||(this.injected=yield this.injectScriptTag())}))}awaitConsent(e){let t=0;const n=setInterval((()=>{t+=1,20===t&&(clearInterval(n),e(!0)),void 0!==window.__tcfapi&&(window.addEventListener("ConsentActivity",(t=>{const{detail:{status:n}}=t;n&&e(!0)})),clearInterval(n))}),50)}}class App{main(){var e,t;return __awaiter(this,void 0,void 0,(function*(){if(this.parkResponse=decode(),this.findDomainResponse=yield getFindDomain(),!this.findDomainResponse)throw new Error("Domain failed to load.");this.pixels=Pixels.build(this.findDomainResponse),null===(e=this.pixels)||void 0===e||e.listenForEvents(),this.adblock=new Adblock,yield this.adblock.inject(),this.google=Google.build(this.findDomainResponse,this.parkResponse,this.adblock,buildSignature({context:this.context,callbacks:null===(t=this.google)||void 0===t?void 0:t.callbacks},"click")),this.google.injectTagManager();const n=Parking.build(this.findDomainResponse,this.google);Render.prerender(n),this.cookieConsentManager=new CookieConsentManager,yield this.cookieConsentManager.inject();let i=Failed.cannotPark(this.findDomainResponse);if(i)return void(yield this.transitionToFailed(i));yield this.google.injectAds();const s=Disabled.build(this.findDomainResponse,this.adblock.state);if(s)return void(yield this.transitionToDisabled(s));const a=Sales.build(this.findDomainResponse);if(a)return void(yield this.transitionToSales(a));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const o=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);o?yield this.transitionToRedirect(o):(i=Failed.noSponsors(this.google),i?yield this.transitionToFailed(i):yield this.transitionToParking(n))}))}transitionToParking(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.template(e),Render.revealPage(),yield this.google.waitForBlocks(),yield this.track()}))}transitionToRedirect(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e;const t=this.track();Render.revealPage(),yield waiter(e.delay,(e=>Render.loading(e))),yield t,window.location.href=e.url,log(`➡ Redirecting [${e.url}]`)}))}transitionToFailed(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}transitionToSales(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,e.init(this.context),yield this.track()}))}transitionToDisabled(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}track(){var e;return __awaiter(this,void 0,void 0,(function*(){if(!this.state.track)return Promise.resolve();try{const t=this.state.trackingType;return null===(e=this.pixels)||void 0===e||e.dispatchEvent({type:t}),trackVisit({context:this.context,callbacks:this.google.callbacks},t)}catch(e){return}}))}get eligibleForZeroClick(){const{cannotPark:e,canZeroClick:t,zeroClick:n}=this.findDomainResponse,{cannotLoadAds:i,wantsToServeAds:s}=this.google;return!!t&&(!!e||(!(!i||s)||!!(null==n?void 0:n.reason)))}get context(){var e,t,n,i;const s=this.findDomainResponse,a=this.parkResponse,o=null===(e=this.state)||void 0===e?void 0:e.toContext(),r=null===(t=this.adblock)||void 0===t?void 0:t.toContext(),d=null===(n=this.google)||void 0===n?void 0:n.toContext(),c=browserState(),l=Object.assign(Object.assign({},null===(i=this.findDomainResponse)||void 0===i?void 0:i.zeroClick),this.zeroClickResponse);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({app_version:APP_VERSION},s),a),r),d),o),c),{zeroClick:l})}init(){return __awaiter(this,void 0,void 0,(function*(){try{window.__parkour=this,yield this.main()}catch(e){console.error("app",e);const t=Failed.fromError(e);this.state=t,Render.message(t.message),Render.revealPage()}}))}}(new App).init(),exports.App=App}));