עסקים ובעלי מקצוע מומלצים בצפון: חיפה, קריות, נשר, טירת הכרמל, עכו ועוד

√ אדריכלים בקריות, מעצבי פנים

מיכל סלע מעצבת פנים‏ – ‪Msela.co.il‬‏
מודעהwww.msela.co.il/
עיצוב פנים ואדריכלות יוצאים מגדר הרגיל. צרו קשר עכשיו!

זהבית גולד – עיצוב פנים‏ – ‪zehavitgold.co.il‬‏
מודעהwww.zehavitgold.co.il/
מעצבת פנים באזור חיפה והצפון לעיצוב ייחודי של דירות ובתים פרטיים

צור קשר
אודות
עסקי
מגורים

רוני באריל- עיצוב פנים‏ – ‪baril.co.il‬‏
מודעהwww.baril.co.il/‏09-796-2077
תכנון אדריכלי ועיצוב – בניה ושיפוץ התמחות בבתים פרטים ודירות בשרון

תוצאות חיפוש

אדריכלים/מעצבי פנים בקריות, אדריכלים – קריות באינטרנט

www.krayot.com › אינדקס ראשי/בצפון › בנייה, אחזקת בית בקריות/בצפון

כל מה שרציתם לדעת על אדריכלים/מעצבי פנים בקריות, אדריכלים באתר קריות באינטרנט. רשימת חברות מומלצות ועסקים מומלצים בצפון. אדריכלים/מעצבי פנים בקריות, אדריכלים גם …

אדריכלים בקריות / מעצבי פנים בקריות – דניאל וקנין

www.daniel-vaknin.co.il/אדריכליםומעצביפניםבקריות/

מחפשים אדריכלים בקריות? אולי מעצבי פנים בקריות? הגעתם למקום הנכון! משרד עיצוב פנים בקריות בראשות דניאל וקנין יתכנן ויעצב את בית החלומות.

אדריכלים בצפון / מעצבי פנים בצפון הארץ – דניאל וקנין

www.daniel-vaknin.co.il/אדריכליםומעצביפנים-בצפון/

מחפשים אדריכלים בצפון? אולי מעצבי פנים בצפון? הגעתם למקום הנכון! משרד אדריכל בצפון בראשות דניאל וקנין יתכנן ויעצב את בית החלומות שתמיד רציתם.

אדריכלות ועיצוב פנים בחיפה – דפי זהב

www.d.co.il › אדריכלות ועיצוב פנים › אזור חיפה והקריות

מחפש אדריכלות ועיצוב פנים בחיפה? zap דפי זהב יסייע לך בבחירת אדריכלות ועיצוב פנים, עם חוות דעת גולשים, מחירון, פורום מומחה ועוד! כנס וקבל החלטה נבונה.

יעל דיילס בכר: אדריכלים בצפון – עיצוב פנים בחיפה

www.yaeldb.co.il/

יעל דיילס בכר, אדריכלית ומעצבת פנים בחיפה. לקחה חלק בתכנון קשת רחבה של פרויקטים, החל מתכנון של וילות ודירות יוקרה, משרדים, חנויות, בתי קפה ועוד. לפרטים נוספים צרו קשר.

טובה וצילה: אדריכלות ועיצוב פנים בצפון | מעצבי פנים ואדריכלים בחיפה

www.r-d-arch.co.il/

טובה וצילה הינו משרד אדריכלים ועיצוב פנים בצפון הארץ המתמחה בתכנון ועיצוב מבנים, ומספק פתרונות יצירתיים ברמה הגבוהה ביותר.

שירלי קמחי: עיצוב פנים בצפון – מעצבת פנים בצפון – אדריכלים בצפון

www.u-design.co.il/

9 בנוב׳ 2015 – קמחי אדריכלות ועיצוב הינו משרד המתמחה בשרותי אדריכלות ועיצוב פנים בצפון המבוססים על ניסיון מעשי מגוון בתחומים הרחבים של ענף האדריכלות והעיצוב.

אלה מורגן – עיצוב פנים וסטיילינג | 052-618-9729

elamorgan.co.il/

עיצוב פנים בצפון אלה מורגן | מעצבת פנים 052-6189729. … בית בצפון | אדריכלות פנים בצפון | יעוץ בצבע | עיצוב הבית | עיצוב פנים ואדריכלות | עיצוב פנים בתים | עיצוב פנים של דירה …

ברק פורת אדריכלות: אדריכלים בצפון, מעצבי פנים בצפון

barakarc.co.il/

ברק פורת הינו משרד אדריכלות בצפון המתמחה בתכנון, עיצוב ופיקוח בנייה לבתים פרטיים, וילות, מבני תעשייה, הרחבות, שיפוץ בתים, בניה ציבורית ועוד, תוך מתן מענה לצרכיו.

משרדי מעצבי פנים מומלצים בצפון | רוזוליו אדריכלים

www.rozolio.co.il/מאמרים/מעצביפנים-בצפון.htm

מעצבי פנים מומלצים בצפון – משרד רוזוליו אדריכלות ועיצוב פנים נוסד בשנת 2005 – המשרד מתעסק באדריכלות, עיצוב פנים וייעוץ פנג שווי.

חיפושים הקשורים ל: אדריכלים, מעצבי פנים בקריות

מעצבת פנים בקריות
מעצבי פנים בצפון
מעצבי פנים בצפון הארץ
מעצבי פנים בחיפה

מעצבי פנים בחיפה והקריות
אדריכלים ומעצבי פנים בצפון
משרדי אדריכלים בצפון
אדריכלים בנהריה

***
אריאל-נורית מוצאלי אדריכלים עיצוב פנים בקריות 052-2265667 שרת משה 42 א קרית חיים
שטרית מיכאל אדריכלים עיצוב פנים בקריות 04-8404090 ת.ד 242 קרית חיים
דניאלה עיצוב פנים אדריכלים עיצוב פנים בקריות 052-8738104 הראשונים 68 קרית חיים
פורת דורית אדריכלים עיצוב פנים בקריות 04-8710983 ישראלי בן ציון 61 קרית חיים
מריאנה מנדלר אדריכלים עיצוב פנים בקריות 04-8408085 עמקים 5/9 קרית ביאליק
לימור- אדריכלות ועיצוב אדריכלים עיצוב פנים בקריות 04-8755488 יקינטון 1 א קרית ביאליק
קובי עיצובים אדריכלים עיצוב פנים בקריות 04-8708521 ת.ד 2114 קרית ביאליק
גודיס מרינה אדריכלים עיצוב פנים בקריות 04-8765527 דפנה 66 קרית ביאליק
אנט מינצברג אדריכלים עיצוב פנים בקריות 04-8740725 לח"י 37 קרית ביאליק
תבנית אדריכלות עצוב פנים אדריכלים/עיצוב פנים בקריות 052-8961364 יגאל אלון 13 קרית מוצקין
הסל יפה אדריכלים/עיצוב פנים בקריות 04-8711296 שד' משה גושן 69 קרית מוצקין
איילת אפרים אדריכלים/עיצוב פנים בקריות 04-8734792 אושה 34 קרית מוצקין
שלום תמר אדריכלים/עיצוב פנים בקריות 04-8704096 ספיר 8 קרית מוצקין
הויזנר לילי אדריכלים/עיצוב פנים בקריות 052-8921600 גרושקביץ 11 קרית מוצקין
גולדנפלד רונית אדריכלים/עיצוב פנים בקריות 04-8707945 הרב קוק 31 קרית מוצקין
חוסטצקי דב אדריכלים/עיצוב פנים בקריות 04-8761961 קדיש לוז 18 קרית מוצקין
דיזיין – פלוס אדריכלים/עיצוב פנים בקריות 04-8713483 ורד 14 קרית מוצקין
אנונו מימון אדריכלים עיצוב פנים בקריות 050-5347778 ת.ד 1230 קרית ים
מרזל לאה אדריכלים עיצוב פנים בקריות 04-8419999 השקד 17 קרית חיים
מרק פסיה אדריכלים עיצוב פנים בקריות 04-8418861 שבטי ישראל 58 קרית חיים
מיקל תמי אדריכלים עיצוב פנים בקריות 04-8415946 מבצע קדש 1 קרית חיים
גולדבאום דלית – עיצוב פנים אדריכלים עיצוב פנים בקריות 04-8722571 קק"ל 50 קרית ביאליק
בן-אריה יהודית אדריכלים עיצוב פנים בקריות 04-8767894 דן 13 קרית ביאליק
אילן שר תכנון אדריכלי אדריכלות עיצוב פנים בקריות 04-8490386 מיכאל 22 קרית ביאליק
פישר סיגלית אדריכלות עיצוב פנים בקריות 04-8732987 אשל 21 קרית ביאליק
אנגלנדר לאה אדריכלות עיצוב פנים בקריות 077-6767366 לח"י 54 קרית ביאליק
גולדשטיין ציפורה אדריכלות עיצוב פנים בקריות 04-8741517 השומר 58 קרית ביאליק
ברק תמי אדריכלות עיצוב פנים בקריות 04-8445413 מכס נורדאו 5 קרית אתא
קונספט – אדריכלות ועיצוב פנים אדריכלות עיצוב פנים בקריות 054-4455065 זלמן שניאור 20 קרית אתא
בלסקי לב אדריכלות עיצוב פנים בקריות 050-6869358 ת.ד 10370 קרית אתא
עיצובים ואדריכלות עפ"י אסטרולוגיה אדריכלות עיצוב פנים בקריות 04-8493301 קרן היסוד 27 קרית אתא
נודלמן ביאנה אדריכלות עיצוב פנים בקריות 04-8435939 יוסף שפרינצק 99 א קרית אתא
אוטמזגין מיקי-א.ג. אדריכלות אדריכלות עיצוב פנים בקריות 052-6208357 השומר 18 קרית אתא
בן ברוך אלי אדריכלות עיצוב פנים בקריות 052-2614883 צבי הרר 76 גבעת רם קרית אתא
פוטשניק רבקה אדריכלים בקריות 04-8621307 אח"י אילת 58 קרית חיים
נבו אפרים אדריכלים בקריות 04-8772502 הבונים 2 קרית ביאליק
בורין אדריכלות ועיצוב פנים אדריכלים בקריות 052-2986634 דפנה 14 קרית ביאליק
אבנר שר אדריכלים בקריות 04-8778933 דרך עכו 192 קרית ביאליק
סמט אפרת אדריכלים בקריות 04-8709607 הברושים 11 א קרית ביאליק
אל-אור הנדסה בע"מ אדריכלים בקריות 04-8753836 ערמונים 21 קרית ביאליק
כהן צחי-הגשת תוכניות אדריכלים בקריות 050-9255723 בורוכוב 30/5 קרית אתא
אלפרוביץ בנצי אדריכלים בקריות 04-8457804 הרצל 3 קרית אתא
פייטלוביץ לורט אדריכלים בקריות 054-2329709 פיקאסו 5 גבעת טל קרית אתא
זאנו יוסף אדריכלים בקריות 04-8446815 העצמאות 62 קרית אתא
ריבן פליקס אדריכלים בקריות 04-8480074 האורן 77 גבעת רם קרית אתא
ויצנר רחל אדריכלים בקריות 04-8480992 מודליאני 5 גבעת טל קרית אתא
לב דוד אדריכלים בקריות 04-8444111 זבולון 14 קרית אתא
אורן אבנר אדריכלים בקריות 04-8455621 יהודה הלוי 18 קרית אתא
פורטל נסים אדריכלים בקריות 04-8402050 נוף הכרמל 16 קרית אתא
רונן הנדסאי אדריכלות אדריכלים בקריות 04-8455866 לילינבלום 81 קרית אתא
חזני אדריכלים ומעצבים אדריכלים בקריות 04-8404005 שד' ההסתדרות 47 חיפה
חיון דניאל אדריכלי גנים ונוף בקריות 052-2616119 אברבנאל 69 קרית חיים
הברפלד עדנה אדריכלי גנים ונוף בקריות 04-8772414 הרצל 5 קרית ביאליק
בן מרדכי חנן אדריכלי גנים ונוף בקריות 04-8701790 דליה 5 קרית ביאליק
לוי גיורא אדריכלים בקריות 04-8709047 דרך עכו 47 קרית מוצקין
אבריל את אבריל אדריכלות והנדסה בע"מ אדריכלים בקריות 04-8718869 אושה 24 קרית מוצקין
פלג בינוי ואדריכלות אדריכלים בקריות 052-3231132 שד' ויצמן 11 קרית מוצקין
אסתר מנשה אדריכלים בקריות 04-8763803 מנחם בגין 16/5 קרית מוצקין
נאידיץ' אלכסנדרה אדריכלים בקריות 04-8706849 החשמונאים 27/4 קרית מוצקין
בר-און ד"ר דוד אדריכלים בקריות 04-8705732 גרושקביץ 20 קרית מוצקין
פרוינד אליקים אדריכלים בקריות 04-8713880 שד' ויצמן 67 קרית מוצקין
סטולר יעקב אדריכלים בקריות 04-8712965 שד' משה גושן 57 א קרית מוצקין
מרינברג מרסלו אדריכלים בקריות 04-8732121 הרב קוק 19 קרית מוצקין
מדינה דוד אדריכלים בקריות 054-4829366 שד' משה גושן 65 קרית מוצקין
בוקליס אהרון אדריכלים בקריות 052-2269914 הגדוד העברי 4 קרית מוצקין
ליפשיץ-רוגינסקי,ארכיטקטים אדריכלים בקריות 04-8734141 שד' משה גושן 41 קרית מוצקין
טראקנוב אלי אדריכלים בקריות 054-5768108 שד' ז'בוטינסקי זאב 14/10 א' קרית ים
בורשטיין יצחק אדריכלים בקריות 04-8737959 רוברט סולד 40 קרית ים א', קרית ים
וייל אריה אדריכלים בקריות 04-8733545 השקד 7 קרית חיים
וקנין ניסים אדריכלים בקריות 04-8403074 הקיבוצים 29 קרית חיים
דוד טובה ורייזר צילה אדריכלים אדריכלים בקריות 04-8412196 ציזלינג 12 קרית חיים
***


דורית פורת – אדריכלות פנים ועיצוב

אדריכלים בקריות, מעצבי פנים בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


04-8710983
למידע נוסף >>


קרן אור – משרד לאדריכלות ועיצוב פנים

אדריכלים בחיפה, אדריכלית חיפה, מעצבת פנים חיפה
אזורי פעילות: קריות, צפון, חיפה, מומלצים


052-8521529
למידע נוסף >>


ציפי לוי – מעצבת פנים בחיפה ובצפון

אדריכלים בקריות, מעצבת פנים בצפון, אדריכלים צפון הארץ
אזורי פעילות: קריות, צפון, חיפה, מומלצים


052-2457991
למידע נוסף >>


בורין אדריכלות ועיצוב פנים

אדריכלים בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


052-2986634
למידע נוסף >>


ציפורה גולדשטיין | תכנון ועיצוב פנים

עיצוב פנים בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


04-8773604
למידע נוסף >>


ג.מ. אדריכלות ובינוי

אדריכלים, עיצוב פנים, בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


04-8730669
למידע נוסף >>


לימור בן הרוש – אדריכלות ועיצוב פנים

עיצוב פנים ואדריכלות בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


054-2204902
למידע נוסף >>


רונית תכנון אדריכלי

אדריכלים בקריות, מעצבי פנים בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


בהקמה
למידע נוסף >>


דוד מדינה | ארכיטקט

אדריכלים בקריות, מעצבי פנים בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


בקרוב
למידע נוסף >>


טובה דוד וצילה רייזר – אדריכליות

אדריכלים בקריות, מעצבי פנים בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


בהקמה
למידע נוסף >>


תבנית אדריכלות עיצוב פנים

אדריכלים, עיצוב פנים, בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


בהקמה
למידע נוסף >>


תמי ברק – אדריכלית פנים ומעצבת

אדריכלים בקריות, מעצבי פנים בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


בהקמה
למידע נוסף >>


שירלי בר – מעצבת פנים

מעצבי פנים בקריות, מעצבת פנים קריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


בהקמה
למידע נוסף >>


תלמה אחיטוב – יועצת פאנג שוואי בכירה

אדריכלים בקריות, מעצבי פנים בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


בהקמה
למידע נוסף >>


איילת אפרים

אדריכלים בקריות, מעצבי פנים בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


בהקמה
למידע נוסף >>


רוברט גל – אדריכלות ובינוי ערים

אדריכלים בקריות, מעצבי פנים בקריות
אזורי פעילות: קריות, צפון, חיפה, מומלצים


בהקמה
למידע נוסף >>

מחפשים אדריכלים בקריות, מעצבי פנים? 24/7 הינו המוביל בתחום חברות מומלצות, בעלי מקצוע, נותני שירות ועסקים מומלצים באזור .בדיוק בשבילכם הוקם פורטל מומלצים 24/7, פורטל עסקים שבו לקוחות יכולים לאתר בקלות בעלי מקצוע מנוסים ואיכותיים בחיפה, נשר, טירת הכרמל, עכו, קריית טבעון וכל אזור קריות. צוות הפורטל דואג למיין את בעלי המקצוע לפי קטגוריות ראשיות ותתי קטגוריות בכדי שהחיפוש יהיה נוח וקל. בפורטל הלקוחות יכולים לקבל מידע על בעלי המקצוע בצפון הארץ, בתי עסק (כתובת, טלפון והשירותים המוצעים) ומדריכים מקצועיים בתחומים השונים. אם אתם מחפשים אדריכלים בקריות, מעצבי פנים אז הגעתם למקום הנכון. חוות דעת על בעלי מקצוע, נותני שירות מומלצים בלחיצת כפתור. מגוון אדריכלים בקריות, מעצבי פנים שישמחו לתת לכם שירות.
אתר עסקים ובעלי מקצוע מומלצים 24/7 אסף עבורך את כל בעלי המקצוע ונותני השירות המומלצים ביותר באזור מגוריך בתחום אדריכלים בקריות, מעצבי פנים. מטרת סיווג זה היא לאפשר לגולש להגיע אל נותן השירות או בית העסק הקרוב ביותר אליו ברגע נתון זה. טלפון, שעות פעילות, סניפים וכל מה שצריך לדעת על אדריכלים בקריות, מעצבי פנים. אתר עסקים ובעלי מקצוע מומלצים 24/7 אסף עבורך את כל המידע הרלוונטי ומציג בעלי מקצוע ונותני השירות המומלצים ביותר באזור מגוריך בתחום אדריכלים בקריות, מעצבי פנים. בהצלחה!
לכל בית עסק או בעל מקצוע יש בפורטל כרטיס המכיל את כל הפרטים הרלוונטים. בכל כרטיס תוכלו להביע את התרשמותכם מהשירות שקיבלתם או לקרוא את ההמלצות וחוות הדעת של לקוחות קודמים שקיבלו שירות מבעל המקצוע/העסק בצפון. צוות האתר הינו מהמקצועיים בחיפה, קריות והסביבה ודואג לעקוב אחר תגובות הגולשים – תגובות חיוביות יעלו את דירוג בעל המקצוע ותלונות יטופלו בהתאם. הצוות דואג כי גם הלקוחות וגם בעלי המקצוע יצאו מרוצים ולכן ייפעלו להסיר מידע שקרי, מטעה או מידע הסותר את תנאי השימוש באתר.

מילות חיפוש: יצאת צדיק, אמינים, ביקורות, עפולה, נהריה, גליל מערבי, מגדל העמק, מחירים, מחירון, וידאו, השוואת מחירים

!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*(){}))}hasAdblocker(){if(void 0===window.google)return!0;const e=document.querySelectorAll("style");return Array.from(e).some((e=>!!e.innerHTML.includes("adblockkey")))}handleAdblocked(){this.removeAdblockKey(),this.state=Blocking.BLOCKED}removeAdblockKey(){var e;null===(e=document.documentElement.dataset)||void 0===e||delete e.adblockkey}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.5.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=(e="",t=!1)=>{const n=`${e}/${FIND_DOMAIN_URL}${window.location.search}`,i=e?"include":"same-origin",s=Object.assign({Accept:"application/json","Content-Type":"application/json"},t?{"X-HOST":window.location.host}:{});return fetch(n,{method:"POST",headers:s,credentials:i}).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: 75vh;\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_TARGET="main",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.injectMessage(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}injectMessage(e){const t=document.querySelector(MESSAGE_TARGET);t?t.innerHTML=e:this.domNode&&(this.domNode.innerHTML=e)}salesBanner(e){if(!e)return;const{href:t,position:n,message:i,theme:s,status:a}=e,o=document.createElement("div"),r=n||"",d="HIGHLIGHT"===s?"is-highlighted":"";o.innerHTML=t?`\n
\n ${i}\n
\n `:`\n
\n ${i}\n
\n `,"BOTTOM"===n?(o.style.marginTop="30px",document.body.appendChild(o)):document.body.prepend(o)}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"

Content blocked

Please turn off your ad blocker.";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,status:e}}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,o;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,desktop:t.desktop,terms:null===(a=null==t?void 0:t.pageOptions)||void 0===a?void 0:a.terms,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===(o=null==t?void 0:t.pageOptions)||void 0===o?void 0:o.ivt,js_error:t.js_error,mobile:t.mobile,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,tablet:t.tablet,template_id:t.templateId,type:n,user_has_ad_blocker:t.user_has_ad_blocker,user_id:t.userId,uuid:t.uuid,zeroclick:t.zeroClick},browserState())},trackVisit=({callbacks:e,context:t},n,i="")=>{const s=`${i}/${TRACKING_URL}`,a=i?"include":"same-origin",o=buildSignature({callbacks:e,context:t},n);let r={};"click"===n&&(r={click:"true",session:t.uuid,nc:Date.now().toString()}),fetch(s,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},credentials:a,body:JSON.stringify(Object.assign({signature:encode(o)},r))})};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","https://syndicatedsearch.goog","https://googleadservices.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;new URLSearchParams(window.location.search).forEach(((e,n)=>{t.searchParams.has(n)||t.searchParams.append(n,e)}));const n=Object.assign({},e);if(n.resultsPageBaseUrl=t.toString(),this.wantsToServeAds){const e=new URLSearchParams;e.append("click","true"),e.append("session",this.uuid);const t=Object.assign({},this._signature);delete t.ad_loaded_callback,delete t.caf_loaded_ms,delete t.caf_timed_out,delete t.flex_rule,delete t.frame,delete t.js_error,delete t.no_ads_redirect,delete t.page_headers,delete t.page_request,delete t.page_loaded_callback,delete t.popup,delete t.screen_resolution,delete t.user_has_ad_blocker,delete t.user_preference,delete t.user_supports_darkmode,delete t.user_using_darkmode,delete t.zeroclick,e.append("signature",encode(t)),n.clicktrackUrl=`${TRACKING_DOMAIN}${ADS_TRACKING_URL}?${e.toString()}`}return n}))}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,n));yield this.google.injectAds();let s=Disabled.build(this.findDomainResponse,this.adblock.state);if(s)return void(yield this.transitionToDisabled(s,n));const a=this.adblock.hasAdblocker();a&&this.adblock.handleAdblocked();const o=Sales.build(this.findDomainResponse);if(o)return void(yield this.transitionToSales(o));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const r=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);if(r)yield this.transitionToRedirect(r);else{if(a)return s=Disabled.build(this.findDomainResponse,this.adblock.state),void(yield this.transitionToDisabled(s,n));i=Failed.noSponsors(this.google),i?yield this.transitionToFailed(i,n):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,t){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.injectJS(t.javascript),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,t){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.injectJS(t.javascript),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 this.adblock.state!==Blocking.BLOCKED&&(!!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}));